CN107038015A - 一种高速真随机数发生器 - Google Patents
一种高速真随机数发生器 Download PDFInfo
- Publication number
- CN107038015A CN107038015A CN201611019132.4A CN201611019132A CN107038015A CN 107038015 A CN107038015 A CN 107038015A CN 201611019132 A CN201611019132 A CN 201611019132A CN 107038015 A CN107038015 A CN 107038015A
- Authority
- CN
- China
- Prior art keywords
- random
- true random
- input
- phase inverter
- feedback loop
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
本发明公开了一种高速真随机数发生器,包括第一反馈环振真随机源、第二反馈环振真随机源和加密运算单元,所述第一反馈环振真随机源用于产生第一随机序列,所述第二反馈环振真随机源用于产生第二随机序列,所述加密运算单元以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出。与现有技术相比较,本发明仅由普通逻辑单元组成,极易系统集成;同时,采用加密的方式实现真随机数发生器,通过异或链和DES算法将生成随机数进行均衡校正实现两种环形振荡器产生随机数的组合,最终随机数生成速率达到400Mbit/s。
Description
技术领域
本发明涉及真随机数发生器领域,尤其涉及一种基于加密算法的真随机数发生器。
背景技术
真随机数发生器(TRNG)是信息加密设备中一个重要的组成部分,它产生的不可预知、不可再现的密钥数字串对信息加密有着重要的作用。从某种程度上讲,随机数的随机性和安全性决定了整个加密算法的性能和安全性。基于物理随机源的真随机数虽然在随机序列的长度、独立性等方面相比伪随机数发生器得到了突破性进展,但是其产生的真随机数序列的随机性不够稳定,随机数的质量不高,生成速率也较慢。因此,现有技术真随机数发生器研究的一个重要方向是基于振荡器采样实现真随机数发生器,利用CMOS环形振荡器中的相位噪声及相位抖动作为随机源,可以很方便的利用纯数字电路实现。早期的尝试中,Fisher、Kohlbrenner和Tkacik等人都是采用基于时钟信号抖动的方法,实现了随机数发生器,但是随机数的生成速率不高,通常小于1Mbit/s。随后,Sunar等人采用等长环形振荡器实现了输出速率为2.5Mbit/s的随机数发生器。速率低主要是由于半导体噪声、串扰以及其他不稳定因素需要积累到一定程度才能引起相位抖动,通过相位抖动引起每次采样时刻的不确定性,使输出序列具有随机性。参见图1,所示为现有技术环形振荡器的采样示意图,基于传统环振的真随机数发生器采样一般在产生相位抖动的地方进行,而从电路上电到发生相位抖动还需要经历过渡阶段、稳定振荡阶段以及噪声影响的积累阶段,实际采样中如果采样过快,则可能会因为噪声积累不够而造成随机数质量的降低,生成随机数相关性增大,降低最终随机数的随机性。为了保证随机性,每次相位抖动积累需要较长震荡时间,导致生成真随机数序列速度较慢。与此同时,噪声在一定环境下趋于稳定,导致了生成真随机数序列仍具有一定相关性。为了克服上述技术问题,现有技术通过在环形振荡器各个环路中增加多项式反馈环,通过反馈缩减相位抖动的积累时间,同时,在一定程度上也能够使序列相关性减弱。比如,Goli c'首先提出了Fibonacci环形振荡器(FIRO)和Galois(GARO)环形振荡器的概念,参见图2,所示为Fibonacci环形振荡器的结构框图,采用n个反相器连接成环形振荡器,每个反相器的输出端通过反馈环路反馈至第一个反相器的输入端;参见图3,所示为Galois环形振荡器的结构框图,采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端。进一步的,等人在Goli′c的基础上采用7个31级GARO与15级FIRO构成的熵源,经过冯诺依曼纠偏法后处理后,能够达到最高31.25Mbit/s的输出速率。但是,上述电路结构中相位抖动仍然需要相当的积累时间,导致序列速度提高有限;另外相位抖动比较小的时候输出频谱中可能会存在一个优势频率,这会导致输出序列具有相关性;同时采样频率的提高会造成序列偏置加剧,序列中0和1分布不均匀,导致随机数质量不佳。
故,针对目前现有技术中存在的上述缺陷,实有必要进行研究,以提供一种方案,解决现有技术中存在的缺陷。
发明内容
有鉴于此,确有必要提供一种高速真随机数发生器,能够提高随机数的输出速率且极大改善随机性,从而满足高速加密系统的应用需求。
为了克服现有技术的缺陷,本发明的技术方案如下:
一种高速真随机数发生器,包括第一反馈环振真随机源、第二反馈环振真随机源和加密运算单元,所述第一反馈环振真随机源用于产生第一随机序列,所述第二反馈环振真随机源用于产生第二随机序列,所述加密运算单元以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出;
所述第一反馈环振真随机源和所述第二反馈环振真随机源至少包括一个新型FIRO环形振荡器或新型GARO环形振荡器;
所述新型FIRO环形振荡器包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号;所述改进型FIRO环形振荡器采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态;
所述新型GARO环形振荡器包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号;所述改进型GARO环形振荡器采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
优选地,所述第一反馈环振真随机源采用多个新型FIRO环形振荡器异或输出;所述第二反馈环振真随机源采用多个新型GARO环形振荡器异或输出。
优选地,所述改进型FIRO环形振荡器和改进型GARO环形振荡器中,除第n反相器以外的其他反相器输出端的反馈环路中接入反馈开关(fi,i为1至n-1的自然数),采用本原多项式作为反馈多项式控制反馈开关。
优选地,所述第一反馈环振真随机源和所述第二反馈环振真随机源中,采用不同的本原多项式使所述第一随机序列和所述第二随机序列正交。
优选地,还包括异或链电路,所述第一反馈环振真随机源产生的第一随机序列和所述第二反馈环振真随机源产生的第二随机序列分别经所述异或链电路处理后再输出至所述加密运算单元。
优选地,所述异或链电路包括多个串接的D触发器,所述第一随机序列或第二随机序列串行输入至第一个D触发器,每个D触发器的输出端均与其下一级D触发器的输入端相连接,所述多个串接的D触发器通过一同步时钟信号控制每个D触发器同时输出信号并通过一异或门异或输出后作为所述异或链电路的输出。
优选地,所述加密运算单元为DES加密运算单元。
优选地,所述第一反馈环振真随机源采用9个新型FIRO环形振荡器异或输出;所述第二反馈环振真随机源采用9个新型GARO环形振荡器异或输出。
优选地,所述新型FIRO环形振荡器包括2路改进型FIRO环形振荡器。
优选地,所述新型GARO环形振荡器包括2路改进型GARO环形振荡器。
与现有技术相比较,本发明采用加密的方式实现真随机数发生器,它的熵源是在FIRO和GARO结构的基础上通过加入亚稳态控制电路,使振荡器的输出不断的在亚稳态与稳态之间转换,从而使熵源获得足够的熵值,并通过异或链和DES算法将生成随机数进行均衡校正实现两种环形振荡器产生随机数的组合,最终随机数生成速率达到400Mbit/s。
附图说明
图1为现有技术环形振荡器的采样示意图。
图2为Fibonacci环形振荡器(FIRO)的结构框图。
图3为Galois(GARO)环形振荡器的结构框图。
图4为高速真随机数发生器的结构框图。
图5为本发明提出的新型FIRO环形振荡器的电路原理图。
图6为改进型FIRO环形振荡器的电路原理图。
图7为本发明提出的新型GARO环形振荡器的电路原理图。
图8为改进型GARO环形振荡器的电路原理图。
图9为本发明采用的亚稳态子振环的结构框图。
图10为第一反馈环振真随机源和第二反馈环振真随机源一种实施方式的结构框图。
图11为本发明采用的异或链电路的原理框图。
图12为加密运算单元的的原理框图。
图13为本发明真随机数发生器的功能仿真图。
图14为最终输出信号的波形图。
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
以下将结合附图对本发明提供的一种高速真随机数发生器作进一步说明。
参见图4,所示为本发明高速真随机数发生器的结构框图,至少包括第一反馈环振真随机源、第二反馈环振真随机源和加密运算单元,第一反馈环振真随机源用于产生第一随机序列,第二反馈环振真随机源用于产生第二随机序列,加密运算单元以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出。图4中,第一反馈环振真随机源和第二反馈环振真随机源组成了熵源部分,异或链电路和加密运算单元组成了真随机数发生器的后处理单元,最终真随机数通过输出寄存器送至片上系统总线。本发明通过两路独立的熵源产生随机序列分别作为明文和密钥,利用加密算法来进一步提高生随机数的质量。
为了进一步提高经加密处理后序列的随机性,两路熵源采用不同的振荡器结构,第一反馈环振真随机源和第二反馈环振真随机源至少包括一个新型FIRO环形振荡器或新型GARO环形振荡器。
要实现一个高质量的真随机数发生器不仅要通过后处理单元提高随机数质量,同时还要提高熵源的品质。现有技术也提出了许多不同原理不同结构的熵源设计方案,比如图2和图3所示的Fibonacci环形振荡器(FIRO)和Galois(GARO)环形振荡器,其优点在于设计简单,仅需使用少量逻辑块,利用相对较少的资源就可输出很高熵值,并且能够在所有的FPGA家族或者在ASIC中实现;能够利用FPGA工具全自动综合。但是目前的实现方法中输出速率都相对较低,且输出频谱中可能会存在一个优势频率。针对上述技术缺陷,本发明从随机数生成速率的角度出发对上述电路进行了改进,提出了新型FIRO环形振荡器和新型GARO环形振荡器的电路结构。
参见图5,所示为本发明提出的新型FIRO环形振荡器的电路原理图,包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号。虽然图5的电路仅给出了两路改进型FIRO环形振荡器并接的情况,本领域普通技术人员应该能够明白该电路结构理论上能够扩充为任意路。
参见图6,所示为改进型FIRO环形振荡器的电路原理图,采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,二选一选择器的输出端与该反相器的输入端相连接,二选一选择器的第一输入端与该反相器的输出端相连接,二选一选择器的第二输入端与前级反相器的输出端相连接,二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
参见图7,所示为本发明提出的新型GARO环形振荡器的电路原理图,包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号。虽然图7的电路仅给出了两路改进型GARO环形振荡器并接的情况,本领域普通技术人员应该能够明白该电路结构理论上能够扩充为任意路。
参见图8,所示为改进型GARO环形振荡器的电路原理图,采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,二选一选择器的输出端与该反相器的输入端相连接,二选一选择器的第一输入端与该反相器的输出端相连接,二选一选择器的第二输入端与前级反相器的输出端相连接,二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
现有技术通常将随机数采样点设置相位抖动的地方,而忽略振荡器从起振到稳定振荡所要经历的另一个不确定的亚稳态状态,此时电路的输出将会取决于电路的噪声特性而变得具有真随机性。因此,亚稳态状态使一种理想的熵源,但是亚稳态状态稍纵即逝,只存在于起振阶段,进入稳定振荡之后就不会再出现。如图1所示,起振时从过渡阶段进入稳定振荡阶段时,由于起振阶段电路噪声的不确定性会进入亚稳态状态,从而使稳定振荡阶段的初识电平变得不确定。本发明图6和图8的电路结构中每个反相器增加了亚稳态子振环,通过控制信号使每次采样时都引入新的亚稳态状态,从而有效降低输出序列的相关性。
参见图9,所示亚稳态子振环的结构框图,当开关闭合后,它的输出将会逐渐收敛于亚稳定状态,并由于电路热噪声的影响,输出会在亚稳定状态细微的波动,而当开关断开后,由于反相器在非逻辑值范围有非常大的反馈系数,反相器的输出会快速的离开亚稳态区域进去稳态,但由于半导体热噪声的影响,最终反相器的输出是进入逻辑高电平还是低电平将会变得具有不确定性。
采用上述技术方案,就构成了能够不断在亚稳态和稳态之间转换的FIRO环振和GARO环振,这里称之为基于亚稳态的Fibonacci反馈环阵(MFIRO)和基于亚稳态的Galois反馈环阵(MGARO)。根据控制信号不同,环形振荡器会处于以下两种状态:当控制信号为低电平时,各反相器会从大环路断开,各子环振进入亚稳定状态;当控制信号变为高电平时,各反相器从子环振断开,接入大环振,同时它们会结束亚稳定状态,快速进入稳态。当电路从先前的亚稳态模式切换至稳态时,每一个反相器的输出值都由其随机噪声决定,环振的瞬时电压同样也是随机的,如此就产生了高熵值。在控制信号为高电平时,采样1bit随机数据,在采样完成后,此真随机数发生器熵源又进入亚稳态来收集新的随机性。因此对于整个过程,仅需要等待几个环振周期,相较于传统的利用环振抖动结构的发生器输出速率显著提高,同时,通过选择器将多个改进型环振组合在一起,每个改进型环振都能独立的工作,通过控制信号选择,每个时刻仅有一个改进型环振输出随机数,而其他改进型环振已经完成亚稳态积累,进一步消除了进入亚稳态的积累时间,至少可以保证在控制信号的高电平和低电平都采样,在控制信号频率相同的情况下,其输出信号频率至少提升了一倍以上。同时,由于采用多个改进型环振,每个改进型环振的积累时间各不相同,有些刚刚从亚稳态进入稳定振荡状态,有些则已经在稳定振荡状态运行一段时间完成了相位抖动积累,实际上只要改进型环振的数量足够多,能够保证较高随机数输出速率的同时让输出信号经历了两次随机过程,从而进一步提升了随机数的质量,能够完全消除两个随机数之间的相关性。
在一种优选实施方式中,第一反馈环振真随机源采用多个新型FIRO环形振荡器异或输出;第二反馈环振真随机源采用多个新型GARO环形振荡器异或输出。参见图10,所示为第一反馈环振真随机源和第二反馈环振真随机源一种实施方式的结构框图,采用9级反馈环振,每个反馈环振连接一个D触发器,通过采样信号控制D触发器采样反馈环振的振荡信号,每个D触发器的输出端均与异或门的输入端相连接,异或门输出端再经由D触发器同步后输出给后处理电路。由于第一反馈环振真随机源采用9个新型FIRO环形振荡器,第二反馈环振真随机源采用9个新型GARO环形振荡器,从而能够进一步改善随机序列的随机性。
为了避免一些极端的环境下,单一的环形振荡器的输出序列特征被暴露,在一种优选实施方式中,在改进型FIRO环形振荡器和改进型GARO环形振荡器中,除第n反相器以外的其他反相器输出端的反馈环路中接入反馈开关(fi,i为1至n-1的自然数),采用本原多项式作为反馈多项式控制反馈开关。
本原多项式的二进制系数决定着环形振荡器的反馈连接,规定当fi=1时反馈开关闭合,当fi=0时反馈开关断开,用二进制的多项式来表示为:
对于改进型FIRO环形振荡器,反馈多项式只有在满足以下条件时,它的输出才不会出现固定不变的状态:
f(x)=(1+x)h(x)且h(1)=1 (2)
即f(x)可以被1+x整除,但是h(x)不能被1+x整除,其中级数n(即反相器的个数)可以是奇数也可以是偶数,但是不能等于2。
而对于改进型GARO环形振荡器,只有在反馈多项式满足以下条件时,它的输出才不会出现固定不变的状态:
f(x)=(1+x)h(x) (3)
即f(x)可以被1+x整除,其中级数n只能是奇数。
如果反馈多项式h(x)是一个本原多项式,那么上述的条件都能得到满足,同时即使控制信号始终为高电平,生成的序列也将是一个周期长度为2n-2的伪随机序列。
随机源的随机性主要是由逻辑门的随机延时和传输时间引入,同时亚稳态结束后,由于各种内外部噪声的影响,例如热噪声、电压和温度不可预测的短期或者长期波动等,每个反相器的延迟与相位抖动实际上都不相同,这些反相器的输出很难会在同一时刻变化,会导致反馈到第一个反相器的信号很难预料,从而会使反馈信号出现竞争冒险,随机的延迟和转换时间导致环形振荡器信号变得不规则,使得输出信号最终具备真随机和伪随机特性。
进一步的,第一反馈环振真随机源和第二反馈环振真随机源中,采用不同的本原多项式使第一随机序列和第二随机序列正交。采用不同本原多项式作为反馈多项式的Fibonacci环形振荡器和Galois环形振荡器输出序列是正交的[,因此他们中的任何一个都可作为原始数据或密钥输入。
实际设计中为了进一步增加熵源随机性,第一反馈环振真随机源和第二反馈环振真随机源均采用9级反馈环形振荡器,每级反馈环形振荡器都采用不同的本原多项式组合,具体见表1。
表1本原多项式表
实际电路中,由于电路内外部各种噪声影响,随机源输出的随机位不可能如理想情况那样,‘0’和‘1’等概率出现,输出序列的分布可能不能满足要求,影响最终结果的统计特性,因此必须采取后处理电路对数据进行消偏处理。
为了克服上述技术缺陷,本发明高速真随机数发生器还包括异或链电路,第一反馈环振真随机源产生的第一随机序列和第二反馈环振真随机源产生的第二随机序列分别经异或链电路处理后再输出至加密运算单元。
参见图11,所示为本发明采用的异或链电路的原理框图,包括多个串接的D触发器,第一随机序列或第二随机序列串行输入至第一个D触发器,每个D触发器的输出端均与其下一级D触发器的输入端相连接,多个串接的D触发器通过一同步时钟信号控制每个D触发器同时输出信号并通过一异或门异或输出后作为异或链电路的输出。
上述异或链电路的原理如下:假设输入随机序列中1出现的概率为P,0出现的概率为1-P,则要使相邻两个D触发器的异或输出为1,则他们的输入必须为01或10,此时输出为1的概率为2P(1-P),当他们的输入是00和11时,最终的异或输出将为0,概率为P2+(1-P)2。当有n个D触发器时,由数学归纳法知,输出为1的概率为:
P(1)=0.5-2n-1(P-0.5)n (4)
输出为0的概率为:
P(0)=0.5+2n-1(P-0.5)n (5)
因此,当n趋于无穷大时,P(1)与P(0)都会无限接近0.5。通过以上分析,随着异或链级数的增加,它可以有效的消除序列偏置,实际上当级数为6时,序列的偏置就已经非常小了。
经过异或链电路处理后的序列仍然不能满足大多数安全系统的要求,因为经过严格的游程检测会发现在序列中仍然存在不均匀的分布。上述各环形振荡器的输出虽然是真随机的,但是它们包含了共模分量,而长游程检测会很大可能的揭示共模分量的存在。美国国家标准和技术研究所(NIST,即National Institute of Standards and Technology)发布了sp800-22标准,明确规定了如何评价随机数质量的好坏。通过加密/解密算法迭代运算可以有效消除输出比特流中的共模分量,有效的提高共模抑制比(CMRR)。
在一种优选实施方式中,加密运算单元为DES加密运算单元。参见图12,所示为DES加密运算单元的原理框图,明文寄存器和密钥寄存器从异或链输出端获取数据,当明文寄存器和密钥寄存器存满以后,控制模块发送使能信号给加密运算模块,加密运算工作完成后,密文输出端将64位随机数送到真随机数输出寄存器等待其他模块取用。
参见图13,所示为本发明真随机数发生器的功能仿真图。其中,Reset、Start和Clk为输入信号,当Start为高电平时电路开始工作,Reset为复位信号当为低电平时电路复位,系统时钟Clk经二分频后得到状态控制时钟Clk_ctrl,通过它控制熵源不断的亚稳态和稳态之间转换,Clk_Sampling是采样时钟,在它的上升沿采样1bit数据,Fibonacci_out和Galois_out是经过异或电路处理后的输出,它们分别经过串转并电路后转换为64位的并行信号Des_in和Key_in,当每次转换完成后Des_in_vld和Key_in_vld会被拉高,告知DES模块数据已准备完毕,可以开始DES运算,经过17个系统时钟后,DES运算全部完成,此时Des_vld信号会被拉高,输出锁存器会将此时的Des_out 64位输出数据进行锁存,Trng_out和Trng_rdy是最终的输出信号,当Trng_rdy被拉高后,说明DES模块的输出数据已被锁存,系统可以通过64位的输出总线Trng_out获取生成的随机数。
借助某型FPGA平台,综合后共占用1,041个逻辑单元和412个寄存器,系统时钟频率为50MHz,通过PLL倍频后产生200MHz的时钟作为工作时钟,通过示波器观察后处理电路处理后的第一反馈环振真随机源和第二反馈环振真随机源输出信号,最终信号输出波形如图14所示,输出频率为6.25MHz左右。由于DES加密运算单元输出为64位,按照计算公式:输出速率=位宽*频率,因此,得到最终真随机数生成速率在400Mbit/s,相对于现有技术,随机数生成速率有了较大的提升。
为了进一步测试本发明所产生随机数的随机性,根据美国国家标准和技术研究所提供的NIST SP800-22标准,使用其随机数测试套件对所接收到的1000组总计126Mbit的真随机数数据进行随机性评估测试,测试项目和结果如表2所示。
表2随机序列的NIST测试结果
由表2的测试结果验证本发明的技术方案通过了NIST认证。同时,该方案采用纯数字电路设计,功耗较低,集成度较高,便于实现,可以作为IP核使用,能快速移植到集成电路设计流程中,缩短开发周期,且输出速率较高,从而能够在实际芯片设计和产业化中得到了广泛应用。
在获得完整的FPGA结果后,本发明技术方案被采纳应用于USB闪存盘(USB FlashMemory Drive)控制器芯片中。该控制器主要特征有:
具有USB2.0接口,数据传输速率480Mb/s,
数据存储速度:连续读30MB/s,连续写20MB/s.
驱动2通道NAND型闪存(Flash Memory),
具有8个片选信号,最大支持16颗NAND型闪存,
具有72bit纠错算法(ECC)和均衡算法(Wear-Leveling),
片上数据加密算法,速度达到50MB/s.
针对数据加密功能,该控制器集成了AES加密算法和商密MS4算法实现数据流的对称加密/解密,而本发明的真随机数发生器就是用来产生密钥。芯片采用110纳米(110nm)逻辑工艺实现,芯片面积3.085mm*2.750mm,采用QFN封装(48引脚),已经进入了批量生产,投入市场数量已超过100万颗,是国际上当前主流的加密型U盘控制器芯片之一。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种高速真随机数发生器,其特征在于,包括第一反馈环振真随机源、第二反馈环振真随机源和加密运算单元,所述第一反馈环振真随机源用于产生第一随机序列,所述第二反馈环振真随机源用于产生第二随机序列,所述加密运算单元以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出;
所述第一反馈环振真随机源和所述第二反馈环振真随机源至少包括一个新型FIRO环形振荡器或新型GARO环形振荡器;
所述新型FIRO环形振荡器包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号;所述改进型FIRO环形振荡器采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态;
所述新型GARO环形振荡器包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号;所述改进型GARO环形振荡器采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
2.根据权利要求1所述的高速真随机数发生器,其特征在于,所述第一反馈环振真随机源采用多个新型FIRO环形振荡器异或输出;所述第二反馈环振真随机源采用多个新型GARO环形振荡器异或输出。
3.根据权利要求1或2所述的高速真随机数发生器,其特征在于,所述改进型FIRO环形振荡器和改进型GARO环形振荡器中,除第n反相器以外的其他反相器输出端的反馈环路中接入反馈开关(fi,i为1至n-1的自然数),采用本原多项式作为反馈多项式控制反馈开关。
4.根据权利要求3所述的高速真随机数发生器,其特征在于,所述第一反馈环振真随机源和所述第二反馈环振真随机源中,采用不同的本原多项式使所述第一随机序列和所述第二随机序列正交。
5.根据权利要求1或2所述的高速真随机数发生器,其特征在于,还包括异或链电路,所述第一反馈环振真随机源产生的第一随机序列和所述第二反馈环振真随机源产生的第二随机序列分别经所述异或链电路处理后再输出至所述加密运算单元。
6.根据权利要求5所述的高速真随机数发生器,其特征在于,所述异或链电路包括多个串接的D触发器,所述第一随机序列或第二随机序列串行输入至第一个D触发器,每个D触发器的输出端均与其下一级D触发器的输入端相连接,所述多个串接的D触发器通过一同步时钟信号控制每个D触发器同时输出信号并通过一异或门异或输出后作为所述异或链电路的输出。
7.根据权利要求1或2所述的高速真随机数发生器,其特征在于,所述加密运算单元为DES加密运算单元。
8.根据权利要求1所述的高速真随机数发生器,其特征在于,所述第一反馈环振真随机源采用9个新型FIRO环形振荡器异或输出;所述第二反馈环振真随机源采用9个新型GARO环形振荡器异或输出。
9.根据权利要求1所述的高速真随机数发生器,其特征在于,所述新型FIRO环形振荡器包括2路改进型FIRO环形振荡器。
10.根据权利要求1所述的高速真随机数发生器,其特征在于,所述新型GARO环形振荡器包括2路改进型GARO环形振荡器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611019132.4A CN107038015B (zh) | 2016-11-18 | 2016-11-18 | 一种高速真随机数发生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611019132.4A CN107038015B (zh) | 2016-11-18 | 2016-11-18 | 一种高速真随机数发生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107038015A true CN107038015A (zh) | 2017-08-11 |
CN107038015B CN107038015B (zh) | 2020-04-07 |
Family
ID=59531105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611019132.4A Active CN107038015B (zh) | 2016-11-18 | 2016-11-18 | 一种高速真随机数发生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107038015B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306732A (zh) * | 2018-04-20 | 2018-07-20 | 北京数字认证股份有限公司 | 一种随机数生成方法、相关设备及系统 |
CN108509180A (zh) * | 2018-04-13 | 2018-09-07 | 太原理工大学 | 一种基于二输入异或门低功耗随机数产生装置 |
CN109460212A (zh) * | 2018-11-05 | 2019-03-12 | 杭州电子科技大学 | 一种单级真随机数的产生方法 |
CN109508174A (zh) * | 2018-11-05 | 2019-03-22 | 杭州电子科技大学 | 一种单级真随机数发生器 |
WO2019222866A1 (zh) * | 2018-05-24 | 2019-11-28 | 太原理工大学 | 一种具有检测校正功能的真随机数产生方法与装置 |
CN110780846A (zh) * | 2019-09-29 | 2020-02-11 | 太原理工大学 | 一种由低速物理随机数产生高速物理随机数的方法及装置 |
CN111049575A (zh) * | 2018-10-11 | 2020-04-21 | 科大国盾量子技术股份有限公司 | 一种总线型高速随机数源的实时游程检测系统及方法 |
CN111198671A (zh) * | 2018-11-20 | 2020-05-26 | 三星电子株式会社 | 随机数发生器 |
CN111352608A (zh) * | 2020-02-28 | 2020-06-30 | 电子科技大学 | 一种低开销型fpga基真随机数产生系统 |
CN111522529A (zh) * | 2019-02-01 | 2020-08-11 | 睿宽智能科技有限公司 | 现场可编程门阵列的随机数生成器 |
CN111538478A (zh) * | 2020-04-20 | 2020-08-14 | 佳缘科技股份有限公司 | 一种提高输出序列随机性的方法 |
TWI706320B (zh) * | 2019-01-29 | 2020-10-01 | 睿寬智能科技有限公司 | 現場可編程閘陣列的真實隨機數產生裝置及方法 |
CN111969981A (zh) * | 2020-10-21 | 2020-11-20 | 鹏城实验室 | 一种时钟产生电路和随机数产生电路 |
CN112015368A (zh) * | 2020-08-28 | 2020-12-01 | 海光信息技术有限公司 | 一种真随机数发生器及电子设备 |
WO2022027325A1 (zh) * | 2020-08-05 | 2022-02-10 | 武汉飞思灵微电子技术有限公司 | 一种可重构随机数发生器及其实现方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515228A (zh) * | 2009-02-13 | 2009-08-26 | 华中科技大学 | 一种真随机数发生器 |
US20110032041A1 (en) * | 2008-04-14 | 2011-02-10 | Markus Dichtl | Device and method for generating a random bit sequence |
CN103150138A (zh) * | 2013-03-29 | 2013-06-12 | 成都三零嘉微电子有限公司 | 一种基于数字电路的真随机数发生器 |
US20130187685A1 (en) * | 2012-01-25 | 2013-07-25 | Samsung Electronics Co., Ltd. | Dither control circuit and devices having the same |
CN104461452A (zh) * | 2013-09-17 | 2015-03-25 | 航天信息股份有限公司 | 片上系统中生成真随机数的方法及装置 |
CN104572014A (zh) * | 2013-10-15 | 2015-04-29 | 飞思卡尔半导体公司 | 具有重复激活的振荡器的真随机数生成器 |
DE102014219083A1 (de) * | 2014-09-22 | 2016-03-24 | Siemens Aktiengesellschaft | Ausgleichen einer Rückkopplungsfunktion eines Ringoszillators |
-
2016
- 2016-11-18 CN CN201611019132.4A patent/CN107038015B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110032041A1 (en) * | 2008-04-14 | 2011-02-10 | Markus Dichtl | Device and method for generating a random bit sequence |
CN101515228A (zh) * | 2009-02-13 | 2009-08-26 | 华中科技大学 | 一种真随机数发生器 |
US20130187685A1 (en) * | 2012-01-25 | 2013-07-25 | Samsung Electronics Co., Ltd. | Dither control circuit and devices having the same |
CN103150138A (zh) * | 2013-03-29 | 2013-06-12 | 成都三零嘉微电子有限公司 | 一种基于数字电路的真随机数发生器 |
CN104461452A (zh) * | 2013-09-17 | 2015-03-25 | 航天信息股份有限公司 | 片上系统中生成真随机数的方法及装置 |
CN104572014A (zh) * | 2013-10-15 | 2015-04-29 | 飞思卡尔半导体公司 | 具有重复激活的振荡器的真随机数生成器 |
DE102014219083A1 (de) * | 2014-09-22 | 2016-03-24 | Siemens Aktiengesellschaft | Ausgleichen einer Rückkopplungsfunktion eines Ringoszillators |
Non-Patent Citations (2)
Title |
---|
喻祖华 等: "一种高速低功耗真随机数发生器", 《微电子学与计算机》 * |
李清 等: "一种基于Galois环振的真随机数发生器设计", 《科学技术与工程》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509180A (zh) * | 2018-04-13 | 2018-09-07 | 太原理工大学 | 一种基于二输入异或门低功耗随机数产生装置 |
CN108306732A (zh) * | 2018-04-20 | 2018-07-20 | 北京数字认证股份有限公司 | 一种随机数生成方法、相关设备及系统 |
WO2019222866A1 (zh) * | 2018-05-24 | 2019-11-28 | 太原理工大学 | 一种具有检测校正功能的真随机数产生方法与装置 |
CN111049575A (zh) * | 2018-10-11 | 2020-04-21 | 科大国盾量子技术股份有限公司 | 一种总线型高速随机数源的实时游程检测系统及方法 |
CN109460212A (zh) * | 2018-11-05 | 2019-03-12 | 杭州电子科技大学 | 一种单级真随机数的产生方法 |
CN109508174A (zh) * | 2018-11-05 | 2019-03-22 | 杭州电子科技大学 | 一种单级真随机数发生器 |
CN111198671A (zh) * | 2018-11-20 | 2020-05-26 | 三星电子株式会社 | 随机数发生器 |
TWI706320B (zh) * | 2019-01-29 | 2020-10-01 | 睿寬智能科技有限公司 | 現場可編程閘陣列的真實隨機數產生裝置及方法 |
CN111522529A (zh) * | 2019-02-01 | 2020-08-11 | 睿宽智能科技有限公司 | 现场可编程门阵列的随机数生成器 |
CN111522529B (zh) * | 2019-02-01 | 2023-04-21 | 睿宽智能科技有限公司 | 现场可编程门阵列的随机数生成器 |
CN110780846A (zh) * | 2019-09-29 | 2020-02-11 | 太原理工大学 | 一种由低速物理随机数产生高速物理随机数的方法及装置 |
CN111352608A (zh) * | 2020-02-28 | 2020-06-30 | 电子科技大学 | 一种低开销型fpga基真随机数产生系统 |
CN111352608B (zh) * | 2020-02-28 | 2022-08-02 | 电子科技大学 | 一种低开销型fpga基真随机数产生系统 |
CN111538478A (zh) * | 2020-04-20 | 2020-08-14 | 佳缘科技股份有限公司 | 一种提高输出序列随机性的方法 |
WO2022027325A1 (zh) * | 2020-08-05 | 2022-02-10 | 武汉飞思灵微电子技术有限公司 | 一种可重构随机数发生器及其实现方法 |
CN112015368A (zh) * | 2020-08-28 | 2020-12-01 | 海光信息技术有限公司 | 一种真随机数发生器及电子设备 |
CN112015368B (zh) * | 2020-08-28 | 2021-08-27 | 海光信息技术股份有限公司 | 一种真随机数发生器及电子设备 |
CN111969981A (zh) * | 2020-10-21 | 2020-11-20 | 鹏城实验室 | 一种时钟产生电路和随机数产生电路 |
CN111969981B (zh) * | 2020-10-21 | 2021-01-12 | 鹏城实验室 | 一种时钟产生电路和随机数产生电路 |
Also Published As
Publication number | Publication date |
---|---|
CN107038015B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775583B (zh) | 一种高速真随机数的产生方法 | |
CN107038015A (zh) | 一种高速真随机数发生器 | |
CN106293617B (zh) | 真随机数发生器 | |
US11301216B2 (en) | Self-timed random number generator | |
US9846568B2 (en) | System and method for dynamic tuning feedback control for random number generator | |
CN101620523B (zh) | 一种随机数发生器电路 | |
CN109508174A (zh) | 一种单级真随机数发生器 | |
CN109167664B (zh) | 一种基于异或门的可重构环形振荡器puf电路 | |
JP2012186809A (ja) | 乱数を発生させるための装置および方法 | |
CN108768619A (zh) | 一种基于环形振荡器的强puf电路及其工作方法 | |
CN101431405B (zh) | Des加密方法及其硬件电路实现方法 | |
CN107479857A (zh) | 随机数产生及后处理电路 | |
Zode et al. | FPGA based novel true random number generator using LFSR with dynamic seed | |
CN109460212A (zh) | 一种单级真随机数的产生方法 | |
CN108959128A (zh) | Crypt-SHA512加密算法的加速装置与方法 | |
CN106708471A (zh) | 一种全数字逻辑电路实现的真随机数发生器 | |
CN102981428B (zh) | 基于安全应用的微控制器指令保护结构及其加解密方法 | |
Jothi et al. | Parallel RC4 Key Searching System Based on FPGA | |
US20180307864A1 (en) | Random time generated interrupts in a cryptographic hardware pipeline circuit | |
CN107193533A (zh) | 一种新型低成本高速真随机数发生器 | |
CN1266586C (zh) | 振荡器频率变化系统 | |
Nabil et al. | Design and implementation of pipelined aes encryption system using FPGA | |
Williams et al. | A Novel 0.04 pJ/bit Dynamic TRNG using Bit Reconfigurable Ring Oscillators | |
CN104461452A (zh) | 片上系统中生成真随机数的方法及装置 | |
CN107506174A (zh) | 基于饥饿电流环形振荡器的真随机数发生器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |