熵源服务的性能分化与选型
发表于 2026/04/27
0
作者|丁浩源
1 实验室验证
1.1 背景
不同熵源服务在随机数质量、耗时性能、延迟及安全性上存在显著的性能分化,其根源在于物理噪声、硬件指令、分布式协议或软件算法等底层机制的选择差异——这种分化直接影响密码系统的安全强度与运行效率,因此选型需在“高置信度的低带宽源”与“高吞吐的工程化随机源”之间进行权衡,并依据具体场景对合规认证、响应速度及成本约束做出合理取舍。
本次实验室分别采用haveged和rngd的进行测试,考虑评估不同熵源服务 (rngd/haveged) 对 SecureRandom.getInstanceStrong() 生成随机数的性能影响。
1.2 测试方法
通过以下关键代码模拟业务生成100万个安全随机数场景。
SecureRandom secureRandom = SecureRandom.getInstanceStrong();
for (int i = 0; i < 1000000; i++) {
secureRandom.nextInt(); // 若熵池不足,此处会阻塞,会增加耗时
}分别使用rngd/haveged服务来生成系统的熵,对比在两种服务下生成随机数的总耗时以及熵服务进程的CPU占用情况。
1.3 测试数据


数据汇总如下:
生成熵的服务 | 性能比例 | CPU占用 |
|---|---|---|
rngd |
| 441.1% |
haveged | 122.8% | 36.8% |
在arm架构场景下,使用haveged来生成熵,消耗的cpu远小于rngd,并且生成随机数的性能更好。
2 替换方法
2.1 安装haveged服务
yum install haveged -y
2.2 启动haveged服务
systemctl start haveged
systemctl enable haveged
2.3 停掉rngd服务
systemctl stop rngd
systemctl disable rngd


