man 4 random
Linuxカーネルのエントロピーソースについて非常にあいまいな説明があります:
乱数ジェネレーターは、デバイスドライバーやその他のソースからの環境ノイズをエントロピープールに収集します。
Linux Random Number Generatorでの紙のエントロピー転送も、それほど具体的ではありません。リスト:
add_disk_randomness()
、add_input_randomness()
、およびadd_interrupt_randomness()
。
これらの関数はrandom.c
からのものです 、次のコメントが含まれています:
環境からのランダム性の原因には、キーボード間
タイミング、一部の割り込みからの割り込み間タイミング、および(a)非決定的で(b)
イベントが含まれます。>測定する外部オブザーバー。
さらに下には、関数add_hwgenerator_randomness(...)
があります。 ハードウェア乱数ジェネレーターのサポートを示します。
これらの情報はすべてかなりあいまいです(または、ソースコードの場合、理解するにはLinuxカーネルの深い知識が必要です)。 実際に使用されているエントロピーソースは何ですか。Linuxカーネルは、すぐに使用できるハードウェア乱数ジェネレーターをサポートしていますか?
承認された回答:
最近のほとんどのコモディティPCハードウェアには、乱数ジェネレーターがあります。 VIAセミコンダクターは、長年にわたってそれらをプロセッサーに搭載してきました。 Linuxカーネルには、そのためのvia-rngドライバーがあります。 drivers/char/hw_random/
で34のソースモジュールを数えます IntelおよびAMDハードウェア、およびTPMデバイスを備えたシステムのドライバーを含む最新のソースツリーのディレクトリ。 rngデーモン(rngd)を実行して、ランダムデータをカーネルエントロピープールにプッシュできます。