
コンピューティングにおいて、ハードウェア乱数発生器(HRNG)、真乱数発生器(TRNG)、非決定論的乱数ビット発生器(NRBG)[ 1 ] 、または物理乱数発生器[ 2 ] [ 3 ]は、決定論的アルゴリズムを利用する擬似乱数発生器( PRNG) [ 2 ]や、エントロピー生成専用のハードウェアを含まない非物理的非決定論的乱数ビット発生器[ 1 ]とは異なり、エントロピーを生成できる物理プロセスから乱数を生成する装置である。
多くの自然現象は、熱雑音やショット雑音、電子回路のジッターやメタステーブル性、ブラウン運動、大気雑音など、低レベルで統計的にランダムな「ノイズ」信号を生成します。[ 4 ]研究者たちは、ビームスプリッターを含む光電効果、その他の量子現象、[ 5 ] [ 6 ] [ 7 ][8] [ 9 ]さらには核崩壊も利用しました(実際的な考慮事項から、後者は、大気雑音と同様に、かなり限定されたアプリケーションやオンライン配信サービスを除いては実現不可能です)。[ 4 ]「古典的」(非量子的)現象は真にランダムではありませんが、予測不可能な物理システムは通常、ランダム性の発生源として受け入れられるため、「真の」と「物理的な」という修飾語は互換的に使用されます。[ 10 ]
ハードウェア乱数発生器は、ほぼ完璧な乱数(「完全なエントロピー」)を出力することが期待されます。[ 1 ]物理プロセスは通常この特性を持たず、実用的なTRNGは通常いくつかのブロックを含みます。[ 11 ]
ハードウェア乱数発生器は、一般的に1秒あたりに生成できる乱数ビット数が限られています。利用可能な出力データレートを上げるために、より高速な擬似乱数発生器の「シード」を生成するためによく使用されます。また、擬似乱数発生器は、ノイズ源の「匿名化」(ノイズ源の識別特性をホワイトニングする)やエントロピー抽出にも役立ちます。適切な擬似乱数発生器アルゴリズム(暗号的に安全な擬似乱数発生器、CSPRNG)を選択すれば、連邦情報処理標準および共通基準の要件を満たすことができます。[ 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 ]
On 29 April 1947, the RAND Corporation began generating random digits with an "electronic roulette wheel", consisting of a random frequency pulse source of about 100,000 pulses per second gated once per second with a constant frequency pulse and fed into a five-bit binary counter. Douglas Aircraft built the equipment, implementing Cecil Hasting's suggestion (RAND P-113)[19] for a noise source (most likely the well known behavior of the 6D4 miniature gas thyratron tube, when placed in a magnetic field[20]). Twenty of the 32 possible counter values were mapped onto the 10 decimal digits and the other 12 counter values were discarded.[21] The results of a long run from the RAND machine, filtered and tested, were converted into a table, which originally existed only as a deck of punched cards, but was later published in 1955 as a book, 50 rows of 50 digits on each page[16] (A Million Random Digits with 100,000 Normal Deviates). The RAND table was a significant breakthrough in delivering random numbers because such a large and carefully prepared table had never before been available. It has been a useful source for simulations, modeling, and for deriving the arbitrary constants in cryptographic algorithms to demonstrate that the constants had not been selected maliciously ("nothing up my sleeve numbers").[22]
Since the early 1950s, research into TRNGs has been highly active, with thousands of research works published and about 2000 patents granted by 2017.[16]
Multiple different TRNG designs were proposed over time with a large variety of noise sources and digitization techniques ("harvesting"). However, practical considerations (size, power, cost, performance, robustness) dictate the following desirable traits:[23]
Stipčević & Koç in 2014 classified the physical phenomena used to implement TRNG into four groups:[3]
ノイズベースの乱数発生器は一般的に同じ概要に従います。ノイズ発生器のソースがコンパレータに入力されます。電圧がしきい値を超えると、コンパレータの出力は 1 になり、そうでない場合は 0 になります。ランダムなビット値はフリップフロップを使用してラッチされます。ノイズソースは様々で、次のものが含まれます。[ 24 ]
RNG設計にノイズ源を使用する際の欠点は次のとおりです。[ 25 ]
カオスベースのノイズというアイデアは、時間経過に伴う挙動を観察することで特徴づけるのが難しい複雑なシステムの使用に由来する。例えば、レーザーは(他の用途では望ましくない)カオスモードにすることができ、その電力はフォトダイオードで検出され、コンパレータでサンプリングされる。すべてのフォトニクス要素をチップ上に集積できるため、設計は非常に小型化できる。Stipčević & Koç はこの技術を「最も好ましくない」と特徴づけているが、これは主にカオス的な挙動が通常微分方程式によって制御され、新たなランダム性が導入されないため、カオスベースの TRNG が可能な出力文字列の限られた部分集合を生成する可能性があるという事実によるものである。[ 27 ]
フリーランニング発振器(FRO)に基づくTRNGは、通常、1つ以上のリング発振器(RO)を使用し、その出力は別のクロックを使用してサンプリングされます。ROを構成するインバータは非常に大きなゲインを持つ増幅器と考えることができるため、FRO出力は位相領域と周波数領域で非常に高速な発振を示します。FROベースのTRNGは、ランダム性の証明やチップ間のばらつきの問題にもかかわらず、標準的なデジタルロジックを使用しているため非常に人気があります。[ 27 ]
量子乱数生成技術は十分に確立されており、2017年以前に8つの商用量子乱数発生器(QRNG)製品が提供されていた。[ 28 ]
ヘレロ=コランテスとガルシア=エスカティンは、以下の確率過程を「量子」として挙げている。
量子乱数発生器のコストを削減し、堅牢性を高めるために、[ 39 ]オンラインサービスが導入されている。[ 28 ]
複数の量子乱数発生器設計[ 40 ]は本質的にテスト不可能であり、攻撃者によって操作される可能性がある。Mannalathらは、これらの設計は完全に制御された信頼できる環境でのみ動作できるという意味で「信頼できる」と呼んでいる[ 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 の状態が不明です (リンク)