关于真随机数生成器

有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚厚的一本书的篇幅。 

有限状态机不能产生真正的随机数的,所以在现在的计算机中并没有一个真正的随机数生成算法,现有的随机数生成算法生产的随机数只不过因为重复的周期比较大,可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,一般称作叫伪随机数发生器。 

真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等。这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。真随机数生产效率没有伪随机数高,还有就是"信息熵的信息量如果很有限的话,就不是一定是真的随机数了。

还有人质疑真正的随机数的存在,这是哲学问题,不在此涉及。 

查了下现有的真随机数生成器,比如PuTTYgen的随机数是让用户移动鼠标达到一定的长度,之后把鼠标的运动轨迹转化为种子;Intel通过电阻和振荡器来生成热噪声作为信息熵资源;Unix/Linuxdev/random/dev/urandom采用硬件噪音生成随机数;(待补充) 

基于特定Intel芯片组中random number generator(RNG)单元的真随机数生成器.Intel 815E芯片组的个人电脑上安装Intel Security Driver(ISD),可以通过编程读取寄存器获取RNG中的随机数

有人在BBS上提到:RSA的书上介绍过一种随机数发生器,根据的是劣质内存芯片工作在高温下,其数据是不可预测的,读取这里面的数据,就会得到难以预测的随机数。有采用这种技术制作随机数发生器板卡。 

关于Linux系统的真随机数生成器在《Linux内核设计与实现》一书的附录B中有详细介绍 
Linux
1.3.30版就在内核提供了真随机数生成器,至少是理论上能产生真随机数,它利用机器的噪音生成随机数,噪音源包括各种硬件运行时速,用户和计算机交互时速。比如击键的间隔时间、鼠标移动速度、特定中断的时间间隔和块IO请求的响应时间等。 

此外还有提供真随机数的网站,如: 
1
http://random.irb.hr/ 是一个免费为学术和科研机构提供真随机数字服务的网站。全名是Quantum Random Bit Generator Service (QRBGS),由克罗地亚的计算机科学家开发。其随机性依赖于半导体光子发散量子物理过程中内在的随机性,光子通过光电效应进行检测。这些随机检测到的光子都是相互独立的。 
可以通过C/C++库、Web ServiceMathmatic/Matlab插件等多种方式访问。将来会提供基于SSL的安全访问。 
它甚至还有个小小的Erlang的客户端访问程序 
http://code.google.com/p/qrbgerl/ 


2.
还有http://random.org/,从1998年开始就在Internet上提供真随机数服务了,它用大气噪音生成真随机数 



有人还提到 
Java可以使用java.security.SecureRandom 产生真随机数(待查); 
Linux
系统有/dev/random,/dev/urandom向用户提供真随机数; 
Windows
系统有CryptGenRandom 函數生成真随机数(待查) 

在《数字追凶 numb3rs》第6季中有一集是通过预测彩票所采用的伪随机数算法进行彩gfw骗的。 

2010
年,德国研究人员开发出一种产生真随机数的新方法,他们希望能改进互联网安全。 
随机数是计算机和互联网安全的重要组成部分,网站和浏览器利用一把会话钥匙加密两者之间发送的数据。伪随机数可以预测和破解,研究人员一直在研究能产生真正的、无法预测的随机数方法。德国的研究团队现在开发出一种真随机数发生器,它使用的计算机内存双态触发器作为随机的一个额外层,触发器可随机的在10状态中切换,在切换之前,触发器处于行为无法预测的亚稳态。在亚稳态结束时,内存中的内容为完全随机。研究人员对一个触发器单元阵列的实验显示,这种方法产生的随机数比传统方法随机20倍。 

经典物理学不存在真正的随机性,而量子世界从本质上讲就是真正随机的,是不可预测的。根据发表在20104月最新一期《自然》杂志上的报告,比利时物理学家S. Pironio和同事利用远距离的幽灵般作用创造出了真随机数 

他们利用了纠缠粒子的随机性和非局域性属性。研究人员首先在理论上发现,一个贝尔不等式的破坏证明新的随机性的产生,它独立于任何实现细节。为了阐释该方法,他们随后进行了一个实验,在该实验中,正如用他们创建的理论工具所证实的那样,产生了42个新的随机位。研究人员称,这项研究可用于设计出真正的无法预测随机数生成器。 
http://developers.solidot.org/article.pl?sid=10/02/23/0645203 
http://www.sciencedaily.com/releases/2010/02/100222082529.htm?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+sciencedaily+(ScienceDaily:+Latest+Science+News) 


