开发者
熵源服务的性能分化与选型

熵源服务的性能分化与选型

软件迁移机密计算

发表于 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






         100%



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



本页内容