当前位置:
文档之家› 一种基于FPGA的真随机数发生器设计与实现
一种基于FPGA的真随机数发生器设计与实现
for
rs.ndomes8
indicates that
the performance of the random sequence of the TRNG meets the requirement.Since the
can
TRNG only cycle.
UseS common logic unites,it
linear feedback of the
register(LFSR)is used
as post-precessinK In the
tests
oll
l platform,the
e如cts
design
tests
parameters。such as the number of oscillators and sampling frequency,are discussed.The result of DIEHARD suite
be quickly transplanted
to
the ASIC
design
and
shorten the development
Key words:true
random number
generator;oscillation ring;phase drift
and jitter;metastability;FPGA
第19卷
V01.1 9
第lO期
No.10
电子设计工程
Electronic Design Engineering
2011年5月
May 201 1
一种基于FPGA的真随机数发生器设计与实现
张聪,于忠臣
(北京工业大学北京市嵌入式系统重点实验室。北京100124) 摘要:设计并实现了一种基于FPGA的真随机数发生器。利用一对振荡环路之间的相位漂移和抖动以及亚稳态作为 随机源。使用线性反馈移位寄存器的输出与原始序列运算作为后续处理。在Xili啦Virtex一5平台的测试实验中,探讨 了振荡器数量以及采样频率等参数对随机序列的统计特性的影响。测试结果表明本设计产生的随机序列能够通过 DIEHARD测试。性能满足要求。由于仅使用了普通逻辑单元,使得本设计能够迅速移植到ASIC设计。大大缩短了开 发周期。 关键词:真随机数发生器;振荡环;相位漂移与抖动;亚稳态;FPGA 中图分类号:TN782
∞…∞一鸶矗图
(a)采样 ("¥ampling (b)保持
《b)hold ‘c)transfer chal"actefistic
(d】mechanical diagram of meta¥table
图1 Fig.1
亚稳态
Metability
1.3振荡器的设计 如图2所示。二选一复用器既作为延迟单元又作为选通 单元使用。当选通信号为‘1’时,形成两个相互独立、自由振 荡的环形振荡器。当选通信号为‘0’时,两组反相器交叉相连 形成双稳态器件。自由振荡时.两个振荡器之间存在着抖动 和相位偏移。在振荡的停止时刻,即振荡环路断开、两组反相 器交叉连接时。反相器的瞬时输出电压以及内部噪声的绝对 和相对值决定了电路最终稳定在哪个逻辑值上。有时即使反 相器跨接在一起。电路也会振荡很长・段时间才能稳定下 来。形成亚稳态。综上所述,随机序列的来源用到了抖动和亚 稳态两种机制。
-176.. 稿件编号:201102063
使用诸如PLL等特殊资源。便于设计由FPGA验证移植到芯 片设计。其核心思想是使用反相器和延时单元构成两个相互 独立的振荡器.由于内部噪声的差异引起的相位偏移作为熵 源,经过一段时间振荡后。随机的状态由数字双稳态电路锁 存。多组振荡器的输出。经过异或和同步处理后得到随机序 列。该TRNG在FPGA物理平台上实现并进行了测试验证。 1
好。但是如果振荡器的数目太多,会消耗过多的硬件资源,功 耗也过大。因此,不宜通过单纯地增加振荡器数目的方法提 高随机序列的性能。 定性分析如下:将序列的每位看作是一个随机的二进制 变量X,定义b是序列的偏置。即
b=lP(X=1)一l/21=IP(X=0)一1,2I (2)
测试。检验随机序列的性能。 DIEHARD测试是由16项测试组成的用来度量随机数 发生器性能的一组统计学测试,它由George M躺羽ia开发 并于1995年首次发布。DIEHARD的测试结果叫做P-vMue。 它由方程P-value=Fi(X)计算得到,其中E试图建立样本X 在O和l间服从均匀分布的分布函数。因为E是渐进逼近的, 它在尾部的近似效果变差.所以数值接近O或1的P_value 在真随机序列中极少出现。当被测序列随机性能很差时。会 有很多P-value的值是精确到小数点后数位的O或者1.例如.
TRNG的设计
1.1相位漂移与抖动 由于受到电路中噪声的影响,数字电路中时钟信号的周 期在每个不同的周期上可能缩短或者加长。这就是时钟抖 动。抖动可以用许多方法来衡量和表征.它是一个均值为零 的随机变量。振荡器起振时刻的差异和电路元件的工艺偏 差,使得振荡器间存在相位漂移。因此抖动信号和相位漂移 适合在数字电路中作为TRNG的随机源。 1.2亚稳态 锁存器是有逻辑‘l’和‘0’两个稳定状态的双稳态器件。 但是在特殊情况下其可能进入亚稳态[41。此时它的输出是介
采样时钟 选通信号 振荡输出
Sequence)ts的输出与采样得到的随机序列进
行异或运算作为后续处理,PRBS产生电路消耗资源少并且 使用线性反馈移位寄存器实现,非常适合于在FPGA上实 现。它的生成多项式是: G116FXl6+X13+X12+X“+F+X6+X3+X+l 多项式表示如图5所示。 2
真随机数发生器(TRNG)在统计学、信息安全等领域有 着广泛的应用。在这些领域中。不仅要求数据序列分布均匀、 彼此独立.而且要求其具有不可预测性.能够抵御针对随机 性的攻击。B.Sunar。W.J.Martin和D.R.Stinson提出【”,真随 机数发生器的性能受3个因素的影响:熵源(Entropy Source),采集方式(Harvesting Mechanism)和后续处理(Post— Processing)。在电路系统中最常见的三种真随机数产生方法 为田:1)直接放大法:放大电路中的电阻热噪声等物理噪声。 通过比较器进行比较后获得随机数序列;2)振荡采样法:用 带有抖动的慢振荡器通过D触发器采样一个周期固定的快 振荡器,输出随机序列;3)离散时间混沌法:利用混沌电路不 可预测以及对初始条件敏感的依赖性的特点产生随机序列。 基于模拟电路的结构,熵源的统计分布更加理想,且熵源噪 声不随采样周期的变化而改变;基于数字电路的结构,集成 度高。便于在FPGA等通用可编程平台上实现,但熵源的统 计特性与模拟电路相比不够理想131。 本文尝试了一种用纯数字电路实现的TRNG结构,且不 收稿日期:2011—02—24
于‘l’和‘0’之间的中间电平。如图l所示锁存器用两个反相 器和两个开关表征。当锁存器导通时,采样开关闭合,保持开 关打开(图a);当锁存器关闭时,采样开关打开,保持开关闭 合(图b)。图e展示了两个反相器的直流传输特性。当锁存器 关闭时A=B,稳态是A=B--0和A=B=Vno,亚稳态为A=B=V。。
稳态的传播会造成后续电路的错误动作。因此使用同步器将 异或后的随机序列与后续电路隔离开来。同时也方便采集稳 定的输出序列做性能分析。此处采用了三级寄存器的同步结 构。由MTBF(Mean
Time Between
Failure)四的定义可知,平均需
要经过数百年时间才会发生一次亚稳态通过同步器向下传播 的事件。因此是满足设计要求的。该模块电路图如图4所示。
图4随机源模块电路
Fig.4 Circuit of random
source
1.5后续处理模块的设计 理想情况下.D触发器所采集的信号具有随机的统计特 性。可是FPGA内部电路不可避免地会受到温度漂移、电压 抖动等不良因素影响。从而导致采样得到的随机信号中存在
图2振荡器结构图
Fig.2 Oscillator
true
System Key Lab,Belling University
ofTechnology,Be;iing 100124,China)
a
random number
to
generator(TRNG)is presented in this paper.The design utilizes
point.the free-running oscillators
作者简介:张聪(1985一),男,辽宁铁岭人,硕士研究生。研究方向:集成电路数字前端设计。
万方数据
张聪.等
一种基于FPGA的真随机数发生器设计与实现
其中V。不是一个合理的逻辑值。因为电平在该点是相互稳 定的并且可以无限期停留,所以称该点为亚稳态。但是,任何 噪声或者其他干扰都会使得A和B最终稳定在两个稳态中 的一个状态。图d非常形象地表征了亚稳态。它就好像处于 山顶的小球任何干扰都会使小球滚落到山两端的稳定状态。
structure
偏置.影响结果的统计特性。所以在采样得到随机序列后要 对数据进行消偏处理.使O和l出现的概率相当。 本设计采用16位最大长度二进制伪随机序列(Pseudo
Random Binary
波形如图3所示,为了方便数据采集选通信号是由时钟 经过分频得到的。在自由振荡阶段,输出信号快速变化不属 于任何稳定状态。在图中用斜线表示。在解析阶段,电路是双 稳态器件。此时应该保持解析时间足够长。从而使输出电平 在大多数情况下稳定在逻辑‘l’或‘0’。
are are
pair of via
a
that a弛permitted
free-run.At some
coerced
to
match
a
states
device.Metastability and oscillator drift