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