李 楨,汪鵬君,程 旭,李 剛,張會紅
(1.寧波大學(xué) 電路與系統(tǒng)研究所,寧波 315211;2.復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國家重點實驗室,上海 201203)
物聯(lián)網(wǎng)的快速發(fā)展使得對信息安全的要求越來越高,而高熵值隨機數(shù)發(fā)生器作為信息安全的重要組成部分受到越來越多的關(guān)注.隨機數(shù)發(fā)生器可分為偽隨機數(shù)發(fā)生器(Pseudo Random Number Generator, PRNG)和真隨機數(shù)發(fā)生器(True Random Number Generator, TRNG)兩大類.PRNG靠特定算法產(chǎn)生的輸出序列盡管統(tǒng)計特性優(yōu)良,但具有確定性和可預(yù)測性等缺點,不適用于信息安全.TRNG則通常選取熱噪聲、核衰變、宇宙輻射等隨機物理現(xiàn)象作為熵源[1],生成的隨機序列具有均勻性、獨立性和不可預(yù)測性3大特點,適用于數(shù)據(jù)加密.熵源中熱噪聲的應(yīng)用最為廣泛.熱噪聲由導(dǎo)體中載流子的熱振動引起,它會造成溝道電流微小波動從而在導(dǎo)體兩端產(chǎn)生隨機波動電壓[2].基于熱噪聲的TRNG電路設(shè)計方法主要包括: 環(huán)振抖動采樣、亞穩(wěn)態(tài)和熱噪聲直接放大3種方法.環(huán)振抖動采樣中,由于振蕩器電路的熱噪聲會引起時鐘抖動,因此用低頻時鐘采樣高頻時鐘獲得隨機序列.該方法雖然電路結(jié)構(gòu)簡單,但隨機性較差[3].亞穩(wěn)態(tài)則是讓雙穩(wěn)態(tài)電路工作在亞穩(wěn)態(tài)狀態(tài),使得電路輸出完全受熱噪聲影響.該方法有著較高的數(shù)據(jù)吞吐率[4],但需要占用大量面積.熱噪聲直接放大法用運算放大器將電阻上的熱噪聲放大到合適的幅度,之后通過比較器將放大后的熱噪聲與中間電平比較得到隨機信號.該方法可以提供高質(zhì)量的噪聲源[5],然而CMOS器件的熱噪聲幅值較小,易被電源紋波電壓、襯底耦合噪聲等周期噪聲掩蓋.且放大器的有限帶寬、失調(diào)等非理想因素也會影響輸出序列隨機性.為此,文獻(xiàn)[6]結(jié)合亞穩(wěn)態(tài)和熱噪聲直接放大設(shè)計方法,提出將差分比較器共模連接從而抵御電源紋波和周期性噪聲,同時令比較器鐘控端接高電平使其維持在亞穩(wěn)態(tài).亞穩(wěn)態(tài)下比較器的熱噪聲和輸入偏置電路熱噪聲相疊加形成噪聲源,利用運放和Slicer電路將熱噪聲電壓轉(zhuǎn)換化為邏輯0或邏輯1.該方案中偏置電路噪聲幅度小易被其他環(huán)境噪聲掩蓋,且Slicer結(jié)構(gòu)需要手動調(diào)節(jié),占用I/O資源.
鑒此,本文用CMOS開關(guān)使熱噪聲反相器環(huán)形連接,使輸出端電壓收斂并保持在亞穩(wěn)態(tài)電平從而為比較器提供直流偏置和輸入噪聲,用可配置靈敏放大器將熱噪聲轉(zhuǎn)換為隨機序列,通過反饋控制電路使TRNG具有自適應(yīng)調(diào)節(jié)能力,增加其魯棒性.
基于比較器共模模式的真隨機數(shù)發(fā)生器的電路結(jié)構(gòu)如圖1所示.反相器輸入輸出端相連形成環(huán)路使得輸出電壓收斂于亞穩(wěn)態(tài)電平從而為比較器輸入端提供電壓偏置,恒壓源連接比較器時鐘控制端,使其工作在亞穩(wěn)態(tài).亞穩(wěn)態(tài)下反相器輸出節(jié)點熱噪聲和共模模式下比較器的熱噪聲相疊加,經(jīng)靈敏放大器轉(zhuǎn)化為邏輯1或邏輯0再由D觸發(fā)器采樣生成隨機輸出序列.反饋單元根據(jù)輸出序列偏向性對靈敏放大器進行調(diào)節(jié)以補償環(huán)境變化和工藝偏差.
圖1 真隨機數(shù)發(fā)生器整體框圖Fig.1 TRNG block diagram
熱噪聲由導(dǎo)體中載流子的熱振動引起,它使溝道電流產(chǎn)生微小波動,從而在導(dǎo)體兩端產(chǎn)生波動電壓.電阻上的熱噪聲可用一個串聯(lián)的電壓源來模擬,其單邊譜密度為
Sv(f)=4kTRf≥0,
(1)
式(1)中:k=1.38×10-23J/K是玻爾茲曼常數(shù);T是熱力學(xué)溫度;R是電阻阻值.晶體管同樣具有熱噪聲,可以用一個連接在漏源兩端的電流源模擬,其頻譜密度為
(2)
差分比較器結(jié)構(gòu)如圖3所示.P2、P3為電流源,為電路提供偏置.P4、P5為比較器輸入對管,N2、N3、N4、N5為負(fù)載管,其中N2、N3交叉耦合形成正反饋,生成負(fù)電阻.N4、N5并聯(lián)為正電阻,二者相連接其等效交流電阻為2/(gm2-gm1)[8],gm1是N2、N3的跨導(dǎo)值,gm2是N4、N5的跨導(dǎo)值,其中
(3)
式(3)中:un為電子遷移率;Cox為單位面積柵氧化物電容;W為有效高度寬度;L為有效溝道長度;ID為MOS管源漏電流.熱噪聲反相器、共模模式下比較器和恒壓源上的熱噪聲相疊加后需轉(zhuǎn)換為邏輯電平才能被后級電路采用,因此還需要靈敏放大器.
圖2 熱噪聲反相器結(jié)構(gòu)及電壓傳輸曲線Fig.2 Thermal noise inverter structure and voltage transfer curve
圖3 差分比較器結(jié)構(gòu)Fig.3 Differential comparator structure
靈敏放大器具有靈敏度高、運行速度快,結(jié)構(gòu)簡單等優(yōu)點,是將熱噪聲轉(zhuǎn)化為邏輯電平的理想器件.靈敏放大器結(jié)構(gòu)如圖4所示.工作過程可分為預(yù)充電階段和求值階段.當(dāng)時鐘信號CLK=0時,電路進入預(yù)充電階段,晶體管P6和P9導(dǎo)通,NF1和NF2截止,互補輸出端VOP和VON被預(yù)充電至高電平;當(dāng)時鐘信號CLK=1時,電路進入求值階段,晶體管P6和P9截止,NF1和NF2導(dǎo)通,電路開始求值.若晶體管NF1的源漏電流I1大于NF2的源漏電流I2,VOP點電壓將通過NF1被優(yōu)先放電至低電平,交叉耦合結(jié)構(gòu)快速將VON充電至高電平;反之則VOP為高電平,VON為低電平.當(dāng)靈敏放大器工作電流完全平衡時,若忽略熱噪聲影響,互補輸出VOP和VON在求值階段最終會穩(wěn)定在中間電平(VDD/2).實際電路中,在熱噪聲的影響下,I1、I2大小會隨機波動,從而在求值階段產(chǎn)生隨機輸出.
靈敏放大器工作電流平衡是獲得理想隨機序列的關(guān)鍵.但實際電路中,負(fù)載失配、工藝偏差等非理想因素都會影響電流大小,使輸出序列產(chǎn)生明顯的偏向性.為補償偏差,晶體管NF1和NF2采用可配置NMOS陣列,其結(jié)構(gòu)如圖5所示.它由1個主NMOS管N0和10個可配置的從NMOS管N8~N12,NS0~ NS4組成,nconf[4,0]為配置端.
圖4 可配置靈敏放大器Fig.4 Configurable sense amplifier
圖5 可配置NMOS陣列Fig.5 Configurable NMOS array
以nconf0為例,nconf0高電平時,晶體管開關(guān)NS0導(dǎo)通,N8并聯(lián)在N0兩端,可配置NMOS陣列的等效寬長比升高;nconf0為低電平時,NS0截止,等效寬長比降低.被選通的配置端越多,陣列等效寬長比越寬,相應(yīng)的工作電流越大,反之亦然,可有效補償工藝偏差從而提高序列隨機性.
熱噪聲反相器和共模模式下比較器的熱噪聲經(jīng)疊加后,在時鐘的控制下被靈敏放大器轉(zhuǎn)化為邏輯0或邏輯1,其結(jié)構(gòu)如圖6所示.輸出波形經(jīng)D觸發(fā)器采樣生成原始隨機序列.反饋單元根據(jù)原始序列偏向性調(diào)節(jié)靈敏放大器克服偏差.
圖6 噪聲疊加示意圖Fig.6 Noise superposition diagram
為使靈敏放大器可根據(jù)原始序列的偏向性調(diào)整可配置NMOS陣列來補償偏差,提出動態(tài)補償算法.算法采用單級等距調(diào)節(jié),相較文獻(xiàn)[4]中的粗細(xì)2級調(diào)節(jié),該算法復(fù)雜性低且易于實現(xiàn).動態(tài)補償算法偽代碼如圖7所示.該算法有動態(tài)配置和動態(tài)監(jiān)控2種模式.TRNG在上電啟動后首先進行初始化,初始化階段可配置NMOS陣列的配置端cfop[4,0]和cfon[4,0]全部被置為高電平,標(biāo)志位flag置為“2”.隨后進入動態(tài)配置模式.動態(tài)配置模式下每4個時鐘周期,狀態(tài)機對TRNG輸出的4位數(shù)據(jù)進行一次讀取檢測.若輸出偏向“1”,令flag=“1”;若偏向“0”,令flag=“0”.根據(jù)flag的值按照狀態(tài)轉(zhuǎn)移圖對cfop和cfon進行配置.當(dāng)輸出序列隨機時,令flag=“2”,并進入動態(tài)監(jiān)控模式.若檢測到輸出序列失去隨機性,算法返回動態(tài)配置模式.否則,狀態(tài)機維持在動態(tài)監(jiān)控模式,cfop和cfon配置不變.
圖7 反饋調(diào)節(jié)算法Fig.7 Feedback regulation algorithm
為了彌補輸出分布的不均勻并消除自相關(guān)性,采用XOR糾偏法對原始序列進行后處理.設(shè)X和Y分別為2位隨機數(shù),其期望值E(X)=E(Y)=u,p是它們的相關(guān)性,則
(4)
當(dāng)u接近1/2時,式(4)可表示為
(5)
由式(5)可知,若X和Y是相互獨立的(即p=0),則E(X⊕Y)≈1/2.若有n位彼此獨立的隨機數(shù)進行異或,則其期望值為
(6)
其中m=u-1/2.從式(6)可以看出,隨著n的增大,期望趨近于1/2.因此,將40位D觸發(fā)器組成移位寄存器,選出彼此相鄰10位的數(shù)據(jù)進行異或消除偏差.XOR后處理電路結(jié)構(gòu)如圖8所示.
圖8 XOR后處理電路Fig.8 XOR post processing circuit
整體電路采用Cadence的Verilog/Spectre混合仿真器對模擬電路和Verilog模塊進行聯(lián)合仿真.在1.2V電壓、27℃下,令時鐘頻率為1GHz進行蒙特卡羅仿真,輸出序列如圖9所示.由圖9可知,局部連續(xù)輸出1的最長時間為7ns(即7個周期),無明顯偏向性.
圖10以像素點的方式展示了9×104位隨機輸出序列(300×300),其中: 白色代表1,黑色代表0.由圖10 可見,0/1分布整體均勻,無較大偏差.將所得序列輸入到Matlab測試自相關(guān)特性(用自相關(guān)因子(ACF)表示),結(jié)果如圖11所示.由圖11可知,在95%的自信區(qū)間內(nèi)4000位連續(xù)數(shù)據(jù)間的自相關(guān)性近似為0.
圖9 TRNG輸出序列Fig.9 TRNG output sequence
圖10 隨機輸出陣列Fig.10 Random output array
圖11 輸出序列自相關(guān)性Fig.11 Output sequence autocorrelation
表1 NIST測試結(jié)果
圖12 不同工藝角下的P_valueFig.12 P_value under different process corner
由美國國家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards and Technology, NIST)開發(fā)的NIST隨機數(shù)測試統(tǒng)計包用于判定可能存在于序列中的各種非隨機性.將仿真獲得的100000位隨機序列分成10組,輸入到NIST測試套件中進行檢測.測試結(jié)果如表1所示.P_value大于0.01則通過隨機測試.從測試結(jié)果可以看出,各項子測試的P_value都處在較高水平,隨機性優(yōu)異.
為了驗證電路魯棒性,TRNG在ff至ss 5個工藝角和-40~125℃的溫度下進行仿真,輸出序列送入NIST套件進行測試.其中,經(jīng)頻率測試和熵值測試所得的P_value曲線如圖12所示.由圖可見,頻率特性在各工藝角下較為平穩(wěn),且保持在較高水平.熵值在ff工藝角下較低,但仍能通過測試.
表2是所設(shè)計TRNG與其他文獻(xiàn)對比.本設(shè)計采用亞穩(wěn)態(tài)和抖動作為熵源,1000Mb/s的吞吐率足以滿足應(yīng)用需要.由于動態(tài)功耗與門電路翻轉(zhuǎn)頻率呈正比,文獻(xiàn)[4,6]的功耗折算到1GHz下分別約為2800μW和1600μW.相較文獻(xiàn)[4],本文在反饋單元中引入動態(tài)監(jiān)控模式,在配置完成后降低模塊中門電路翻轉(zhuǎn)頻率從而節(jié)省動態(tài)功耗.文獻(xiàn)[6]中為實現(xiàn)噪聲信號到數(shù)字信號的轉(zhuǎn)換采用高帶寬運算放大器串聯(lián)Slicer電路結(jié)構(gòu),其中高帶寬運放的靜態(tài)功耗約1mW.本設(shè)計則采用鎖存型可配置靈敏放大器代替高帶寬運算放大器,其功耗僅108μW,從而使能耗降低約73.3%.
表2 與同類TRNG的性能比較
本設(shè)計首先令熱噪聲反相器輸入輸出相連形成環(huán)路使輸出電壓收斂并保持在亞穩(wěn)態(tài)電位.亞穩(wěn)態(tài)下反相器為比較器輸入端提供電壓偏置,同時輸出節(jié)點的熱噪聲與比較器的熱噪聲相疊加構(gòu)成噪聲源.其次,比較器輸入端共模連接從而抑制電源紋波和周期性噪聲的影響.最后,利用動態(tài)補償算法根據(jù)原始隨機序列偏向性對靈敏放大器反饋調(diào)節(jié),提高TRNG魯棒性.所提TRNG電路采用SMIC 55nm CMOS工藝設(shè)計,輸出序列經(jīng)NIST套件測試,具有較高的隨機性,可應(yīng)用于密鑰生成和信號加密等領(lǐng)域.