概述
hw_random 框架是一款利用 CPU 或主板上特殊硬件功能——随机数生成器 (RNG) 的软件。该软件由两部分组成:一个提供 /dev/hwrng
字符设备及其 sysfs 支持的核心,以及一个插入该核心的硬件专用驱动程序。
架构
HW-RNG 驱动程序遵循 Linux RNG 框架,可以向内核熵池生成全熵的 32 位随机数据,应用程序也可以从内核获取随机数据。HW-RNG 的架构如下图所示。
实现
HW-RNG 驱动程序位于以下文件:
驱动程序位置 |
简介 |
---|---|
|
驱动程序配置文件 |
|
驱动程序编译文件 |
|
驱动程序源文件 |
配置
编译配置
选择
.
APIs
用户空间接口(APIs)
Linux RNG 框架为用户空间提供 /dev/hwrng
从内核获取随机数.
测试
下载安装 rng-tools
, 这个工具使用 /dev/hwrng
来填充内核熵池,该熵池在内部使用并由 /dev/urandom
和 /dev/random
特殊文件导出.
rngd
作为守护进程,从 /dev/hwrng
中读取随机数,喂到内核熵池中.
rngd --rng-device=/dev/hwrng
使用 rngtest
可以去检查从 /dev/hwrng
获取的数据进行检查:
cat /dev/hwrng | rngtest -c 1000