跳转至

随机数生成器

Quote

操作系统提供的随机数生成器

import os
iv = os.urandom(16)

随机数生成器用途

  • 生成密钥 (对称加密和消息认证码)
  • 生成密钥对 (非对称加密和数字签名)
  • 生成初始化向量IV
  • 生成nonce 防御重放攻击等
  • 生成salt

随机数的基本性质

随机性、不可预测性、不可重现性

不可预测性

所谓不可预测性是指:攻击者已知过去生成的随机数的前提下,依然无法预测出下一个生成的随机数的性质

不可重现性

不可重现性指无法重新与某一随机数列完全相同数列的性质。如果除了将随机数列本身保存下来以外,没有其他方法重现该数列,则我们称该随机数列具备不可重现性

——— 《图解密码技术》

仅通过软件无法生成具备不可重现性的随机数列。软件只能生成伪随机数,这是因为计算机本身具备有限的内部状态。要想生成真正的随机数需要靠外部因素。

比如从物理世界获取温度、声音,用户移动鼠标的位置信息,键盘输入的时间间隔等。

评论