劉長龍,陳 燕
(1.中國電子科技集團公司第五十四研究所,河北省 石家莊 050081;2.河北師范大學 物理科學與信息工程學院,河北省 石家莊 050024)
一種基于數字處理單元的真隨機數發(fā)生器設計
劉長龍1,陳 燕2
(1.中國電子科技集團公司第五十四研究所,河北省 石家莊 050081;2.河北師范大學 物理科學與信息工程學院,河北省 石家莊 050024)
真隨機數發(fā)生器(True Random Number Generator,TRNG)是保密通信系統(tǒng)以及信息安全芯片中的重要單元之一,用來產生系統(tǒng)所需要的真隨機數序列,從而實現通信加密或者身份認證。對傳統(tǒng)的基于模擬隨機源的真隨機數發(fā)生器結構進行了改進,在隨機源后加入數字處理單元,包含曼徹斯特編碼器、線性反饋移位寄存器(Linear Feedback Shift Reg-ister,LFSR)和AES運算單元。模擬隨機源產生的真隨機數序列在經過數字電路的后處理后,再送入系統(tǒng)中進行使用。數?;旌戏抡娼Y果顯示,該結構可有效提高真隨機數的隨機性指標,提高系統(tǒng)和芯片的加密性能,保障通信及數據安全。
真隨機數;隨機數發(fā)生器;信息安全;加密算法;數字處理
隨機數在密碼學中占有重要的地位,幾乎所有的密碼算法都要用到一些對攻擊者來說必須是秘密的數據[1];現代通信系統(tǒng)在編碼設計中,除了考慮容錯性,也對保密性有很高的要求[2]。對于一次一密系統(tǒng)而言,其安全性依賴于密鑰,包括對稱密碼算法(DES、AES等)的密鑰和非對稱密碼算法(RSA、DSA等)的密鑰對等等,而這些密鑰必須是隨機數[3]。隨著加解密技術的快速發(fā)展,基于軟件實現的偽隨機數發(fā)生器已經無法滿足系統(tǒng)對安全性的要求,而真隨機數發(fā)生器所產生的隨機數來源于真實的隨機物理過程,徹底地消除了偽隨機數的周期性問題[4]。因此,具有良好性能的真隨機數發(fā)生器已經成為了現代加密系統(tǒng)的必需組成單元之一。
本文設計了一種基于數字處理單元的真隨機數發(fā)生器,通過對傳統(tǒng)的真隨機數發(fā)生器結構進行改進,增加數字后處理電路,提高了物理隨機源產生的隨機數序列的質量,最終所輸出的隨機數序列具有均勻性好、獨立性高等特點,在信息安全方面具有較高的實際應用價值。
真隨機數發(fā)生器設計方案通??梢詺w為3類:放大電路噪聲、混沌電路和振蕩采樣[5-6]?;谖锢黼S機源產生的真隨機數雖然在隨機序列的長度、獨立性等方面相比偽隨機數發(fā)生器得到了突破性進展,但是其產生的真隨機數序列的隨機性不夠穩(wěn)定,隨機數的質量不高。一般而言,高質量的真隨機數序列具有分布均勻、周期長和序列無關等特性,檢驗序列質量有跟隨性、游程、均勻性、獨立性、相關性等一系列檢驗指標以及譜分析、ENT(一種隨機數性能檢測程序)等測試方法[7]。物理隨機源雖然能夠提供真正意義上的真隨機數序列,但是完全達到上述測試標準要求的難度較大,設計實現困難。
設計的真隨機數發(fā)生器的基本結構如圖1所示,包括真隨機數源、曼徹斯特編碼器、線性反饋移位寄存器(LFSR)和AES運算單元4部分,其中曼徹斯特編碼器、線性反饋移位寄存器(LFSR)和AES運算單元組成了真隨機數發(fā)生器的數字處理電路,最終真隨機數由真隨機數輸出寄存器送至片上系統(tǒng)總線。
圖1 真隨機數發(fā)生器的基本架構
真隨機數源基于震蕩采樣法實現,采用環(huán)形振蕩器結構。為了防止在實際應用中振蕩器失效或者被鎖死,設計使用了3個高頻振蕩器,將3個輸出進行異或,保證采樣輸出的隨機性,3個振蕩器分別采用5級反相器環(huán)路、7級反相器回路和13級反相器回路[8]。
真隨機數源的結構如圖2所示,低頻振蕩器利用系統(tǒng)時鐘的2分頻實現,作為真隨機數的采樣時鐘采樣輸入的高頻振蕩器信號,從而產生隨機數序列。在實際具體電路中,真隨機數的采樣時鐘作為基于觸發(fā)器結構的采樣單元的時鐘信號,高頻震蕩器輸入信號則作為采樣單元的數據輸入,并在采樣時鐘脈沖的上升沿對其進行采樣,最終輸出得到的就是一個真隨機數比特流。
圖2 真隨機數源的結構
由于模擬隨機數源輸出的真隨機數比特流質量不高,可能存在由連續(xù)的多個“0”或者多個“1”組成的長0或長1序列,這樣的序列雖然屬于真隨機數,但是其隨機性差,不能滿足現代算法的要求,因此首先將數據送入曼徹斯特編碼器,消除長0及長1序列。如圖3所示,曼徹斯特編碼器由一個異或門、一個非門與一個觸發(fā)器組成,從而實現從NRZ碼到曼徹斯特碼的轉換,并由編碼控制端控制曼徹斯特編碼的開始和停止。
圖3 曼徹斯特編碼器結構
為了提高真隨機數的隨機性指標,將真隨機數序列的值離散化,在通過曼徹斯特編碼器后,將曼徹斯特碼比特流送入后續(xù)的LFSR單元和AES運算單元進行處理。如圖4所示,LFSR單元采用128位線性反饋移位寄存器實現,其反饋函數為A0=A0⊕A1⊕A6⊕A127,產生的隨機數的序列周期長度為2128-1。LFSR工作時,輸出使能信號為0,由曼徹斯特碼比特流逐比特進入LFSR,作為種子填充至128位寄存器中;待128位全部填充結束后,LFSR輸出使能信號變?yōu)?,此時,LFSR開始工作,輸出端開始逐比特輸出真隨機數序列。
圖4 線性反饋移位寄存器結構
AES運算單元的作用是利用AES算法,通過重復非線性變換、混合函數變換,將字節(jié)代換運算產生的非線性擴散,達到充分的混合,使加密后的分組信息統(tǒng)計特性分布更均勻,形成的密碼有很高的隨機性[9]。AES運算單元結構如圖5所示,明文寄存器和密鑰寄存器通過獲取LFSR輸出的隨機數序列生成AES運算所需的128 bits的明文和密鑰;當明文和密鑰生成后,控制單元向AES運算模塊發(fā)出使能信號,由狀態(tài)機控制完成AES加密運算,AES運算流程如圖6所示。運算完成后,向真隨機數輸出寄存器輸出128 bits的加密后的數據。
圖5 AES運算單元結構
圖6 AES算法流程
在傳統(tǒng)混合信號集成電路仿真方法中,首先利用Hspice和Spectre等模擬仿真器對模擬真隨機源的電路進行仿真;在數字部分,一般會根據模擬仿真結果,建立一個近似隨機源的等效Verilog模型,利用VCS等數字仿真器對該模型以及數字電路進行仿真,最終對輸出序列進行測試。這種方式雖然實現了系統(tǒng)仿真,但是由于隨機源的Verilog模型只能近似產生輸出序列,無法獲取真實的仿真數據;同時,在仿真中無法驗證兩部分之間的接口關系及時序[10]。為了解決上述問題,本文采用了基于Synopsys公司的XA-VCS數?;旌戏抡娼鉀Q方案。
XA-VCS混合仿真是用于數模混合信號集成電路仿真的一種高性能解決方案,混合仿真流程如圖7所示。在一個混合信號系統(tǒng)中,仿真器利用XA仿真晶體管級的模擬電路模塊,同時利用VCS仿真Verilog語言描述的數字模塊,從而達到精度與速度的統(tǒng)一。
利用上述方法,通過XA部分完成模擬隨機源的仿真,利用接口配置文件,規(guī)定數字、模擬信號域的電平轉換規(guī)范,將其輸出作為數字處理單元的隨機數源,實現混合信號仿真,具體仿真結果如圖8所示。
圖7 混合信號仿真基本流程
圖8 真隨機數發(fā)生器仿真結果
根據數字處理單元的規(guī)模,選擇了一款Altera的FPGA開發(fā)板對數字處理部分進行FPGA驗證,FPGA芯片型號為Cyclone II系列的的EP2C35[11]。通過Quartus完成代碼的綜合與布局布線,使用MegaCore生成存儲器IP,為驗證提供隨機數數據源;模擬隨機源仿真生成的隨機數序列作為存儲器初始化mif文件。數字處理單元的FPGA驗證結果如圖9所示,通過SignalTap邏輯分析儀采集FPGA工作波形數據,經驗證數字處理單元,特別是AES運算單元的功能和時序均與仿真結果一致。
圖9 數字處理單元的FPGA驗證結果
按照NIST(國家標準與技術研究所)測試程序對隨機數測試的要求,由仿真器生成64 Mbit的真隨機數數據,進行隨機性評估測試,并與模擬隨機源的測試結果進行比較,測試項目和結果如表1所示。
表1 隨機性評估測試結果
從表1可以看出,在模擬隨機源輸出隨機數質量不高的情況下,通過數字處理,可以有效的提高隨機數的質量,達到相關測試標準的要求。
真隨機數發(fā)生器作為現代信息安全及保密通信系統(tǒng)的核心組成部分之一,發(fā)揮著極其重要的作用,片上真隨機數發(fā)生器的設計工作也越來越得到人們的重視?;谀M隨機源的隨機數發(fā)生器雖然相比偽隨機數發(fā)生器得到了突破性進展,但是其產生的隨機數序列不穩(wěn)定,且滿足測試標準的難度較高;因此,設計一款基于數字處理單元的真隨機數發(fā)生器,將數學方法和物理方法結合起來,既能夠產生高質量的真隨機數,使密碼算法的信息保密性得到很大程度的提升,又能達到相關規(guī)范及標準的要求,有效保障信息安全。
[1]蘇桂平,呂述望,楊 柱,等.真隨機數發(fā)生器的隨機性在信息安全中的應用[J].計算機工程,2002,28(6):114-115.
[2]薛英花,呂述望,郭圣權.隨機數發(fā)生器分析及其在安全信息系統(tǒng)中的應用[J].計算機工程,2003,29(3):42-44.
[3]張吾進,毛 倩.基于Turbo碼的糾錯加密聯(lián)合編碼方案[J].無線電通信技術,2012,38(5):29-32.
[4]PARK S K,MILLER K W.Random Number Generators:Good Ones are Hard to Find[J].Commun ACM,1988,31(10):1 192-1 201.
[5]吳燕雯,戎蒙恬,諸 悅,等.一種基于噪聲的真隨機數發(fā)生器的ASIC設計與實現[J].微電子學,2005,35(2):213-216.
[6]辛 茜,曾曉洋,張國權,等.真隨機數發(fā)生器的系統(tǒng)建模與仿真[J].系統(tǒng)仿真學報,2005,17(1):53-56.
[7]宋 勇,陳賢富,姚海東.隨機數發(fā)生器探討及一種真隨機數發(fā)生器實現[J].計算機工程,2007(2):71-73.
[8]PETRIE C S,CONNELLY J A.Modeling and Simulation of Oscillator Based Random Number Generators[C]∥Proc Int Symp Circ and Syst,1996,324-327.
[9]章照止,溫巧燕.現代密碼學基礎[M].北京:北京郵電大學出版社,2004.
[10]MCNEAL J,MARTIN D.Methodology for Co-simulation of Mixed-Signal IP[R].SNUG Proceedings,2007.
[11]孟 芳,于立佳,張文志.基于Nios II的SOPC系統(tǒng)設計分析[J].無線電通信技術,2012,38(1):73-76.
Design of a True Random Number Generator Based on the Digital Processing Unit
LIU Chang-long1,CHEN Yan2
(1.The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China;2.College of Physics Science and Information Engineering,Hebei Normal University,Shijiazhuang Hebei 050024,China)
True random number generator(TRNG)is one important element in secure communication system and information security chip,which is used to generate true random number sequences required by the system to realize the communication encryption or authentication.In this paper,the traditional true random number generator based on the structure of analog random source was im-proved.The digital processing unit is added after in the random source which consists of Manchester encoder,linear feedback shift regis-ter(LFSR)and the AES operation unit.The true random number sequence generated by the analog random source is sent to use in sys-tem after the digital circuit processing.Digital and analog co-simulation results show that the Structure of TRNG effectively improves the random index of the true random number sequence,so as to improve the encryption performance of the system or the chip and guarantee communication security and data security.
true random number;TRNG;information security;encryption algorithm;digital processing
TN918
A
1003-3106(2015)07-0091-04
10.3969/j.issn.1003-3106.2015.07.24
劉長龍,陳 燕.一種基于數字處理單元的真隨機數發(fā)生器設計[J].無線電工程,2015,45(7):91-94.
劉長龍男,(1985—),工程師。主要研究方向:數字及SoC芯片設計。
2015-04-17
陳 燕女,(1983—),講師。主要研究方向:數模混合集成電路設計。