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