首页 > 编程知识 正文

伪随机数生成器,python随机数模块

时间:2023-05-04 00:20:00 阅读:46537 作者:3443

真随机数发生器(TRNG ) )。

真正的随机数发生器(TRNG )的突出特点是不能复制她的输出。 例如,如果扔硬币100次,把这100次的结果作为100位长的排列,那么地球上很少有人会制作和这100位相同的排列。 真正的随机数发生器都是基于物理过程的,主要例子有掷硬币、掷骰子、半导体声、数字电路中的时钟抖动、放射性衰变等。 密码学通常使用TRNG生成会话密钥,在lkdhb和标致之间分发或用于其他用途。

### (通用)伪随机数发生器(PRNG ) ) ) ) )。

伪随机数生成器通过各种计算从一个初始种子获得序列。 伪随机数序列通常通过递归执行以下计算获得:

s_0=seed\

s_{I1}=f(s_I ),I=0,1,

该公式的一种普及型是由s_{I1}=f(s_I,s_{i-1},…,s_{i-t} )表示的生成器。 其中t是固定整数。 最常见的例子是线性同余生成器:

s_0=seed

s_{i 1}=as_i b mod m,I=0,1,

这里,a、b、m都是整数常数。 注意: PRNG在真正意义上不是随机的。 因为可以计算,所以可以说是由计算决定的。

对PRNG的一个常见要求是必须具有良好的统计特性,并且输出与真随机数序列几乎相同。

加密安全伪随机数生成器

加密安全伪随机数生成器(CSPRNG )是PRNG的特例,具有以下附加属性: CSPRNG是不可预测的PRNG。 一般而言,它给出密钥序列s_i,s_{i 1},…,s_{i n-1}的n个输出位(其中n是整数),得到后续位s_{i n},s_{i n 1}… 更准确地说,由于不存在用于给定密钥串中n个连续比特时间复杂度为多项式的算法,所以成功预测下一比特s_{n 1}的概率超过50%。 CSPRNG的另一个属性是不可能给出上述数组来计算先前的比特s_{i-1},s_{i-2},…。

注意:只有密码学才要求CSPRNG具备不可预测的智力。 伪随机数在大多数计算科学和计算机工程的情况下是必要的,但并不要求不可预测的智力

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。