CN106775583B - 一种高速真随机数的产生方法 - Google Patents

一种高速真随机数的产生方法 Download PDF

Info

Publication number
CN106775583B
CN106775583B CN201611024439.3A CN201611024439A CN106775583B CN 106775583 B CN106775583 B CN 106775583B CN 201611024439 A CN201611024439 A CN 201611024439A CN 106775583 B CN106775583 B CN 106775583B
Authority
CN
China
Prior art keywords
ring oscillator
random
phase inverter
vibration
output
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.)
Active
Application number
CN201611024439.3A
Other languages
English (en)
Other versions
CN106775583A (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.)
SAGE MICROELECTRONICS Corp.
Original Assignee
Hangzhou Electronic Science and Technology University
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 Hangzhou Electronic Science and Technology University filed Critical Hangzhou Electronic Science and Technology University
Priority to CN201611024439.3A priority Critical patent/CN106775583B/zh
Publication of CN106775583A publication Critical patent/CN106775583A/zh
Application granted granted Critical
Publication of CN106775583B publication Critical patent/CN106775583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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环形振荡器异或输出。
优选地,两个独立的熵源中,采用不同的本原多项式使所述第一随机序列和所述第二随机序列正交。
优选地,所述第一随机序列和所述第二随机序列分别经异或链电路处理后再输出至所述加密运算单元。
优选地,所述异或链电路包括多个串接的D触发器,所述第一随机序列或第二随机序列串行输入至第一个D触发器,每个D触发器的输出端均与其下一级D触发器的输入端相连接,所述多个串接的D触发器通过一同步时钟信号控制每个D触发器同时输出信号并通过一异或门异或输出后作为所述异或链电路的输出。
优选地,所述加密运算单元为DES加密运算单元。
优选地,所述新型FIRO环形振荡器包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号;所述改进型FIRO环形振荡器采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
优选地,所述新型GARO环形振荡器包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号;所述改进型GARO环形振荡器采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
优选地,所述熵源采用9个新型FIRO环形振荡器异或输出或者采用9个新型GARO环形振荡器异或输出。
与现有技术相比较,本发明采用加密的方式实现高速产生真随机数的方法,它的熵源是在FIRO和GARO结构的基础上通过加入亚稳态控制电路,使振荡器的输出不断的在亚稳态与稳态之间转换,从而使熵源获得足够的熵值,并通过异或链和DES算法将生成随机数进行均衡校正实现两种环形振荡器产生随机数的组合,最终随机数生成速率达到400Mbit/s。
附图说明
图1为现有技术环形振荡器的采样示意图。
图2为Fibonacci环形振荡器(FIRO)的结构框图。
图3为Galois(GARO)环形振荡器的结构框图。
图4为本发明高速真随机数的产生方法的流程框图。
图5为实现本发明方法的高速真随机数发生器的结构框图。
图6为本发明提出的新型FIRO环形振荡器的电路原理图。
图7为改进型FIRO环形振荡器的电路原理图。
图8为本发明提出的新型GARO环形振荡器的电路原理图。
图9为改进型GARO环形振荡器的电路原理图。
图10为本发明采用的亚稳态子振环的结构框图。
图11为第一反馈环振真随机源和第二反馈环振真随机源一种实施方式的结构框图。
图12为本发明采用的异或链电路的原理框图。
图13为加密运算单元的的原理框图。
图14为本发明真随机数发生器的功能仿真图。
图15为最终输出信号的波形图。
如下具体实施例将结合上述附图进一步说明本发明。
具体实施方式
以下将结合附图对本发明提供的一种高速真随机数发生器作进一步说明。
参见图1,现有技术通常将随机数采样点设置相位抖动的地方,而相位抖动的发生还需要经历过渡阶段、稳定振荡阶段以及噪声影响的积累阶段,从而导致随机数速率较慢。实际上,振荡器从起振到稳定振荡还要经历的另一个不确定的亚稳态状态,亚稳态状态存在与起振时的过渡阶段,此时电路的输出将会取决于电路的噪声特性而变得具有真随机性。只是亚稳态状态稍纵即逝,只存在于起振阶段,进入稳定振荡之后就不会再出现。
为了克服上述技术缺陷,本发明提出一种高速真随机数的产生方法,参见图4,所示为本发明高速真随机数的产生方法的流程框图,包括以下步骤:
步骤S1:采用多个亚稳态子环振形成亚稳态环形振荡器并通过控制信号使每个亚稳态子环振交替工作在稳定振荡状态或者亚稳态状态;当工作在稳定振荡状态时,每个亚稳态子环振接入大环路形成环形振荡器,从而能够快速进入稳定振荡状态;当工作在亚稳态时,每个亚稳态子环振从大环路中断开形成独立的子环振从而进入亚稳定状态。也即,通过在环形振荡器中引入状态切换开关,从而能够不断地重现亚稳态状态,从而将随机数采样点大大的提前,提高随机数产生速率,同时,每次状态切换,都会引入新的亚稳态,从而去除了两次采样的随机数之间的相关性。
步骤S2:采用多路选择器连接多个亚稳态环形振荡器作为熵源;通过控制信号控制多路选择器在当前时刻仅选通一个亚稳态环形振荡器并在其稳定振荡状态时采样使所述熵源输出随机序列。步骤S1中让振荡器交替工作在稳定振荡状态或者亚稳态状态,虽然能够将随机数采样点大大提前,但亚稳态状态仍然需要一定的积累时间。为了进一步提高随机数的产生速率,通过选择器将多个亚稳态环形振荡器组合在一起,每个亚稳态环形振荡器都能独立的工作,通过控制信号选择,每个时刻仅有一个亚稳态环形振荡器输出随机数,而此时其他亚稳态环形振荡器能够完成亚稳态的积累,从而理论上能够完全消除了进入亚稳态的积累时间,进一步提高随机数产生的速率;同时,由于采用多个亚稳态环形振荡器,每个亚稳态环形振荡器的积累时间各不相同,有些刚刚从亚稳态进入稳定振荡状态,有些则已经在稳定振荡状态运行一段时间完成了相位抖动积累,实际上经历了两次随机过程,从而进一步提升了随机数的质量,能够完全消除两个随机数之间的相关性。
步骤S3:采用两个独立的熵源分别产生第一随机序列和第二随机序列并输入加密运算单元;
步骤S4:以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出。通过两路独立的熵源产生随机序列分别作为明文和密钥,利用加密算法来进一步提高生随机数的质量。
在一种优选实施方式中,用于产生第一随机序列和第二随机序列的两个独立的熵源采用不同的振荡器结构。而熵源采用多个新型FIRO环形振荡器异或输出或者采用多个新型GARO环形振荡器异或输出。
参见图5,所示为实现本发明高速真随机数产生方法的真随机数发生器的结构框图,该真随机数发生器至少包括第一反馈环振真随机源、第二反馈环振真随机源和加密运算单元,第一反馈环振真随机源用于产生第一随机序列,第二反馈环振真随机源用于产生第二随机序列,加密运算单元以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出。图5中,第一反馈环振真随机源和第二反馈环振真随机源组成了熵源部分,异或链电路和加密运算单元组成了真随机数发生器的后处理单元,最终真随机数通过输出寄存器送至片上系统总线。本发明通过两路独立的熵源产生随机序列分别作为明文和密钥,利用加密算法来进一步提高生随机数的质量。
为了进一步提高经加密处理后序列的随机性,两路熵源采用不同的振荡器结构,第一反馈环振真随机源和第二反馈环振真随机源至少包括一个新型FIRO环形振荡器或新型GARO环形振荡器。
要实现一个高质量的真随机数发生器不仅要通过后处理单元提高随机数质量,同时还要提高熵源的品质。现有技术也提出了许多不同原理不同结构的设计方案,比如图2和图3所示的Fibonacci环形振荡器(FIRO)和Galois(GARO)环形振荡器,其优点在于设计简单,仅需使用少量逻辑块,利用相对较少的资源就可输出很高熵值,并且能够在所有的FPGA家族或者在ASIC中实现;能够利用FPGA工具全自动综合。但是目前的实现方法中输出速率都相对较低,且输出频谱中可能会存在一个优势频率。针对上述技术缺陷,本发明从随机数生成速率的角度出发对上述电路进行了改进,提出了新型FIRO环形振荡器和新型GARO环形振荡器的电路结构。
参见图6,所示为本发明提出的新型FIRO环形振荡器的电路原理图,包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号。虽然图6的电路仅给出了两路改进型FIRO环形振荡器并接的情况,本领域普通技术人员应该能够明白该电路结构理论上能够扩充为任意路。
参见图7,所示为改进型FIRO环形振荡器的电路原理图,采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,二选一选择器的输出端与该反相器的输入端相连接,二选一选择器的第一输入端与该反相器的输出端相连接,二选一选择器的第二输入端与前级反相器的输出端相连接,二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
参见图8,所示为本发明提出的新型GARO环形振荡器的电路原理图,包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号。虽然图8的电路仅给出了两路改进型GARO环形振荡器并接的情况,本领域普通技术人员应该能够明白该电路结构理论上能够扩充为任意路。
参见图9,所示为改进型GARO环形振荡器的电路原理图,采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,二选一选择器的输出端与该反相器的输入端相连接,二选一选择器的第一输入端与该反相器的输出端相连接,二选一选择器的第二输入端与前级反相器的输出端相连接,二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
现有技术通常将随机数采样点设置相位抖动的地方,而忽略振荡器从起振到稳定振荡所要经历的另一个不确定的亚稳态状态,此时电路的输出将会取决于电路的噪声特性而变得具有真随机性。因此,亚稳态状态使一种理想的熵源,但是亚稳态状态稍纵即逝,只存在于起振阶段,进入稳定振荡之后就不会再出现。如图1所示,起振时从过渡阶段进入稳定振荡阶段时,由于起振时的电路噪声会出现亚稳态状态,从而使稳定振荡阶段的初始电平无法确定。本发明图7和图9的电路结构中每个反相器增加了亚稳态子振环,通过控制信号使每次采样时都引入新的亚稳态状态,从而有效降低输出序列的相关性。
参见图10,所示亚稳态子振环的结构框图,当开关闭合后,它的输出将会逐渐收敛于亚稳定状态,并由于电路热噪声的影响,输出会在亚稳定状态细微的波动,而当开关断开后,由于反相器在非逻辑值范围有非常大的反馈系数,反相器的输出会快速的离开亚稳态区域进去稳态,但由于半导体热噪声的影响,最终反相器的输出是进入逻辑高电平还是低电平将会变得具有不确定性。
采用上述技术方案,就构成了能够不断在亚稳态和稳态之间转换的FIRO环振和GARO环振,这里称之为基于亚稳态的Fibonacci反馈环阵(MFIRO)和基于亚稳态的Galois反馈环阵(MGARO)。根据控制信号不同,环形振荡器会处于以下两种状态:当控制信号为低电平时,各反相器会从大环路断开,各子环振进入亚稳定状态;当控制信号变为高电平时,各反相器从子环振断开,接入大环振,同时它们会结束亚稳定状态,快速进入稳态。当电路从先前的亚稳态模式切换至稳态时,每一个反相器的输出值都由其随机噪声决定,环振的瞬时电压同样也是随机的,如此就产生了高熵值。在控制信号为高电平时,采样1bit随机数据,在采样完成后,此真随机数发生器熵源又进入亚稳态来收集新的随机性。因此对于整个过程,仅需要等待几个环振周期,相较于传统的利用环振抖动结构的发生器输出速率显著提高,同时,通过选择器将多个改进型环振组合在一起,每个改进型环振都能独立的工作,通过控制信号选择,每个时刻仅有一个改进型环振输出随机数,而其他改进型环振已经完成亚稳态过程,进一步消除了进入亚稳态的积累时间,至少可以在控制信号的高电平和低电平都采样,在控制信号频率相同的情况下,其输出信号频率至少提升了一倍以上。
在一种优选实施方式中,第一反馈环振真随机源采用多个新型FIRO环形振荡器异或输出;第二反馈环振真随机源采用多个新型GARO环形振荡器异或输出。参见图11,所示为第一反馈环振真随机源和第二反馈环振真随机源一种实施方式的结构框图,采用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’等概率出现,输出序列的分布可能不能满足要求,影响最终结果的统计特性,因此必须采取后处理电路对数据进行消偏处理。
为了克服上述技术缺陷,本发明高速真随机数发生器还包括异或链电路,第一反馈环振真随机源产生的第一随机序列和第二反馈环振真随机源产生的第二随机序列分别经异或链电路处理后再输出至加密运算单元。
参见图12,所示为本发明采用的异或链电路的原理框图,包括多个串接的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加密运算单元。参见图13,所示为DES加密运算单元的原理框图,明文寄存器和密钥寄存器从异或链输出端获取数据,当明文寄存器和密钥寄存器存满以后,控制模块发送使能信号给加密运算模块,加密运算工作完成后,密文输出端将64位随机数送到真随机数输出寄存器等待其他模块取用。
参见图14,所示为本发明真随机数发生器的功能仿真图。其中,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的时钟作为工作时钟,通过示波器观察后处理电路处理后的第一反馈环振真随机源和第二反馈环振真随机源输出信号,最终信号输出波形如图15所示,输出频率为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 (8)

