Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

用振盪器採樣隨機數產生器保證網路SoC設計加密演算法的安全性

上網時間: 2004年02月29日     打印版  Bookmark and Share  字型大小:  

關鍵字:隨機數  隨機數產生器  虛擬專用網路  位元流  振盪器採樣 

在保障網際網路安全的各種加密演算法中,隨機數產生至關重要。產生隨機數的方法有多種,其中振盪器採樣法最適於建構SoC設計所需的隨機數產生器。本文介紹振盪器採樣法的工作原理,並概述在具體使用這種振盪器時應注意的事項。

隨著許多企業的網路應用從內部網擴展到公眾網際網路,對虛擬專用網路(VPN)設備的需求也開始逐漸上升。為了服務於這個市場,半導體廠商推出了一些專用產品,把所有必需安全功能都整合在一個元件?面。圖1:直接放大技術中噪音源透過定時比較器的放大和限幅,產生一個隨機數序列。

專用於網際網路協定安全(IPsec)的AES和3DES類加密╱解密演算法以及SHA1和MD5等散列演算法已廣為人知並得到普遍重視,然而,保證VPN系統安全的關鍵在於產生隨機數的能力,但這點卻常常被忽視。

隨機數是許多加密應用的基礎,其作用是產生Diffie-Hellman、Rivest-Shamir-Adelman和數位簽名等演算法所需的公共╱專用密鑰對,並為大批量加密演算法和IPsec分別產生初始向量和即時隨機數,此外,大量其它類型的安全協議也靠隨機數產生器的不可預測性來防止系統被破解。常用一些複雜數學函數產生高品質偽隨機數產生器(PRNG)位元流,但事實證明有很多途徑可以攻擊用PRNG加密的系統,因此加密安全系統需要使用更高品質的隨機數產生器。

在明確了這些需求之後,到底有沒有一種真正的隨機數產生器可以根據非確定噪音源產生隨機數,並特別適用於系統單晶片(SoC)設計呢?大多數隨機數產生器方案通常可以歸為三大類,即直接放大、離散時間混沌和振盪器採樣。前兩種方法更適用於客戶定製的單元設計,因為在這些場合設計人員可以控制實際電路的佈局;而振盪器採樣技術可以作為標準單元設計流程的一部份,因此在SoC設計中很流行。不過設計人員即使選用了振盪器技術,仍然有許多實施問題需要仔細考慮。

隨機數產生技術圖2:離散時間混沌採用類比訊號處理技術來產生非確定位元流。

直接放大技術使用高增益高頻寬放大器來處理由熱噪音或散射噪音引起的電壓變化。例如可採用N阱電阻對將其熱噪音轉換成一個電壓變化訊號,然後以抖動的形式輸入隨機數產生器模組微系統中(圖1)。採用這種方法時設計人員必須要考慮其它一些因素,如系統熱噪音通常與基底噪音及電源電壓波動等局部特徵耦合在一起,如果電路沒有正確屏蔽,這些因素便會使熱噪音源的隨機性受到影響。克服這種現象的方法是對一對鄰近的電阻進行採樣,再對結果求差以減少其它噪音源的影響。

離散時間混沌法使用類比訊號處理技術產生隨機位元流。這種方式下,隨機性不是從熱噪音源獲得,而是從非常穩定的動態變化中得到,其系統設計與類比╱數位轉換器性質類似。在傳統的A/D轉換器中,殘餘訊號經過採樣和保持,再饋送到A/D轉換器的輸入端(圖2)。一般來說,單是這種技術本身尚不足以產生隨機序列,因為電路的不準確性限制了A/D轉換解析度,也降低了系統產生隨機序列的能力。因此,為獲得非確定隨機性,這種技術常常要與其它技術配合使用。

目前,隨機數產生器(RNG)設計中最流行的方法是振盪器採樣法(圖3),其基本設計思想是利用兩個獨立工作的高、低頻振盪器之間的相對關係來得到非確定噪音源,用高抖動低頻振盪器採樣高頻振盪器,因而產生隨機數序列。在數位電路中,低頻方波源可作為一個正沿觸發D觸發器的時脈,高頻方波源則作為觸發器的數據輸入,並在時脈脈衝的上升沿對其進行採樣。

在該系統中,產生隨機數的關鍵元件是低頻振盪器,因為它的設計具有頻率不穩定性,即抖動,而且低頻與高頻之比透過仔細選擇可以符合一定條件。設計中最重要的是低頻振盪器的抖動量,這個抖動就是隨機源。頻率不穩定性可以是此類振盪器的一個功能,也可由另一個非確定噪音源直接‘植入’,因此可以說,正是採樣時脈相對於高頻數據輸入的相位變化保證了可以獲得隨機位元流。

如果兩個振盪器在工作過程中都不產生漂移,那麼採樣得到的位元流便具有週期性而且可以預測,這種週期性和通常稱為節拍頻率的頻率比有關。此外,兩個振盪器的頻率比對所產生的位元流有著非常重要的影響。多項研究顯示,為了保證高度隨機性,低頻振盪器週期變化標準差的兩倍與高頻振盪器週期之比應該大於3:2,否則位元碼之間便會存在明顯的相關性,以致於後面的位元將比其前面的位元更容易預測。圖3:振盪器採樣法利用兩個自由工作振盪器之間的相位差來產生隨機性。

