随机数
作者:互联网
1. 使用随机数的密码技术
① 生成密钥:对称密码和消息认证码。
② 生成密钥对:用于公钥密码和数字签名。
③ 生成初始化向量IV:用于分组密码的CBC,CFB和OFB模式。
④ 生成nonce:用于防御重放攻击以及分组密码的CTR模式。
⑤ 生成盐:用于基于口令的密码(PBE)等。
2. 随机数的性质
① 随机性 —— 不存在统计学偏差,总是完全杂乱的数列。
杂乱无章并不意味着不会被看穿,具备随机性的伪随机数称为“弱伪随机数”。
② 不可预测性 —— 不能从过去的数列推测出下一个出现的数。
攻击者在知道过去生成伪随机数数列的前提下,依然无法预测下一个生成出来的伪随机数的性质。
也就是知道过去生成的伪随机数序列,也无法预测下一个生成的伪随机数。
不可预测性是通过使用其他的密码技术来实现的。
不可预测性的伪随机数称为“强伪随机数”。
③ 不可重现性 —— 除非将数列本身保存下来,否则不能重现相同的数列。
无法重现和某一随机数列完全相同的数列的性质。
首次出现重复之前的数列长度称为周期,对于软件生成的数列,周期必定是有限的,不可重现的随机数称为“真随机数”。
3. 伪随机数生成器
硬件生成的随机数,根据传感器热量,声音等硬件设备称为随机数生成器。
生成随机数的软件,称为伪随机数生成器。
4. 伪随机数生成器的结构
内部状态是随机数生成器所管理的内存中的数值。
伪随机数生成器的种子是用来对伪随机数生成器的内部状态进行初始化的。
5. 具体的伪随机数生成器
① 杂乱的方法 ② 线性同余法 ③ 单向函数散列法 ④ 密码法 ⑤ ANSI.X9.17
标签:数列,生成器,生成,密码,重现,随机数 来源: https://www.cnblogs.com/yangdadahome/p/14970034.html