2011
年,加拿大渥太华的物理学家Ben Sussman利用激光脉冲和钻石创造了真随机数。用真随机数编码的信息将难以被黑客破解。 
Sussman
的实验室使用持续几万亿分之一秒的激光脉冲照射钻石,激光进入和出来的方向发生了变化。Sussman称改变与量子真空涨落的相互作用有关,量子力学与大多数物理学法则不同,不可能知道真正发生了什么。他认为这可以用于创造真正的随机数。 

2012
年,史上最快的随机数生成器:从真空中的亚原子噪音获取随机数 
量子力学告诉我们亚原子对会持续自发的产生和湮灭,即使是在真空里也一样。通过监听真空内亚原子粒子量子涨落产生的噪音,澳大利亚国立大学的科学家们建造了世界上最快的随机数发生器。研究小组开发了可以通过激光监听真空中随机噪音的工具并以此产生真正的随机数。 

随机数生成网页 


http://article.yeeyan.org/view/219269/266017 

参考: 
http://www.cnblogs.com/hehehu/archive/2005/08/23/221125.html 
http://bbs.chinaunix.net/viewthread.php?tid=1054170&extra=&page=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld

到目前为止,您可能已经听说过Java 9的新模块系统,即项目Jigsaw。 如果您不了解Java 9的新模块系统,则应访问Mark Reinhold的论文“模块系统的状态” 。 此外,您还应该访问nipafx Nicolai Parlog的出色博客, 网址为http…

互补输出级采用共集形式是为了使_天津大学胡文平《先进材料》:溶液法制备厘米级高度取向有机晶体阵列,可用于高性能有机场效应晶体管...

有机场效应晶体管(OFET)以其低成本和柔性受到了广泛关注,在显示驱动、射频识别标签和逻辑电路等方面具有潜在应用。包括小分子材料和共轭聚合物在内的可溶性有机半导体(OSCs)由于其可溶液加工而引起了许多研究者的兴趣,这种溶液可加工性可通过在柔性基底…

win7系统 普通管理员被删除,超级管理员被禁用。普通用户下。怎么激活administrator

需要启用超级管理员帐户,然后可以在超级管理员账户安装,在标准用户下正常使用。 如果你也想启用超级管理员帐户,可以按如下的步骤操作:右键单击“计算机”→“管理”,双击“本地用户和组”→“用户”,在右边…

模运算及其性质

忘了是不是原创了,谁发现了地址请告知。 本文以c语言为载体,对基本的模运算应用进行了分析和程序设计,以理论和实际相结合的方法向大家介绍模运算的基本应用。。 基本理论 基本概念: 给定一个正整数p,任意一个整数n&a…

c++ 显示图片_飞利浦256P1FR显示器一线直连MacBook使用体验分享

前言嗨,大家好,我是默咖,一个喜欢分享的数码控。最近刚忙完给媳妇升级桌面,自己就忍不住想要换一个Type-C直连MacBook Pro的显示器了,不仅仅为了可以单线直连MacBook Pro也是为了减少拓展坞再接一个转接头的麻烦&#…

ghost快速安装系统的详细步骤?

很多时候我们安装系统都是在很快的时间内给安装完毕,不用像原来那样安装一个系统需要一个多小时,有了ghost是比较方便,十几分钟就可以把系统安装完,这也是DIY爱好者的福音,没有事情的时候安装下自己的系统,…

利用位运算的模四算法

将数列a1,2,3,4,5,6,7...变成4,4,4,4,8,8,8,8,12,12...一个很巧妙的办法((a3)>>2)<<2,当然不用位运算就可以用(a3)-(a3)%4 // 模4编号的实现 #include <stdio.h> #include <stdlib.h> int main() {/*for(int i1;i<100;i){//printf("%d %d …

字符内存转成字符串_字符串内存内部

字符内存转成字符串本文基于我对StackOverflow的回答 。 我正在尝试解释String类如何存储文本&#xff0c;内部存储和常量池如何工作。 这里要理解的要点是String Java对象与其内容– private value字段下的char[]之间的区别。 String基本上是char[]数组的包装器&#xff0c;将…

