什么是熵饥饿

Pen*_*ang 2 operating-system linux-kernel

我在读书时迷路了

"了解Linux在熵饥饿期间的行为(以及能够找到原因)使我们能够有效地使用我们的服务器硬件."

博客中.然后我在linux的上下文中解释了" entropy " 的含义.但是,仍然不清楚"熵饥饿"是什么以及上面引用的句子的含义.

Eri*_*hil 10

某些应用程序,尤其是加密技术,需要随机数据.在密码学中,非常重要的是数据对于任何攻击者来说都是真正随机的,或者至少是不可预测的(甚至是部分的).

为了提供这些数据,系统保留一系列随机数据,称为熵,它从系统上的各种随机源收集:事件的精确计时可能有点随机(用户按下的按键,来自外部设备的中断),麦克风上的噪声,或者,在某些处理器上,用于生成随机值的专用硬件.传入的有点随机数据混合在一起以产生更好质量的熵.

这些随机性源只能以特定速率提供数据.如果系统用于执行需要随机数据的大量工作,则可能会使用比可用数据更多的随机数据.然后,需要随机数据的软件必须等待生成更多数据,否则它必须接受质量较低的数据.这称为熵饥饿或熵耗尽.


Gly*_*yph 10

这句话毫无意义,谢天谢地,它已经过时且无关紧要。它基于 Linux 熵子系统的维护者 Theodore Ts'o 对物理噪声收集与哈希输出不可预测性的加密安全性相对应的方式的长期误解。

引用维基百科页面

2020 年,Linux 内核版本 5.6 /dev/random 仅在 CPRNG 尚未初始化时才会阻塞。初始化后,/dev/random 和 /dev/urandom 的行为相同

所以,你不需要了解或关心自2020年以来“熵饥饿”概念的令人困惑的历史。

多年来,许多人试图纠正这种误解。这是两篇最著名的文章: