TRNG IS WHAT?

文章探讨了真随机数生成的重要性,指出模余法生成的伪随机数存在局限性。真随机数来源于物理现象如热噪声、键盘输入等,但需经过熵生成和熵提取过程确保随机性。熵提取算法包括冯诺依曼运算和哈希函数如SHA-1、MD5及SM3。重点强调好的伪随机数发生器应具备的随机分布特性及安全性要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言-概述随机数

TRNG真随机数生成(true random number generator)

生成一个真正随机的数并非易事,常用的伪随机数的生成用的是模余法,大致是这样的公式:

Rn=(Rn−1∗A+C)modBRn=(Rn−1∗A+C)modB

A,B,C都是常数,Rn为产生的随机数,Rn−1为上一拍的随机数,从这个可以看出,这种算法产生的随机数并不足够随机,与初始状态有关,初始状态定了,随机序列也就定了。

真随机数顾名思义就是真正的随机数,比如我们掷骰子,产生的就是真正的随机数,但我们总不能为了产生随机数去掷骰子吧,还好有很多很天然的随机数,比如热噪声、键盘的输入、鼠标的位置,这些都是随机的,但是这些随机的信号直接拿来做随机数也不一定就很随机,比如热噪声在频谱上并不是白噪声,而可能是有色噪声,鼠标的位置前后会有关联,一段时期可能在一个区域,所以这些随机信号并不能直接拿来作为随机数,而是需要经过处理。

真随机数生成

在真随机数的生成里,把随机数的生成分成两个部分,

  • 第一个部分称之为熵生成,指的就是前面说的各类噪声,
  • 第二部分就是熵提取,指的就是把噪声数据进行变化。

在熵提取算法里,有几个比较经典的算法:

  • 1-冯诺依曼运算
    这个运算比较有意思,就是对于输入的一串0、1比特,两个两个的一组,如果输入是00或者11就不输出,如果输入的是10就输出1,如果输入的是01就输出0
  • 2-用hash函数
    SHA-1或者MD5都是可选项,个人认为国密的SM3也是可以的。

所以其实主要的关键点在于这个好的伪随机书发生器

什么是好的伪随机数发生器

主要是看:随机分布的优劣

主要看四个方面:

    1. 相同序列的概率非常低。
    1. 符合统计学的平均性,比如所有数字出现概率应该相同,卡方检验应该能通过,超长游程长度概略应该非常小,自相关应该只有一个尖峰,任何长度的同一数字之后别的数字出现概率应该仍然是相等的等等。
    1. 不应该能够从一段序列猜测出随机数发生器的工作状态或者下一个随机数。
    1. 不应该从随机数发生器的状态能猜测出随机数发生器以前的工作状态。

参考文献:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值