(かつてのキャンペーン) NeuG 1.0の入ったFST-01の入手について

キャンペーン終了のお知らせ

2014年6月いっぱいでキャンペーンは終了しました。

70 [Kiバイト/秒] での乱数列の生成は、実用としては大変優秀であり、これを利用する他のツールの整備が重要であることが分かりました。

今後、(希望があれば、それに応じて)あらためてツールとあわせて販売することを企画します。

「どうしても入手したい」という方は、連絡くだされば個別の対応で販売します。

今、必要なツールとして検討しているのは、物理乱数生成器などを直接つなぐことのできないVPSのインスタンス(など)に対して乱数を供給するネットワークです。

トータルのネットワーク監視が100%行われていれば、ネットワークを通じた乱数の供給には嫌がらせ程度の意味しかありません。現実的には、行われているネットワーク監視に対抗しうる規模の乱数ネットワークが求められる、のではないか、と考えています。

(かつての)アナウンス

NeuG 1.0がリリースされました(2013-11-11)。 これを記念して、FST-01にNeuG 1.0をインストールしたものを日本で販売します。

どうやらこれまでの主な利用者はBitcoinの利用者のようなので、2014年1月からBTCでの支払いも受け付けます。Bitcoinの相場に応じて変動します。

製品の概要

NeuGはTrue Random Number Generatorで、本製品はUSBに接続して使います。 USB CDC/ACMデバイスとして動作し、約70 [Kiバイト/秒] で乱数列を生成します。

本製品は、マイクロコントローラにSTM32F103を利用して、このADC(アナログ・ディジタル変換器)の物理的なノイズ源をエントロピーの元としています。(疑似乱数ではありません。)

True Random Number Generatorの構成としては、NIST SP 800-90B(ドラフト)に示されたものを採用し、SHA-256をconditioning componentとしています。

生成される乱数列は、NIST STS 2.1.1, Dieharder 3.31.1, TestU01 1.2.3およびPractRand 0.90で検証して、良い結果が出ています。

画像とボタン

画像と情報共有のボタンを付けたらと教えてもらったので付けてみます。

FST-01 and enclosure
広報/アウトリーチに協力願います
Google+: 9 Twitter: 33 Facebook: 40

ボタンを押すとGoogle+, Twitter, Facebook のサービスにそれぞれ行きます。それらのサービスを利用している方は、本製品に関する情報を伝えてください。

製品の用途

この製品の本来の用途は乱数生成器です。

たとえば GNU/Linux の場合、rng-toolsでこのデバイスを指定し、カーネルの/dev/randomにエントロピーを供給します。(GnuPGやX.509の)鍵生成を行う際や、httpsの通信を行う際には、本製品を利用することを推奨します。また、オンラインビデオゲームなどで(公正を期するため)本当の乱数列を必要とする応用にも利用できるでしょう。

とはいっても、一般の個人では、これまで乱数生成器は一般的なデバイスではありませんでした。このような方への、よくある用途として「お守り」があります。

2013年、大規模な通信傍受、また、諜報機関の技術標準の制定のプロセスへの関与(疑似乱数生成)、の事実が発覚しました。また、ハードウェアのバックドアの実現可能性が明らかとなり、PCに組み込まれた乱数生成器が信用できるとは限らず、その機能があったとしても使えないだろう、という残念な状況となっています。

【前の段落と次の段落との間にはだいぶ論理の飛躍があります。この部分を考えてもらいたい、というのが販売の重要な目的です。】

このような状況を改善するには、まず、第一歩として、ユーザの自由を尊重するコンピューティングを、もう一度、取り戻す必要があるでしょう。

自由なハードウェア設計によるボードに載せた自由ソフトウェアの実装によるハードウェア物理乱数生成器、これは、まさに、ユーザの自由を尊重するコンピューティングのシンボルであり、持っていれば「お守り」になるに違いありません(いざというときに、本来の用途にも使えます)。

関連して疑似乱数生成アルゴリズムにも思いを馳せ、また、乱数列の検証について考察してもよいでしょう。

製品の外装

FST-01は外装の違いで3種類の形態がありますが、今回販売するものは、熱収縮チューブのカバー付きのものです。

熱収縮チューブによる透明のカバーですので、ボードの部品を見ることができます。

必要となった場合はカバーを壊して、ハードウェアの拡張を行ったり、SWDデバッガを接続することができます。

購入方法

群馬県前橋市の飛石技術で販売します。 飛石技術で買う をご覧ください。 こちらの連絡先に注文願います。メールで注文の個数(と、希望する場合は協賛金の口数、来訪する場合は予定の日時)をお知らせください。

価格は税込みで、一つ4000円です(0.0686BTC)。 注文に際して、希望する場合、飛石技術開発協賛金を一口1000円(0.0172BTC)(0口から何口でもOK)を申し受けます。 よろしければ協賛ください。

昨今の情勢を鑑み、電子メールでの通信を避けたい方は、郵便の利用か現地への来訪をお願いします。

特に指定がなければ、通常の郵便で封筒に入れて送ります。希望によりクロネコメール便も選択できます。

国外の方で注文は、EMSでの配送で良ければ、取り扱います。これまでベトナム、香港、フランスへの配送の実績があります。上記の値段に送料を加えたものが料金になります。

飛石技術開発協賛金の用途

飛石技術の自由なハードウェア設計(例: FST-01)、自由ソフトウェアの開発と保守(例: NeuG, Gnuk, Chopstx)の人件費に充てられます。

これまでの背景と目算

