暗号装置
USB接続可能なハードウェア乱数ジェネレータ
コンピューティング において 、 ハードウェア乱数発生器 ( HRNG )、 真性乱数発生器 ( TRNG )、 非決定性乱数ビット発生器 ( NRBG ) または 物理乱数発生器 エントロピー を生成できる 物理的なプロセス から 乱数を生成する デバイスであり 、 決定論的アルゴリズムを利用する 疑似乱数発生器 ( PRNG ) や、 エントロピー生成専用のハードウェアを含まない 非物理的な非決定性乱数ビット発生器とは異なります。
多くの自然現象は、熱 雑音や ショット 雑音、 電子回路の ジッタ や 準安定状態、 ブラウン運動 、 大気雑音 など、低レベルの 統計的にランダムな 「 ノイズ 」信号を生成します 。 研究者たちは、 ビームスプリッター を用いた 光電効果 、その他の 量子 現象、 [ 6] [7] [8] 、さらには 原子核崩壊 (実用上の問題から、後者は大気雑音と同様に、かなり限定された用途やオンライン配信サービス以外では実現不可能です)も利用しました。 「古典的」(非量子的)現象は真にランダムではありませんが、予測不可能な物理システムは通常、ランダム性の源として受け入れられるため、「真の」と「物理的な」という修飾語は同じ意味で使用されます。
ハードウェア乱数生成器は、ほぼ完全な乱数(「 完全エントロピー 」)を出力することが期待されます。 物理的なプロセスは通常この特性を持ちません。実用的なTRNGは通常、いくつかのブロックで構成されています。
エントロピーを生成する物理プロセスを実行するノイズ源。通常、このプロセスはアナログである ため 、 アナログ 源 の出力を2進表現に変換するには デジタイザが使用されます。
ランダム ビットの品質を改善する コンディショナー ( ランダム性抽出器 ) 。
ヘルステスト 。TRNG は主に、乱数のエントロピーが低い場合に完全に破られる暗号化アルゴリズムで使用されるため、テスト機能が組み込まれているのが一般的です。
ハードウェア乱数生成器は、一般的に1秒あたりに生成される乱数ビット数が限られています。利用可能な出力データレートを向上させるため、より高速なPRNG(擬似乱数生成器)の「 シード 」を生成するためによく使用されます。PRNGは、ノイズ源の「匿名化」(ノイズ源の識別特性を白色化すること)と エントロピー抽出にも役立ちます。適切なPRNGアルゴリズム( 暗号学的に安全な擬似乱数生成器 、CSPRNG)を選択すれば、その組み合わせは 連邦情報処理標準 (FIS)および コモンクライテリア 標準の要件を満たすことができます 。
用途
ハードウェア乱数生成器は、乱数性を必要とするあらゆるアプリケーションで使用できます。しかし、多くの科学アプリケーションでは、TRNGの追加コストと複雑さ(疑似乱数生成器と比較した場合)は、意味のあるメリットをもたらしません。TRNGには、データサイエンスや統計アプリケーションにおいてさらなる欠点があります。例えば、数値列を保存しない限り再実行できないこと、アナログの物理的実体に依存しているため、発生源の障害が分かりにくくなることがあります。そのため、TRNGは主に、その予測不可能性や数値列の再実行不可能性が実装の成功に不可欠となるアプリケーション、例えば暗号技術やギャンブルマシンで使用されます。
暗号化
ハードウェア乱数生成器の主な用途はデータ暗号化 の分野であり 、例えばデータの暗号化と署名に必要なランダムな 暗号鍵 と ノンスの 生成に使用されます。ランダム性に加えて、暗号アプリケーションでは少なくとも2つの追加要件が課せられます。
前方秘匿性 により、攻撃者がデバイスの過去の出力や内部状態に関する情報から将来のデータを予測することができなくなります。
後方機密性は「反対方向」を保護します。つまり、将来の出力と内部状態に関する知識によって、前のデータが漏洩することはありません。
これらの要件を満たす典型的な方法は、TRNGを使用して 暗号的に安全な疑似乱数生成器 をシードすることです。
歴史
物理的な装置は、数千年にわたり、主に賭博 のために乱数を生成するために使用されてきた 。特に サイコロは 5000年以上前から知られており(現在のイラクとイランで発見されている)、コインを投げてランダムなビットを生成する方法は、少なくとも 古代ローマ 時代にまで遡る。
物理的乱数生成器が科学的目的に初めて使用されたのは、 フランシス・ゴルトン (1890年)によるものです。 [17]彼は、一般的なギャンブル用のサイコロを用いて 確率分布を サンプリングする方法を考案しました 。ゴルトンは、一番上の数字に加えて、最も近いサイコロの面も参照することで、6×4 = 24通りの結果(約4.6ビットのランダム性)を生み出しました。
ケンドールとバビントン=スミス(1938) [18] は、周期的な光バーストで照射される高速回転10セクターディスクを用いた。サンプリングは人間が光線の下の数字をパッドに書き込むことで行われた。この装置は10万桁の乱数表を生成するために利用された(当時、このような表は今日のPRNGのような統計実験に使用されていた)。
1947年4月29日、 ランド社は 「電子ルーレットホイール」を用いて乱数生成を開始した。これは、毎秒約10万パルスの乱数周波数パルス源と、毎秒1回の一定周波数パルスのゲート制御によって5ビットのバイナリカウンタに入力される構成であった。 ダグラス・エアクラフト社 は、セシル・ヘイスティングの提案(RAND P-113) [19] をノイズ源(おそらく 磁場中に置かれた6D4小型ガス サイラトロン管のよく知られた挙動 [20] )として実装し、この装置を製造した。32通りのカウンタ値のうち20通りが10進数にマッピングされ、残りの12通りのカウンタ値は破棄された。 [21] RANDマシンによる長時間実行の結果は、フィルタリングとテストを経て表に変換されました。当初は パンチカード の束としてのみ存在していましたが、後に1955年に書籍として出版され、50行50桁の数字が各ページに記されました ( 『10万の正規偏差を持つ100万のランダム数字 』)。RAND表は乱数生成における画期的な進歩でした。これほど大規模で綿密に作成された表はこれまで存在しなかったからです。この表は、シミュレーションやモデリング、暗号アルゴリズムにおける任意の定数を導出して、その定数が悪意を持って選択されていないことを証明するための有用な情報源となっています(「 秘密の数字 」)。 [22]
1950年代初頭以来、TRNGの研究は活発に行われており、2017年までに数千の研究論文が発表され、約2000件の特許が付与されています。
ランダムな性質を持つ物理現象
多様なノイズ源とデジタル化技術(「ハーベスティング」)を用いた、複数の異なるTRNG設計が、長年にわたり提案されてきました。しかし、実用的な考慮事項(サイズ、消費電力、コスト、性能、堅牢性)により、以下の特性が求められます。
Stipčević & Koçは2014年にTRNGの実装に使用される物理現象を4つのグループに分類しました。
電気ノイズ;
自由走行発振器;
カオス;
量子効果。
電気ノイズベースのRNG
ノイズベースのRNGは、一般的に同じ仕組みで動作します。 ノイズ発生器のノイズ源は コンパレータ に入力されます 。電圧が閾値を超えるとコンパレータの出力は1、そうでない場合は0になります。ランダムビット値はフリップフロップを用いてラッチされます。ノイズ源は様々で、例えば以下のようなものがあります。
RNG設計にノイズ源を使用することの欠点は以下の通りである。
ノイズレベルは制御が難しく、環境の変化やデバイスごとに変化します。
保証されたエントロピー量を確保するために必要な較正プロセスには時間がかかります。
ノイズレベルは通常低いため、設計には電力消費の大きいアンプが必要になります。アンプの入力感度が高いため、攻撃者による操作が可能になります。
近くにある回路は多くの非ランダムノイズを生成するため、エントロピーが低下します。
複数の相互作用する物理プロセスが関与しているため、ランダム性の証明はほぼ不可能である。
カオスベースのRNG
カオスベースノイズという概念は、時間経過に伴う挙動を観察するだけでは特性評価が難しい複雑なシステムを用いることに由来する。例えば、レーザーは(他の用途では望ましくない)カオス的に変動する出力を持つカオスモードに制御され、その出力は フォトダイオード を用いて検出され、コンパレータによってサンプリングされる。この設計は、すべての フォトニクス 要素をオンチップに統合できるため、非常に小型化できる。スティプチェヴィッチとコチはこの手法を「最も問題のある」ものと特徴づけている。これは主に、カオス的な挙動は通常微分方程式によって制御され、新たなランダム性は導入されないため、カオスベースTRNGが生成する可能性のある出力文字列のサブセットが限定される可能性があるという点に起因する。
フリーランニングオシレータベースのRNG
フリーランニングオシレータ(FRO)をベースとするTRNGは、通常、1つ以上の リングオシレータ (RO)を利用し、その出力は別の クロック を用いてサンプリングされます。ROを構成する インバータは 非常に大きなゲインを持つ増幅器と考えることができるため、FROの出力は位相領域と周波数領域において非常に高速な振動を示します。FROベースのTRNGは、ランダム性証明やチップ間のばらつきといった問題があるにもかかわらず、標準的なデジタルロジックを使用しているため、非常に人気があります。
量子ベースのRNG
量子乱数生成技術は確立されており、2017年までに8つの商用 量子乱数生成器 ( QRNG )製品が提供されました。
Herrero-Collantes と Garcia-Escartin は、次の確率過程を「量子」として挙げています。
量子乱数発生器のコストを削減し、堅牢性を高めるために、 [39] オンラインサービスが実装されています。
複数の量子乱数生成器の設計 は本質的に検証不可能であり、したがって敵対者によって操作される可能性がある。マンナラスらは、これらの設計が完全に制御され、信頼できる環境でのみ動作できるという意味で「信頼できる」と呼んでいる
TRNGの故障は非常に複雑かつ微妙な場合があり、結果(出力ビットストリーム)だけでなく、エントロピー源の予測不可能性についても検証する必要があります。 ハードウェア乱数生成器は、自然発生的原因や意図的な攻撃によるエントロピー源の劣化を防ぐため、常に適切な動作を監視される必要があります。FIPS Pub 140-2 および NIST Special Publication 800-90B では 、このために使用できるテストが定義されています。
認証機関が義務付けているリアルタイムテストの最小セットはそれほど大きくなく、例えばNISTのSP 800-90Bでは2つの 連続ヘルステスト のみを要求している。
繰り返しカウント テストは、 同一の数字のシーケンスが長すぎないことを確認します。一度に 1 ビットをデジタル化する TRNG の (一般的な) ケースでは、これは 0 または 1 の長い文字列がないことを意味します。
適応型比例検定は、 データストリーム内でランダムな数字が過度に頻繁に出現しないこと(低 バイアス )を検証します。ビット指向のエントロピー源の場合、これはビットストリーム内の1と0の数がほぼ同じであることを意味します。
攻撃
暗号システムの他のコンポーネントと同様に、暗号用乱数生成器は 特定の攻撃 に耐えられるように設計する必要があります。ハードウェアエントロピーソースがなければ、これらの攻撃に対する防御は困難です。 [ 要出典 ]
HRNGにおける物理プロセスは新たな攻撃対象領域を生み出す。例えば、自由走行発振器ベースのTRNGは、周波数注入を用いて攻撃される可能性がある。 [44]
エントロピーの推定
記号列のエントロピーを 推定する数学的手法はいくつか存在します 。しかし、その推定値を完全に信頼できるほど信頼できるものはありません。常に、検証が非常に困難な仮定が存在します。これらの手法は、例えばシードプールに十分なエントロピーがあるかどうかを判断するのに役立ちますが、一般に、真の乱数源と疑似乱数生成器を区別することはできません。この問題は、ハードウェアエントロピー源を慎重に使用することで回避できます。
参照
参考文献
^ ジャカク、マーシン M.ヨジヴィアク、ピョートル。ニエムチュク、ヤクブ。ヤカク、ヤヌシュ E. (2021)。 「乱数の量子生成器」。 科学的報告書 。 11 (1): 16108。 ビブコード :2021NatSR..1116108J。 土井 : 10.1038/s41598-021-95388-7 。 PMC 8352985 。 PMID 34373502。
^ 馬、雄峰;ユアン、シャオ。曹、朱。チー、ビン。張、鎮(2016)。 「量子乱数生成」。 npj 量子情報 。 2 (1): 16021.arXiv : 1510.08957 。 ビブコード :2016npjQI...216021M。 土井 : 10.1038/npjqi.2016.21 。
^ Kollmitzer, Christian; Petscharnig, Stefan; Suda, Martin; Mehic, Miralem (2020). 「量子乱数生成」. 量子乱数生成:理論と実践 . Springer International Publishing . pp. 11– 34. doi :10.1007/978-3-319-72596-3_2. ISBN 978-3-319-72596-3 。
^ Galton, Francis (1890). "Dice for statistical experiments" (PDF) . Nature . 42 (1070): 13– 14. Bibcode :1890Natur..42...13G. doi : 10.1038/042013a0 . S2CID 4038609. 2016年3月4日時点のオリジナルよりアーカイブ (PDF) . 2014年 5月14日 閲覧 。
^ Kendall, MG, B. Babington-Smith. 1938. 「ランダム性とその他のランダムサンプリング数」. 王立統計学会誌 101:147–166.
^ Brown, George W. (1949年1月)、P-113、Papers、Rand Corporation、2007年6月5日時点のオリジナルよりアーカイブ、 2009年5月10日 閲覧。 。
^ コバイン、カリー(1947年)、「電気ノイズ発生器」、 IRE紀要 (1947年9月 ): 875–9
^ モノグラフレポート、ランドコーポレーション、2001年1月、2018年4月15日時点のオリジナルよりアーカイブ、 2009年1月29日 閲覧。 。
^ Schneier, Bruce (1995-11-01). 「その他のストリーム暗号と実数乱数発生器」. 応用暗号 (第2版). John Wiley & Sons, Inc. p. 423. ISBN 978-0-471-11709-4 。
^ Huang, Leilei; Zhou, Hongyi; Feng, Kai; Xie, Chongjin (2021-07-07). 「量子乱数クラウドプラットフォーム」. npj Quantum Information . 7 (1). Springer Science and Business Media LLC: 107. Bibcode :2021npjQI...7..107H. doi : 10.1038/s41534-021-00442-x . ISSN 2056-6387.
^ Markettos, A. Theodore; Moore, Simon W. (2009). 「リング発振器ベースの真性乱数生成器に対する周波数注入攻撃」. Lecture Notes in Computer Science (PDF) . ベルリン、ハイデルベルク: Springer Berlin Heidelberg. pp. 317– 331. doi :10.1007/978-3-642-04138-9_23. ISBN 978-3-642-04137-2 . ISSN 0302-9743.
出典
Turan, Meltem Sönmez; Barker, Elaine; Kelsey, John; McKay, Kerry A; Baish, Mary L; Boyle, Mike (2018). NIST SP800-90B: 乱数ビット生成に用いるエントロピー源に関する勧告(報告書). メリーランド州ゲイサーズバーグ: 米国国立標準技術研究所. doi : 10.6028/nist.sp.800-90b .
Templ, M. (2016). 『データサイエンスのためのシミュレーション』 R. Packt Publishing 著. ISBN 978-1-78588-587-7 . 2023年8月7日 閲覧 。
Saarinen, Markku-Juhani O.; Newell, G. Richard; Marshall, Ben (2020-11-09). 最新のTRNGの構築:RISC-V用エントロピーソースインターフェース (PDF) . ニューヨーク、ニューヨーク州、米国: ACM. doi :10.1145/3411504.3421212. 2021年3月16日時点のオリジナルよりアーカイブ。 2023年9月9日 閲覧 。 {{cite conference }}: CS1 maint: bot: 元のURLステータス不明( リンク )
Schindler, Werner (2009). 「暗号アプリケーションのための乱数生成器」. 暗号工学 . ボストン, マサチューセッツ州: Springer US. pp. 5– 23. doi :10.1007/978-0-387-71817-0_2. ISBN 978-0-387-71816-3 。
Sunar, Berk (2009). 「暗号のための真乱数生成器」. 暗号工学 . ボストン, マサチューセッツ州: Springer US. pp. 55– 73. doi :10.1007/978-0-387-71817-0_4. ISBN 978-0-387-71816-3 。
L'Ecuyer, Pierre (2017). 一様乱数生成の歴史 (PDF) . 2017 Winter Simulation Conference (WSC). ラスベガス, ネバダ州, 米国: IEEE. doi :10.1109/wsc.2017.8247790. ISBN 978-1-5386-3428-8 . ISSN 1558-4305.
Stipčević, Mario; Koç, Çetin Kaya (2014). 「真乱数生成器」. 数学と計算科学における未解決問題 (PDF) . シュプリンガー・インターナショナル・パブリッシング. pp. 275– 315. doi :10.1007/978-3-319-10683-0_12. ISBN 978-3-319-10682-3 。
Herrero-Collantes, Miguel; Garcia-Escartin, Juan Carlos (2017-02-22). 「量子乱数発生器」. Reviews of Modern Physics . 89 (1) 015004. American Physical Society (APS). arXiv : 1604.03304 . Bibcode :2017RvMP...89a5004H. doi :10.1103/revmodphys.89.015004. ISSN 0034-6861.
量子乱数生成:理論と実践 . 量子科学技術. Springer Cham . 2020. doi :10.1007/978-3-319-72596-3. ISBN 978-3-319-72596-3 。
Mannalath, Vaisakh; Mishra, Sandeep; Pathak, Anirban (2023). 「量子乱数生成器の包括的レビュー:概念、分類、そして乱数の起源」. 量子情報処理 . 22 (12): 439. arXiv : 2203.00261 . Bibcode :2023QuIP...22..439M. doi : 10.1007/s11128-023-04175-y .
一般的な参考文献
Brown, George W (1949年6月)、「Rand's Million Digitsの歴史」、 RAND Corporationの 論文、2007年6月5日時点のオリジナルよりアーカイブ、 2009年5月10日 取得
Brown, Bernice (1948年10月)、Some Tests of the Randomness of a Million Digits、 RAND Corporationの 論文、2007年6月5日時点のオリジナルよりアーカイブ 、 2009年5月10日取得
「真空管タイプ6D4」、 電子管データハンドブック 、シルバニア、1957年
「100,000の正規偏差を持つ100万のランダム数字」、 RAND Corporation 、2001年1月、2002年12月16日時点のオリジナルからアーカイブ、 2002年12月22日 取得 。
Galton, Francis (1890)、「統計実験のためのダイス」、 Nature 、 42 (1070): 13– 4、 Bibcode :1890Natur..42...13G、 doi : 10.1038/042013a0 、2004年4月4日にオリジナルからアーカイブ、 2004 年3月28日取得
ランダム性と自己テスト機能を備えた真の乱数生成器 (PDF) 、日本: LE Tech RNG、 2018年3月1日に オリジナル (PDF)からアーカイブ、 2015年4月20日 取得
D. Eastlake, 3rd; J. Schiller; S. Crocker (2005年6月). セキュリティのためのランダム性要件. doi : 10.17487/RFC4086 . BCP 106. RFC 4086. 現在のベストプラクティス 106。RFC 1750 を廃止します。
外部リンク
Intel 乱数ジェネレータ (PDF) 、 Intel 、1999年4月22日 。
ProtegoST SG100、ProtegoST、「ハードウェア乱数ジェネレーター」「ツェナーダイオードからの量子物理学の乱数ソースに基づく」。