我正在使用 Ubuntu 创建一个在移动节点上运行的应用程序,它不会为 /dev/random 生成足够的熵字节,并且并不总是在 Internet 上保持连接以使用典型的套接字熵收集解决方案,例如 EGD。
有没有什么好的工具可以在我的情况下收集所需的熵?
澄清一下,尝试通过 /dev/random获取 1024 字节(这似乎是OpenSSL 书籍的推荐值)花了将近两个小时......
我正在使用 Ubuntu 创建一个在移动节点上运行的应用程序,它不会为 /dev/random 生成足够的熵字节,并且并不总是在 Internet 上保持连接以使用典型的套接字熵收集解决方案,例如 EGD。
有没有什么好的工具可以在我的情况下收集所需的熵?
澄清一下,尝试通过 /dev/random获取 1024 字节(这似乎是OpenSSL 书籍的推荐值)花了将近两个小时......
正确的方法是使用/dev/urandom
,而不是/dev/random
。很少有密码算法在/dev/random
理论上比它更好/dev/urandom
(这将是信息论安全算法,而不是像 AES 或 RSA 这样的普通算法)。/dev/urandom
产生加密质量的随机性,前提是它可以在某些时候获得至少 20 个字节左右的“真正随机性”,这是操作系统在安装过程中处理的。/dev/urandom
很高兴地将初始种子扩展到兆字节的伪 alea 中,这在计算上与真正的随机性(这就是你所需要的)没有区别,并且它永远不会阻塞。