1.一种高速真随机数的产生方法,其特征在于,包括以下步骤:
采用多个亚稳态子环振形成亚稳态环形振荡器并通过控制信号使每个亚稳态子环振交替工作以下两种工作状态:接入大环路进入稳定振荡状态或者从大环路中断开形成独立的子环振进入亚稳定状态;
采用多路选择器连接多个亚稳态环形振荡器作为熵源,通过控制信号控制多路选择器在当前时刻仅选通一个亚稳态环形振荡器并在其稳定振荡状态时采样使所述熵源输出随机序列;
采用两个独立的熵源分别产生第一随机序列和第二随机序列并输入加密运算单元;
以第一随机序列作为明文数据且以第二随机序列作为密钥进行加密运算并输出密文数据作为随机数输出。
2.根据权利要求1所述的高速真随机数的产生方法,其特征在于,用于产生第一随机序列和第二随机序列的两个独立的熵源采用不同的振荡器结构。
3.根据权利要求1或2所述的高速真随机数的产生方法,其特征在于,所述熵源采用多个新型FIRO环形振荡器异或输出或者采用多个新型GARO环形振荡器异或输出;
所述新型FIRO环形振荡器包括多路改进型FIRO环形振荡器,每路改进型FIRO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型FIRO环形振荡器并输出信号;所述改进型FIRO环形振荡器采用n个反相器连接成环形振荡器,每个反相器的输出信号均通过反馈环路反馈至第一个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态;
所述新型GARO环形振荡器包括多路改进型GARO环形振荡器,每路改进型GARO环形振荡器的输出端分别与多路选择器的多个输入端相连接,所述多路选择器受控于控制信号使其在当前时刻仅选通一路改进型GARO环形振荡器并输出信号;所述改进型GARO环形振荡器采用n个反相器连接成环形振荡器,第n个反相器的输出端信号通过反馈环路反馈至每个反相器的输入端,每个反相器的输入端都接一个二选一选择器,所述二选一选择器的输出端与该反相器的输入端相连接,所述二选一选择器的第一输入端与该反相器的输出端相连接,所述二选一选择器的第二输入端与前级反相器的输出端相连接,所述二选一选择器受控于控制信号使其选通第一输入端或第二输入端,当所述第一输入端选通时,每个反相器从大环路中断开,形成独立的子环振进入亚稳定状态;当所述第二输入端选通时,每个反相器从子环振断开,重新接入大环振,快速进入稳态。
4.根据权利要求1所述的高速真随机数的产生方法,其特征在于,两个独立的熵源中,采用不同的本原多项式使所述第一随机序列和所述第二随机序列正交。
5.根据权利要求1所述的高速真随机数的产生方法,其特征在于,所述第一随机序列和所述第二随机序列分别经异或链电路处理后再输出至所述加密运算单元。
6.根据权利要求5所述的高速真随机数的产生方法,其特征在于,所述异或链电路包括多个串接的D触发器,所述第一随机序列或第二随机序列串行输入至第一个D触发器,每个D触发器的输出端均与其下一级D触发器的输入端相连接,所述多个串接的D触发器通过一同步时钟信号控制每个D触发器同时输出信号并通过一异或门异或输出后作为所述异或链电路的输出。
7.根据权利要求1或2所述的高速真随机数的产生方法,其特征在于,所述加密运算单元为DES加密运算单元。
8.根据权利要求3所述的高速真随机数的产生方法,其特征在于,所述熵源采用9个新型FIRO环形振荡器异或输出或者采用9个新型GARO环形振荡器异或输出。
CN201611024439.3A 2016-11-18 2016-11-18 一种高速真随机数的产生方法 Active CN106775583B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611024439.3A CN106775583B (zh) 2016-11-18 2016-11-18 一种高速真随机数的产生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611024439.3A CN106775583B (zh) 2016-11-18 2016-11-18 一种高速真随机数的产生方法

