非物理的な真の乱数生成器

非物理的な真性乱数生成器( NPTRNG ) [ 1 ] は、物理な非決定性乱数ビット生成器とも呼ばれ、専用のハードウェアエントロピーソースを使用せずに予測不可能な乱数を生成できる。[ 2 ] NPTRNG は、アプリケーションプログラミングインターフェイス関数 の出力、ランダムアクセスメモリの残留情報、システム時間、または人間の入力 (マウスの動きやキーストロークなど) [ 3 ] [ 1 ]などのシステムデータからエントロピーを取得する非物理的なノイズソースを使用し、そのデータに真にランダムな要素、または少なくとも他者には知られていない、または制御できない要素が含まれていることを期待している。典型的な NPTRNG は、コンピュータ上で実行されるソフトウェアとして実装される。 [ 1 ] NPTRNG は、一般的な CPU で動作することが期待される 一般的なオペレーティングシステムのカーネルによく見られる[ 4 ]

信頼性

NPTRNGは、非物理的なノイズ源が動作するために特定の条件を必要とするため、物理的な乱数生成器よりも本質的に信頼性が低く、エントロピーの推定には外部環境と攻撃者のスキルに関する大きな仮定が必要になります。[ 5 ]

典型的な攻撃には以下のものがある: [ 6 ]

  • システム アクセス権を持つ攻撃者に対する脆弱性 (ソフトウェア ベースのTRNGと同様)。
  • 攻撃者が予測可能なイベントソース(マウスシミュレータなど)を接続する。
  • システムの動作に関する想定が当てはまらなくなった環境(たとえば、仮想マシン)で動作すること。

2007年には、より洗練された攻撃により、いくつかの実装上の欠陥を悪用して、 Windows 2000のNPTRNGの前方秘匿性が侵害されました。[ 7 ]

実装

NPTRNGの設計はTRNGの伝統的なものです。ノイズ源の後に後処理乱数抽出器が続き、オプションで真乱数ビットをシードとする疑似乱数生成器(PRNG)が続きます。例えばLinuxでは、/dev/randomは真乱数シードを必要とします(そのため、起動時など、より多くのエントロピーを収集する必要があるときにブロックする可能性があります)。一方、/dev/urandomは常により多くのビットを提供し、非ブロッキングです。[ 8 ] [ 9 ]

2025年現在、Linux NPTRNG実装は以下からエントロピーを抽出している: [ 10 ] [ 11 ]

  • 割り込み、CPU サイクル カウンタ、カーネル タイマー値、IRQ 番号、および割り込みを受けた命令の命令ポインタをエントロピーの「高速プール」に混合します。
  • ランダム時間 I/O (キーボード、マウス、ディスクからのイベント) では、カーネル タイマー値、サイクル カウンター、デバイス固有の情報が「入力プール」に混合されます。

当時、仮想化環境でのテストでは、初期の(非)ランダム出力が壊滅的に非ランダムな場合、ブート時の「エントロピーホール」(リセット脆弱性)が存在することが示されていましたが、一般的にシステムは攻撃者を阻止するのに十分な不確実性を提供していました。[ 12 ]

アラムらは、エントロピーの源としてハードウェアパフォーマンスカウンタを使用することを提案した。 [ 13 ] [ 14 ]

参考文献

出典

「 https://en.wikipedia.org/w/index.php?title=非物理的真乱数生成器&oldid =1328568885」より取得