Linux 内核使用了哪些熵源?

Jen*_*rat 15 linux random linux-kernel

man 4 random 对 Linux 内核熵源的描述非常模糊:

随机数生成器将来自设备驱动程序和其他来源的环境噪声收集到一个熵池中。

Linux 随机数生成器中的熵传输论文也没有更具体。它列出了:

  • add_disk_randomness(),
  • add_input_randomness(), 和
  • add_interrupt_randomness().

这些功能来自random.c,其中包括以下评论:

来自环境的随机性来源包括键盘间计时、某些中断的中断间计时以及 (a) 非确定性和 (b) 外部观察者难以测量的其他事件。

再往下,有一个函数add_hwgenerator_randomness(...)表示支持硬件随机数生成器。

所有这些信息都相当模糊(或者,就源代码而言,需要深入了解 Linux 内核才能理解)。实际使用的熵源是什么,Linux 内核是否支持任何开箱即用的硬件随机数生成器?

小智 5

如今,大多数商品 PC 硬件都有一个随机数生成器。威盛半导体多年来一直将它们放在他们的处理器中。Linux 内核为此提供了 via-rng 驱动程序。我计算drivers/char/hw_random/了最新源代码树目录中的34 个源模块,包括 Intel 和 AMD 硬件的驱动程序,以及具有 TPM 设备的系统的驱动程序。您可以运行 rng 守护进程 (rngd) 将随机数据推送到内核熵池。

  • 并查看特定 pc 上可用的内容,运行 `cat /sys/devices/virtual/misc/hw_random/rng_available`。 (2认同)