
コンピューティングにおいて、ハードウェア乱数発生器( HRNG )、真性乱数発生器( TRNG )、非決定性乱数ビット発生器( NRBG ) [ 1 ]または物理乱数発生器[ 2 ] [ 3 ]は、エントロピーを生成できる物理的なプロセスから乱数を生成するデバイスであり、決定論的アルゴリズムを利用する疑似乱数発生器( PRNG ) [ 2 ]や、エントロピー生成専用のハードウェアを含まない非物理的な非決定性乱数ビット発生器とは異なります。 [ 1 ]
多くの自然現象は、熱雑音やショット雑音、電子回路のジッタや準安定性、ブラウン運動、大気雑音など、低レベルの統計的にランダムな「ノイズ」信号を生成します。[ 4 ]研究者たちは、ビームスプリッターを用いた光電効果、その他の量子現象、[ 5 ] [ 6 ] [ 7] [8 ] [ 9 ] 、さらには原子核崩壊(実用上の考慮から、後者は大気雑音と同様に、かなり制限された用途やオンライン配信サービス以外では実現不可能)も利用しました。[ 4 ]「古典的な」(非量子的な)現象は真にランダムではありませんが、予測不可能な物理システムは通常、ランダム性の源として受け入れられるため、「真の」と「物理的な」という修飾語は同じ意味で使用されます。[ 10 ]
ハードウェア乱数生成器は、ほぼ完全な乱数(「完全エントロピー」)を出力することが期待されています。[ 1 ]物理的なプロセスは通常この特性を持たず、実用的なTRNGは通常、いくつかのブロックで構成されています。[ 11 ]
ハードウェア乱数生成器は、一般的に1秒あたりに生成される乱数ビット数が限られています。利用可能な出力データレートを向上させるため、より高速なPRNG(擬似乱数生成器)の「シード」を生成するためによく使用されます。PRNGは、ノイズ源の「匿名化」(ノイズ源の識別特性を白色化すること)とエントロピー抽出にも役立ちます。適切なPRNGアルゴリズム(暗号学的に安全な擬似乱数生成器、CSPRNG)を選択すれば、その組み合わせは連邦情報処理標準(FIS)およびコモンクライテリア標準の要件を満たすことができます。[ 12 ]
ハードウェア乱数生成器は、乱数性を必要とするあらゆるアプリケーションで使用できます。しかし、多くの科学アプリケーションでは、TRNGの追加コストと複雑さ(疑似乱数生成器と比較した場合)は、意味のあるメリットをもたらしません。TRNGには、データサイエンスや統計アプリケーションにおいてさらなる欠点があります。例えば、数値列を保存しない限り再実行できないこと、アナログの物理的実体に依存しているため、発生源の障害が分かりにくくなることがあります。そのため、TRNGは主に、その予測不可能性や数値列の再実行不可能性が実装の成功に不可欠となるアプリケーション、例えば暗号技術やギャンブルマシンで使用されます。[ 13 ]
ハードウェア乱数生成器の主な用途はデータ暗号化の分野であり、例えばデータの暗号化と署名に必要なランダムな暗号鍵とノンスを生成するために使用されます。ランダム性に加えて、暗号アプリケーションによって少なくとも2つの追加要件が課せられます。[ 14 ]
これらの要件を満たす典型的な方法は、TRNGを使用して暗号的に安全な疑似乱数生成器をシードすることです。[ 15 ]
物理的な装置は、数千年にわたり、主に賭博のために乱数を生成するために使用されてきた。特にサイコロは5000年以上前から知られており(現在のイラクとイランで発見されている)、コインを投げてランダムなビットを生成する方法は、少なくとも古代ローマ時代にまで遡る。[ 16 ]
物理的乱数発生器が科学的目的に初めて使用されたのは、フランシス・ゴルトン(1890年)によるものです。[ 17 ]彼は、一般的なギャンブル用のサイコロを用いて確率分布をサンプリングする方法を考案しました。ゴルトンは、一番上の数字に加えて、最も近いサイコロの面も参照することで、6×4 = 24通りの結果(約4.6ビットのランダム性)を作り出しました。[ 16 ]
ケンドールとバビントン=スミス(1938)[ 18 ]は、周期的な光バーストで照射される高速回転10セクターディスクを用いた。サンプリングは人間が光線の下の数字をパッドに書き込むことで行われた。この装置は10万桁の乱数表を生成するために利用された(当時、このような表は今日のPRNGのような統計実験に使用されていた)。[ 16 ]
1947年4月29日、ランド社は「電子ルーレットホイール」を用いて乱数生成を開始した。これは、毎秒約10万パルスの乱数周波数パルス源と、毎秒1回の一定周波数パルスのゲート制御によって5ビットのバイナリカウンタに入力される構成であった。ダグラス・エアクラフト社は、セシル・ヘイスティングの提案(RAND P-113)[ 19 ]をノイズ源(おそらく磁場中に置かれた6D4小型ガスサイラトロン管のよく知られた動作[ 20 ])として実装し、この装置を製造した。32通りのカウンタ値のうち20通りが10進数にマッピングされ、残りの12通りのカウンタ値は破棄された。[ 21 ] RANDマシンによる長時間実行の結果は、フィルタリングとテストを経て表に変換されました。当初はパンチカードの束としてのみ存在していましたが、後に1955年に50行50桁の数字が各ページに記された書籍として出版されました[ 16 ] ( A Million Random Digits with 100,000 Normal Deviates )。RAND表は乱数生成における画期的な進歩でした。なぜなら、これほど大規模で綿密に作成された表はそれまで存在しなかったからです。この表は、シミュレーションやモデリング、暗号アルゴリズムにおける任意の定数を導出して、その定数が悪意を持って選択されたものではないことを証明するための有用な情報源となっています(「何も隠していない数字」)。[ 22 ]
1950年代初頭からTRNGの研究は活発に行われており、2017年までに数千の研究論文が発表され、約2000件の特許が付与されています。[ 16 ]
多様なノイズ源とデジタル化技術(「ハーベスティング」)を用いた、複数の異なるTRNG設計が、長年にわたり提案されてきました。しかし、実用的な考慮事項(サイズ、消費電力、コスト、性能、堅牢性)により、以下の特性が求められます。[ 23 ]
2014年にStipčevićとKoçはTRNGの実装に使用される物理現象を4つのグループに分類しました。[ 3 ]
ノイズベースのRNGは、一般的に同じ仕組みを辿ります。ノイズ発生器のノイズ源はコンパレータに入力されます。電圧が閾値を超えるとコンパレータの出力は1、そうでない場合は0になります。ランダムビット値はフリップフロップを用いてラッチされます。ノイズ源は様々であり、例えば以下のようなものがあります。[ 24 ]
RNG設計にノイズ源を使用することの欠点は以下の通りである。[ 25 ]
カオスベースノイズという概念は、時間経過に伴う挙動を観察するだけでは特性評価が難しい複雑なシステムを用いることに由来する。例えば、レーザーは(他の用途では望ましくない)カオス的に変動する出力を持つカオスモードに制御され、その出力はフォトダイオードを用いて検出され、コンパレータによってサンプリングされる。すべてのフォトニクス要素をオンチップに統合できるため、設計は非常に小型化できる。スティプチェヴィッチとコチはこの手法を「最も好ましくない」と特徴づけている。これは主に、カオス的な挙動は通常微分方程式によって制御され、新たなランダム性は導入されないため、カオスベースTRNGが生成する可能性のある出力文字列のサブセットが限定される可能性があるという点に起因する。[ 27 ]
フリーランニングオシレータ(FRO)に基づくTRNGは、通常、1つまたは複数のリングオシレータ(RO)を利用し、その出力は別のクロックを用いてサンプリングされます。ROを構成するインバータは非常に大きなゲインを持つ増幅器と考えることができるため、FROの出力は位相領域と周波数領域において非常に高速な振動を示します。FROベースのTRNGは、ランダム性証明やチップ間のばらつきといった問題があるにもかかわらず、標準的なデジタルロジックを使用しているため、非常に人気があります。[ 27 ]
量子乱数生成技術は確立されており、2017年までに8つの商用量子乱数生成器(QRNG)製品が提供されました。[ 28 ]
Herrero-Collantes と Garcia-Escartin は、次の確率過程を「量子」として挙げています。
量子乱数発生器のコストを削減し、堅牢性を高めるために、[ 39 ]オンラインサービスが実装されています。[ 28 ]
量子乱数生成器の複数の設計[ 40 ]は本質的に検証不可能であり、したがって敵対者によって操作される可能性がある。マンナラスらは、これらの設計が完全に制御され、信頼できる環境でのみ動作できるという意味で「信頼できる」と呼んでいる[ 41 ]。
TRNGの故障は非常に複雑で微妙な場合があり、結果(出力ビットストリーム)だけでなく、エントロピー源の予測不可能性についても検証する必要があります。[ 10 ]ハードウェア乱数生成器は、自然原因や意図的な攻撃によるエントロピー源の劣化を防ぐために、常に適切に動作しているか監視する必要があります。FIPS Pub 140-2およびNIST Special Publication 800-90B [ 42 ]では 、これに使用できるテストが定義されています。
認証機関が義務付けているリアルタイムテストの最小セットはそれほど大きくなく、例えばNISTのSP 800-90Bでは2つの連続ヘルステストのみを要求している。[ 43 ]
暗号システムの他のコンポーネントと同様に、暗号乱数生成器は特定の攻撃に耐えられるように設計する必要があります。ハードウェアエントロピーソースがなければ、これらの攻撃に対する防御は困難です。
HRNGにおける物理プロセスは新たな攻撃対象領域を生み出す。例えば、自由走行発振器ベースのTRNGは、周波数注入を用いて攻撃される可能性がある。[ 44 ]
記号列のエントロピーを推定する数学的手法はいくつか存在します。しかし、その推定値を完全に信頼できるほど信頼できるものはありません。常に、検証が非常に困難な仮定が存在します。これらの手法は、例えばシードプールに十分なエントロピーがあるかどうかを判断するのに役立ちますが、一般に、真の乱数源と疑似乱数生成器を区別することはできません。この問題は、ハードウェアエントロピー源を慎重に使用することで回避できます。
{{cite conference}}: CS1 maint: bot: 元のURLステータス不明(リンク)