Design of High Throughput True Random Number Generator Based on Metastability Superposition Cells
-
摘要: 真随机数发生器(TRNG)作为一类重要的硬件安全原语,在密钥生成、初始化向量和协议中的身份认证等加密领域得到应用。为设计出高吞吐量的轻量级TRNG,该文研究了利用多路选择器(MUX)和异或门(XOR gate)的开关特性来产生亚稳态的方法,提出一种基于亚稳态叠加单元(MS-cell)的TRNG(MS-TRNG)设计。它将MUX和异或门触发的亚稳态进行叠加,从而提高TRNG的熵。所提TRNG分别在Xilinx Virtex-7和Xilinx Artix-7 FPGA开发板中实现,无需后处理电路。与其他先进的TRNG相比,所提TRNG具有最高的吞吐量和极低的硬件开销,并且它所生成的随机序列通过了NIST测试和一系列性能测试。Abstract: True Random Number Generator (TRNG), as an important hardware security primitive, is used in key generation, initialization vector and identity authentication in protocols. In order to design a lightweight TRNG with high throughput, the method of generating metastability is studied by using the switching characteristics of MUltipleXer (MUX) and XOR gate, and a TRNG design based on Metastability Superposition (MS-TRNG) cell (MS-cell) is proposed. It superimposes MUX and XOR gate guided metastases, thereby increasing the entropy of TRNG. The proposed TRNG is implemented in Xilinx Virtex-7 and Xilinx Artix-7 FPGA development boards, respectively, without the need for post-processing circuits. Compared to other advanced TRNGS, the proposed TRNG has the highest throughput and extremely low hardware overhead, and the random sequences it generates pass NIST testing and a series of performance tests.
-
1. 引言
相比于由种子和算法生成随机序列的伪随机数发生器(Pseudo Random Number Generator, PRNG),真随机数发生器(True Random Number Generator, TRNG)在安全性上更受密码学应用的青睐,并应用于密钥与令牌的生成、初始化向量、加密算法和身份认证等加密领域[1–3]。由随机数发生器(Random Number Generator, RNG)生成的随机序列在必须具备高度不可预测性和良好的统计特性的同时,也对它的安全性极为看重,这需要使用随机物理过程来作为TRNG的熵源。
抖动作为一种常见的TRNG熵源,常常利用奇数个的反相器构成的环形振荡器(Ring Oscillator, RO)的抖动产生随机序列。基于RO的TRNG的经典设计思路是利用低频抖动时钟去采样一个高频的振荡信号[4,5]。但由于RO抖动需要长时间的累积才能具有良好的随机性,使得这些TRNG结构的吞吐量普遍不高。因此无累积效应的数字时钟管理器(Digital Clock Manager, DCM)[6]和锁相环(Phase Locked Loop, PLL)[7,8]中的时钟抖动被广泛研究,但它们需要进行复杂的参数寻优操作才能体现出良好的随机性。为尽可能提高基于抖动的TRNG的吞吐量,含复杂反馈结构的伽罗瓦环(GAlois Ring Oscillator, GARO)[9]和斐波那契环(FIbonacci Ring Oscillator, FIRO)[10]被提出,它们通过在RO中嵌入异或门来加快抖动的累积速率。但有研究表明[11],这种做法会让TRNG有进入周期振荡的风险,具有伪随机性。RO对工艺和电压变化十分敏感,攻击者可通过非侵入式攻击来恶化TRNG的输出。为提升鲁棒性,基于自定时环(Self-Timed Rings, STR)的TRNG设计[12,13]被提出。它相比于RO更稳健,能抵抗恶劣的环境变化。文献[14]提出了一种采用多级反馈结构的轻量级TRNG,它可以在短时间内提升抖动的累积速度,获得良好的随机性,提升TRNG的吞吐量。TRNG设计通常需要在高吞吐量和高熵值之间折中,因此频率崩溃的拓扑结构备受关注[15]。文献[16]提出了一种基于频率崩溃的三边沿注入的环形振荡器,并结合数字时间转换(Time-to-Digital Conversion, TDC)技术来量化随机性,显著提升了TRNG的最小熵。
亚稳态是一种由于触发器的建立时间和保持时间违规而造成输出电平的不确定的随机物理行为,它可以用作TRNG的熵源。传统的基于亚稳态的TRNG设计的关键之处在于如何强制使得D触发器的时序行为违规,即保证数据输入端和采样脉冲几乎同时发生跳变。因此产生了利用精细延时链[17]、可编程延时线(Programmable Delay Line, PDL)[18]以及数字时钟管理器[19]来对D触发器的信号延时进行调节的方法。然而,不可避免地是这些方法都需要严格的布局布线,使得基于亚稳态的TRNG难以移植。为了解决这一问题,基于临近亚稳态的TRNG[20]被提出。它不需要繁琐的路由策略,而是在工作在近亚稳态点,通过仲裁两个相同亚稳态电路的决断时间来量化随机性。但这种做法需要加入复杂的额外电路,如后处理电路和熵提取电路,带来了很大的硬件开销。
真随机数发生器这类原语的高硬件资源开销,是它们最主要的缺点之一。由于数字电路的不断发展,TRNG对于速度方面的要求越来越高,而吞吐量的提高往往伴随着大量资源的消耗。因此,权衡好资源开销和吞吐量之间的关系是目前TRNG设计所面临的重要问题。而在实际的应用中,原始的TRNG的输出序列的随机性往往不够好,较低的熵、较高的偏置以及较强的相关性等问题可能都是无法通过统计测试的原因。这就需要引入后处理电路,如冯·诺依曼校准器[21],以压缩吞吐量的代价来提高输出比特流的质量。除此之外,还可以使用异或组合技术将多个低熵单元进行先采样再异或的方法,以成倍增加硬件开销的代价来确保通过统计测试。因此,设计出一种可生成高质量比特流的高速率轻量级TRNG是一个颇具挑战的难题。
为设计出一个硬件开销低、吞吐量高的TRNG,本文提出一种基于亚稳态叠加的TRNG(TRNG based on Metastability Superposition, MS-TRNG),它结合了抖动和亚稳态两种熵源。所提TRNG在Xilinx Virtex-7和Xilinx Artix-7 FPGA开发板上进行了实验,结果表明,该TRNG生成的随机序列通过了所有的统计测试和性能测试,仅消耗了29个查找表(Look-Up Table, LUT)和4个触发器(Flip-Flop, FF)的硬件资源且实现了500 Mbit/s的高吞吐量。
本文的其余部分组织如下。第2节研究了经典的开关亚稳态的电路模型和相关的工作。第3节介绍了所提TRNG结构的工作原理、设计讨论和结构实现,并提出了一种简单的数学模型来说明异或提高熵的原理。第4节对提出的TRNG随机性测试的结果并进行评估。最后,第5节对本文进行总结。
2. 相关的研究
2.1 经典的亚稳态电路模型
除了触发器的时序违规能产生亚稳态,如图1所示的电路模型也可以在时域上产生亚稳态[22]。当时钟信号(CLocK sinal, CLK)的上升沿到来之前,开关键K1闭合、K2断开。此时反馈环路尚未形成,数据端D输入高电平,经反相器inv1作用,UQ和UˉQ均表现为低电平;当CLK脉冲的上升沿到来的瞬间,开关键K1断开,K2闭合,此时反馈环路形成,由于反相器inv2的作用,UQ应当为高电平。在这一时刻,Q的电位会介于高电位和低电位之间,从而进入亚稳态点。幸运的是,由于电路内部的热噪声的存在,亚稳态点将会随机地移动到某一个稳定的状态—逻辑‘0’或逻辑‘1’。基于这一电路模型的理论基础,可以使用多路选择器(MUltipleXer, MUX)和异或门作为开关元件来改变RO中反相器数量[23]。当RO中反相器数目由奇数切换为偶数,这会强制RO停止振荡。假设RO上一个状态的输出为‘0’,RO输出应当为上一个状态的取反,即为‘1’。但由于振荡的停止,强制使输出保持为上一个状态的输出‘0’。此时,RO的输出产生了“逻辑冲突”,即电路进入亚稳态。
2.2 采用MUX实现亚稳态
文献[24]使用了两个MUX作为开关元件来进行振荡环路的切换。如图2所示,当Clear端表现为低电平,若此时S端口为逻辑‘0’,则该设计表现为两个独立振荡的1级RO;若此时S端口为逻辑‘1’,则该设计表现为一个含有2个反相器的存储单元。因此,在S端口输入为上升沿时,强制RO停止振荡,电路进入了亚稳态。
2.3 采用异或门实现亚稳态
如图3所示,将异或门的其中一个输入端口接入脉冲,当输入脉冲为高电平时,异或门的输出与另一输入端口的逻辑值相反,异或门表征为反相器;当输入脉冲为低电平时,异或门的输出与另一输入端口的逻辑值相同,表征为缓冲器。所以,异或门和MUX具有相同的“开关特性”,即通过外部脉冲的控制,不断改变RO内所表征的反相器数量。
文献[25]使用了两个异或门来改变环路所表征的反相器个数。如图4所示,当R端表现为高电平,若此时I1端与I2端的输入不匹配,则环路中相当于接入一个反相器,RO振荡;若此时I1端与I2端输入匹配,则环路中相当于接入两个(或零个)反相器,表现为存储单元,振荡停止。因此,在I1端和I2端的输入由不匹配切换为匹配时,电路进入了亚稳态。
综上可以看出,利用异或门和利用MUX产生亚稳态的原理上并无区别,它们只是利用切换RO内反相器数量的思想来实现亚稳态电路的两种不同的方法。
3. 基于亚稳态叠加单元的TRNG
3.1 亚稳态叠加单元(MS-cell)
由于基于亚稳态的TRNG通常对设计的要求很高,这使得设计出的TRNG结构的偏置、硬件开销、吞吐量等性能指标,有着不同程度的恶化。利用D触发器采样的亚稳态TRNG设计需要考虑到繁琐的路由策略,对布局布线的要求十分严格,其吞吐量也会因此受到限制。即便是对路由不敏感的临近亚稳态TRNG设计,也需要加入相当复杂的额外电路,如熵提取电路和后处理电路,这也大大增加了面积开销。针对上述存在的问题,本文提出了基于反馈MUX的亚稳态叠加的TRNG设计,实现了高吞吐量的轻量级实现。该TRNG结构基于一种新型的结构模块,称为亚稳态叠加单元,如图5所示。MS-cell通过两个级数不同的RO来进行环路的切换,能够结合抖动和亚稳态两种熵源。它可以在一定的条件下将MUX触发的亚稳态与异或门触发的亚稳态进行叠加,从而显著地提高TRNG的吞吐量。
3.2 MS-cell的时序分析
MS-cell是属于自由运行的结构模块,它受到1级RO(脉冲IN)和3级RO(脉冲SEL)的控制。从图6不难看出,输入脉冲的跳变沿是MUX和异或门进入亚稳态的条件,这使得MS-cell会由于RO输出脉冲的状态(高、低电平或上升、下降沿)从而进入熵源不同的工作模式。因此,需要对MS-cell作如下的简单的时序分析:
(1) 当SEL脉冲处于下降沿或低电平时,MUX选通IN0口;此时不论IN脉冲是何种状态,MS-cell表征为由反相器构成的1级RO,熵源为反相器构成RO中的抖动。
(2) 当SEL脉冲处于上升沿时,MUX将选通IN1口;若此时IN脉冲恰好处于下降沿,异或门将表征为缓冲器,强制将两种由不同器件形成的振荡停止,使得MS-cell同时触发了两种亚稳态,熵源为MUX和异或门触发的亚稳态的叠加。
(3) 当SEL脉冲处于上升沿时,MUX将选通IN1口;若此时IN脉冲处于低电平,异或门已表征为缓冲器。MS-cell表征为如图6(a)所示的亚稳态模型,熵源仅源于MUX触发的亚稳态。
(4) 当SEL脉冲处于上升沿或高电平时,MUX选通IN1口;若此时IN脉冲处于上升沿或高电平,异或门表征为反相器,MS-cell表征为由异或门构成的1级RO,熵源为异或门构成RO中的抖动。
(5) 当SEL脉冲处于高电平时,MUX已选通IN1口;若此时IN脉冲处于下降沿,异或门将表征为缓冲器,从而使得振荡停止。MS-cell表征为图6(b)所示的亚稳态模型,熵源仅源于异或门触发的亚稳态。
(6) 当SEL脉冲处于高电平时,MUX已选通IN1口;若此时IN脉冲处于低电平,异或门已表征为缓冲器。这时的MS-cell表征为由一个缓冲器构成的环形电路,无熵源为其提供随机性,仅维持上一个工作模式的电路状态。
3.3 MS-cell的设计讨论——RO级数
表1更为详细地枚举出了SEL脉冲和IN脉冲不同的电路状态对应MS-cell的工作模式。不允许被忽视的是,当SEL=1且IN=0时,MS-cell处于无熵源的“保持”状态。这对设计出的TRNG的威胁极大,因为这会导致输出序列中会含有连续的‘0’或‘1’。为此,MS-cell设置了1级RO的输出作为IN脉冲,目的是减少“保持”状态的持续时间。由表1可知,叠加MUX和异或门触发的亚稳态的条件近乎严苛。需要在SEL脉冲处于上升沿时,IN脉冲恰好处于下降沿。如果两类脉冲的频率相近,势必要经过很长一段时间才能实现亚稳态的叠加,这也会导致某一工作模式的持续时间过长。因此,需要两类脉冲具有显著的频率上的差距,即一个快速的脉冲不断地追赶一个慢速的脉冲。
表 1 MS-cell的工作模式SEL脉冲 IN脉冲 熵源 ↘ × 反相器触发的抖动 0 × 反相器触发的抖动 ↗ ↘ MUX与异或门触发的亚稳态叠加 ↗ 0 MUX触发的亚稳态 ↗ ↗ 异或门触发的抖动 ↗ 1 异或门触发的抖动 1 ↘ 异或门触发的亚稳态 1 0 无熵源(保持) 1 ↗ 异或门触发的抖动 1 1 异或门触发的抖动 因此,为了更加高效地触发MS-cell的工作模式的切换,要求SEL脉冲的周期要大于IN脉冲的周期。环形振荡器的周期T如式(1)所示
T=2⋅N⋅τ (1) 其中,N表示为RO环中反相器的个数,τ表示单个反相器的延时。显然,环形振荡器的周期与反相器个数成正比,这意味着提供给SEL脉冲的RO级数不能比提供给IN脉冲的RO级数小。同时,为了尽可能的缩减硬件开销,采用3级RO的输出作为SEL脉冲。值得一提的是,由于MS-cell的输入脉冲是由RO所提供的,而RO的输出本身就含有相位抖动,并随着时间不断积累(如图7所示),这必然会在MS-cell工作模式切换的时候注入不确定性,也在一定程度上也增强了熵。
3.4 MS-cell的设计讨论——异或组合方法
事实上,即便完成了上述设计,单个MS-cell仍然难以产生足够的熵来通过NIST测试。通常情况下,应当采用一些后处理技术,以牺牲吞吐量和增加硬件开销为代价来提高TRNG的熵。但本文的初衷是为了设计出高吞吐量的TRNG,而且许多先进的TRNG都没有后处理电路。很多文献表明,异或不但可以提升抖动的累积速度,还能增加TRNG的香农熵[26]。本文根据如图8所示的异或组合结构,建立了简单的数学模型来阐述异或提升香农熵的原理。
首先给出香农熵的具体公式
H=−P1log2P1−(1−P1)log2(1−P1) (2) 其中,P1表示TRNG输出为1的概率。
由式(2)易知,TRNG的输出为1的概率越接近0.5,TRNG的香农熵越接近1。对于异或运算,它具有“奇校验”的性质,可使用列真值表的方式建立概率模型。为便于表示异或函数,本文采用了与文献[25]类似的方法,假设每个MS-cell模块的输出为1的概率相同。如图8所示,把每个模块M输出为1的概率记作x,异或之后的输出记为PnR,将异或函数记为Fn,n为异或的模块个数。先考查两模块的异或函数:
P2R=F2(x)=2x(1−x) (3) 整理得
F2(x)=2x−2x2 (4) 再考查3个模块的异或函数
P3R=F3(x)=3x(1−x)(1−x)+x3 (5) 整理得
F3(x)=3x−6x2+4x3 (6) 由“数学归纳法”可推广到n元
Fn(x)=nx−2C2nx2+4C3nx3−8C4nx4+⋯ (7) 本文研究了异或数目为2、4和6的情形,并绘制了如图9所示的3种异或函数的图像。由图9可知,3种异或函数的图像均位于y=x(0<x<0.5)和y=1–x(0.5<x<1)上方,这说明进行异或处理与不进行异或处理相比,能够显著提高TRNG输出为1的概率,使其更加接近0.5,TRNG的香农熵更容易提升到1。此外,对于相同的x值,异或数目越大,y值就越接近0.5。换句话说,增大异或数目可以显著提升香农熵。
在进行了不同异或数目的对比实验后,本文最终采用了如图10所示的4异或结构。
4. 实验结果与分析
在本节中,提出的MS-TRNG结构分别在Xilinx Virtex-7和Xilinx Artix-7 FPGA开发板中完成了验证。为了能客观地评价提出的TRNG所生成的随机序列的质量,本文采用NIST SP 800-22和NIST SP 800-90B测试套件来对TRNG的性能进行评估。本文还在Virtex-7 FPGA开发板中考查了TRNG在不同的外部电压(0.8~1.1 V,步长为0.1 V)和温度(20℃~80℃,步长为20℃)下的性能,均通过了NIST测试,并且实现了不低于500 Mbit/s的吞吐量。
4.1 偏差测试
偏差测试是通过测量输出的随机序列来评估TRNG对于工艺变化的鲁棒性。通常情况下,一个理想的随机序列所包含的‘0’和‘1’的分布应该是均匀的,所占比例接近于50%。本文提取MS-TRNG的106位输出序列,生成了如图11所示的黑白像素点均匀的分布图(其中黑色像素点代表‘0’,白色像素点代表‘1’)。
4.2 重启测试
重启测试是一种用来区分比特序列是真随机还是伪随机的统计方法。本文对MS-TRNG进行了6次重启测试,并依次绘制出如图12所示的输出序列的前20位的数字波形图。实验结果表明,每次重启测试后都会产生不同的随机序列。因此所提出的MS-TRNG产生的随机序列是真随机的,不具有重复性和相似性。
4.3 自相关测试
偏差自相关函数(AutoCorrelation Function, ACF)是一种统计工具,常用于表征随机序列之间的自相关程度,能用于评估TRNG是否能够生成独立的随机数。本文的工作是先分别在Xilinx Virtex-7和Xilinx Artix-7 FPGA开发板中采集了连续的106位数据,再将自相关函数中的滞后值设置为1~100,最后在python中运行自相关函数的程序,得到了如图13所示的测试结果。可以看出图13中ACF几乎均在–0.002~0.002之间浮动,这意味着提出的MS-TRNG可生成独立的随机序列,并且能抵抗相关性分析攻击。
4.4 NIST测试
NIST SP 800-22是最常见的用于测量随机数质量的测试套件,它包含了15个测试项可用于评估TRNG的性能。它以P值的大小来作为测试项通过的依据,即某一测试项的P值大于0.01时就认为该测试项是通过的。本文分别在Xilinx Virtex-7 FPGA开发板和Xilinx Artix-7 FPGA开发板中收集了100组1 Mbit的数据进行测试,几乎所有的随机序列均通过了随机性测试,结果如表2所示。NIST SP 800-90B中的Non-IID测试通过对10个最小熵的估计器来对随机序列进行评估,以所有估计器中的最小值作为测试的TRNG的最小熵。实验结果如表3所示,提出的TRNG在Non-IID测试中的最小熵分别为0.896712和0.891476。NIST SP 800-90B中的IID测试相较于现有的熵估计方法更复杂和严格,需要进行IID检验、卡方检验和最长重复子串长度检验(LRS检验)提出的TRNG在IID测试中的最小熵分别为0.995069和0.995120。完整的IID测试结果如表4所示。
表 2 NIST SP 800-22测试结果测试项目 Artix-7 Virtex-7 P值 通过率 总体 P值 通过率 总体 近似熵检测 0.503917 99 通过 0.509126 98 通过 块内频数检测 0.510257 100 通过 0.480771 98 通过 累加和检测 0.537681 100 通过 0.466125 98 通过 离散傅里叶变换检测 0.454209 99 通过 0.522061 100 通过 频率检测 0.546769 99 通过 0.460289 98 通过 线性复杂度检测 0.461250 99 通过 0.474038 98 通过 块内最长运行检测 0.510434 100 通过 0.522953 99 通过 非重叠模板匹配检测 0.495718 99 通过 0.500575 99 通过 重叠模板匹配检测 0.465718 99 通过 0.507311 99 通过 随机偏移检测 0.271823 98 通过 0.310572 99 通过 随机偏移变化检测 0.270109 99 通过 0.315353 98 通过 2元矩阵秩检测 0.526488 98 通过 0.495522 100 通过 运行检测 0.550720 97 通过 0.554121 98 通过 序列检测 0.496321 97 通过 0.515058 100 通过 通用统计检测 0.478454 100 通过 0.476515 99 通过 表 3 NIST SP 800-90B Non-IID测试结果测试项目 Artix-7 Virtex-7 P (max) h-min P (max) h-min 最频值 0.501712 0.995069 0.501694 0.995120 碰撞 0.537109 0.896712 0.539062 0.891476 马尔可夫 4.0306e–39 0.996439 4.4813e–39 0.995244 压缩 0.5 1 0.506836 0.980409 元组 0.526629 0.925141 0.519390 0.945111 最长重复字串长度 0.502963 0.991475 0.501607 0.995369 多个MCW 0.501673 0.995182 0.500678 0.998046 滞后 0.500954 0.997251 0.500901 0.997404 多个MMC 0.500685 0.998025 0.501520 0.995621 LZ78Y算法 0.501425 0.995896 0.500968 0.997211 表 4 NIST SP 800-90B IID测试结果测试项目 Artix-7 Result Virtex-7 Result IID 置换检验 通过 通过 卡方独立检验 通过 通过 卡方拟合优度检验 通过 通过 最长重复字串长度测试 通过 通过 重启动测试 通过 通过 最小熵测试 0.995069 0.995120 4.5 电压和温度测试
为验证所提出的TRNG的抵抗恶劣环境的能力,本文的工作是在Xilinx Virtex-7 FPGA开发板中测试在不同的电压和温度变化下TRNG输出的随机序列的质量。实验表明,提出的TRNG在工作电压为0.8~1.1V和温度为20℃~80℃的环境变化下均通过了NIST测试。为了更好地表征TRNG的抗环境变化能力,本文使用了NIST SP 800-22测试中15个测试项的平均P值和NIST SP 800-90B中的IID试的最小熵作为衡量TRNG性能的参考。如图14所示,MS-TRNG在不同的电压下,具有不低于0.993的最小熵和0.47的平均P值。如图15所示,MS-TRNG在不同的温度下,具有不低于0.995的最小熵和0.47的平均P值。结果表明,MS-TRNG能在不同的环境变化下生成高质量的随机数,具有良好的抵抗环境变化的能力。
4.6 与其他先进TRNG的对比
为了体现提出的TRNG的性能优势,本文将完整的MS-TRNG结构与目前先进的TRNG进行了对比,对比的结果如表5所示。由表5可知,提出的MS-TRNG具有最高的吞吐量且不需要后处理电路。事实上,在硬件资源消耗方面,只有文献[14]所报道的TRNG比提出的MS-TRNG要小,但它的吞吐量和功耗都不能跟MS-TRNG相媲美。其余的TRNG结构最多只能在功耗上比MS-TRNG有优势,但在吞吐量和硬件开销这两个最为重要的性能指标上都是劣势。
表 5 与其他先进TRNG的对比方法 熵源 硬件资源 吞吐量(Mbit/s) 功耗(mW) 后处理电路 [9] 抖动 50LUTs/79FFs 280.0 – 有 [12] 抖动 56LUTs/19FFs 100.0 1.150 有 [14] 抖动 24LUTs/2FFs 290.0 3703.000 无 [16] 抖动 32LUTs/55FFs/33Slices 12.5 9.514 无 [19] 亚稳态 38LUTs/121FFs/38Slices 300.0 119.000 有 [24] 抖动+亚稳态 271LUTs/199Cells 1.0 90.000 有 [25] 抖动+亚稳态 36LUTs/0FFs 12.5 – 无 [26] 抖动 37LUTs/25FFs 160.0 – 无 本文 抖动+亚稳态 29LUTs/4FFs 500.0 123.000 无 5. 结束语
本文提出一种新型的亚稳态叠加单元,并使用异或组合方法设计了轻量级的TRNG。它可以将两类不同元件触发的亚稳态进行叠加,从而提升随机性和吞吐量。所提出的亚稳态叠加单元具有多个工作模式,有效地结合了亚稳态和RO中的抖动。实验结果表明,所提出的TRNG设计具有很大的性能优势。在Xilinx Virtex-7 FPGA开发板上,仅消耗了29个LUTs和4个FFs,实现了500 Mbit/s的最高吞吐量。它所生成的随机序列通过了NIST SP800-22测试、NIST SP800-90B测试、偏差测试、自相关测试、重启动测试,还能抵抗温度(20℃~80℃)和电压(0.8~1.1 V)的外部环境变化,具有良好的鲁棒性。
-
表 1 MS-cell的工作模式
SEL脉冲 IN脉冲 熵源 ↘ × 反相器触发的抖动 0 × 反相器触发的抖动 ↗ ↘ MUX与异或门触发的亚稳态叠加 ↗ 0 MUX触发的亚稳态 ↗ ↗ 异或门触发的抖动 ↗ 1 异或门触发的抖动 1 ↘ 异或门触发的亚稳态 1 0 无熵源(保持) 1 ↗ 异或门触发的抖动 1 1 异或门触发的抖动 表 2 NIST SP 800-22测试结果
测试项目 Artix-7 Virtex-7 P值 通过率 总体 P值 通过率 总体 近似熵检测 0.503917 99 通过 0.509126 98 通过 块内频数检测 0.510257 100 通过 0.480771 98 通过 累加和检测 0.537681 100 通过 0.466125 98 通过 离散傅里叶变换检测 0.454209 99 通过 0.522061 100 通过 频率检测 0.546769 99 通过 0.460289 98 通过 线性复杂度检测 0.461250 99 通过 0.474038 98 通过 块内最长运行检测 0.510434 100 通过 0.522953 99 通过 非重叠模板匹配检测 0.495718 99 通过 0.500575 99 通过 重叠模板匹配检测 0.465718 99 通过 0.507311 99 通过 随机偏移检测 0.271823 98 通过 0.310572 99 通过 随机偏移变化检测 0.270109 99 通过 0.315353 98 通过 2元矩阵秩检测 0.526488 98 通过 0.495522 100 通过 运行检测 0.550720 97 通过 0.554121 98 通过 序列检测 0.496321 97 通过 0.515058 100 通过 通用统计检测 0.478454 100 通过 0.476515 99 通过 表 3 NIST SP 800-90B Non-IID测试结果
测试项目 Artix-7 Virtex-7 P (max) h-min P (max) h-min 最频值 0.501712 0.995069 0.501694 0.995120 碰撞 0.537109 0.896712 0.539062 0.891476 马尔可夫 4.0306e–39 0.996439 4.4813e–39 0.995244 压缩 0.5 1 0.506836 0.980409 元组 0.526629 0.925141 0.519390 0.945111 最长重复字串长度 0.502963 0.991475 0.501607 0.995369 多个MCW 0.501673 0.995182 0.500678 0.998046 滞后 0.500954 0.997251 0.500901 0.997404 多个MMC 0.500685 0.998025 0.501520 0.995621 LZ78Y算法 0.501425 0.995896 0.500968 0.997211 表 4 NIST SP 800-90B IID测试结果
测试项目 Artix-7 Result Virtex-7 Result IID 置换检验 通过 通过 卡方独立检验 通过 通过 卡方拟合优度检验 通过 通过 最长重复字串长度测试 通过 通过 重启动测试 通过 通过 最小熵测试 0.995069 0.995120 表 5 与其他先进TRNG的对比
方法 熵源 硬件资源 吞吐量(Mbit/s) 功耗(mW) 后处理电路 [9] 抖动 50LUTs/79FFs 280.0 – 有 [12] 抖动 56LUTs/19FFs 100.0 1.150 有 [14] 抖动 24LUTs/2FFs 290.0 3703.000 无 [16] 抖动 32LUTs/55FFs/33Slices 12.5 9.514 无 [19] 亚稳态 38LUTs/121FFs/38Slices 300.0 119.000 有 [24] 抖动+亚稳态 271LUTs/199Cells 1.0 90.000 有 [25] 抖动+亚稳态 36LUTs/0FFs 12.5 – 无 [26] 抖动 37LUTs/25FFs 160.0 – 无 本文 抖动+亚稳态 29LUTs/4FFs 500.0 123.000 无 -
[1] CORRIGAN-GIBBS H, MU W, BONEH D, et al. Ensuring high-quality randomness in cryptographic key generation[C]. 2013 ACM SIGSAC Conference on Computer & Communications Security, Berlin, Germany, 2013: 685–696. doi: 10.1145/2508859.2516680. [2] CHAKRABORTY S, GARG A, and SURI M. True random number generation from commodity NVM chips[J]. IEEE Transactions on Electron Devices, 2020, 67(3): 888–894. doi: 10.1109/TED.2019.2963203. [3] YANG Bohan, ROŽIC V, GRUJIC M, et al. ES-TRNG: A high-throughput, low-area true random number generator based on edge sampling[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2018, 2018(3): 267–292. doi: 10.13154/tches.v2018.i3.267-292. [4] TANG Qianying, KIM B, LAO Yingjie, et al. True random number generator circuits based on single- and multi-phase beat frequency detection[C]. IEEE 2014 Custom Integrated Circuits Conference, San Jose, USA, 2014: 1–4. doi: 10.1109/CICC.2014.6946136. [5] ROBOSON S, LEUNG B, and GONG G. Truly random number generator based on a ring oscillator utilizing last passage time[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2014, 61(12): 937–941. doi: 10.1109/TCSII.2014.2362715. [6] KWOK S H M and LAM E Y. FPGA-based high-speed true random number generator for cryptographic applications[C]. 2006 IEEE Region 10 Conference, Hong Kong, China, 2006: 1–4. doi: 10.1109/TENCON.2006.344013. [7] FISCHER V, DRUTAROVSKÝ M, ŠIMKA M, et al. High performance true random number generator in Altera stratix FPLDs[C]. 14th International Conference and Field Programmable Logic and Application, Leuven, Belgium, 2004: 555–564. doi: 10.1007/978-3-540-30117-2_57. [8] MEITEI H B and KUMAR M. FPGA implantations of TRNG architecture using ADPLL based on FIR filter as a loop filter[J]. SN Applied Sciences, 2022, 4(4): 96. doi: 10.1007/s42452-022-04981-6. [9] LIN Jianming, WANG Yonggang, ZHAO Zelong, et al. A new method of true random number generation based on Galois ring oscillator with event sampling architecture in FPGA[C]. 2020 IEEE International Instrumentation and Measurement Technology Conference, Dubrovnik, Croatia, 2020: 1–6. doi: 10.1109/I2MTC43012.2020.9129357. [10] GOLIC J D J. New methods for digital generation and postprocessing of random data[J]. IEEE Transactions on Computers, 2006, 55(10): 1217–1229. doi: 10.1109/TC.2006.164. [11] DICHTL M. Fibonacci ring oscillators as true random number generators—a security risk[J]. IACR Cryptology ePrint Archive, 2015, 2015: 270. [12] WANG Xinyu, LIANG Huaguo, WANG Yanjie, et al. High-throughput portable true random number generator based on jitter-latch structure[J]. IEEE Transactions on Circuits and Systems I:Regular Papers, 2021, 68(2): 741–750. doi: 10.1109/TCSI.2020.3037173. [13] GU Haoang, DENG Fangyu, WANG Qin, et al. A four-phase self-timed ring based true random number generator on FPGA[C]. 2022 IEEE 16th International Conference on Solid-State & Integrated Circuit Technology (ICSICT), Nangjing, China, 2022: 1–3. doi: 10.1109/ICSICT55466.2022.9963322. [14] CUI Jianguo, YI Maoxiang, CAO Di, et al. Design of true random number generator based on multi-stage feedback ring oscillator[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2022, 69(3): 1752–1756. doi: 10.1109/TCSII.2021.3111049. [15] PARK J, KIM B, and SIM J Y. A PVT-tolerant oscillation-collapse-based true random number generator with an odd number of inverter stages[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2022, 69(10): 4058–4062. doi: 10.1109/TCSII.2022.3184950. [16] GRUJIĆ M and VERBAUWHEDE I. TROT: A three-edge ring oscillator based true random number generator with time-to-digital conversion[J]. IEEE Transactions on Circuits and Systems I: Regular Papers, 2022, 69(6): 2435–2448. doi: 10.1109/TCSI.2022.3158022. [17] DI PATRIZIO STANCHIERI G, DE MARCELLIS A, PALANGE E, et al. A true random number generator architecture based on a reduced number of FPGA primitives[J]. AEU - International Journal of Electronics and Communications, 2019, 105: 15–23. doi: 10.1016/j.aeue.2019.03.006. [18] MAJZOOBI M, KOUSHANFAR F, and DEVADAS S. FPGA-based true random number generation using circuit metastability with adaptive feedback control[C]. 13th International Workshop on Cryptographic Hardware and Embedded Systems, Nara, Japan, 2011: 17–32. doi: 10.1007/978-3-642-23951-9_2. [19] FRUSTACI F, SPAGNOLO F, PERRI S, et al. A high-speed FPGA-based true random number generator using metastability with clock managers[J]. IEEE Transactions on Circuits and Systems II:Express Briefs, 2023, 70(2): 756–760. doi: 10.1109/TCSII.2022.3211278. [20] WIECZOREK P Z. Dual-metastability FPGA-based true random number generator[J]. Electronics Letters, 2013, 49(12): 744–745. doi: 10.1049/el.2012.4126. [21] VON NEUMANN J. Various techniques used in connection with random digits[J]. National Bureau of Standards Applied Mathematics Series, 1951, 12: 36–38. [22] WIECZOREK P Z. An FPGA implementation of the resolve time-based true random number generator with quality control[J]. IEEE Transactions on Circuits and Systems I:Regular Papers, 2014, 61(12): 3450–3459. doi: 10.1109/TCSI.2014.2338615. [23] JIN Liyu, YI Maoxiang, XIAO Yuan, et al. A dynamically reconfigurable entropy source circuit for high-throughput true random number generator[J]. Microelectronics Journal, 2023, 133: 105690. doi: 10.1016/j.mejo.2023.105690. [24] WIECZOREK P Z. Lightweight TRNG based on multiphase timing of bistables[J]. IEEE Transactions on Circuits and Systems I:Regular Papers, 2016, 63(7): 1043–1054. doi: 10.1109/tcsi.2016.2555248. [25] DELLA SALA R, BELLIZIA D, and SCOTTI G. High-throughput FPGA-compatible TRNG architecture exploiting multistimuli metastable cells[J]. IEEE Transactions on Circuits and Systems I:Regular Papers, 2022, 69(12): 4886–4897. doi: 10.1109/TCSI.2022.3199218. [26] MEI Faqiang, ZHANG Lei, GU Chongyan, et al. A highly flexible lightweight and high speed true random number generator on FPGA[C]. 2018 IEEE Computer Society Annual Symposium on VLSI (ISVLSI), Hong Kong, China, 2018: 399–404. doi: 10.1109/ISVLSI.2018.00079. 期刊类型引用(0)
其他类型引用(1)
-