Publications (2)

Publication Number Publication Date
CN106775583A CN106775583A (zh) 2017-05-31
CN106775583B true CN106775583B (zh) 2019-03-05

Family

ID=58969773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611024439.3A Active CN106775583B (zh) 2016-11-18 2016-11-18 一种高速真随机数的产生方法

Country Status (1)

Country Link
CN (1) CN106775583B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479857A (zh) * 2017-07-14 2017-12-15 天津大学 随机数产生及后处理电路
CN107193533B (zh) * 2017-07-31 2020-08-18 南京航空航天大学 一种低成本高速真随机数发生器
US11036472B2 (en) * 2017-11-08 2021-06-15 Samsung Electronics Co., Ltd. Random number generator generating random number by using at least two algorithms, and security device comprising the random number generator
CN107918535B (zh) * 2017-11-17 2021-02-19 宁波大学 一种在fpga上实现的亚稳态真随机数发生器
CN107943450A (zh) * 2017-11-17 2018-04-20 上海众人网络安全技术有限公司 随机数生成方法、装置、计算机设备及计算机可读介质
CN108509180B (zh) * 2018-04-13 2021-04-06 太原理工大学 一种基于二输入异或门低功耗随机数产生装置
CN108717353B (zh) * 2018-05-24 2021-04-06 太原理工大学 一种具有检测校正功能的真随机数产生方法与装置
CN109508174A (zh) * 2018-11-05 2019-03-22 杭州电子科技大学 一种单级真随机数发生器
CN109460212A (zh) * 2018-11-05 2019-03-12 杭州电子科技大学 一种单级真随机数的产生方法
CN109508175A (zh) * 2018-11-14 2019-03-22 重庆邮电大学 基于分数阶混沌和祖冲之算法的伪随机数发生器的fpga设计
CN109783061B (zh) * 2019-01-16 2023-04-25 宁波大学 一种利用振荡器采样的真随机数发生器
US10824396B2 (en) * 2019-01-28 2020-11-03 Nuvoton Technology Corporation Random number generator based on meta-stability of shorted back-to-back inverters
CN111522529B (zh) * 2019-02-01 2023-04-21 睿宽智能科技有限公司 现场可编程门阵列的随机数生成器
CN110399118B (zh) * 2019-07-15 2022-01-18 宇龙计算机通信科技(深圳)有限公司 一种随机数生成方法、装置、存储介质及电子设备
CN111352608B (zh) * 2020-02-28 2022-08-02 电子科技大学 一种低开销型fpga基真随机数产生系统
CN111900958A (zh) * 2020-06-19 2020-11-06 上海美仁半导体有限公司 随机数产生电路、芯片及家用电器
CN112015368B (zh) * 2020-08-28 2021-08-27 海光信息技术股份有限公司 一种真随机数发生器及电子设备
CN116069295B (zh) * 2022-12-22 2023-10-20 海光集成电路设计(北京)有限公司 真随机数发生电路、方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1573681A (zh) * 2003-06-24 2005-02-02 株式会社瑞萨科技 具备环形振荡电路的随机数产生装置
CN101510150A (zh) * 2009-03-24 2009-08-19 北京中星微电子有限公司 随机数产生装置
CN101727308A (zh) * 2008-10-28 2010-06-09 苏州中科集成电路设计中心有限公司 集成电路中真随机数的产生方法
CN102375722A (zh) * 2010-08-09 2012-03-14 中国科学技术大学 一种真随机数生成方法及发生器
CN202512559U (zh) * 2011-03-09 2012-10-31 爱特梅尔公司 用于随机数产生器的可变架构
CN103324462A (zh) * 2013-05-24 2013-09-25 深圳职业技术学院 真随机数发生系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195434B2 (en) * 2014-01-14 2015-11-24 Nvidia Corporation Power supply for ring-oscillator based true random number generator and method of generating true random numbers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1573681A (zh) * 2003-06-24 2005-02-02 株式会社瑞萨科技 具备环形振荡电路的随机数产生装置
CN100399261C (zh) * 2003-06-24 2008-07-02 株式会社瑞萨科技 具备环形振荡电路的随机数产生装置
CN101727308A (zh) * 2008-10-28 2010-06-09 苏州中科集成电路设计中心有限公司 集成电路中真随机数的产生方法
CN101510150A (zh) * 2009-03-24 2009-08-19 北京中星微电子有限公司 随机数产生装置
CN102375722A (zh) * 2010-08-09 2012-03-14 中国科学技术大学 一种真随机数生成方法及发生器
CN202512559U (zh) * 2011-03-09 2012-10-31 爱特梅尔公司 用于随机数产生器的可变架构
CN103324462A (zh) * 2013-05-24 2013-09-25 深圳职业技术学院 真随机数发生系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
New methods for digital generation and postprocessing of random data;GOLIC J D J;《IEEE Trans Comput 2006》;20061231;第55卷(第10期);第1217-1229页

