摘要:信息安全系統的安全核心是內置的隨機數發生器。本文分析了常用的兩類隨機數發生器,指出了并非硬件隨機數即為真隨機數,提出了硬件真隨機數發生器的實現原理和評測準則。 隨機數是以現代密碼學為基礎的信息安全系統的基石。在現代信息安全系統中,密碼體制和算法本身可以被公開,訪問策略可以公布,密碼設備可能丟失,而系統的安全性要求不受影響。整個系統的安全性完全依賴于隨機數序列的生成效率和質量。 圖1示例是一個隨機數發生器在安全控制器內部的典型應用,隨機數被用來產生動態密鑰對數據總線和外設寄存器進行動態加密,使得在CPU和外設間實現數據加密傳輸,整個過程沒有明文存在。 因此,高質量的隨機數在信息安全系統中的作用舉足輕重,如果隨機數的隨機性不夠安全,整個系統極有可能被攻擊者攻破。 信息安全系統中的隨機數序列要求具有足夠的長度和周期,以及盡可能高的熵值,即具有高度的隨機性和不可預測性。 隨機數序列的產生方法不外乎兩種:偽隨機數和真隨機數。 作為常識,每個程序員在做入門學習時,都會被老師諄諄教導:我們用的編程語言中的隨機函數,只能產生出偽隨機數。它有其自身的內在規律,只能作為對外部世界的隨機事件的近似模擬。目前最常見的偽隨機數序列產生方法,是基于某一事先確定的序列生成算法(主流偽隨機數生成算法大都是乘/加同余法及其變體,就是利用整數加法和乘法之間關系的高度不協調),依賴一個由選定的隨機數“種子”來產生隨機序列。這樣生成的偽隨機數,在一般的應用中(主要是模擬計算),已經足夠了。 圖2是一個被業界廣泛使用的典型偽隨機數發生器,顯然,整個多項式產生的隨機數序列依賴于“種子”的輸入,并且,隨機序列的周期性也是直接依賴于多項式的階數。目前,比較好的偽隨機數發生器的序列重復周期已能達到2的160次方,在中低安全型需求的應用場合已經完全夠用。 對于偽隨機數發生器,如果已知“種子”和算法(例如圖2所示的多項式公式),實際上,也就無“隨機性”可言了。從理論上講,任何算法所產生的偽隨機序列都是可以被預測的,即具有較高概率的數字序列重現性,這就為信息安全系統帶來了重大隱患。因而,這類偽隨機數只能用在對安全性要求不高的場合。 真隨機數的產生,則要借助于工程設計良好的數字物理亂源,即利用一些物理過程的隨機性質。但并不是物理過程(硬件)產生的隨機數就是真隨機數,其中一些物理過程是否真正隨機也很難說,更有些系統僅僅采用硬件固定邏輯來加速偽隨機數的產生。 圖3是一個被廣泛采用的硬件隨機數發生器原理,這種基于直接放大器結構的隨機數發生器,雖然屬于硬件發生器,也能產生出比基于數學運算原理的發生器更高質量的隨機數序列,但由于其本身結構原理,雖易于實現,但其極易被外部信號干擾,導致其隨機數序列的熵值波動性很大。這種硬件隨機數并不能被稱為真正意義上的真隨機數。 這就存在一個隨機數質量檢測的問題。在所有隨機序列質量檢測方法以美國國家技術標準局NIST發布的關于密碼系統的信息安全標準FIPS 140-2和德國聯邦資訊安全辦公室BSI發布的AIS-31測試標準最為著名。這些標準中指定了多種測試方式對隨機數序列的質量指標進行測試,以取代常規的隨機性統計檢驗。與同類標準相比,FIPS140-2和AIS-31的合格標準更加嚴格。 英飛凌的智能卡安全控制器,采用最新專利科技集成了硬件高速真隨機數發生器(如圖3),利用專利科技噪音源產生出極大帶寬的數碼流,硬件后處理器可增加熵值,符合AIS-31標準的質量檢驗控制,可以保證從此隨機數發生器出來的隨機數序列已能滿足和通過符合AIS-31 P2類別的真隨機數質量測試。 該發生器能達到每字節30微秒的真硬件隨機數發生速率,使得英飛凌的智能卡安全控制器能夠實現極高的加密運算性能,而且,該發生器還具有很好的魯棒性,其產生的隨機序列在不同的溫度、電壓、頻率等外部條件波動時也具有極高的不可預測性和不可重復性,并且已通過FIPS140-2和AIS-31安全測試認證,適用于高安全性要求的各種應用。 并且,有了這一高質量的安全控制器的核心保障,英飛凌的安全控制器現已通過了由德國聯邦信息安全辦公室(BSI)主持的歷時數月的周密評估與測試,成功通過全球最嚴格的智能卡應用安全測試CC EAL6+。CC EAL6+測試以智能卡集成電路平臺保護規定(BSI-PP-0035)為基礎。英飛凌使用新的 PP00035 來獲得認證。 英飛凌將一直持續這種戰略,將最新科技應用于其安全控制器解決方案中,為其安全芯片取得公認的安全認證,也為幫助客戶構建健壯的高安全信息系統提供有力的技術基礎和支持。 參考文獻: [1]肖攸安,周祖德. 高效真隨機序列生成方法的研究[J]. 計算機工程與應用, 2006,16 [2]薛英花,呂述望. 隨機數發生器分析及其在安全信息系統中的應用[J].計算機工程,2003.3 [3]袁衛忠 謝俊元. 網絡安全中隨機數技術分析與應用[J]. 計算機工程,2001,6 [4]https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/Interpretationen/AIS_20_AIS_31_Evaluation_of_random_number_generators_e.html [5]https://www.bsi.bund.de/EN/Topics/Certification/certification_node.html |