RNG
新的 arc4random_uniform 实现
本月初, Robert Clausecker 替换了 FreeBSD 的 arc4random_uniform(3)。
arc4random_uniform(3) 是 arc4random(3) 之上封装的一个生成一个较小范围伪随机数的函数。
arc4random(3) 采用密码学安全的伪随机数生成一个在 32-bit 范围,即 内均匀分布的伪随机整数,
此处的随机分布是依靠对称加密算法(目前采用的是 Chacha20)中用于实现加密的伪随机置换(Pseudorandom
Permutation)来保证的。
FreeBSD -CURRENT随机数发生器问题
今天 John-Mark Gurney 修正了一个影响过去4个月左右的 FreeBSD -CURRENT 的随机数发生器问题,具体受影响的版本是 r273872(引入问题)到 r278907 (修正)。
由于问题只影响 -CURRENT,因此我们不会就此发表安全公告。
阅读全文…Intel RDSEED指令
今天看到 John Baldwin commit 的这个 r266391 增加了相关支持。
RDSEED 和 RDRAND 的区别是 RDRAND 采用的是 128-bit AES 密钥的 CTR-DRBG,而 RDSEED 则是直接从真随机数发生器中获得输出(两者并不是直接使用真随机发生器的输出,这些输出是做过 AES-CBC-MAC 处理的,防止外界通过观测输出了解内部运行的细节),较慢,后者具备 multiplicative prediction resistance 特性。
阅读全文…