2024年8月26日
熵和随机性简介
Linux 伪随机数生成器 (PRNG) 是一种特殊设备,它通过硬件中断(键盘、鼠标、磁盘/网络 I/O)和其他操作系统源生成随机数。这种随机数主要用于 SSL/TLS 等加密,但也有许多其他用途。即使是像掷一对虚拟骰子这样简单的程序,也依赖于熵来实现高质量的随机数。
当熵池干涸时
Linux 上有两个通用随机设备:/dev/random 和 /dev/urandom。最佳随机性来自 /dev/random,因为它是一个阻塞设备,并且会等到有足够的熵才继续提供输出。假设您的熵足够,您应该从 /dev/urandom 看到相同质量的随机性;但是,由于它是一个非阻塞设备,它将继续产生“随机”数据,即使熵池耗尽。这可能会导致随机数据质量较低,因为重复以前的数据的可能性更大。当生产服务器上的可用熵不足时,可能会发生很多糟糕的事情,尤…