Wikipedia (英語版)に、 Comparison of hardware random number generators のページがあります。これまで物理乱数生成器は、たいへん高価であったり、入手性に問題がありました。この状況を改善しなければいけないと、考えていました。

外部資金に頼らず、自前の出資で自由ソフトウェアの開発と保守(例: NeuG, Gnuk, Chopstx)を行い、自由なハードウェア設計(例: FST-01)を進めて来ました。関連して、外部のプロジェクトの、GNU Privacy GuardやGNU libgcryptの改善も行ってきています。

今後については、下記の三つの段階だろうと考えていました。半年間で第一段階の半分位でした。

  • 第一段階: 12個(現在、手元にあるもの(もともと30個))

    販売の利益(販売価格 - 製造原価)で、開発作業に関するものを買いました。ノートパソコンに使うSSDを購入しました。

    文書を整備して、皆様からのフィードバックを受けつつ「FST-01でGnukを使う」に対応する「FST-01でNeuGを使う」の文書を作成しています。

  • 第二段階: 400個くらい(製造元) (目論見の期間: 一年?)

    これくらい売れると販売の売上額で次の製造が可能となります。もしかしたら改善版のFST-02とするかもしれません。表記が2進数なら次はFST-10ですか。

  • 第三段階: 数千個/年 (果たしてそういう日が来るのでしょうか)

    この製品の販売の利益(だけ)で生計が立てられるようになります。関連の技術開発に専念できるようになります。もし、この段階に来るようでしたら、継続して開発ができると思います。

どの段階にあるかについては、随時、gniibe.org でお伝えします。 皆様のご理解に感謝し、応援をお願いします。

2013年、わりと想定外なできごとと今後について

NeuGは、Gnuk Tokenの開発の中で生まれたものです。 NeuGのスタンド・アロンのデバイスを販売することは、当初は考えていませんでした。

Gnukのプロジェクトでは2012年7月に1.0をリリースしました。

GnuPGの次期バージョン(2.1.x)では楕円曲線暗号が使えるようになります。Gitリポジトリの開発版で、試してみることができます。ですから、Gnukでも楕円曲線暗号を採用すれば、実用性にさらに意味が出てくるというのがこれまでの期待でした。

そこで、Gnukでは、楕円曲線暗号の実装の利用を進めました(暗号ルーチンの実装は2011年に行っていました)。今年はOpenSSHの認証で楕円曲線暗号を実際に使ってみる、という方向に開発を進め、動くところまで進みました(注: これにはGnuPGの開発版が必要です)。

しかし、その後、GnuPGでは(GnuPGだけではありませんが)、楕円曲線暗号でNIST制定の曲線は利用できないかも、という判断となり、開発版が安定版としてリリースされる見込みも遠のいてしまいました。

幸い、GNU libgcryptの開発版ではDJB先生のcurve25519の実装(Edwards形式)が進んでいますので、GnuPGでcurve25519が使えるようになるのも、とても遠くではないでしょう。OpenSSHでもcurve25519の採用に関する動きが進んでいる模様です。Gnukでもcurve25519の検討を進めたいと考えています。

それやこれやの中、今は、むしろ、あえてNeuGのスタンド・アロンのデバイスを販売することに意味があると考えるに至りました。

NeuGのスタンド・アロンのデバイスでは、Frauchekyと名付けられたGPLをユーザに運ぶ仕組み、reGNUalと名付けられたファームウェア・アップグレードの仕組みなど、乱数生成以外にも興味深い技術が使われています。ぜひ、購入してください。まぁ、技術自身を見るには、ソースコードを見るだけでもいいと思いますけど、実機があると気分が違いますよ。はい。

えー、2013-11-12 に上記のWikipediaのページに NeuG の情報を追加したところ、「出入り禁止」になってしまいました。あらら。

2014年、花も嵐も?

2014年に入って、エントロピーを懸念するBitcoinのユーザから注文がありました。 「Bitcoin方面が市場だ!」とのその主張に賛同したわけでもありませんが、 GnuPGで、鍵に secp256k1 を扱えるようにしました。

これにより、GnuPGを用いて Bitcoin の transaction に署名をすることが技術的に可能となりました。

ツール(electrum)を改造し、実際に使おうと考えてました。そうしたら、日本にある「ビットコイン」(必ずしもBitcoinではないかもしれません)の会社の騒動があり、なんだか「ビットコイン=反社会的な怪しいもの」との風評が広がってしまったため、こちら方面は、進めていません。

それから OpenSSH で Ed25519 の署名による認証がサポートされたので、現在は、GnuPGとGnukで Ed25519 の署名と Curve25519 の暗号/復号に取り組んでいます。OpenPGPの標準の活動にCurve25519の提案をしました。

FST-01に関する情報

こちらのWiKiに情報がまとめられています(英語)。 http://www.seeedstudio.com/wiki/FST-01

FST-01だけを買って後で自分でインストールしたい

中国、深圳にあるSeeed Studioという自由なハードウェア設計を応援する会社のサイト、 Seeed Bazaar から購入できます。

これにはGnuPGの秘密鍵を保管する自由ソフトウェア Gnuk 1.0.1 がサンプル・アプリケーションとして書き込まれています。

自分で作りたい

NeuGは自由ソフトウェアであり、他のボードもサポートしています。

たとえば、若干のエレクトロニクスの知識とOpenOCDの利用ができる方ならば、STM8S Discovery Kitを購入して(市販価格750円)、そのSTM32F103の部分を利用して作ることもできます。

NeuGスタンドアロンデバイスを作る集まりを催したい、などの企画がありましたら、相談ください。