Linuxカーネルはどのエントロピーソースを使用しますか?

Linuxカーネルはどのエントロピーソースを使用しますか?

man 4 randomLinuxカーネルエントロピーのソースの説明は非常にあいまいです。

乱数ジェネレータは、デバイスドライバや他のソースから発生する環境ノイズをエントロピープールとして収集します。

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)を実行して、任意のデータをカーネルエントロピープールにプッシュできます。

おすすめ記事