趙 儉
(解放軍信息工程大學,鄭州450000)
基于USB接口的真隨機數(shù)生成平臺設計?
趙 儉
(解放軍信息工程大學,鄭州450000)
隨機數(shù)作為網(wǎng)絡空間安全的基礎技術歷來受到相關領域研究人員的重視。針對日益廣泛的真隨機數(shù)應用需求,在分析國內(nèi)外各種真隨機數(shù)生成方法的基礎上,基于物理噪聲源芯片和內(nèi)含微處理器的USB接口芯片構(gòu)建一個真隨機數(shù)生成平臺。給出平臺的總體設計框圖,詳細分析了平臺核心硬件的配置電路設計和固件程序以及上位機軟件設計。該平臺具有結(jié)構(gòu)簡單、實現(xiàn)方便、可擴展性強等特點,通過該平臺的構(gòu)建一方面可以方便快捷地獲取大量真隨機數(shù),另一方面將該平臺應用于課程教學實踐,對于相關專業(yè)學生學習了解真隨機數(shù)的典型產(chǎn)生方法具有重要意義。
真隨機數(shù);通用串行總線接口;隨機噪聲源芯片;平臺設計;固件程序;課程教學
隨機數(shù)的應用十分廣泛,無論是科學仿真實驗還是現(xiàn)代通信應用都離不開隨機數(shù),特別是在網(wǎng)絡空間安全領域,隨機數(shù)不可或缺,如安全協(xié)議、密碼算法等運行過程中都需要用到具有良好隨機特性的隨機數(shù),可以說隨機數(shù)是確保信息安全的基礎。隨機數(shù)的產(chǎn)生方法可以分成兩類即數(shù)學方法和物理方法。數(shù)學方法是依據(jù)數(shù)據(jù)公式/模型生成隨機數(shù),它并不是嚴格意義上的隨機數(shù),通常也叫偽隨機數(shù),如平方取中、反饋移位寄存器(Feedback Shift Register,F(xiàn)SR)、線性同余發(fā)生器等,這種偽隨機數(shù)是可以重復產(chǎn)生的,只是可以將其重復周期設計得足夠長,截取重復周期內(nèi)的一段數(shù)據(jù)也能夠通過隨機性檢驗,滿足一般的應用需求。物理方法采用觀測客觀世界中的隨機物理現(xiàn)象獲取隨機數(shù),也叫真隨機數(shù),如擲色子、檢測放射性元素的衰變、電子元器件的熱噪聲等,真隨機數(shù)完全滿足不可預測性、良好的隨機統(tǒng)計特性(能夠通過各種隨機性檢驗)和不能重復產(chǎn)生等三點隨機特性,消除了偽隨機數(shù)的周期性問題,在信息安全領域具有重要的應用價值。
在真隨機數(shù)生成方面目前國內(nèi)外的專家學者從不同角度開展了一些列研究?;粑慕莸仍O計了一款利用數(shù)字電路相位漂移以及時鐘抖動進行工作的真隨機數(shù)生成器,其隨機源采用多組反相器振蕩環(huán)路予以實現(xiàn),并利用線性反饋移位寄存器進行后處理,在FPGA平臺上進行了測試驗證[1]。張亮等提出了一種由時間離散混沌系統(tǒng)作為高頻振蕩源,以低速時鐘進行采樣產(chǎn)生隨機數(shù)的方法,給出了硬件設計并進行了測試分析[2]。胡月設計了基于鼠標軌跡和手寫簽名等生物特征作為熵源的真隨機數(shù)發(fā)生器,并采用Hash函數(shù)、圖像加密、信號處理等不同的后處理措施以提高隨機特性[3]。周慶等提出基于鼠標移動產(chǎn)生隨機數(shù)并利用混沌Hash函數(shù)進行后處理的方法[4]。趙巖等提出了一種通過對電力線信道上的噪聲進行采樣獲取真隨機數(shù)的方法,使用加密算法進行后處理以消除偏差和自相關性[5]。JS Teh等利用GPU作為熵源并利用簡單的異或后處理實現(xiàn)無偏差輸出[6]。隨著電子技術的發(fā)展,真隨機數(shù)的產(chǎn)生方法越來越趨向于芯片化,國密辦也陸續(xù)發(fā)布了多款隨機噪聲源芯片,論文即是基于噪聲源芯片和內(nèi)含微處理器的USB接口芯片構(gòu)建一個真隨機數(shù)生成平臺,通過該平臺一方面可以方便快捷地獲取大量真隨機數(shù),另一方面將該平臺應用于相關課程的教學實踐,對于相關專業(yè)學生學習了解真隨機數(shù)的一種典型產(chǎn)生方法具有重要意義。
構(gòu)建基于USB接口的真隨機數(shù)生成平臺主要包括硬件平臺和軟件設計兩部分,真隨機數(shù)生成平臺總體框圖如圖1所示。物理噪聲源芯片在內(nèi)含微處理器的USB接口芯片控制下輸出0、1隨機序列,微處理器獲取該隨機序列經(jīng)USB接口送入上位機,上位機軟件接收USB接口傳輸?shù)碾S機數(shù)據(jù)在數(shù)據(jù)框顯示出來,同時以數(shù)據(jù)文件的形式保存在指定數(shù)據(jù)盤,留待后續(xù)研究分析。
2.1 硬件設計與實現(xiàn)
依據(jù)平臺總體框圖,其硬件設計部分主要涉及物理噪聲源芯片、USB接口芯片的選型和外圍電路設計。鑒于技術成熟度和平臺設計的后續(xù)可擴展性考慮,平臺的隨機噪聲源芯片采用的是WNG-8,USB接口芯片采用的是Cypress公司的AN2131QC。其中WNG-8芯片工作電流低于30mA,隨機數(shù)據(jù)產(chǎn)生速率可達20Mbps,有3.3V和5.0V工作電壓兩種型號,采用SOP8和DIP8兩種形式的封裝,其芯片引腳及功能如表1所示。
圖1 真隨機數(shù)生成平臺框圖
表1 WNG-8引腳功能
圖2 WNG-8工作時序
WNG-8的外圍電路如圖3所示。依據(jù)參考電路,在使用WNG-8時,為保護電路防止過載,噪聲源芯片的正電源VDD端應串接一個限流電阻R。當VDD=3.3V時,R=40±10Ω,當VDD=5V時,R=100±20Ω。同時在電源和地之間跨接一個約為0.1μf的旁路電容C,以便對電源進行去耦濾波,提高電源質(zhì)量,確保芯片穩(wěn)定工作。
USB接口芯片的外圍電路設計比較成熟,可參考文獻[7]實施,需要注意的是當接口配置程序設計采用加點后通過EEPROM加載時,電路中EEP-ROM地址引腳信號的電平設置。
圖3 WNG-8工作配置電路
2.2 軟件設計與實現(xiàn)
平臺軟件包括USB接口芯片的固件設計和上位機應用軟件的設計。
固件程序是在AN213lQC加電后,加載到USB接口芯片中并在其中運行,完成控制WNG-8獲取隨機數(shù)據(jù)、輸出隨機數(shù)據(jù)到USB接口等功能。固件程序可以通過驅(qū)動加載或者通過平臺外接I2C總線接口的EEPROM芯片加載,在設計中接口采用的是后一種加載固件的方式。該固件程序運行于AN2131QC的8051內(nèi)核,根據(jù)總體框架安排,數(shù)據(jù)傳輸過程如下:通過USB接口芯片中51核的I/O口PB2模擬輸出CLK作為WNG-8的時鐘驅(qū)動信號,在該時鐘信號驅(qū)動下,WNG-8的DATA引腳輸出0、1隨機數(shù)據(jù)同樣通過51核的I/O口PB3傳輸?shù)経SB接口芯片,再通過該接口芯片傳送到主機。
固件程序的設計基于接口芯片廠家提供的固件程序框架設計[7-9],主要分幾個大的模塊:①主程序模塊,完成設備初始化操作、設備“重枚舉”、循環(huán)等待上位機指令數(shù)據(jù)的傳送操作;②設備描述模塊,提供主機啟動后設備重新枚舉時所需要的VID、PID等設備描述符信息;③數(shù)據(jù)收發(fā)處理模塊,主要完成初始化后數(shù)據(jù)的傳送,并根據(jù)指令信息進行外圍設備的控制操作,在平臺中即是控制WNG-8獲取隨機數(shù)并傳送至主機。
固件的開發(fā)在Keil uvision2環(huán)境下實施,其中對WNG-8進行操作控制的核心程序如下:
該部分固件采用匯編語言和C語言混合編程,經(jīng)編譯后生成HEX二進制文件,通過Cypress公司提供的下載工具ControlPanel可以直接下載到AN2131QC接口芯片中運行,或下載到EEPROM中,將平臺復位后自動從EEPROM中裝載進51核心運行。
上位機軟件通過Cypress提供的ezusb.sys驅(qū)動程序調(diào)用CreatFile()函數(shù)獲得平臺設備句柄,再通過調(diào)用DeviceIoControl()函數(shù)即可獲取平臺USB接口傳送的隨機數(shù)據(jù),發(fā)送對WNG-8的控制指令等。上位機應用程序采用C++編程實現(xiàn),其界面如圖4所示。
圖4 真隨機數(shù)生成平臺界面
USB接口以其數(shù)據(jù)傳輸速率高、支持熱插拔、使用便捷等特性得到廣泛應用,通過該接口芯片結(jié)合物理噪聲源芯片設計的真隨機數(shù)生成平臺具有結(jié)構(gòu)簡單、可擴展性強等特點。如借助USB接口芯片豐富的I/O復用功能引腳,可以根據(jù)需要采用多個WNG-8物理噪聲源芯片并行連接到該接口芯片,實現(xiàn)多路隨機數(shù)據(jù)序列同步生成以大大提高隨機數(shù)據(jù)的生成速率。經(jīng)測試,通過該平臺獲取的真隨機數(shù)通過了國家密碼管理局發(fā)布的隨機性檢測規(guī)范要求[10]。通過該平臺的構(gòu)建,一方面可以方便快捷地獲取大量真隨機數(shù),另一方面將該平臺應用于課程教學實踐,對于相關專業(yè)學生學習了解真隨機數(shù)的典型產(chǎn)生方法具有重要意義。
[1] 霍文捷,劉政林,陳毅成,等.一種基于FPGA的真隨機數(shù)生成器的設計[J].華中科技大學學報(自然科學版),2009,37(1):73-76. Huo Wenjie,Liu Zhenglin,Chen Yicheng,et al.Design of a true random number generator using FPGA[J].Joural of Huazhong University of Science and Technology.Nature-Science,2009,37(1):73-76.
[2] 張亮,戎蒙恬,諸悅,等.基于混沌系統(tǒng)的真隨機數(shù)發(fā)生器芯片設計和實現(xiàn)[J].上海交通大學學報,2006,40(3):421-424. ZHANG Liang,RONG Meng-tian,ZHU Yue,et al.The ASIC Design and Realization of a Truly Random Number Generator Based on Chaos[J].Journal of Shanghai Jiaotong University,2006,40(3):421-424.
[3] 胡月.基于生物特征的真隨機數(shù)發(fā)生器的研究與設計[D].重慶:重慶大學,2008. HuYue.Research and Design on Ture Random Number Generator based on Biometric Characteristics[D]. Chongqing:Chongqing University,2008.
[4] Q Zhou,X Liao,KW Wong,Y Hu,D Xiao.True random number generator based on mouse movement and chaotic hash function[J].Information Sciences,2009,179(19):3442-3450.
[5] 趙巖,陳嵐.基于電力線信道噪聲的真隨機數(shù)發(fā)生器的設計[J].電視技術,2014,38(7):164-167. ZHAO Yan,CHEN Lan.Design of True Random Generator Based on Noise of Power Line[J].TV Engineering,2014,38(7):164-167.
[6] JSTeh,A Samsudin,M Al-Mazrooie,A Akhavan.GPUs and chaos:a new true random number generator[J]. Nonlinear Dynamics,2015,82(4):1913-1922.
[7] 張弘.USB接口設計[M].西安:西安電子科技大學出版社,2002. ZHANG Hong.Universal Serial Bus Interface Design[M].Xi’an:Xidian University Press,2002.
[8] 呂志成,龐晶,雍少為.EZ-USB接口設備的軟件開發(fā)方法[J].微處理機,2008,29(2):91-94. LV Zhi-cheng,PANG Jing,YONG Shao-wei.The Software Development Method of EZ-USB Interface Equipment[J].Microprocessors,2008,29(2):91-94.
[9] Cypress Semiconductor.EZ-USB Development Kit Manual Getting Started[DB/OL]http://www.cypress.com/.
[10] 國家密碼管理局.GM/T0005-2012隨機性檢測規(guī)范[S].北京:中國標準出版社,2012. State Cryptography Administration.GM/T0005-2012 Randomness Test Specification[S].Beijing:Chinese Standard Press,2012.
Design of True Random Number Generation Platform Based on USB Interface
Zhao Jian
(The PLA Information Engineering University,Zhengzhou 450000,China)
As the foundation technology of the network security related fields,the random numbers are paidmore attention.In view of the increasingly application requirements of the true random numbers,based on analysis of the generating methods of true random numbers,a true random number generation platform based on a physical noise source chip and a USB interface chip with amicroprocessor embedded is constructed,the overall block diagram of the platform is proposed,the configuration circuit of the core hardware is designed,and the design of the firmware and the host computer software are analyzed in detail.The platform has some advantages such as a simple structure,convenient implementation and good expansibility.A large number of true random numbers can be acquired from the constructed platform fast and conveniently,and it can be applied in teaching practice,so that the students of related subjects can learn about the typicalmethod of the true random number generator.
True Random Number;Universal Berial Bus Interface;Random Noise Source Chip;Design of the Platform;Firmware;Course Teaching
10.3969/j.issn.1002-2279.2016.06.019
TP39
A
1002-2279(2016)06-0076-03
國家自然科學基金(60130607)
趙儉(1979-),男,安徽省桐城市人,講師,碩士研究生,主研方向:無線安全,設備管控。
2016-04-11