用振蕩器采樣隨機數(shù)發(fā)生器保證網(wǎng)絡(luò)SoC設(shè)計加密算法的安全性
在保障互聯(lián)網(wǎng)安全的各種加密算法中,隨機數(shù)產(chǎn)生至關(guān)重要。產(chǎn)生隨機數(shù)的方法有多種,其中振蕩器采樣法最適于構(gòu)建SoC設(shè)計所需的隨機數(shù)發(fā)生器。本文介紹振蕩器采樣法的工作原理,并概述在具體使用這種振蕩器時應(yīng)注意的事項。
隨著許多企業(yè)的網(wǎng)絡(luò)應(yīng)用從內(nèi)部網(wǎng)擴展到公眾互聯(lián)網(wǎng),對虛擬專用網(wǎng)絡(luò)(VPN)設(shè)備的需求也開始逐漸上升。為了服務(wù)于這個市場,半導(dǎo)體廠商推出了一些專用產(chǎn)品,把所有必需安全功能都集成在一個器件里面。
專用于互聯(lián)網(wǎng)協(xié)議安全(IPsec)的AES和3DES類加密/解密算法以及SHA1和MD5等散列算法已廣為人知并得到普遍重視,然而,保證VPN系統(tǒng)安全的關(guān)鍵在于生成隨機數(shù)的能力,但這點卻常常被忽視。
隨機數(shù)是許多加密應(yīng)用的基礎(chǔ),其作用是生成Diffie-Hellman、Rivest-Shamir-Adelman和數(shù)字簽名等算法所需的公共/專用密鑰對,并為大批量加密算法和IPsec分別生成初始向量和即時隨機數(shù),此外,大量其它類型的安全協(xié)議也靠隨機數(shù)發(fā)生器的不可預(yù)測性來防止系統(tǒng)被破解。常用一些復(fù)雜數(shù)學(xué)函數(shù)生成高質(zhì)量偽隨機數(shù)發(fā)生器(PRNG)位流,但事實證明有很多途徑可以攻擊用PRNG加密的系統(tǒng),因此加密安全系統(tǒng)需要使用更高質(zhì)量的隨機數(shù)發(fā)生器。
在明確了這些需求之后,到底有沒有一種真正的隨機數(shù)發(fā)生器可以根據(jù)非確定噪聲源產(chǎn)生隨機數(shù),并特別適用于系統(tǒng)級芯片(SoC)設(shè)計呢?大多數(shù)隨機數(shù)發(fā)生器方案通??梢詺w為三大類,即直接放大、離散時間混沌和振蕩器采樣。前兩種方法更適用于客戶定制的單元設(shè)計,因為在這些場合設(shè)計人員可以控制實際電路的布局;而振蕩器采樣技術(shù)可以作為標準單元設(shè)計流程的一部分,因此在SoC設(shè)計中很流行。不過設(shè)計人員即使選用了振蕩器技術(shù),仍然有許多實施問題需要仔細考慮。
隨機數(shù)生成技術(shù)
直接放大技術(shù)使用高增益高帶寬放大器來處理由熱噪聲或散射噪聲引起的電壓變化。例如可采用N阱電阻對將其熱噪聲轉(zhuǎn)換成一個電壓變化信號,然后以抖動的形式輸入隨機數(shù)發(fā)生器模塊微系統(tǒng)中(圖1)。采用這種方法時設(shè)計人員必須要考慮其它一些因素,如系統(tǒng)熱噪聲通常與基底噪聲及電源電壓波動等局部特征耦合在一起,如果電路沒有正確屏蔽,這些因素便會使熱噪聲源的隨機性受到影響??朔@種現(xiàn)象的方法是對一對鄰近的電阻進行采樣,再對結(jié)果求差以減少其它噪聲源的影響。
離散時間混沌法使用模擬信號處理技術(shù)產(chǎn)生隨機位流。這種方式下,隨機性不是從熱噪聲源獲得,而是從非常穩(wěn)定的動態(tài)變化中得到,其系統(tǒng)設(shè)計與模/數(shù)轉(zhuǎn)換器性質(zhì)類似。在傳統(tǒng)的A/D轉(zhuǎn)換器中,殘余信號經(jīng)過采樣和保持,再饋送到A/D轉(zhuǎn)換器的輸入端(圖2)。一般來說,單是這種技術(shù)本身尚不足以產(chǎn)生隨機序列,因為電路的不準確性限制了A/D轉(zhuǎn)換分辨率,也降低了系統(tǒng)產(chǎn)生隨機序列的能力。因此,為獲得非確定隨機性,這種技術(shù)常常要與其它技術(shù)配合使用。
目前,隨機數(shù)發(fā)生器(RNG)設(shè)計中最流行的方法是振蕩器采樣法(圖3),其基本設(shè)計思想是利用兩個獨立工作的高、低頻振蕩器之間的相對關(guān)系來得到非確定噪聲源,用高抖動低頻振蕩器采樣高頻振蕩器,從而產(chǎn)生隨機數(shù)序列。在數(shù)字電路中,低頻方波源可作為一個正沿觸發(fā)D觸發(fā)器的時鐘,高頻方波源則作為觸發(fā)器的數(shù)據(jù)輸入,并在時鐘脈沖的上升沿對其進行采樣。
在該系統(tǒng)中,產(chǎn)生隨機數(shù)的關(guān)鍵元件是低頻振蕩器,因為它的設(shè)計具有頻率不穩(wěn)定性,即抖動,而且低頻與高頻之比經(jīng)過仔細選擇可以符合一定條件。設(shè)計中最重要的是低頻振蕩器的抖動量,這個抖動就是隨機源。頻率不穩(wěn)定性可以是此類振蕩器的一個功能,也可由另一個非確定噪聲源直接“植入”,因此可以說,正是采樣時鐘相對于高頻數(shù)據(jù)輸入的相位變化保證了可以獲得隨機位流。
如果兩個振蕩器在工作過程中都不發(fā)生漂移,那么采樣得到的位流便具有周期性而且可以預(yù)測,這種周期性和通常稱為節(jié)拍頻率的頻率比有關(guān)。此外,兩個振蕩器的頻率比對所產(chǎn)生的位流有著非常重要的影響。多項研究表明,為了保證高度隨機性,低頻振蕩器周期變化標準差的兩倍與高頻振蕩器周期之比應(yīng)該大于3:2,否則位碼之間便會存在明顯的相關(guān)性,以致于后面的位將比其前面的位更容易預(yù)測。
評論