由 Octeon RNG 提供 /dev/random

由 Octeon RNG 提供 /dev/random

该设备是 Cavium 的 Octeon,包含 RNG 硬件单元。操作系统显示当前熵池大小为 4096 字节,但entropy_avail非常低。仅存在设备加密模块ansi_cprng.ko,不.ko存在其他相关的 RNG。此外,根据lsmod,没有加载 RNG 相关模块,即使与 RNG 相关的内核配置设置如下;

CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y

如何/dev/random从 Octeon RNG 喂食并增加entropy_avail

答案1

使能够CONFIG_HW_RANDOM_OCTEON

这将构建octeon-rng自动向内核熵池提供数据的驱动程序(通过调用devm_hwrng_register)。

答案2

当两个 rng 模块 octeon-rng 和 rng-core 都加载时/dev/hwrng设备已创建,/sys/class/misc/hw_random/rng_current& /sys/class/misc/hw_random/可用将显示名称 octeon。然而另一个应用程序rng-工具是必须的。

命令;

rngd -o /dev/random -r /dev/hwrng

将从 RNG 提供内核熵并将 entropy_avail 提高到大约 3000 字节。

还可以通过命令进行FIPS140-2随机性测试的rngtest;

rngtest -c 1000 < /dev/random

话虽如此,但如果有人能说出来的话;

  • 为什么在 octeon 上带有详细选项的 rngd 命令显示 RNG 是英特尔硬件RNG

  • 其次在 rngd 命令中,如果仅/dev/随机提到它是否也有效/dev/urandom

相关内容