随机数与密码学安全
1. 随机数相关内容
1.1 熵估计与随机数生成器
在随机数的生成过程中,熵是一个重要的概念。例如,在某个执行示例中,根据 /dev/random 的估计器,池中还剩下 193 - 64 = 129 位的熵。但值得思考的是,仅仅因为从伪随机数生成器(PRNG)中读取了 N 位,就认为该 PRNG 少了 N 位的熵,这种观点并不合理。
在 Linux 系统中, getrandom() 系统调用与 /dev/random 类似,如果没有收集到足够的初始熵,它会阻塞。不过,与 /dev/random 不同的是,它不会尝试估计系统中的熵,并且在初始化阶段之后不会再阻塞。当然,你也可以通过调整其标志位,强制 getrandom() 使用 /dev/random 并使其阻塞,但通常没有必要这样做。
1.2 Windows 中的随机数生成函数
在 Windows 系统中,传统的用户空间与系统 PRNG 的接口是 Cryptography 应用程序编程接口(API)中的 CryptGenRandom() 函数。不过,在较新的 Windows 版本中,该函数已被 Cryptography API: Next Generation (CNG) API 中的 BcryptGenRandom() 函数所取代。Wi
超级会员免费看
订阅专栏 解锁全文
3019

被折叠的 条评论
为什么被折叠?



