王華華+楊康+余永坤



摘要:在信息通信安全領域內,密鑰的安全性直接影響公開加密算法的安全性,而密鑰的安全性又與隨機數的產生及其隨機性能的優良息息相關,所以隨機數的作用就變得非常的重要。文章基于FPGA硬件來實現高斯隨機數生成,算法實現總體共分為兩部分,第一部分采用CombinedTausworthe算法實現產生均勻分布的隨機數序列;第二部分為BoxMulle算法,利用兩組均勾分布的隨機數通過轉換來產生高斯隨機數。產生的隨機數的隨機性表現良好。高斯隨機數目前是應用最為廣泛的一類隨機數,所以對FPGA的高斯隨機數生成器的研究具有非常重要的實際意義。
關鍵詞:隨機數;CombinedTausworthe算法;BoxMulle算法
隨著信息技術和計算機網絡技術的高速發展,通信網絡系統己經成為當下社會發展的重要基礎設施。網絡通信己逐漸發展成為人們進行信息交流的必要途徑,數字技術己經深入到了人們的日常生活和生產當中。在這個信息化的時代,人們可以迅速而方便地在網上查找各種想要的信息,比如實時和未來幾天的天氣預報,國家兩會提出的新政策,旅游攻略,酒店預訂,網上購票等,給人們生活帶來了諸多便利。與此同時,在信息安全領域的隱患也慢慢地顯現出來。近年來互聯網高速的發展,由于信息安全引發的問題也越來越多,各種安全問題直接限制了某些應用的出現。這些問題不僅關系到個人的隱私安全問題,還關系到商業中的機密,導致不正當的商業競爭,還關系到國家機密的保全等重要問題。所以加密就自然而然成為保護信息的一個重要手段,加密算法的安全性也變得非常的重要[1]。
對數據安全加密,對知識產權堅決保護成為在信息安全領域必要的舉措。在信息通信安全領域內,密鑰的安全性直接影響公開加密算法的安全性。而密鑰的安全性又與隨機數的產生及其隨機性能的優良息息相關,所以隨機數的作用就變得非常重要。加密算法是信息安全領域的核心,除此之外,加密算法在網絡通信也被廣泛使用。為了保證通信的安全性,需要進行多種身份認證,避免信息泄露造成的可能性損失等,在安全性要求很高的場合中必須采用隨機性非常好的隨機數來進行加密,因此隨機數的生成就變成了一個非常重要且不能缺少的環節。所以為了生成高安全性的隨機序列和保持其良好的生成性能,保證加密算法的有效性,需要我們對生成隨機序列的方法進行更加深入和細致的研究。
國內外的研究機構一直都在重點研究隨機序列的產生方法與其隨機性的測試,但是其產生方法只有兩種:(1)真隨機數,通過物理的方法來產生真正的隨機數;(2)偽隨機數,主要運用數學的方法來生成。真隨機數是源于物理世界的真實隨機源,其主要特征是不易被破解,所以安全性非常高,因此其在數據加密、身份鑒定和密鑰管理等領域有著廣泛的應用。偽隨機序列主要特征是使用方便且很容易獲取,所以大多用于測試、仿真等領域。
目前對偽隨機序列的研究現狀可大致分為兩大類:(1)偽隨機序列可以直接由數學理論構造;(2)由LFSR構造出的偽隨機序列[2]。第一類構造的偽隨機序列在理論上能夠很容易分析序列的隨機性能,但是其實現會有很大問題,主要是構造難度非常大,而且成本和實現的代價不成比例。而基于LFSR構造的偽隨機序列和理論序列則在實際應用中比較容易實現,而且成本較低,性能較優。
1整體架構
Combined Tausworthe隨機數生成器的結構如圖1所示。
由該結構產生的隨機數滿足式(3)中的約束關系。最終的輸出是J個Tausworthe隨機數生成器輸出的異或結果。每個Tausworthe隨機數生成器是由一個L位的寄存器和轉換邏輯,構成的。
2隨機數產生算法
2.1均勻分布隨機數產生算法
本文應用Combined Tausworthe算法產生的均句分布隨機數,Combined Tausworthe隨機數生成器由若干個Tausworthe隨機數生成器組成[3],每個Tausworthe隨機數生成器產生的隨機數可以表示成如下形式:
其中,L和s是非零正整數,s表示跳變步長,L表示隨機數的輸出位寬。是一個隨機序列,其遞歸關系式為:
其中,特征多項式的系數。當為本原多項式時,輸出序列的周期可以取得最大值:通常取如下的三項式:。
由J個Tausworthe隨機數生成器構成的CombinedTausworthe隨機數生成器產生的(0,1)區間內的均句分布隨機數表示如下:
其中,是第J個Tausworthe隨機數生成器對應的輸出。由以及對應相等,即:
可得,其他為,帶入(2)式化簡如下:
2.2高斯隨機數產生方法
Box-Muller可以將產生的均勻分布隨機數轉換為高斯分布隨機數,其依據的原理是:兩組相互獨立的高斯分布隨機數的平方和是服從指數分布的,其轉換過程表示為:
其中,是兩路均勾分布的隨機數,《和反是最終得到的高斯分布隨機數,具體產生過程如圖2所示。
輸出位寬三的可配置性表現在參數組合,的選取上。設計Combined Tausworthe隨機數生成器時,可以根據設計需求選取輸出位寬L,得到滿足“ME (Maxilnally Equidistributed)條件”的參數組合,需要指出的是,并不是所有的都能找到滿足ME條件的,參數組合。當沒有參數組合可以滿足ME條件時,采取一個折中的辦法:假設且,對應CT RNG滿足Mli條件,那么可以選取該Combined Tausworthe隨機數生成器輸出中的三位作為新的輸出,構成三位輸出的RNG。所以,在設計Combined Tausworthe隨機數生成器時,總可以根據實際需要來選取合適的輸出位寬L實現硬件設計的可配置性。Combined Tausworthe詳細參數如表1所示。
3總結
利用modelsim仿真工具對verilog代碼進行仿真,得到的結果如圖3所示。
將可執行程序植入開發板中,硬件生成隨機數波形如機數波形如圖4所示。
4結語
本次設計中的總體思路是分為兩部分:第一部分是產生兩路均勻分布的隨機數,第二部分是利用這兩路隨機數進行轉換而產生兩路高斯分布的隨機數[4]。第一部分采用了CombinedTausworthe算法實現產生均句隨機數,其中最為關鍵的是狀態轉換邏輯矩陣的特征,設計了一種使用s個二輸入異或門來實現的硬件結構,實現每個時鐘周期內更新隨機序列。第二部分采用BoxMuller算法實現轉換,在硬件實現過程中采用添加IP核來實現數據運算,利用最值分析法和靜態誤差法確定各操作數的位寬來保證數據的正確性和精度。把生成的可執行程序導入開發板上,能實現快速產生隨機數,硬件開銷合理。硬件執行程序以后用txt文件的形式輸出運行結果,利用sts-2.1.2軟件包來測試txt文件隨機數的隨機質量,測試結果顯示隨機性良好。
[參考文獻]
[1]蔡方旻,萬民.基于FPGA的隨機數生成器的設計與實現[J].江西通信科技,2014(1):42-44.
[2]吳飛,李艷萍.基于FPGA一種真隨機數生成器的設計和實現[J].計算機應用與軟件,2013(11):258-260,286.
[3]梁媛一種組合式隨機數發生器的設計與實現[D].成都:電子科技大學,2016.
[4]谷曉忱,張民選一種基于FPGA的高斯隨機數生成器的設計與實現[J]計算機學報,2011(1):165-173.endprint