使用振盪器採樣法

選用振盪器採樣法來設計隨機數產生器的設計人員還必須考慮其它一些實施問題,所選振盪器的類型也會影響整個系統設計固有隨機性。此外,為了保證相關噪音源不會降低系統隨機性,必須仔細選擇振盪器,這必然又會增加元件電路佈局的複雜性。作為一種補償,可採用數位後處理技術來降低設計風險並保留系統的隨機性。

在考慮實施振盪器採樣法時,設計人員可從幾種不同類型的振盪器中進行選擇,包括差分振盪器、單端振盪器及混合振盪器,不同類型振盪器對不同噪音源的感應度也不一樣。顯而易見,不同振盪器的特性比較需要豐富的知識,本文在此只作簡單討論。

通常,差分振盪器對電源及基底噪音的感應度不如單端振盪器。這是因為差分放大器對的電源和接地點會同時出現電壓擺動,所以兩個輸入之間的差值保持一致,輸出也一致,呈現出較高的共模抑制比(CMRR)。差分邏輯常用於類比邏輯壓控振盪器設計中,例如鎖相環中的振盪器,因為鎖相環需要較高的CMRR,所以差分振盪器方案並不特別適用於那些需要非確定噪音源的設計。另一方面,單端反相振盪器極易受電壓擺動或輸入訊號中直流分量的影響,如果噪音對電平帶來任何波動,都會影響振盪器的抖動。此外,差分、感容及張弛振盪器設計需要客戶定製的電路佈局,所以無法整合在標準單元的SoC設計中。因此,在SoC設計中最簡單直接的解決方案通常是單端環形振盪器(圖4)。

儘管單端環形振盪器有這樣的優勢,在選用時還是有一些複雜因素必須考慮。由於高速數位系統存在切換動作,因此熱噪音與電源╱基底噪音相較一般可以忽略不計。電源和基底噪音是引起噪音耦合的主要原因,噪音耦合的振盪器在反相電路中會產生δ延遲。電源電壓變化或來自基底耦合的噪音會改變每級電路輸出節點的電容器,因而使振盪器的總頻率不斷改變。此外,除熱噪音外,所有環形振盪器延遲電路級中的電源和基底噪音都是相關的,所以如果沒有牢靠的接地環保護電路,設計人員都不希望讓兩個振盪器電路靠得太近。如果屏蔽不是很好,會造成兩個位流源之間的隨機性相互關聯。在最終的振盪器設計中,所有這些因素都必須要考慮到。圖4:單端環形振盪器對噪音很感應,這點可在隨機數產生器中加以利用。

此外,就算設計人員有良好的意願,實施方案也可能無法產生真正的隨機位元流。設計人員或許要借助一些成本高昂的額外測試來保證隨機數產生器系統能產生期望的結果。如前所述,隨機性主要來自電源和基底噪音與振盪器電路的耦合,由於這些振盪器會耦合約一個噪音源,因此設計人員不希望將它們靠得太近。進一步來說,如果兩個振盪器鎖定在同一個噪音源上並相互耦合,那麼它們之間的相關性也會增加,因而使兩個源的隨機輸出相互關聯。如果在最終佈局上將兩個振盪器分開,電源和基底噪音的相關效應便可減輕。

採用振盪器採樣法的一種常見做法是多設計一對振盪器,萬一主隨機源失效了,它還可以降低RNG系統沒有非確定性噪音源的風險,隨後透過一個強大的混合函數將採樣位元流進行混合,以便保留各個源固有的隨機性,這一點將在後面詳述。為了從混合位元流中獲得更好的隨機性,必須給各振盪器選擇一個獨特的主標稱頻率,或者使其頻率能夠調節,這可盡量減少多個源之間的互相關性。當然,設計者必須權衡考慮,要麼接受額外成本,要麼負責不能產生真正隨機數的風險。

偏差糾正器

振盪器採樣法的工作基於這樣一個事實,即高頻振盪器一直保持50%的佔空比,而低頻振盪器每個週期都有明顯變化。如果情況不是這樣(儘管絕大部份情況下是這樣),所獲得的位元碼便會出現偏差,既可能是‘1’,也可能是‘0’,這稱為偏移。幸運的是我們可以採取有效的後處理方法來糾正偏差,以一種確定的方式產生分佈更均勻的位元流。其中兩種最簡單的技術分別稱為奇偶產生和轉換映射,此外還有一些較複雜的偏差糾正方法,包括使用快速傅利葉變換函數和更複雜的位元混排技術,它們通常採用延遲元件和反饋通路組合來去除位元與位元之間的相關性。

