man 4 random
Linuxカーネルエントロピーのソースの説明は非常にあいまいです。
乱数ジェネレータは、デバイスドライバや他のソースから発生する環境ノイズをエントロピープールとして収集します。
紙Linux乱数ジェネレータのエントロピー転送具体的ではありません。これには以下がリストされます。
add_disk_randomness()
、add_input_randomness()
とadd_interrupt_randomness()
。
これらの機能は以下に由来します。random.c
、これには次の説明が含まれます。
環境におけるランダム性の原因には、キーボード間のタイミング、特定の割り込みの割り込み間のタイミング、および(a)非決定的で(b)外部の観察者が測定するのが困難な他のイベントが含まれます。
add_hwgenerator_randomness(...)
以下に、ハードウェア乱数ジェネレータのサポートを示す機能があります。
これらすべての情報は多少曖昧です(またはソースコードの場合は理解するためにLinuxカーネルの詳細な分析が必要です)。使用されるエントロピーの実際のソースは何ですか? Linuxカーネルは基本的にハードウェア乱数ジェネレータをサポートしていますか?
答え1
今日、ほとんどの商用PCハードウェアには乱数ジェネレータがあります。 VIA Semiconductorは長年にわたってこれをプロセッサに適用してきました。 Linuxカーネルはこれにvia-rngドライバを提供します。 34のソースモジュールを数えましたdrivers/char/hw_random/
IntelおよびAMDハードウェア用のドライバとTPMデバイスを搭載したシステムを含む最新のソースツリーのディレクトリ。 rngデーモン(rngd)を実行して、任意のデータをカーネルエントロピープールにプッシュできます。
答え2
はい、デフォルトではハードウェアエントロピージェネレータをサポートしています。これは、毎秒多数の同時接続を開始する高負荷SSLサーバー(Gmail、Facebook、Microsoftなど)に必要です。ホームサーバーや小規模組織サーバーには実際には必要ありません。ハードウェアエントロピージェネレータは、一般的にカラフルでないPCIインターフェイスを使用しているため、簡単にサポートできます。クローズドソースドライバを必要とする排他的なハードウェアエントロピージェネレータがあるかどうかはわかりません。グラフィックカードとは異なり、それは難しくなく収益性の高い産業でもないからです。
http://en.wikipedia.org/wiki/Hardware_random_number_generator