RNG

新的 arc4random_uniform 实现

本月初, Robert Clausecker 替换了 FreeBSD 的 arc4random_uniform(3)

arc4random_uniform(3)arc4random(3) 之上封装的一个生成一个较小范围伪随机数的函数。 arc4random(3) 采用密码学安全的伪随机数生成一个在 32-bit 范围,即 [0, 2321][0,\ 2^{32}-1] 内均匀分布的伪随机整数, 此处的随机分布是依靠对称加密算法(目前采用的是 Chacha20)中用于实现加密的伪随机置换(Pseudorandom Permutation)来保证的。

阅读全文…( 本文约 3381 字,阅读大致需要 7 分钟 )

FreeBSD -CURRENT随机数发生器问题

| Kernel | Security | #FreeBSD | #security | #RNG

今天 John-Mark Gurney 修正了一个影响过去4个月左右的 FreeBSD -CURRENT 的随机数发生器问题,具体受影响的版本是 r273872(引入问题)到 r278907 (修正)。

由于问题只影响 -CURRENT,因此我们不会就此发表安全公告。

阅读全文…( 本文约 407 字,阅读大致需要 1 分钟 )

Intel RDSEED指令

| Security | #Intel | #RDSEED | #RDRAND | #RNG | #Security | #hardware

今天看到 John Baldwin commit 的这个 r266391 增加了相关支持。

RDSEED 和 RDRAND 的区别是 RDRAND 采用的是 128-bit AES 密钥的 CTR-DRBG,而 RDSEED 则是直接从真随机数发生器中获得输出(两者并不是直接使用真随机发生器的输出,这些输出是做过 AES-CBC-MAC 处理的,防止外界通过观测输出了解内部运行的细节),较慢,后者具备 multiplicative prediction resistance 特性。

阅读全文…( 本文约 352 字,阅读大致需要 1 分钟 )