
随机数生成
密码学伪随机数生成器 (CPRNG) 是安全软件的重要基石。Apple 为此提供了运行在 iOS、iPadOS、macOS、Apple tvOS、visionOS 和 watchOS 内核中的受信任软件 CPRNG。它负责聚合系统中的原始熵,并为内核和用户空间的使用者提供安全随机数。
熵源
内核 CPRNG 会在设备启动及整个生命周期内,从多个熵源获取种子数据。这些熵源包括(取决于可用性):
安全隔区硬件 TRNG
启动过程中所收集基于时序的抖动值
从硬件中断收集的熵
用于启动过程中保留熵值的种子文件
Intel 随机指令,例如 RDSEED 和 RDRAND(仅限基于 Intel 的 Mac)
内核 CPRNG
内核 CPRNG 的设计源自 Fortuna 算法,旨在满足 256 位安全级别。它使用以下 API 为用户空间使用者提供高质量的随机数:
getentropy(2) 系统调用随机设备 (
/dev/random)
内核 CPRNG 通过写入随机设备接受用户提供的熵。
感谢您的反馈。