Also Published As

Publication number Publication date
CN106775583A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106775583B (zh) 一种高速真随机数的产生方法
CN107038015A (zh) 一种高速真随机数发生器
CN106293617B (zh) 真随机数发生器
US6954866B2 (en) Method and apparatus for smoothing current consumption in an integrated circuit
CN104200180B (zh) 基于可重构环形振荡器的物理不可克隆函数及其产生方法
US8285767B2 (en) Apparatus and method for generating a random number
Taylor et al. Digital randomness
Alkatheiri et al. An experimental study of the state-of-the-art PUFs implemented on FPGAs
CN109508174A (zh) 一种单级真随机数发生器
TW201430699A (zh) 用於亂數產生器之延遲裝置及方法及其亂數產生器
CN103237021A (zh) 一种基于fpga芯片的pci-e的高速密码卡
CN109460212A (zh) 一种单级真随机数的产生方法
Zode et al. FPGA based novel true random number generator using LFSR with dynamic seed
Kurra et al. A secure arbiter physical unclonable functions (PUFs) for device authentication and identification
CN108959128A (zh) Crypt-SHA512加密算法的加速装置与方法
CN103607275A (zh) 一种安全性适应速度变化的加密方法及装置
CN113672199B (zh) 一种具备物理不可克隆函数功能的多熵源随机数发生器
Vivek et al. Design and implementation of physical unclonable function in field programmable gate array
CN102981428B (zh) 基于安全应用的微控制器指令保护结构及其加解密方法
Jothi et al. Parallel RC4 Key Searching System Based on FPGA
CN106708471A (zh) 一种全数字逻辑电路实现的真随机数发生器
US9201630B2 (en) Random number generation using startup variances
Acar et al. A digital random number generator based on irregular sampling of regular waveform
Dejun et al. Research of true random number generator based on PLL at FPGA
JP2007207054A (ja) データ処理装置

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
TR01 Transfer of patent right

Effective date of registration: 20200601

Address after: Room a-b102-796, 198 Qidi Road, Xiaoshan Economic and Technological Development Zone, Xiaoshan District, Hangzhou, Zhejiang Province

Patentee after: SAGE MICROELECTRONICS Corp.

Address before: Hangzhou City, Zhejiang province 310018 Park in Xiasha Higher Education

Patentee before: HANGZHOU DIANZI University

TR01 Transfer of patent right