python安装库报错Microsoft visual c++ 14.0 is required问题解决办法

下载安装包安装即可&#xff1a; https://964279924.ctfile.com/fs/1445568-239446865 or http://www.liangchan.net/liangchan/10220.html转载于:https://www.cnblogs.com/stkares/p/9384424.html

Apache PDFBox命令行工具:无需Java编码

在博客文章Apache PDFBox 2中 &#xff0c;我演示了将Apache PDFBox 2用作从Java代码中调用的库来操作PDF。 事实证明&#xff0c;Apache PDFBox 2还提供了可以直接从命令行直接使用的命令行工具 &#xff0c;而无需其他Java编码。 有几种命令行工具可用&#xff0c;我将在本文…

shocked的歌曲 类似shell_Shell Shocked歌词

Shell Shocked歌词添加日期&#xff1a;2014-11-04 时长&#xff1a;03分24秒 歌手&#xff1a;忍者神龟Kylie Minogue - Speakerphonewww.9ku.com 活在当下 制作LightsMindEyesHeartsLights (Flashin) Sound (Crashin)Minds (Blowin) Body (Rockin)Eyes (Lockin) Lips (Touchi…

除法上取整、下取整

C &#xff1d; A / B&#xff1b;// 默认就是下取整 C &#xff1d; (AB-1)/B; // 上取整算法

intellij idea

使用intellij idea的经验、会慢慢补全 目录 转载于:https://www.cnblogs.com/black-/p/9391846.html

ACM中Java使用总结

Java在ACM中的主要应用是大数类【个人见解】。做个小总结&#xff0c;留作模板用。 类名默认为Main。 输入&#xff1a; 声明一个输入对象cin;Scanner cinnew Scanner(System.in); 输入一个int值&#xff1a;Int acin.nextInt(); 输入一个大数&#xff1a;BigDecimal acin.next…

在分析了47,251个依赖关系之后,2016年排名前100的Java库

谁在上面&#xff0c;谁在后面&#xff1f; 我们分析了Github上的47,251个依赖关系&#xff0c;并抽取了前100个Java库 长周末我们最喜欢的消遣是浏览Github并搜索流行的Java库。 我们决定与您分享乐趣和信息。 我们分析了Github上前3,862个Java项目使用的12,059个独特Java库…

tensorflow源码编译教程_源码编译安装tensorflow 1.8

参考官方指南基本要求官网测试过的源代码配置如下&#xff1a;image也就是说&#xff0c;按照这个版本安装的话不应该再产生版本的问题了。我的配置ubuntu 16python 2.7nccl 2.3gcc 4.8.5cuda 7.1.4cudnn 9.0 (具体是9.0.176但是在./configure的那里不用输这么仔细&#xff0c;…

html2canvas关于图片不能正常截取

问题 首先说说遇到了什么问题。首先有这么一个需求。需要前端根据后端传过来数据&#xff0c;动态的生成图片。图片中的文案、背景图片、用户头像全部都是通过后端的接口获取。但是使用 html2canvas 生成的canvas有些图片成功的在canvas里生成了。但是有些图片无论如何都显示不…

tortoise清理本地分支_本地:延庆运污水环卫抽化粪池

北京兴百荣清洁公司是清理排水管道的技术服务中心。提供下水道疏通&#xff0c;化粪池清理&#xff0c;抽污水&#xff0c;化粪池清掏&#xff0c;管道清淤&#xff0c;下水道清洗&#xff0c;化粪池清理&#xff0c;抽粪&#xff0c;管道疏通&#xff0c;雨水管道清理&#xf…

C++矩阵优化算法

写在前面的话&#xff1a;此矩阵优化算法并非原创&#xff0c;笔者只是转述了一种智慧。 在C中&#xff0c;定义一个矩阵通常是这样的: class MyMatrix { ........ public: ........ float data[50000]; } 这里为了方便说明问题&#xff0c;使用固定大小的数…

win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

由于工作需要&#xff0c;今天要在电脑上安装SQL Server 2005。以往的项目都是使用Oracle&#xff0c;MS的数据库还真的没怎么用过&#xff0c;安装Oracle已经轻车熟路&#xff0c;但装SQL Server好像还有点小麻烦&#xff0c;所以记录下来&#xff0c;以留备用。 ------------…