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