用振蕩器采樣隨機(jī)數(shù)發(fā)生器保證網(wǎng)絡(luò)SoC設(shè)計(jì)加密算法的安全性
使用振蕩器采樣法
選用振蕩器采樣法來設(shè)計(jì)隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)人員還必須考慮其它一些實(shí)施問題,所選振蕩器的類型也會(huì)影響整個(gè)系統(tǒng)設(shè)計(jì)的固有隨機(jī)性。此外,為了保證相關(guān)噪聲源不會(huì)降低系統(tǒng)隨機(jī)性,必須仔細(xì)選擇振蕩器,這必然又會(huì)增加器件電路布局的復(fù)雜性。作為一種補(bǔ)償,可采用數(shù)字后處理技術(shù)來降低設(shè)計(jì)風(fēng)險(xiǎn)并保留系統(tǒng)的隨機(jī)性。
在考慮實(shí)施振蕩器采樣法時(shí),設(shè)計(jì)人員可從幾種不同類型的振蕩器中進(jìn)行選擇,包括差分振蕩器、單端振蕩器及混合振蕩器,不同類型振蕩器對(duì)不同噪聲源的敏感度也不一樣。顯而易見,不同振蕩器的特性比較需要豐富的知識(shí),本文在此只作簡單討論。
通常,差分振蕩器對(duì)電源及基底噪聲的敏感度不如單端振蕩器。這是因?yàn)椴罘址糯笃鲗?duì)的電源和接地點(diǎn)會(huì)同時(shí)出現(xiàn)電壓擺動(dòng),所以兩個(gè)輸入之間的差值保持一致,輸出也一致,呈現(xiàn)出較高的共模抑制比(CMRR)。差分邏輯常用于模擬邏輯壓控振蕩器設(shè)計(jì)中,例如鎖相環(huán)中的振蕩器,因?yàn)殒i相環(huán)需要較高的CMRR,所以差分振蕩器方案并不特別適用于那些需要非確定噪聲源的設(shè)計(jì)。另一方面,單端反相振蕩器極易受電壓擺動(dòng)或輸入信號(hào)中直流分量的影響,如果噪聲對(duì)電平帶來任何波動(dòng),都會(huì)影響振蕩器的抖動(dòng)。此外,差分、感容及張弛振蕩器設(shè)計(jì)需要客戶定制的電路布局,所以無法集成到標(biāo)準(zhǔn)單元的SoC設(shè)計(jì)中。因此,在SoC設(shè)計(jì)中最簡單直接的解決方案通常是單端環(huán)形振蕩器(圖4)。
盡管單端環(huán)形振蕩器有這樣的優(yōu)勢(shì),在選用時(shí)還是有一些復(fù)雜因素必須考慮。由于高速數(shù)字系統(tǒng)存在切換動(dòng)作,因此熱噪聲與電源/基底噪聲相比一般可以忽略不計(jì)。電源和基底噪聲是引起噪聲耦合的主要原因,噪聲耦合的振蕩器在反相電路中會(huì)產(chǎn)生δ延遲。電源電壓變化或來自基底耦合的噪聲會(huì)改變每級(jí)電路輸出節(jié)點(diǎn)的電容,從而使振蕩器的總頻率不斷改變。此外,除熱噪聲外,所有環(huán)形振蕩器延遲電路級(jí)中的電源和基底噪聲都是相關(guān)的,所以如果沒有牢靠的接地環(huán)保護(hù)電路,設(shè)計(jì)人員都不希望讓兩個(gè)振蕩器電路靠得太近。如果屏蔽不是很好,會(huì)造成兩個(gè)位流源之間的隨機(jī)性相互關(guān)聯(lián)。在最終的振蕩器設(shè)計(jì)中,所有這些因素都必須要考慮到。
此外,就算設(shè)計(jì)人員有良好的意愿,實(shí)施方案也可能無法產(chǎn)生真正的隨機(jī)位流。設(shè)計(jì)人員或許要借助一些成本高昂的額外測(cè)試來保證隨機(jī)數(shù)發(fā)生器系統(tǒng)能產(chǎn)生期望的結(jié)果。如前所述,隨機(jī)性主要來自電源和基底噪聲與振蕩器電路的耦合,由于這些振蕩器會(huì)耦合同一個(gè)噪聲源,因此設(shè)計(jì)人員不希望將它們靠得太近。進(jìn)一步來說,如果兩個(gè)振蕩器鎖定在同一個(gè)噪聲源上并相互耦合,那么它們之間的相關(guān)性也會(huì)增加,從而使兩個(gè)源的隨機(jī)輸出相互關(guān)聯(lián)。如果在最終布局上將兩個(gè)振蕩器分開,電源和基底噪聲的相關(guān)效應(yīng)便可減輕。
采用振蕩器采樣法的一種常見做法是多設(shè)計(jì)一對(duì)振蕩器,萬一主隨機(jī)源失效了,它還可以降低RNG系統(tǒng)沒有非確定性噪聲源的風(fēng)險(xiǎn),隨后通過一個(gè)強(qiáng)大的混合函數(shù)將采樣位流進(jìn)行混合,以便保留各個(gè)源固有的隨機(jī)性,這一點(diǎn)將在后面詳述。為了從混合位流中獲得更好的隨機(jī)性,必須給各振蕩器選擇一個(gè)獨(dú)特的主標(biāo)稱頻率,或者使其頻率能夠調(diào)節(jié),這可盡量減少多個(gè)源之間的互相關(guān)性。當(dāng)然,設(shè)計(jì)者必須權(quán)衡考慮,要么接受額外成本,要么承擔(dān)不能生成真正隨機(jī)數(shù)的風(fēng)險(xiǎn)。
偏差糾正器
振蕩器采樣法的工作基于這樣一個(gè)事實(shí),即高頻振蕩器一直保持50%的占空比,而低頻振蕩器每個(gè)周期都有明顯變化。如果情況不是這樣(盡管絕大部分情況下是這樣),所獲得的位碼便會(huì)出現(xiàn)偏差,既可能是“1”,也可能是“0”,這稱為偏移。幸運(yùn)的是我們可以采取有效的后處理方法來糾正偏差,以一種確定的方式產(chǎn)生分布更均勻的位流。其中兩種最簡單的技術(shù)分別稱為奇偶生成和轉(zhuǎn)換映射,此外還有一些較復(fù)雜的偏差糾正方法,包括使用快速傅利葉變換函數(shù)和更復(fù)雜的位混排技術(shù),它們通常采用延遲元件和反饋通路組合來去除位與位之間的相關(guān)性。
偏差糾正的目標(biāo)是對(duì)位流進(jìn)行均衡分配,以便以相同的概率產(chǎn)生“1”和“0”,其做法基本上是從有偏差的位序列中提取出更隨機(jī)的數(shù)值。這種后處理功能并非振蕩器采樣技術(shù)所獨(dú)有,其應(yīng)用對(duì)原始噪聲源沒有要求,要實(shí)現(xiàn)這種功能也并不復(fù)雜。一種簡單方法是奇偶生成,它具有魯棒性強(qiáng)的優(yōu)點(diǎn),可用于更大范圍的偏差分布。用硬件來實(shí)現(xiàn)固定長度位采樣序列一般非常簡單,例如簡單的級(jí)聯(lián)XOR鏈便可有效用作一個(gè)奇偶生成器并完成適當(dāng)?shù)钠罴m正(圖5)。
轉(zhuǎn)換映射也叫做馮·諾依曼糾正器,它將一對(duì)采樣輸入位轉(zhuǎn)換成一個(gè)輸出位,例如把輸入對(duì)[0,1]轉(zhuǎn)換成1,把[1,0]轉(zhuǎn)換成0,而在輸入為[0,0]或[1,1]時(shí)什么也不輸出。這種技術(shù)可以完全消除偏差,但其代價(jià)是必須在輸入位之間創(chuàng)建一個(gè)不定量的延遲,并產(chǎn)生一個(gè)輸出位長的任意數(shù)。
評(píng)論