密码学初级教程(九)随机数

随机数的用途

  • 生成密钥
  • 生成密钥对
  • 生成初始化向量(IV)
  • 生成你once
  • 生成盐

随机数的性质

  • 随机性-不存在统计学偏差,是完全杂乱的数列。
  • 不可预测性-不能从过去的数列推测出下一个出现的数
  • 不可重现性-除非将数列本身保存下来,否则不能重现相同的数列。

随机数的分类

  • 弱伪随机数(只具备随机性)
  • 强伪随机数(具备不可预测性)
  • 真随机数(具备不可重现性)

随机数生成器

通过硬件生成的随机数列,是根据传感器收集的热量、声音的变化等事实上无法预测和重现的自然现象信息来生成的。像这样的硬件设备就是随机数生成器(Random Number Generator,RNG)。

伪随机数生成器

可以生成随机数的软件称为伪随机数生成数(Pseudo Random Number Generator,PRNG),仅靠软件无法生成真随机数。

  1. 伪随机数生成器的结构
  2. 密码学初级教程(九)随机数_第1张图片
  3. 伪随机数生成器的内部状态
  4. 伪随机数生成器的种子

种子是一串随机的比特序列,根据种子就可以生成专属于自己的伪随机数列。

具体的伪随机数生成器

  • 杂乱的方法
  • 线性同余法
  • 单向散列函数法
  • 密码法
  • ANSI X9.17

你可能感兴趣的:(密码学初级教程(九)随机数)