ハードウェア

放射性物質を用いて量子乱数を生成してしまう猛者が現れる


データの暗号化やプログラミングでも使用される乱数は、定量的なアルゴリズムを用いて生成する擬似乱数や、CPUや通信機器のノイズを用いて生成する物理乱数がありますが、いくつかの乱数の中でも最も信頼性が高いとされる量子乱数を、放射性物質を用いて生成してしまう猛者がGitHub上に現れ、乱数作成機器の仕様とソースコードを公開しています。

GitHub - nategri/chernobyl_dice: A quantum random number generator with a Cold War aesthetic.
https://github.com/nategri/chernobyl_dice

「Chernobyl Dice(チェルノブイリのサイコロ)」は、エントロピー源として弱放射性物質の核分裂反応を利用した量子乱数生成器です。Chernobyl Diceは基板となるArduino Nano、放射線測定器のガイガー・カウンターウランガラス6つ、ニキシー管で構成されており、下記のようなプログラムで動作します。

1.ガイガー・カウンターが反応したかどうかによって、1ミリ秒ごとに0か1がリングバッファに記録される。
2.フォン・ノイマンの安定性解析を用いて、生成された初期の乱数のバイアスを除去する。
3.2ステップ目で生成したビット群を、デバイスの電源を入れてから経過したマイクロ秒単位の時間を4で割った値のmod2でXORすることで、さらにバイアスを除去する。

Chernobyl Diceが動作している様子が以下のムービー。




回しを「CL」に合わせると現在時刻を表示するクロックモードになります。乱数の生成を繰り返しUSBから出力するストリーミングモード、ボタンを1回押すと1つの乱数が表示されるダイスモードの3つのモードがあります。


回しを「DC」に合わせると、ボタンを一回押すたびに一つの乱数が表示されるダイスモードになります。


ノブをあげた数字の合計と生成される乱数の範囲が対応しています。4と8のノブをあげた場合は0から12の範囲で乱数が生成されます。


ボタンを押すと……


ニキシー管に二進数が表示され、乱数の生成が始まります。


今回は「2」が生成されました。


回しを「ST」に合わせると、乱数の生成を繰り返しUSBから出力するストリーミングモードを使用できます。


Pythonに備わっている統計テストを実施してみると、すべてのテストをクリアできたとのこと。Chernobyl Diceが非常に偏りのない乱数生成器であることを示しています。


Chernobyl Diceを作成するためのパーツリストも公開されています。


実際にChernobyl Diceを組み立てている様子はこんな感じ。エンクロージャーにスペーサーを取り付けます。


ロジックボードを組み付け。


ニキシー管をロジックボードと接続して……


エンクロージャーに組み付けます。


ガイガー・カウンターをエンクロージャに組み付けます。


続いてウラングラスマーブルを取り付けます。


コントロールパネルボードを接続したらあとはボタン類を取り付けていけば完成。


なお、Chernobyl Diceの動作中にウラングラスマーブルが紫外線によって緑色に光りますが、これは放射性物質とは何も関係がなく、かっこいいから光らせているそうです。

この記事のタイトルとURLをコピーする

・関連記事
「Linux搭載PC」を名刺にしてしまった猛者が登場 - GIGAZINE

全高わずか1mmの極小ダビデ像を金属で出力可能な3Dプリンターが登場 - GIGAZINE

ロジクールの最上位ワイヤレスマウス「MX Master 3」を分解して進化っぷりを徹底検証したレビューが登場 - GIGAZINE

「Mac Pro」のベンチマーク結果が公開、ミドルレンジの構成でiMac Proと同等のパフォーマンス - GIGAZINE

ピンポン球が当たった時の摩擦を電力にして球のデータを収集できる「スマート卓球台」が開発される - GIGAZINE

in ハードウェア,   サイエンス,   動画, Posted by darkhorse_log

You can read the machine translated English article here.