文獻標識碼: 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)