侯二林,朱 翔,馮純益,張建國,王云才
(1.太原理工大學 新型傳感器與智能控制教育部和山西省重點實驗室,太原 030024;2.成都三零嘉微電子有限公司,四川 成都 610041)
隨機數(shù)被廣泛應(yīng)用于現(xiàn)代密碼系統(tǒng)中,作為安全密鑰使用。根據(jù)產(chǎn)生方法的不同,隨機數(shù)主要分為兩類:偽隨機數(shù)和真隨機數(shù)。利用CPU運算某種數(shù)學算法(如線性同余算法)可以快速地生成偽隨機數(shù),然而偽隨機數(shù)具有周期性,可以被預(yù)測,無法確保密碼系統(tǒng)的安全[1]。真隨機數(shù)是一組具有不可被預(yù)測性和不可復(fù)制性的數(shù)字序列,它不依賴于數(shù)學算法,無法從已知的初始條件中預(yù)測出下一位數(shù)字,因而具有良好的保密性[2]。真隨機數(shù)通常是從物理隨機過程(熵源)中提取,如熱噪聲[3]、振蕩器相位噪聲[4]、光量子噪聲[5]、原子核放射性衰變[6]以及混沌電路[7]等,其產(chǎn)生裝置被稱為真隨機數(shù)發(fā)生器(true random number generator,TRNG).
基于混沌電路的TRNG,主要是利用混沌的參數(shù)敏感性和長期不可預(yù)測性等特性來產(chǎn)生真隨機數(shù)序列。常見的混沌TRNG熵源有:分段線性映射混沌、時空混沌、憶阻器混沌、多維映射混沌等[8]。布爾混沌是由美國杜克大學ZHANG et al在自治布爾網(wǎng)絡(luò)中發(fā)現(xiàn)的新型混沌[9]。與前述混沌熵源相比,其具有信號高幅值(≥1 V)、大帶寬(-10 dB帶寬可達數(shù)GHz)等優(yōu)點,在發(fā)展高速TRNG方面具有突出優(yōu)勢[10]。
本文設(shè)計了一種基于布爾混沌的TRNG芯片,其真隨機數(shù)最高輸出速率可達100 Mbps.芯片設(shè)計采用中芯國際SMIC 0.35 μm 3.3 V CMOS標準工藝,核心電路面積0.02 mm2.針對所設(shè)計的芯片版圖進行了參數(shù)提取及后端仿真,并對仿真產(chǎn)生的真隨機數(shù)序列進行了香農(nóng)熵、二維點陣圖分析以及ENT測試,結(jié)果表明所產(chǎn)生的真隨機序列具備良好的隨機統(tǒng)計特性。
TRNG設(shè)計原理如圖1所示,主要由2部分構(gòu)成:熵源和熵提取電路。
圖1 基于自治布爾網(wǎng)絡(luò)的TRNGFig.1 True random number generator based on Autonomous Boolean network
熵源是一個自治布爾網(wǎng)絡(luò)振蕩器,它由18個自治節(jié)點組成,其中0號節(jié)點是一個兩輸入異或非門(XNOR),而1-17節(jié)點則分別為兩輸入異或門(XOR).振蕩器中每個節(jié)點的輸入均是來自于相鄰節(jié)點的輸出。
熵提取電路是一個同步布爾網(wǎng)絡(luò),它由4個D觸發(fā)器和2個二輸入XOR門組合而成,其主要作用是:1) D觸發(fā)器在時鐘信號控制下對熵源(0,6,12節(jié)點)輸出的混沌信號進行采樣、量化,產(chǎn)生不可預(yù)測的“0”,“1”二進制真隨機數(shù)序列;2) 利用2個XOR門組成的異或鏈電路消除真隨機數(shù)中存在的偏置(即“0”和“1”數(shù)量不相等的現(xiàn)象),實現(xiàn)高質(zhì)量真隨機數(shù)的持續(xù)穩(wěn)定輸出。
在CMOS工藝下,TRNG中的邏輯器件(XOR和XNOR)可以通過多種電路結(jié)構(gòu)來實現(xiàn),常見方法有靜態(tài)電路實現(xiàn)、動態(tài)電路實現(xiàn)、偽NMOS電路實現(xiàn)以及傳輸門電路實現(xiàn)。相比其他三種方式,傳輸門電路的顯著特點是只需要較少的晶體管就可以實現(xiàn)所需邏輯功能,有利于降低TRNG芯片的總體功耗;因此,本文使用傳輸門電路來構(gòu)建XOR門和XNOR門。設(shè)計過程如下:首先,選擇溝道寬度為0.35 μm的NMOS管和PMOS管,將2個MOS管的源極與漏極并聯(lián)以構(gòu)成傳輸門;其次,利用傳輸門分別構(gòu)成異或門和異或非門[11]。所設(shè)計的傳輸門和異或門結(jié)構(gòu)如圖2(a),(b)所示,而異或非門是在異或門基礎(chǔ)上級聯(lián)一個非門實現(xiàn)。TRNG整體設(shè)計如圖2(c)所示,僅使用邏輯門、觸發(fā)器等數(shù)字器件組成,具有結(jié)構(gòu)簡單、魯棒性強等優(yōu)點。
使用Cadence軟件的Spectres工具對所設(shè)計的TRNG芯片進行了仿真測試。芯片時鐘頻率設(shè)置為100 MHz,電源電壓3.3V ±10 %。自治布爾網(wǎng)絡(luò)(從0號節(jié)點輸出)產(chǎn)生的信號時序、頻譜如圖3(a),(b)所示,信號呈現(xiàn)無規(guī)則連續(xù)振蕩,幅值約3 V左右,其頻譜為連續(xù)譜,-10 dB帶寬約780 MHz,具有超寬帶信號特性。進一步分析了無規(guī)則振蕩信號的最大李雅普諾夫指數(shù)和自相關(guān)特性,如圖3(c),(d)所示。最大李雅普諾夫指數(shù)具體計算步驟如下:
1) 采集一段20 μs的振蕩器輸出信號V(t),并通過和閾值Vcc比較將其轉(zhuǎn)換成布爾變量x(t)∈{0,1}:當V(t)
2) 計算布爾距離函數(shù)d(s):
圖2 (a) 傳輸門;(b) 異或門;(c) TRNGFig.2 (a) Transfer gate; (b) XOR gate and (c) TRNG
(2)
式中:⊕代表邏輯異或運算,s∈[0,k*T0]為步長,ta和tb為任意兩個時刻,對于給定的δ>0,T=T0,ta和tb的取值應(yīng)使d(0)<δ成立;
3) 計算〈lnd(s)〉,〈·〉代表取平均;
4) 計算最大李雅普諾夫指數(shù)λab=(lnd(s)-lnd(0))/s.
選取T0=10 ns,δ=0.01,振蕩器輸出信號的最大李雅普諾夫指數(shù)λab=0.47 ns-1,如圖3(d)所示;最大李雅普諾夫指數(shù)值為正,表明輸出振蕩信號為布爾混沌。其自相關(guān)曲線沒有明顯旁瓣,且半高全寬FWHM為0.68 ns,表明熵提取電路的速率還有進一步提升空間。
TRNG產(chǎn)生的真隨機數(shù)序列如圖4(a)所示,其輸出碼型為非歸零碼(NRZ),幅值約3 V,序列中的最小碼元寬度為10 ns,表示隨機數(shù)輸出速率達到了100 Mbps.隨機序列對應(yīng)二維點陣如圖4(b)所示,由500×500=250 000個黑白像素點構(gòu)成,其中白點和黑點分別對應(yīng)隨機序列中的“1” 碼和“0”碼,二維點陣圖中沒有明顯的結(jié)構(gòu)與花樣,表明隨機序列中“1” 碼和“0”碼具有良好的隨機分布。
統(tǒng)計學測試是用于檢驗隨機數(shù)質(zhì)量的常規(guī)手段,常用的測試標準有NIST測試[12]、DIEHARD測試[13]、AIS31測試[14]以及ENT測試[15]等。其中,ENT測試具有樣本需求量小的特點,常用于軟件仿真等隨機數(shù)生成效率較低的場合。仿真實驗中,采集了TRNG芯片瞬態(tài)仿真產(chǎn)生的20 000 bit隨機數(shù)樣本,對其進行了ENT 5項測試,檢測結(jié)果如表1所示,樣本測試值均接近理想值,表明所產(chǎn)生的真隨機數(shù)序列具有良好的隨機統(tǒng)計特性。
圖3 自治布爾網(wǎng)絡(luò)振蕩器Fig.3 Autonomous Boolean network oscillator
圖4 (a) 100 Mbps真隨機數(shù);(b) 500×500隨機數(shù)二維點陣圖Fig.4 (a) Real-time output random bit sequence at 100 Mbps; (b) Lattice diagram of of random data
表1 ENT測試Table 1 ENT test
TRNG芯片全部采用數(shù)字單元實現(xiàn),使用Cadence的Virtuoso完成版圖實現(xiàn)。經(jīng)過反復(fù)仿真調(diào)試后,根據(jù)中芯國際0.35 μm CMOS工藝進行了版圖設(shè)計,如圖5所示,其核心電路面積0.02 mm2(125 μm×163 μm);目前,TRNG芯片正在中芯國際流片中。
圖5 TRNG芯片版圖Fig.5 TRNG chip layout
本文采用SMIC 0.35 μm CMOS標準工藝,設(shè)計了一種以布爾混沌為熵源的真隨機數(shù)發(fā)生器芯片,并詳細分析了TRNG的熵源特性以及所產(chǎn)生真隨機數(shù)的統(tǒng)計特性。結(jié)果表明該TRNG芯片僅使用較少數(shù)量的數(shù)字邏輯器件即可實現(xiàn)高速率、高質(zhì)量的真隨機數(shù)產(chǎn)生,具有結(jié)構(gòu)簡單、功耗低、魯棒性好等優(yōu)勢,可廣泛應(yīng)用于密碼系統(tǒng)、保密通信等領(lǐng)域的信息安全產(chǎn)品中。