TRNG真随机数生成(true random number generator)
来源:互联网 发布:淘宝装修图片轮播尺寸 编辑:程序博客网 时间:2024/06/07 00:47
1、概述随机数
生成一个真正随机的数并非易事,常用的伪随机数的生成用的是模余法,大致是这样的公式:
真随机数顾名思义就是真正的随机数,比如我们掷骰子,产生的就是真正的随机数,但我们总不能为了产生随机数去掷骰子吧,还好有很多很天然的随机数,比如热噪声、键盘的输入、鼠标的位置,这些都是随机的,但是这些随机的信号直接拿来做随机数也不一定就很随机,比如热噪声在频谱上并不是白噪声,而可能是有色噪声,鼠标的位置前后会有关联,一段时期可能在一个区域,所以这些随机信号并不能直接拿来作为随机数,而是需要经过处理。
2、真随机数生成
在真随机数的生成里,把随机数的生成分成两个部分,第一个部分称之为熵生成,指的就是前面说的各类噪声,第二部分就是熵提取,指的就是把噪声数据进行变化。
在熵提取算法里,有几个比较经典的算法:
2.1冯诺依曼运算
这个运算比较有意思,就是对于输入的一串0、1比特,两个两个的一组,如果输入是00或者11就不输出,如果输入的是10就输出1,如果输入的是01就输出0
2.2用hash函数
SHA-1或者MD5都是可选项,个人认为国密的SM3也是可以的。
3、小结
真随机数的生成大致就是这么一个原理,具体的应用实现就可以大胆创新了,比如,有人就在利用HASH函数上下功夫,有的用几个HASH的组合,随机决定用哪个HASH。
阅读全文
0 0
- TRNG真随机数生成(true random number generator)
- 随机数产生器(random number generator)
- C++ - 随机数生成器(random-number generator) 的 详解 及 代码
- Pseduo Random Number Generator
- Hackerrank Random Number Generator
- Q138:PBRT-V3,伪随机数发生器(pseudo-random number generator,RNG)(A.1.2章节)
- random生成随机数
- Python random 生成随机数
- Random生成随机数
- Random()生成随机数
- Java 随机数生成 Random
- Android:Random生成随机数
- 随机数生成_srand/random
- 随机数生成工具random
- python random 生成随机数
- 随机数生成Math.random()
- Python -- random 随机数生成
- 生成随机数Random()
- eclipse 中其他包中的类如何调用默认包中的类(反射机制)
- miss u
- c++入门教程(五)
- C编程预备计算机专业知识 _ 数据类型
- DB2 HADR的4种同步模式、5种备机状态、3个超时参数
- TRNG真随机数生成(true random number generator)
- SSAS
- bash(3) 条件语句 if/else
- C语言中合并字符串
- 关于输入一串数字转变成Mac地址(方法之一)
- 我的实现_滚动列表
- luogu1096 Hanoi双塔问题【2007提高】(递推+高精)
- Exchange2013通讯组授权其他用户管理其中成员方法
- awk