随机数生成器¶
随机数生成器用途¶
- 生成密钥 (对称加密和消息认证码)
- 生成密钥对 (非对称加密和数字签名)
- 生成初始化向量IV
- 生成nonce 防御重放攻击等
- 生成salt
随机数的基本性质¶
随机性、不可预测性、不可重现性
不可预测性
所谓不可预测性是指:攻击者已知过去生成的随机数的前提下,依然无法预测出下一个生成的随机数的性质
不可重现性
不可重现性指无法重新与某一随机数列完全相同数列的性质。如果除了将随机数列本身保存下来以外,没有其他方法重现该数列,则我们称该随机数列具备不可重现性
——— 《图解密码技术》
仅通过软件无法生成具备不可重现性的随机数列。软件只能生成伪随机数,这是因为计算机本身具备有限的内部状态。要想生成真正的随机数需要靠外部因素。
比如从物理世界获取温度、声音,用户移动鼠标的位置信息,键盘输入的时间间隔等。