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

1、概述随机数

生成一个真正随机的数并非易事,常用的伪随机数的生成用的是模余法,大致是这样的公式:
Rn=(Rn1A+C)modB
ABC 都是常数, Rn 为产生的随机数, Rn1 为上一拍的随机数,从这个可以看出,这种算法产生的随机数并不足够随机,与初始状态有关,初始状态定了,随机序列也就定了。
真随机数顾名思义就是真正的随机数,比如我们掷骰子,产生的就是真正的随机数,但我们总不能为了产生随机数去掷骰子吧,还好有很多很天然的随机数,比如热噪声、键盘的输入、鼠标的位置,这些都是随机的,但是这些随机的信号直接拿来做随机数也不一定就很随机,比如热噪声在频谱上并不是白噪声,而可能是有色噪声,鼠标的位置前后会有关联,一段时期可能在一个区域,所以这些随机信号并不能直接拿来作为随机数,而是需要经过处理。

2、真随机数生成

在真随机数的生成里,把随机数的生成分成两个部分,第一个部分称之为熵生成,指的就是前面说的各类噪声,第二部分就是熵提取,指的就是把噪声数据进行变化。
在熵提取算法里,有几个比较经典的算法:

2.1冯诺依曼运算

这个运算比较有意思,就是对于输入的一串0、1比特,两个两个的一组,如果输入是00或者11就不输出,如果输入的是10就输出1,如果输入的是01就输出0

2.2用hash函数

SHA-1或者MD5都是可选项,个人认为国密的SM3也是可以的。

3、小结

真随机数的生成大致就是这么一个原理,具体的应用实现就可以大胆创新了,比如,有人就在利用HASH函数上下功夫,有的用几个HASH的组合,随机决定用哪个HASH。

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
True Random PRO是一种用于生成随机数的设备。生成一个正随机的数并非易事,常用的伪随机数的生成用的是模余法,但这种算法产生的随机数并不足够随机,与初始状态有关。为了获得正的随机数,可以利用一些天然的随机信号,比如热噪声、键盘的输入、鼠标的位置等,但这些信号经过处理才能得到随机数。 对于随机数的研究,最重要的并不是如何产生随机数,而是如何测试生成器所生成的数字是否的随机。证明一个随机数序列的随机是非常困难的,因为即使是的随机数序列也有可能存在测试不通过的情况。尽管如此,这些测试对于衡量序列的随机性仍然是必不可少的。 True Random PRO是一种能够产生随机数的设备。它通过利用物理过程来生成随机数,不依赖于算法或伪随机数生成器。这种设备可以确保生成的随机数是正随机的,不受初始状态的影响。 True Random PRO的具体工作原理可能涉及到更多的技术细节,但总的来说,它是一种有效和可靠的方式来获取随机数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [TRNG随机数生成(true random number generator)](https://blog.csdn.net/hugewave/article/details/76945111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [随机数生成器](https://blog.csdn.net/explorer9607/article/details/83745550)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值