自学内容网 自学内容网

随机数的生成

要求

  • 随机性:在某种明确定义的统计意义下,数列是随机的。
    分布均匀性:序列中的位分布应是均匀的
  • 不可预测性:序列后续成员不可预测

策略

  • 真随机数生成器(TRNG)
    非确定性随即位生成器(NRBG)
  • 伪随机数生成器(PRNG)
    确定性随即位生成器(DRBG)

真随机数生成器(TRNG)

  • 使用某种不确定的物理源生成非确定的随机位
  • RFC 4086中列出的一些随机源,比如: 物理噪声、键盘打击、鼠标移动、音频、视频输入等
  • 这些物理过程本质上是不可预测的,因此TRNG生成的数字序列被认为是真正的随机数
    在这里插入图片描述

伪随机数生成器(PRNG)

  • 使用算法确定性地计算产生随机位
  • PRNG取一个固定值(种子)作为输入,并用一个确定性算法生成输出位序列

种子必须是不可预测的,一般由TRNG生成

为什么可以使用TRNG,还要使用PRNG?

若应用为流密码,TRNG不实用
若只需要生成有限数量的伪随机数,通常也是希望使用TRNG做种子,使用PRF(伪随机函数)输出

PRNG算法分类

  • 专用算法:为生成伪随机位流而专门设计
  • 基于现有密码算法的算法:对称分组密码、哈希函数、消息认证

线性同余生成器(LCG)

在这里插入图片描述
但这个算法不经常使用

BBS生成器
在这里插入图片描述
在这里插入图片描述
本文根据以下链接进行学习
https://www.bilibili.com/video/BV19h4y1S7QG/?spm_id_from=333.999.0.0&vd_source=c2c3c616b3ad1faf44a9f6f30a4dbb03


原文地址:https://blog.csdn.net/m0_72827793/article/details/142986587

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!