常用 #### 简介:: 不可预测的源泉 可由对称密码、单向散列函数或公钥密码构建 随机数——不可预测性的源泉 随机数的用途:: 生成密钥(对称加密) 生成密钥对(公钥加密) 生成初始化向量(IV), 用于分组密码模式 生成 nonce 生成盐 随机数的性质:: 1. 随机性(randomness) 弱伪随机数 不存在统计学偏差、是完全杂乱的数列 杂乱无章不代表不会被看穿 2. 不可预测性(unpredictability) 强伪随机数 定义 攻击者是在知道过去生成伪随机数列的前提下 依然无法预测出下一个生成的伪随机数 不可预测性是通过使用其他密码技术来实现的 3. 不可重现性 真随机数 所谓不可重现性,是指无法重现和某一随机数列完全相同的数列性质 仅靠软件是无法生成出具不可重现性的随机数列的 因为软件是有「周期」的 具体的伪随机数生成器:: 线性同余法(linear congruential method) 不可将线性同余法用于密码技术 定义: 将当前的伪随机数*A+C 然后再除以 M 得到余数作为下一个伪随机数 单向散列函数 密码法 ANSI X9.17 对伪随机数生成器的攻击:: 对种子攻击 对随机数池攻击