偏差糾正的目標是對位元流進行均衡分配,以便以相同的概率產生‘1’和‘0’,其做法基本上是從有偏差的位元序列中擷取出更隨機的數值。這種後處理功能並非振盪器採樣技術所獨有,其應用對原始噪音源沒有要求,要實現這種功能也並不複雜。一種簡單方法是奇偶產生,它具有強韌性強的優點,適用於更大範圍的偏差分佈。用硬體來實現固定長度位元採樣序列一般非常簡單,例如簡單的串聯XOR鏈便可有效作為一個奇偶產生器並完成適當的偏差糾正(圖5)。圖5:一個串聯XOR鏈可作為一個簡單有效的偏差糾正器。

轉換映射也叫做馮•諾依曼糾正器,它將一對採樣輸入位元轉換成一個輸出位元,例如把輸入對[0,1]轉換成1,把[1,0]轉換成0,而在輸入為[0,0]或[1,1]時什麼也不輸出。這種技術可以完全消除偏差,但其代價是必須在輸入位元之間製作一個不定量的延遲,並產生一個輸出位元長的任意數。

混合函數

即使採用了所有上述技術,仍然存在這樣一些擔憂,即由於存在多種非隨機數據源(如前面提及的多個振盪器源組合),系統固有的隨機性可能受到影響。採用功能強大的混合函數可以確保隨機源的隨機性,這些函數將兩個或更多採樣位元進行組合,然後產生一個輸出位元,該輸出位元是先前各輸入位元的複雜非線性函數。當然,這樣獲得的輸出隨機位元數不可能多於輸入位元數。對這個函數期望的功能是任何輸入位元的改變都會引起大約一半輸出位元的改變,這些混合函數也可作為更複雜的糾偏方法去除位元流偏差,如同前面討論的那樣。

一般情況下,混合函數功能越強,它所佔用的晶片面積也越大,前面提到的串聯XOR便是很簡單的一例。DES加密╱解密演算法則是更為複雜的例子,因為它需要120個輸入位元,產生64個輸出位元,每一個輸出位元都依賴一個涉及所有輸入位元的複雜非線性函數,其它加密╱解密演算法的工作方式也類似。混排函數也可作為強大的混合函數,它們使用任意長度的輸入位元,並產生一定長度的資訊摘要。同樣,設計工程師需要進行權衡,要在額外開銷與所產生的位元流無法達到期望隨機度之間做選擇。

統計評估

美國商業部製作了多種用來評估加密應用中隨機數產生器隨機程度的標準,美國國家標準技術研究所(NIST)出版的‘800-22特刊’推薦了一種全面的隨機數產生器統計測試方法,並嚴格規定了滿足各種程度隨機性的衡量標準。測試工程師可在驗證過程中使用這種測試方法或其它類似測試,檢驗設計是否具有非隨機特徵,因而判斷是否達到了某種程度的隨機性。NIST統計測試套件中規定了16種不同類型的測試,以便能發現被測隨機數產生器的缺陷。

NIST FIPS

140-2是美國商業部頒發的另一份文件,它定義了設計者在安全應用中採用加密設備時必須遵守的一系列要求。其中一個最重要的要求是任何使用隨機數產生器的即時加密模組必須提供加電能力並可對RNG功能進行持續的即時測試,確保它在工作過程中不出現故障,如果在規定的統計測試中出現任何失敗,RNG模組都必須進入一種錯誤狀態。對於SoC設計來說,這意味著如果最終產品希望獲得美國政府安全標準許可的話,那麼進行測試的測試器模組必須整合在設備本身之中並滿足規定的要求。

某些產生非確定性噪音源的技術也許並不適用,這取決於是使用標準單元設計還是使用客戶定製佈局設計。的確可以保證一項設計達到期望的隨機度,但這種保證的代價是增加晶片尺寸以便實現冗餘結構或更為複雜的後處理功能。即便是精心規劃的設計,最後階段也必須通過統計測試套件的驗證,只有這樣才能說設計達到了期望的隨機度。

參考文獻


1. Jun and Kocher, "Intel Random Number Generator," Cryptography Research Inc. white paper, April 1999


2. Craig Petrie and J. Alvin Connelly, "A Noise-Based IC Random Number Generator for Applications in Cryptography," IEEE TCAS I, Vol. 47, No. 5, May 2000, p615-621


3. Fairfield, Mortenson, Coulthart, "An LSI Random Number Generator," Advances in Cryptology, Proceedings of Crypto 84, p203-230


4. Frank Herzel and Behzad Razavi, "A Study of Oscillator Jitter Due to Supply and Substrate Noise," IEEE TCAS II, Vol. 46, No. 1, January 1999, p56-62


5. Eastlake, Crocker and Schiller, "Randomness Recommendations for Security," RFC-1750


6. NIST Special Publication 800-22, "A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications," Information Technology Laboratory of the National Institute of Standards and Technology, Gaithersburg, Md., September 2000


7. Federal Information Processing Standards Publication 140-2, "Security Requirements for Cryptographic Modules," Information Technology Laboratory of the National Institute of Standards and Technology, Gaithersburg, Md., May 2001

作者: Alex Soohoo


系統應用經理


互聯產品事業部


IDT公司


Email: alex.soohoo@idt.
com




投票數:   加入我的最愛
我來評論 - 用振盪器採樣隨機數產生器保證網路SoC...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首