CN102375722B - 一种真随机数生成方法及发生器 - Google Patents

一种真随机数生成方法及发生器 Download PDF

Info

Publication number
CN102375722B
CN102375722B CN201010253543.6A CN201010253543A CN102375722B CN 102375722 B CN102375722 B CN 102375722B CN 201010253543 A CN201010253543 A CN 201010253543A CN 102375722 B CN102375722 B CN 102375722B
Authority
CN
China
Prior art keywords
random number
true random
sampling
output signals
xor
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.)
Expired - Fee Related
Application number
CN201010253543.6A
Other languages
English (en)
Other versions
CN102375722A (zh
Inventor
王坚
张鸿飞
崔珂
高原
梁昊
金革
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201010253543.6A priority Critical patent/CN102375722B/zh
Publication of CN102375722A publication Critical patent/CN102375722A/zh
Application granted granted Critical
Publication of CN102375722B publication Critical patent/CN102375722B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Lock And Its Accessories (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

本发明公开了一种真随机数生成方法及发生器,包括:利用多个独立的高频振荡环产生多路输出信号;从所述多路输出信号中选择采样时钟信号,分别采样其他路输出信号;将所述采样结果进行异或,得到真随机数组。本发明实施例公开的真随机数生成方法,采用多个独立工作的高频振荡环产生多路输出信号,选择其中输出信号作为采样时钟信号,对其他的输出信号进行采样的方式获得真随机数,增加了随机数的随机性,不需要利用现有技术中的上百组振荡器,简化了系统结构和复杂度,并且易于实现。

Description

一种真随机数生成方法及发生器
技术领域
本发明涉及加密技术领域,尤其涉及一种真随机数生成方法及发生器。
背景技术
在密码学的各种应用的中,随机数更是必不可少的。随机数最重要的特性是它在产生时,后一个产生的数与前一个产生的数毫无关系。通常采用一个固定的、可以重复的计算方法产生随机数,这种人为得到的随机数被称为伪随机数。但是在一些加密系统的应用中,已经证明有很多途径可以攻击用伪随机数加密的系统,所以必须使用真随机数,才能保证系统的安全。
现有技术中通常利用电子元件噪声引起的数字逻辑中的随机晃动来产生真随机数,其中应用最为广泛的是振荡器采样法,通常使用独立工作的高频振荡器进行异或采样,但是必须要上百组的振荡器进行异或才能得到随机性较好的随机数,占用较大的资源。
发明内容
有鉴于此,本发明提供一种真随机数生成方法及发生器,其具体方案如下所述:
一种真随机数生成方法,包括:
利用多个独立的高频振荡环产生多路输出信号;
从所述多路输出信号中选择采样时钟信号,分别采样其他路输出信号;
将所述采样结果进行异或,得到真随机数组。
优选的,还包括:利用固定频率时钟对所述真随机数组进行采样。
优选的,还包括:对所述真随机数组进行纠偏后处理。
优选的,采用循环编码的基于异或的后处理方法对所述固定频率采样后的真随机数组进行纠偏后处理。
一种真随机数发生器,包括:高频振荡环组、第一采样器和异或模块,其中:
所述高频振荡组内包含多个环独立工作的高频振荡环,用于产生多路输出信号;
所述第一采样器用于,利用所述从多路输出信号中选择采样时钟信号,分别采样其他路输出信号;
所述异或模块用于,将所述采样结果进行异或,得到真随机数组。
优选的,还包括第二采样器,用于利用固定频率时钟对所述真随机数组进行采样。
优选的,还包括:纠偏后处理模块,用于对所述固定频率时钟采样后的真随机数组进行纠偏后处理。
优选的,所述振荡环由依次串接的奇数个反相器和一个与门构成。
优选的,所述第一采样器包括与所述被采样的其他路输出信号数量相同的子采样器,分别针对每一路输出信号进行采样。
优选的,所述子采样器包括:计数器和两个D触发器,所述采样时钟与所述计数器和第一D触发器的时钟信号端相连,被采样输出信号与所述第一D触发器的输入端相连,所述第一D触发器的输出与第二D触发器的时钟信号端相连,所述计数器的输出与所述第二D触发器的输入端相连。
本发明实施例公开的真随机数生成方法,采用多个独立工作的高频振荡环产生多路输出信号,选择其中输出信号作为采样时钟信号,对其他的输出信号进行采样的方式获得真随机数,增加了随机数的随机性,不需要利用现有技术中的上百组振荡器,简化了系统结构和复杂度,并且易于实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1公开的真随机数生成方法流程图;
图2为本发明实施例2公开的真随机数生成方法流程图;
图3为本发明实施例3公开的真随机数生成方法流程图;
图4为本发明公开的真随机数发生器结构示意图;
图5为本发明公开的振荡环结构示意图;
图6为本发明公开的振荡环与子采样器的连接结构示意图;
图7为本发明公开的子采样器的结构示意图;
图8为采样过程中波形示意图;
图9为纠偏后处理模块结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种真随机数的生成方法,采用多个独立工作的高频振荡环产生多路输出信号,选择其中输出信号作为采样时钟信号,对其他的输出信号进行采样的方式获得真随机数,增加了随机数的随机性,同时简化了系统的结构。
该方法可以基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现,也可以使用单立电子元器件来实现。只是采用在FPGA中实现的方式会更方便的实现,并且易于扩展。
其具体的实现方式如下所述:
实施例一
本发明实施例1公开的真随机数生成方法的流程如图1所示,包括:
步骤S11、利用多个独立的高频振荡环产生多路输出信号;
振荡环本身的晃动是由于电子的热噪声引起的,具有随机性。使用频率接近的振荡环可以很容易地将这种随机性采样出来,因此本实施例中采用频率非常接近的振荡环产生多路输出信号。同样也可以选用其他频率的振荡环。
步骤S12、从所述多路输出信号中选择采样时钟信号,分别采样其他路输出信号;
从多路输出信号中选择一路或者多路信号作为采样时钟信号,分别对其他路输出信号进行采样。
步骤S13、将所述采样结果进行异或,得到真随机数组。
将采样得到的结果进行异或,得到一组真随机数,作为真随机数组。
本实施例公开的真随机数生成方法,采用利用多路输出信号中的一路或者多路采样其他路输出信号的方式,增加了输出信号的随机性,获得了随机性较好的真随机数。
本实施例中,可以根据实际情况设定采样时钟信号为一路或者多路,采样时钟越多,采样次数越多,真随机数的性能就越好,但是,其耗费的时间也就越多。所以,可以根据实际情况设定采样信号的路数,采样的次数,已达到最佳效果。
实施例二
本实施例公开的真随机数生成方法的流程如图2所示,包括:
步骤S21、利用多个独立的频率非常接近的高频振荡环产生多路输出信号;
步骤S22、从所述多路输出信号中选择一或多路作为采样时钟,分别采样其他路输出信号;
步骤S23、将所述采样结果进行异或,得到真随机数组;
步骤S24、利用固定频率时钟对所述真随机数组进行采样。
本实施例中加入了对真随机数组进行固定频率时钟采样的过程,通过该过程可以实现从真随机数中按照一定的频率选择出真随机数用于后续处理。
实施例三
本实施例公开的真随机数生成方法的流程如图3所示,包括:
步骤S31、利用多个独立的频率非常接近的高频振荡环产生多路输出信号;
步骤S32、从所述多路输出信号中选择一或多路作为采样时钟,分别采样其他路输出信号;
步骤S33、将所述采样结果进行异或,得到真随机数组;
步骤S34、利用固定频率时钟对所述真随机数组进行采样;
步骤S35、采用循环编码的基于异或的后处理方法对所述固定频率采样后的真随机数组进行纠偏后处理。
由于经过固定频率采样后产生的随机数往往具有偏置的特性,所以本实施例公开的真随机数产生方法中,增加了对采样后的真随机数进行纠偏后处理的步骤,对原始随机数序列进行纠偏后处理。本实施例中并不限定采用循环编码的基于异或的后处理方法对数据进行纠偏后处理,同样也可以采用基于异或的纠偏处理方法,或者其他的纠偏处理方法,只是相对于基于异或的处理方法,本实施例中使用的采用循环编码的基于异或的后处理方法具有更好的纠偏效果和更高的处理速率。
同时,本发明公开了一种真随机数发生器,其结构如图4所示,包括:高频振荡环组41、第一采样器42和异或模块43,其中:
所述高频振荡环组41内包含多个频率非常接近的高频振荡环,每个振荡环独立工作,产生多路输出信号;所述第一采样器42用于,利用所述从多路输出信号中选择采样时钟信号,分别采样其他路输出信号;所述异或模块43用于,将所述采样结果进行异或,得到真随机数组。
此外,还包括:第二采样器44,用于利用固定频率时钟对所述真随机数组进行采样;纠偏后处理模块45,用于对所述固定频率时钟采样后的真随机数组进行纠偏后处理。其中,纠偏后处理模块45可以为采用循环编码的基于异或的后处理方法对数据进行纠偏后处理的处理器,也可以为采用基于异或的处理方法对数据进行纠偏后处理的处理器。
上述各个模块的工作过程如上述实施例所述,在此不再赘述。
本发明公开的真随机数发生器的实现方式有多种,下面就其以FPGA为基础实现的方式进行详细说明。
真随机数中振荡环利用FPGA中具有一定的延时功能的反相器来完成,这些反相器的延时很接近,但是又不完全相同,所以在FPGA中要完成频率接近的振荡环,只需要把相同的振荡环在不同的位置实现即可,具体的振荡环的结构如图5所示,包括依次串接的奇数个反相器51、一个与门52和使能端53。使能端53和与门52的一个输入端相连,与门52的输出端与第一个反相器的输入端相连,最后一个反相器的输出端作为输出信号的端口,同时将信号返回给与门52的另一个输入端。每个振荡环的反相器个数相同,并进行手动布线,使得相邻的反相器在相邻的位置上且不同振荡环之间的频率差异细微,在系统使能端53给出使能信号之后,振荡环开始工作。由于振荡环是利用数字电路中时钟信号存在的抖动现象来产生随机信号,而时钟的抖动是由于电子的热噪声引起的,因此其产生的随机数为真随机数。振荡环的个数和长度可以根据实际情况来设定,可以选用11个反相器连接成一个振荡环,选用四个振荡环产生输出信号。当然也可以为其他组合,只是振荡环长度为11,个数为的4的情况下,其得到的随机数的随机性能较好。
为了增强随机性,第一采样器采用一路振荡环同时采样多路振荡环的方式,第一采样器包括多个子采样器,每一个子采样器分别与其对应的振荡环相连,其结构图如图6所示,包括振荡环组61和子采样器组62,子采样器的数量比振荡环的个数少1,分别根据从所述第n个振荡环的输出信号分别对其他n-1路输出信号进行采样。每一个子采样器的结构如图7所示,包括:第一D触发器71、第二D触发器72和计数器73。其中,第n路振荡环的输出信号作为采样时钟74与所述计数器73和第一D触发器71的时钟信号端相连,与该子采样器对应的被采样的振荡环的输出信号75与所述第一D触发器71的输入端相连,所述第一D触发器71的输出端与第二D触发器72的时钟信号端C相连,所述计数器73的输出端与所述第二D触发器72的输入端D相连。其采样过程中的波形图如图8所示。
通过FPGA中的异或门,如图6中异或门63所示,对采样后得到的数据进行异或处理,得到真随机数组。
第二采样器的具体实现时,其时钟信号为一固定频率的信号,根据此信号,从真随机数组中选取真随机数。
纠偏后处理模块可以利用多个移位寄存器实现,其结构如图9所示,图中从第二移位寄存器开始,前一个的输出端与下一个的输入依次相连,采样时钟分别与每一个移位寄存器的时钟端相连,然后根据需要,分别引出不同位置移位寄存器的输出进行异或,得到不同的纠偏效果。通过纠偏处理后的数据位最终的真随机数序列。
本发明公开的真随机数发生器,结构简单,只需要较少的振荡环就可以产生随机性高的真随机数,而且其产生速率也较高。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种真随机数生成方法,其特征在于,包括:
利用多个独立的高频振荡环产生多路输出信号;
从所述多路输出信号中选择采样时钟信号,分别采样其他路输出信号;
将所述采样结果进行异或,得到真随机数组;
所述高频振荡环结构包括:依次串接的奇数个反相器、一个与门和使能端。
2.根据权利要求1所述的方法,其特征在于,还包括:
利用固定频率时钟对所述真随机数组进行采样。
3.根据权利要求2所述的方法,其特征在于,还包括:
对所述真随机数组进行纠偏后处理。
4.根据权利要求3所述的方法,其特征在于,采用循环编码的基于异或的后处理方法对所述固定频率采样后的真随机数组进行纠偏后处理。
5.一种真随机数发生器,其特征在于,包括:高频振荡环组、第一采样器和异或模块,其中:
所述高频振荡环组内包含多个环独立工作的高频振荡环,用于产生多路输出信号,所述高频振荡环结构包括:依次串接的奇数个反相器、一个与门和使能端;
所述第一采样器用于,利用所述从多路输出信号中选择采样时钟信号,分别采样其他路输出信号;
所述异或模块用于,将所述采样结果进行异或,得到真随机数组。
6.根据权利要求5所述的发生器,其特征在于,还包括第二采样器,用于利用固定频率时钟对所述真随机数组进行采样。
7.根据权利要求6所述的发生器,其特征在于,还包括:纠偏后处理模块,用于对所述固定频率时钟采样后的真随机数组进行纠偏后处理。
8.根据权利要求5所述的发生器,其特征在于,所述振荡环由依次串接的奇数个反相器和一个与门构成。
9.根据权利要求5所述的发生器,其特征在于,所述第一采样器包括与所述被采样的其他路输出信号数量相同的子采样器,分别针对每一路输出信号进行采样。
10.根据权利要求9所述的发生器,其特征在于,所述子采样器包括:计数器和两个D触发器,所述采样时钟与所述计数器和第一D触发器的时钟信号端相连,被采样输出信号与所述第一D触发器的输入端相连,所述第一D触发器的输出与第二D触发器的时钟信号端相连,所述计数器的输出与所述第二D触发器的输入端相连。
CN201010253543.6A 2010-08-09 2010-08-09 一种真随机数生成方法及发生器 Expired - Fee Related CN102375722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010253543.6A CN102375722B (zh) 2010-08-09 2010-08-09 一种真随机数生成方法及发生器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010253543.6A CN102375722B (zh) 2010-08-09 2010-08-09 一种真随机数生成方法及发生器

Publications (2)

Publication Number Publication Date
CN102375722A CN102375722A (zh) 2012-03-14
CN102375722B true CN102375722B (zh) 2014-07-09

Family

ID=45794371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010253543.6A Expired - Fee Related CN102375722B (zh) 2010-08-09 2010-08-09 一种真随机数生成方法及发生器

Country Status (1)

Country Link
CN (1) CN102375722B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564954B1 (ko) * 2012-10-08 2015-11-02 에스케이 텔레콤주식회사 광원과 단일광자검출기를 이용한 난수 생성 방법 및 장치
CN102968290B (zh) * 2012-11-20 2015-08-26 华中科技大学 一种异构轻量级的真随机数产生器
CN104461452A (zh) * 2013-09-17 2015-03-25 航天信息股份有限公司 片上系统中生成真随机数的方法及装置
CN104133658A (zh) * 2014-07-29 2014-11-05 江苏宏云技术有限公司 一种片内真随机数生成器
CN105159653B (zh) * 2015-08-18 2018-03-20 珠海市一微半导体有限公司 随机数后处理电路及方法
SG11201806464PA (en) 2016-02-24 2018-08-30 Agency Science Tech & Res True random number generator and system comprising the same
CN105867877B (zh) * 2016-03-25 2018-08-03 中国科学技术大学 一种基于fpga的真随机数发生器
CN106293615B (zh) * 2016-08-12 2018-11-20 西安电子科技大学 基于全连网络的真随机数生成器
CN106201436B (zh) * 2016-08-12 2018-08-31 西安电子科技大学 基于双耦合斐波那契振荡环的真随机数生成器
CN106293616B (zh) * 2016-08-12 2018-11-20 西安电子科技大学 基于时延反馈振荡器的真随机数生成器
CN107769923B (zh) * 2016-08-23 2019-11-19 中国科学院声学研究所 一种基于cpu时钟和usb独立时钟的真随机数产生方法
CN106775583B (zh) * 2016-11-18 2019-03-05 杭州电子科技大学 一种高速真随机数的产生方法
CN106708471A (zh) * 2017-03-23 2017-05-24 成都为远信安电子科技有限公司 一种全数字逻辑电路实现的真随机数发生器
CN109656514B (zh) 2017-10-11 2023-08-15 华邦电子股份有限公司 随机数产生系统及其随机数产生方法
TWI634479B (zh) * 2017-10-11 2018-09-01 華邦電子股份有限公司 隨機數產生系統及其隨機數產生方法
CN109284084B (zh) * 2018-08-06 2023-03-21 温州大学 一种无电容耦合效应的真随机数发生器
CN111782179B (zh) * 2020-06-05 2023-09-01 上海赛昉科技有限公司 一种真随机数发生器
CN114115807A (zh) * 2020-08-31 2022-03-01 京东方科技集团股份有限公司 随机数生成器及随机数生成方法
CN112130810B (zh) * 2020-09-27 2022-11-11 山西大学 一种安全的高速随机数发生器及其结构优化方法
CN113760368A (zh) * 2021-09-10 2021-12-07 廊坊新奥智能科技有限公司 一种LoRaWAN设备的随机上报时间计算方法及系统
CN114281304A (zh) * 2022-01-12 2022-04-05 北京京东方技术开发有限公司 随机计算方法、电路、芯片及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174206A (ja) * 2003-12-15 2005-06-30 Sony Corp 真性乱数生成装置または真性乱数生成方法
CN101655779B (zh) * 2008-08-18 2012-04-18 中国科学院物理研究所 真随机数发生器
CN201327636Y (zh) * 2008-10-27 2009-10-14 张润捷 真随机数发生器
CN101510150B (zh) * 2009-03-24 2014-12-31 北京中星微电子有限公司 随机数产生装置

Also Published As

Publication number Publication date
CN102375722A (zh) 2012-03-14

Similar Documents

Publication Publication Date Title
CN102375722B (zh) 一种真随机数生成方法及发生器
WO2011086688A1 (ja) ビット列生成装置及びビット列生成方法
CN102968290B (zh) 一种异构轻量级的真随机数产生器
WO2012095972A1 (ja) ビット生成装置及びビット生成方法
CN101515228A (zh) 一种真随机数发生器
Wiemer et al. High-speed implementation of bcrypt password search using special-purpose hardware
US7151399B2 (en) System and method for generating multiple clock signals
Mei et al. A highly flexible lightweight and high speed true random number generator on FPGA
Hatai et al. A new high-performance digital FM modulator and demodulator for software-defined radio and its FPGA implementation
Azzaz et al. Real-time FPGA implementation of Lorenz's chaotic generator for ciphering telecommunications
JP2018112861A (ja) 乱数生成装置、集積回路
CN208999990U (zh) 真随机数发生器
CN105354008A (zh) 一种随机数生成器的输出电路及输出方法
CN111124363B (zh) 一种真随机数生成方法及真随机数发生器
KR101923012B1 (ko) 고속 프로그래밍 가능 클록 분할기
CN108833043B (zh) 基于Polar法改进的AWGN信道实现方法及装置
CN111078191A (zh) 一种基于fpga硬件实现的伪随机数的生成方法
Lv et al. Generating of a nonlinear pseudorandom sequence using linear feedback shift register
CN105322920A (zh) 乱数产生器及其乱数产生方法
Sadoudi et al. Real time hardware implementation of a new Duffing's chaotic attractor
US9564904B2 (en) Asynchronous high-speed programmable divider
CN116069295B (zh) 真随机数发生电路、方法及电子设备
Antoniadis et al. An efficient implementation of a delay-based PUF construction
CN111949242B (zh) 基于fpga的亚稳态真随机数发生器
Likhithashree et al. Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140709

Termination date: 20200809

CF01 Termination of patent right due to non-payment of annual fee