文献标识码: A
DOI:10.16157/j.issn.0258-7998.180002
中文引用格式: 魏子魁,符令,王雪,等. 一种基于热噪声振荡器的高速真随机数设计[J].电子技术应用,2018,44(10):29-31,36.
英文引用格式: Wei Zikui,Fu Ling,Wang Xue,et al. A high speed truly random number generator based on thermal noise oscilltor[J]. Application of Electronic Technique,2018,44(10):29-31,36.
0 引言
随着信息技术的快速发展,信息安全变得越来越重要,保障信息安全的最好方式是密码学。在密码学应用中,无论是密码算法中密钥的生成或是密码协议中特定变量的随机初始化,都需要用到真随机数源。真随机数在统计学上具有随机性, 包括时间上的独立性和空间上的均匀性,还具有不可重复性和不可预测性[1]。随机数主要应用于密码算法协处理器中的密钥、身份认证和数字签名等[2]。
本文实现了一种改进的真随机数发生器,其基本思路是在保证低频时钟有足够的抖动和随机性的前提下,提高低频时钟频率和高频时钟频率,提高真随机数输出速度,对电路进行优化,减少电路的整体功耗和面积。
1 整体电路结构
真随机数电路结构如图1所示,利用两个独立工作的高、低频振荡器之间的相对关系采样噪声源,用带有抖动的低频振荡器通过D触发器采样有固定周期的高频振荡器,从而产生随机数序列。在实际电路设计过程中,慢振荡器的抖动标准差需要足够大,这样使慢振荡器的时钟频率很难提高,一般情况下,输出频率在1 MHz左右,这样会严重影响真随机数的输出速度;高频时钟频率输出频率也会影响随机数的输出速度,通常要求慢振荡器抖动标准差在高振荡器周期的10~20倍之间。
2 低频时钟设计和仿真
2.1 低频时钟理论分析
低频时钟是带有抖动的慢振荡器(clkslow),电路如图2所示。
电路使能开启后,偏置电路开始提供偏置电压和电流。当L_OUT为高电平时,电荷泵放电使运放正端电压下降,输出电压降低,到达低阈值-VTL,L_OUT变为低电平,反之亦然。运放输出信号是一个在迟滞比较器高低阈值间来回摆动的三角波;电阻R1和R2上的热噪声经过运放放大后叠加在三角波上,得到L_OUT 的时钟沿抖动与热噪声一样,满足正态分布。
运放输出的三角波信号如图3所示,图中S是运放输出三角波的斜率,Tclkslow是慢时钟信号的周期。可以得到:
V(t)是输出电压随时间变化的函数,Vn(t)是放大后的电阻热噪声,可以推出:
2.2 负反馈运放的设计
从式(4)和式(5)中可知,E{Tclkslow}和σ{Tclkslow}成反比关系,如果要增大低频时钟的周期,则低频时钟的抖动值会减少。低频时钟的抖动值还与噪声带宽(Bw)和热噪声电阻(R1、R2)有关。要使随机数输出频率加快,必须增大充放电电流Icharge并减少电荷泵到地电容C,这两个参数都会减少低频时钟的抖动值。为了使低频时钟有足够抖动值,根据式(5)和式(7)可知,可以增大噪声带宽和热噪声电阻。噪声带宽的大小由负反馈运放的-3 dB带宽和低通滤波器带宽决定,如图2所示,热噪声电阻R1和寄生电容C1形成低通滤波器,当电阻R1值增加时,寄生电容随之增加,低通滤波器带宽变小,导致噪声带宽变小,低通滤波器带宽也会影响慢振荡器环路带宽。
通过上面的分析可知,热噪声电阻的选取很重要,在电阻选取中,选取高阻值poly电阻,电阻取最小宽度。当电阻阻值取500 kΩ时,通过对版图寄生电容的提取,C1的值在8 fF左右。
表1为不同电阻值的低频时钟抖动值(时钟输出频率为5 MHz),在电阻较大时,此时低通滤波器的带宽会严重限制低频时钟的环路带宽,也会限制随机数的输出频率,综合考虑取热噪声电阻值为500 kΩ,σ{Tclkslow}为15 ns,低通滤波器的带宽为40 MHz。负反馈运放和迟滞比较器带宽会根据低通滤波器的带宽来确定,不会因带宽过大而浪费功耗。
本文选择折叠式共源共栅结构的运放,运放在实际设计中,输入对管的面积尽可能减少,以减少寄生电容。
2.3 低频时钟仿真
本文在设计真随机数产生器时,输出吞吐率范围为1.8~12 Mb/s,引入了3 bit控制字来调节输出范围,低频时钟输出频率范围为1.79~12.95 Mb/s,中心频率输出值为4.6 Mb/s。
表2为低频时钟输出频率对应的σ{Tclkslow}仿真结果,从表中可知,频率越大,输出σ{Tclkslow}越小,需要高频时钟的频率越高。
3 高频时钟设计和仿真
为了提高真随机数发生器的抗干扰能力以及输出序列的随机性能,快时钟振荡器的周期是慢振荡器jitter的1/20~1/10。在低频时钟设计中输出中心频率为4.6 MHz时,σ{Tclkslow}值为15 ns,取高频时钟的周期是σ{Tclkslow}的1/15,快时钟振荡器的周期为1 ns,时钟频率为1 GHz。本文中高频时钟的电路采取环路振荡器的结构,为保证在PVT变化时输出高频时钟的占空比为50%,环振的输出信号需经过一个高速二分频电路。二分频电路采取高速二分频电路(TSPC)的结构。
高频时钟的仿真结果表明,其时钟频率的中心频率为1.07 GHz,占空比为48.5%.
4 整体电路版图设计和仿真
本文设计的真随机数发生器电路采用SMIC 28 nm CMOS工艺,核心电路版图面积小于0.025 mm2,整体功耗为0.388 mW,图4为整体电路的版图设计。
本文实现了高速随机输出,仿真输出速度在12 Mb/s时的放大噪声和噪声分布情况,如图5所示,从图5中可知输出噪声的分布符合白噪声分布。对图5中的jitter值做正态分布处理,可知低频时钟的jitter值服从正态分布,标准差σ{Tclkslow}值为6.7 ns。图6是基于振荡器的真随机数发生器整体电路瞬态仿真结果。
图7是随机数的测试结果,基于真随机数测试标准AIS31,对实际设计的真随机数发生器进行了评测。实验结果表明,随机数符合AIS31的测试要求。
表3是流片的测试结果与文献调研中参考的国外相关真随机数发生器的性能参数的对比,本文的结果在最后一行。
5 结论
本文设计了基于电阻热噪声振荡器的真随机数产生器,该电路结构可以保证获得较大的周期抖动从而提高输出位流的随机特性。在本设计中充分考虑了低频振荡器的输出速度和jitter之间的关系,最终使振荡器的输出频率接近12 MHz,输出噪声符合白噪声分布,随机性较好。在电路设计的基础上完成了版图设计和流片。仿真结果表明,基于热噪声的真随机数产生器输出吞吐率范围为1.8~12 Mb/s,随机数输出结果满足AIS31随机性测试,功耗为0.388 mW。
本文设计的随机数和其他论文相比,在速度和功耗方面有了很大的提升,可以应用在信息安全、计算随机模拟、数字系统内置的检测性能和电子商务系统等领域。
参考文献
[1] 苏桂平,吕述望,杨柱,等.真随机数发生器的随机性在信息安全中的应用[J].计算机工程,2002,28(6):114-115.
[2] YANG Y.Implementation of 200 Mbps truly random number generator[D].Beijing:Tsinghua University,2013.
[3] 辛茜,曾晓洋,张国权,等.基于电阻热噪声的真随机数发生器设计[J].微电子学与计算机,2004,21(7):143-146.
[4] ULKUHAN GULER,ERGUN S.A high speed, fully digital IC random number generator[J].AEU-International Journal Electronics and Communications,2012,66(2):143-149.
[5] YANG K,FICK D,HENRY M B,et al.16.3 A 23 Mb/s 23 pJ/b fully synthesized true-random-number generator in 28 nm and 65 nm CMOS[C].IEEE International Solid-State Circuits Conference.IEEE,2014:280-281.
作者信息:
魏子魁1,2,符 令1,2,王 雪3,何 洋1,2,金 鑫1,2,谭 浪1,2,
胡 毅1,2,唐晓柯1,2,张海峰1,2,赵东艳1,2
(1.北京智芯微电子科技有限公司 国家电网公司重点实验室 电力芯片设计分析实验室,北京100192;
2.北京智芯微电子科技有限公司 北京市电力高可靠性集成电路设计工程技术研究中心,北京100192;
3.国网辽宁电力有限公司信息通信分公司,辽宁 沈阳110006)