CN102063285A - 一种软件实现的真随机数产生方法 - Google Patents
一种软件实现的真随机数产生方法 Download PDFInfo
- Publication number
- CN102063285A CN102063285A CN2010106030055A CN201010603005A CN102063285A CN 102063285 A CN102063285 A CN 102063285A CN 2010106030055 A CN2010106030055 A CN 2010106030055A CN 201010603005 A CN201010603005 A CN 201010603005A CN 102063285 A CN102063285 A CN 102063285A
- Authority
- CN
- China
- Prior art keywords
- random
- random number
- function
- seed
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件实现的真随机数产生方法。它包括伪随机数产生模块,循环模块,存储模块。伪随机数模块根据存储模块里的存储的随机种子生成伪随机数;循环模块通过软件循环不停的利用伪随机数产生新的伪随机数;存储模块用于定期保存循环模块产生的随机数。因为电子设备在出厂检测、用户使用过程中上电时间不确定性,可使设备在使用若干次即可生成真随机数。
Description
技术领域
本发明涉及只使用软件的随机函数配合设备的上电时间的不可预测性生成真随机数的方法。
背景技术
真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而以往使用电子设备中程序的随机函数是按照一定算法模拟产生的,这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。它们不真正地随机,因为它们实际上是可以依据函数的架构和程序的运行时间计算出来的,其结果是确定的,是可见的。我们可以认为这个可预见的结果其出现的概率是100%。所以以往使用软件随机函数所产生的“随机数”并不随机,是伪随机数。
通常目前真随机数的产生方法都是依赖与硬件电路来实现,这样无疑增加设备的设计复杂度和设备成本。
发明内容
有鉴于此,本发明提供一种软件实现的真随机数产生方法,以解决现有单纯使用软件只能生成伪随机数的问题。
本发明所提供的一种真随机数产生方法的具体方案如下:
设备第一次上电时,电子设备的程序调用存储模块中的初始随机种子,随机函数使用该随机种子产生一个伪随机数,并将该伪随机数写入存储模块,之后程序每循环一次,生成一个伪随机数,并写入存储模块;其中程序循环的周期都是毫秒级别的,所以每次设备的上电时间内,随机函数可以生成很多次随机数。最后设备断电后,因设备上电至设备断电的时间不可预知性,最终生成的随机数是无法预知的。当设备第二次上电时即调用上次设备生成的无法预知的随机数作为随机种子,即可生成真随机数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的真随机数生成方法的示意图;
图2为本发明所提供的真随机数生成方法的结构示意图;
图3为本发明所提供的真随机数生成方法的流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
申请人经研究发现,通过软件方式生成的随机数,都是通过一个固定的,可以重复的方法根据一个随机种子生成一个随机数,因此以往软件生成的随机数都称为伪随机数,其结果是确定的,是可预见的。当然如果随机种子是一个真随机数,那以此随机种子所生成的随机数,也是一个真随机数。但是电子设备的一致性导致它每次上电后所获取随机种子也只能通过固定的算法从固定的位置提取出来,所以随机种子也是确定。因此以往单靠软件不能生成的真随机数。
为了解决上述问题,本发明提供了一种软件实现的真随机数产生方法,该方法包括随机函数、循环模块、存储模块和随机种子
随机函数用于生成伪随机数,存储模块用来存储随机函数经过循环模块后生成的随机数,并将此随机数作为下次上电随机函数的随机种子。
本发明实施例所提供的随机数生成系统中各个模块之间关系示意图如图1所示,当设备上电开始运行时,随机函数从存储模块中提取随机种子,依据此随机种子生成随机数,通过循环模块后,随机函数再次生成随机数,并将此随机数写入存储模块,替换之前的随机种子,以此类推。若干次循环后,设备断电了,这是存储模块中的随机种子也被替换了若干次。最终的替换的随机种子即作为下次上电的随机种子。例如:设备第一次上电时,存储模块中预存的随机种子为N1,随机函数上电后提取N1作为初始的随机种子,生成随机数N2,N2和N1之间的关系是特定的,即通过N1可以推导出N2的值;软件经过一次循环后随机函数又生成一个随机数N3,此时存储模块将原先的初始的随机种子N1替换为N3,N3依旧是一个可依据N1推导预见的一个随机数;以此类推,软件循环若干次后,设备断电,在断电前的一次程序循环随机函数生成了随机数Nm,存储模块将其存储的随机种子替换为了Nm。因设备是首次上电,初始随机种子是固定的N1,故此次设备运行过程中某一时刻所生成的随机数都是可预见,可推导出的。但是由于设备的运行时间是不可控的,且设备运行时间是软件循环所需时间至少上万倍的差距,因此对于设备第二次上电时,随机函数从存储模块中所提取的随机种子Nm来说就是一个不可预见的数值,即真随机数。而从设备第二次上电以后,都会已Nm这个真随机数来产生随机数,因随机种子是不可预见的,故之后生成的随机数也是不可预见推导的,即此时生成的岁数为真随机数。
应用上述技术方案,有效的利用了设备上电工作时间的不可预见性生成真随机数。与现有技术相比,解决了纯软件申城随机数因随机种子固定而只能生成伪随机数的问题。
请参阅图2,图2为本发明实施例提供的视频转接设备的结构示意图。该视频转接设备包括:提取装置10、生成装置11、循环装置13和写入装置14。其中:
提取装置10,用于从存储模块中提出随机种子;
生成装置11,用于通过随机函数生成随机数;
循环装置12,用于在设备上电期间不停生成随机数;
写入装置13,用于将生成装置生成的随机数写入存储模块。
本发明中的提取装置和写入装置都是通过程序运行的处理器对存储模块进行操作,生成装置是由设备程序中的随机函数完成,循环装置是有设备中的各种功能模块运行完成。
应用以上的技术方案,利用设备上电时间不可预见性,循环装置运行次数的不可预见性,生成一个不可预见的随机种子,再通过随机函数即可生成真随机数。
图3是本发明实施例所提供的一种软件生成真随机数的方法,该方法用于上述真随机数生成系统中,该方法的具体步骤如下,包括:
S101:设备上电;
S102:从存储模块中提取随机种子;
S103:随机函数依据随机种子第一次生成随机数。
S104:存储模块将原有随机种子用此随机数替代
S105:软件循环1次
S106:随机函数依据随机种子第二次生成随机数
S107:存储模块将原有随机种子用此随机数替代
S108:软件循环n次
S109:随机函数依据随机种子第n次生成随机数
S110:存储模块将原有随机种子用此随机数替代
S111:软件循环过程中设备断电
应用上述技术方案,电子设备依据设备上电运行的不可预知性来控制软件软件循环次数n,随机函数依据这个不可预知的循环次数n生成不可预知的随机数,并将次随机数作为下次上电设备初始的随机种子。与现有技术相比,解决了现有软件生成随机数的技术每次上电都只能使用可预见可推导的随机种子,无法生成真随机数的问题。
应用上述技术方案,保证在设备第二次上电之后能够生成无法预知的真随机数。
本说明书中对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。存储模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种通过软件和设备上电时间生成真随机数的方法,包括随机函数、程序循环和存储模块,其特征在于:随机函数调用存储模块中的随机种子来生成随机数,并通过程序循环不停的生成随机数并更新存储模块中的随机种子,存储中的最新的随机种子将作为下次上电后随机函数新的随机种子。
2.根据权利要求1所述的随机函数,其特征在于,可以依据随机种子生成随机数的软件函数,在已知随机种子的情况下其结果是可见的。
3.根据权利要求2所述的随机函数,其特征还在于,可以依据随机种子不停的循环生成新的随机数,且每次生成的随机数不同,但从起初算起,相同循环次数所生成的随机数结果是相同的。
4.根据权利要求1所述的存储模块,其特征在于,能够根据随机函数新生成的随机数,进行更新,同时能够在设备上电时为随机函数提供随机种子。
5.根据权利要求1所述的程序循环,其特征在于,整个电子设备软件随机函数运行的其他函数运行的过程,可以认为随机函数可以是其他函数运行一次即生成一次密码,也可其他函数运行多次生成一次密码。
6.根据权利要求5所诉的程序循环,其特征还在于,此程序循环并非特定的为生成随机数而作的循环,此程序循环是电子设备正常运行中必要的程序运行动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106030055A CN102063285A (zh) | 2010-12-24 | 2010-12-24 | 一种软件实现的真随机数产生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106030055A CN102063285A (zh) | 2010-12-24 | 2010-12-24 | 一种软件实现的真随机数产生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102063285A true CN102063285A (zh) | 2011-05-18 |
Family
ID=43998577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106030055A Pending CN102063285A (zh) | 2010-12-24 | 2010-12-24 | 一种软件实现的真随机数产生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063285A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399726A (zh) * | 2013-07-15 | 2013-11-20 | 哈尔滨工程大学 | 一种流水线化的组合式伪随机数发生器 |
CN103530086A (zh) * | 2013-09-26 | 2014-01-22 | 福建升腾资讯有限公司 | 一种分散机制的软件随机数生成方法 |
WO2014040538A1 (en) * | 2012-09-13 | 2014-03-20 | Tencent Technology (Shenzhen) Company Limited | Display control method and device |
CN104699451A (zh) * | 2015-03-30 | 2015-06-10 | 河海大学 | 真随机数生成方法 |
US9300736B2 (en) | 2012-09-13 | 2016-03-29 | Tencent Technology (Shenzhen) Company Limited | Display control method and device |
CN105824602A (zh) * | 2014-12-16 | 2016-08-03 | 新唐科技股份有限公司 | 输入-相依随机数产生装置及其方法 |
CN106469042A (zh) * | 2015-08-19 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法和装置 |
CN106951184A (zh) * | 2017-02-28 | 2017-07-14 | 惠州华阳通用电子有限公司 | 一种蓝牙地址生成方法 |
CN107017981A (zh) * | 2015-12-07 | 2017-08-04 | 波音公司 | 硬件辅助快速伪随机数生成 |
CN104699451B (zh) * | 2015-03-30 | 2018-02-09 | 河海大学 | 真随机数生成方法 |
CN109634560A (zh) * | 2018-12-13 | 2019-04-16 | 泰康保险集团股份有限公司 | 随机数生成方法、装置及存储介质 |
CN110928523A (zh) * | 2019-12-04 | 2020-03-27 | 中体彩科技发展有限公司 | 用于彩票行业的随机数获取方法及系统 |
CN111596892A (zh) * | 2020-05-11 | 2020-08-28 | 南京西觉硕信息科技有限公司 | 一种软随机数发生方法及发生器 |
CN111708762A (zh) * | 2020-06-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 一种权限认证方法、装置及服务端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851637A (zh) * | 2006-05-26 | 2006-10-25 | 北京中星微电子有限公司 | 产生随机数的装置及方法 |
-
2010
- 2010-12-24 CN CN2010106030055A patent/CN102063285A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851637A (zh) * | 2006-05-26 | 2006-10-25 | 北京中星微电子有限公司 | 产生随机数的装置及方法 |
Non-Patent Citations (2)
Title |
---|
梁云杰等: ""一种软件生成真随机数的算法研究"", 《电脑开发与应用》, vol. 2008, no. 06, 5 June 2008 (2008-06-05), pages 38 - 40 * |
王霞俊: ""C语言中随机函数的分析与使用"", 《农业网络信息》, vol. 2008, no. 1, 26 January 2008 (2008-01-26), pages 120 - 121 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014040538A1 (en) * | 2012-09-13 | 2014-03-20 | Tencent Technology (Shenzhen) Company Limited | Display control method and device |
US9300736B2 (en) | 2012-09-13 | 2016-03-29 | Tencent Technology (Shenzhen) Company Limited | Display control method and device |
CN103399726B (zh) * | 2013-07-15 | 2017-02-01 | 哈尔滨工程大学 | 一种流水线化的组合式伪随机数发生器 |
CN103399726A (zh) * | 2013-07-15 | 2013-11-20 | 哈尔滨工程大学 | 一种流水线化的组合式伪随机数发生器 |
CN103530086A (zh) * | 2013-09-26 | 2014-01-22 | 福建升腾资讯有限公司 | 一种分散机制的软件随机数生成方法 |
CN103530086B (zh) * | 2013-09-26 | 2017-01-18 | 福建升腾资讯有限公司 | 一种分散机制的软件随机数生成方法 |
CN105824602B (zh) * | 2014-12-16 | 2019-03-12 | 新唐科技股份有限公司 | 输入-相依随机数产生装置及其方法 |
CN105824602A (zh) * | 2014-12-16 | 2016-08-03 | 新唐科技股份有限公司 | 输入-相依随机数产生装置及其方法 |
CN104699451A (zh) * | 2015-03-30 | 2015-06-10 | 河海大学 | 真随机数生成方法 |
CN104699451B (zh) * | 2015-03-30 | 2018-02-09 | 河海大学 | 真随机数生成方法 |
CN106469042A (zh) * | 2015-08-19 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法和装置 |
CN106469042B (zh) * | 2015-08-19 | 2019-05-28 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法和装置 |
CN107017981A (zh) * | 2015-12-07 | 2017-08-04 | 波音公司 | 硬件辅助快速伪随机数生成 |
CN107017981B (zh) * | 2015-12-07 | 2021-07-13 | 波音公司 | 硬件辅助快速伪随机数生成 |
CN106951184A (zh) * | 2017-02-28 | 2017-07-14 | 惠州华阳通用电子有限公司 | 一种蓝牙地址生成方法 |
CN109634560A (zh) * | 2018-12-13 | 2019-04-16 | 泰康保险集团股份有限公司 | 随机数生成方法、装置及存储介质 |
CN109634560B (zh) * | 2018-12-13 | 2020-09-22 | 泰康保险集团股份有限公司 | 随机数生成方法、装置及存储介质 |
CN110928523A (zh) * | 2019-12-04 | 2020-03-27 | 中体彩科技发展有限公司 | 用于彩票行业的随机数获取方法及系统 |
CN110928523B (zh) * | 2019-12-04 | 2021-11-19 | 中体彩科技发展有限公司 | 用于彩票行业的随机数获取方法及系统 |
CN111596892A (zh) * | 2020-05-11 | 2020-08-28 | 南京西觉硕信息科技有限公司 | 一种软随机数发生方法及发生器 |
CN111596892B (zh) * | 2020-05-11 | 2023-06-23 | 南京西觉硕信息科技有限公司 | 一种软随机数发生方法及发生器 |
CN111708762A (zh) * | 2020-06-18 | 2020-09-25 | 北京金山云网络技术有限公司 | 一种权限认证方法、装置及服务端设备 |
CN111708762B (zh) * | 2020-06-18 | 2023-09-01 | 北京金山云网络技术有限公司 | 一种权限认证方法、装置及服务端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063285A (zh) | 一种软件实现的真随机数产生方法 | |
CN102880398B (zh) | 一种基于随机数字阵列的手机解锁方法及手机 | |
CN104461486B (zh) | 一种网页页面中动画效果实现的方法、装置及系统 | |
CN108804697A (zh) | 基于Spark的数据同步方法、装置、计算机设备和存储介质 | |
CN104461743A (zh) | 资源和配置的自动生成装置和方法 | |
JP6696699B2 (ja) | 電力制御装置、電力制御方法及び電力制御プログラム | |
CN101783731B (zh) | 动态口令的显示方法及动态令牌 | |
CN106462483A (zh) | 具有持久性存储器存储装置的固件接口 | |
CN104820566A (zh) | 小型智能触摸终端返回主屏幕的方法及装置 | |
US20130318139A1 (en) | Random number generation method and apparatus using low-power microprocessor | |
CN106789202A (zh) | 业务管理装置及方法 | |
CN110069260A (zh) | 跨版本的分布式管理方法、装置、设备及存储介质 | |
CN103164659A (zh) | 一种实现数据存储安全性的方法和电子设备 | |
CN103984574A (zh) | 一种网站升级方法及系统 | |
CN109614153A (zh) | 多核芯片及系统 | |
CN109086090A (zh) | 一种服务器bmc配置的方法、装置、设备及存储介质 | |
Rastgou et al. | Flexible and robust distribution network expansion planning in the presence of distributed generators | |
CN104679493A (zh) | 一种流程化的事件处理机制的改进方法 | |
CN109426532A (zh) | 安卓系统中衔接页面的方法、装置及电子设备 | |
CN106708431A (zh) | 一种存储数据的方法、装置、主机设备和存储设备 | |
CN103324572A (zh) | 电力二次系统的操作系统性能测试方法及装置 | |
CN106874290A (zh) | 一种数据清洗方法及设备 | |
CN102222109A (zh) | 数据处理装置和数据处理方法 | |
Manaz et al. | Adaptive defense plan against anticipated islanding of microgrid | |
Raj et al. | Analysis of unit commitment problem through Lagrange relaxation and priority listing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 200065 Shanghai city traffic road No. 1565 building 11 floor of the south. Applicant after: Peoriv Technology Co., Ltd. Address before: 100192, B, Yongtai Innovation Park, No. 25 Yongtai Road, Beijing, Haidian District, 132, Zhongguancun Applicant before: Peoriv Technology Co., Ltd. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110518 |