第 12 章 随机数——不可预测性的源泉
随机数的作用?使用场景是什么?
- 生成秘钥:用于对称密码和消息认证码。
- 生成秘钥对:用于公钥密码和数字签名。
- 生成初始化向量 (IV):用于分组密码的 CBC/CFB/OFB 模式。
- 生成 nonce:用于防御重放共计以及分组密码的 CTR 模式等。
- 生成盐:用于基于口令的密码等。
随机数的性质
- 随机性——不存在统计学偏差,是完全杂乱的数列。
- 不可预测性——不能从过去的数列推测下一个出现的数。
- 不可重现性——除非将数列本身保存下来,否则不能重现相同的数列。 以上 3 个性质,越往下越严格。
随机数强度
- 弱伪随机数:只有随机性。
- 强伪随机数:具有随机性 + 不可预测性。
- 真随机数:同时具备上面三个性质。