[发明专利]一种软件实现的真随机数产生方法无效
申请号: | 201010603005.5 | 申请日: | 2010-12-24 |
公开(公告)号: | CN102063285A | 公开(公告)日: | 2011-05-18 |
发明(设计)人: | 方震 | 申请(专利权)人: | 倍奥锐(北京)科技有限公司 |
主分类号: | G06F7/58 | 分类号: | G06F7/58 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100192 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 实现 随机数 产生 方法 | ||
技术领域
本发明涉及只使用软件的随机函数配合设备的上电时间的不可预测性生成真随机数的方法。
背景技术
真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而以往使用电子设备中程序的随机函数是按照一定算法模拟产生的,这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不真正地随机,因为它们实际上是可以依据函数的架构和程序的运行时间计算出来的,其结果是确定的,是可见的。我们可以认为这个可预见的结果其出现的概率是100%。所以以往使用软件随机函数所产生的“随机数”并不随机,是伪随机数。
通常目前真随机数的产生方法都是依赖与硬件电路来实现,这样无疑增加设备的设计复杂度和设备成本。
发明内容
有鉴于此,本发明提供一种软件实现的真随机数产生方法,以解决现有单纯使用软件只能生成伪随机数的问题。
本发明所提供的一种真随机数产生方法的具体方案如下:
设备第一次上电时,电子设备的程序调用存储模块中的初始随机种子,随机函数使用该随机种子产生一个伪随机数,并将该伪随机数写入存储模块,之后程序每循环一次,生成一个伪随机数,并写入存储模块;其中程序循环的周期都是毫秒级别的,所以每次设备的上电时间内,随机函数可以生成很多次随机数。最后设备断电后,因设备上电至设备断电的时间不可预知性,最终生成的随机数是无法预知的。当设备第二次上电时即调用上次设备生成的无法预知的随机数作为随机种子,即可生成真随机数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的真随机数生成方法的示意图;
图2为本发明所提供的真随机数生成方法的结构示意图;
图3为本发明所提供的真随机数生成方法的流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
申请人经研究发现,通过软件方式生成的随机数,都是通过一个固定的,可以重复的方法根据一个随机种子生成一个随机数,因此以往软件生成的随机数都称为伪随机数,其结果是确定的,是可预见的。当然如果随机种子是一个真随机数,那以此随机种子所生成的随机数,也是一个真随机数。但是电子设备的一致性导致它每次上电后所获取随机种子也只能通过固定的算法从固定的位置提取出来,所以随机种子也是确定。因此以往单靠软件不能生成的真随机数。
为了解决上述问题,本发明提供了一种软件实现的真随机数产生方法,该方法包括随机函数、循环模块、存储模块和随机种子
随机函数用于生成伪随机数,存储模块用来存储随机函数经过循环模块后生成的随机数,并将此随机数作为下次上电随机函数的随机种子。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于倍奥锐(北京)科技有限公司,未经倍奥锐(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010603005.5/2.html,转载请声明来源钻瓜专利网。