基于變結(jié)構(gòu)混沌的偽隨機序列發(fā)生器
摘要:為產(chǎn)生隨機性能良好的偽隨機序列,提出了一個新的變結(jié)構(gòu)混沌系統(tǒng)。該混沌系統(tǒng)在一個開關(guān)函數(shù)控制下其系統(tǒng)結(jié)構(gòu)隨時間隨機地轉(zhuǎn)換,所產(chǎn)生的混沌信號是兩個不同的混沌信號的混合,具有良好的復(fù)雜性。基于該變結(jié)構(gòu)混沌系統(tǒng)設(shè)計了一種偽隨機序列發(fā)生器,采用NIST標準和STS-2.0b測試套件對其產(chǎn)生的偽隨機序列進行了統(tǒng)計性能測試,測試結(jié)果表明該偽隨機序列發(fā)生器具有良好的隨機性,可應(yīng)用于計算機、通信、信息加密等領(lǐng)域中。
關(guān)鍵詞:混沌;變結(jié)構(gòu)混沌;偽隨機序列;隨機性
0 引言
偽隨機序列在數(shù)字通信、密碼系統(tǒng)、計算機仿真等領(lǐng)域有著廣泛的應(yīng)用。一個偽隨機序列發(fā)生器包括隨機信號源(種)和一系列的離散、量化及其實現(xiàn)技術(shù),其中良好的隨機信號源是偽隨機序列設(shè)計的關(guān)鍵問題?;煦缗c傳統(tǒng)密碼學之間存住著一種自然的聯(lián)系,混沌動力學特性基本對應(yīng)著高強度密碼系統(tǒng)的某些安全特征,而具有良好混合特性的傳統(tǒng)密碼又蘊涵著混沌現(xiàn)象。以混沌作為信號源為偽隨機序列發(fā)生器的設(shè)計提供了一種新的途徑。
利用連續(xù)和離散混沌系統(tǒng)進行偽隨機序列發(fā)生器的設(shè)計已有研究。離散混沌由于算法簡單致使其運算速率快,序列碼率較高,但缺點是系統(tǒng)參數(shù)和初值條件在一般情況下較少,密鑰空間小,序列的安全性較低。連續(xù)混沌一股情況下是幾個非線性微分方程的耦合,其系統(tǒng)參數(shù)和初始條件較多,產(chǎn)生偽隨機序列的密鑰空間較大,缺點是運算復(fù)雜,在數(shù)字系統(tǒng)實現(xiàn)時運算速率相對較慢。但如果采取合理的量化方法,會較好地彌補這種慢的運算速率。如在抽位量化方法中,如果一次抽取混沌數(shù)字迭代值的多位作為0,1序列,可大大提高其碼率。因此采用復(fù)雜的連續(xù)混沌系統(tǒng)作為偽隨機序列的源將是混沌序列應(yīng)用的一個方向。
另一方面,數(shù)字系統(tǒng)的編碼理論表明,在數(shù)字系統(tǒng)中處理非周期的混沌時,由于系統(tǒng)本身的有限位數(shù)致使混沌出現(xiàn)周期現(xiàn)象,即短周期或動力學退化問題。為改善這種短周期問題,可通過對混沌系統(tǒng)的變量或參數(shù)進行擾動以提高其數(shù)字PN序列的統(tǒng)計性能,增大序列的周期。為了提高混沌偽隨機序列的復(fù)雜性和改善其動力性退化問題,本文設(shè)計了一個變結(jié)構(gòu)混沌系統(tǒng),以期獲得性能更好的偽隨機序列。所謂變結(jié)構(gòu)混沌系統(tǒng),是指該系統(tǒng)的代數(shù)結(jié)構(gòu)不斷地自動變化,而實現(xiàn)這種變化的控制函數(shù)是一個開關(guān)函數(shù),該函數(shù)在自身變量控制下自動地在0,1之間轉(zhuǎn)換。在提出變結(jié)構(gòu)混沌系統(tǒng)之后,對基于該混沌系統(tǒng)的偽隨機序列發(fā)生器進行了設(shè)計,對產(chǎn)生的偽隨機序列進行了NIST(National Ins titute of Standards and Technology)測試。測試結(jié)果驗證了該數(shù)字序列具有良好的隨機性能。
1 變結(jié)構(gòu)混沌系統(tǒng)構(gòu)造
首先構(gòu)造了一個三維連續(xù)混沌系統(tǒng):
式中:a,b,c為可變的系統(tǒng)參數(shù)。在Matlab軟件平臺上計算表明,在較大的a,b,c參數(shù)范圍內(nèi)系統(tǒng)(1)都是混沌的,取a=0.8,b=1.5和c=1.5時系統(tǒng)(1)的時域波形和y-z平面上的軌跡(相圖)如圖1所示。
又構(gòu)造了另一個三維連續(xù)混沌系統(tǒng):
式中:a,b,c和是為可變的系統(tǒng)參數(shù)。在Matlab軟件平臺上計算表明,在較大的a,b,c和k參數(shù)范圍內(nèi)系統(tǒng)(2)都是混沌的,取a=0.8 b=1.5,c=1.5和k=0.32時系統(tǒng)(2)的時域波形和y-z平面上的軌跡(相圖)如圖2所示。比較圖1和圖2發(fā)現(xiàn),兩者的時域波形和對應(yīng)的平面軌跡不同。
混沌系統(tǒng)(1)、(2)除第一個方程不同外,其余兩個方程完全相同。雖然它們有相似的結(jié)構(gòu),但其代數(shù)結(jié)構(gòu)不同,平衡點也不同(見下一節(jié)),因而它們是非拓撲等價的,即它們在理論上是不同的兩個系統(tǒng)。根據(jù)兩個系統(tǒng)有相似結(jié)構(gòu)但本質(zhì)不同的特點,采用一個開關(guān)控制函數(shù)u構(gòu)造了一個變結(jié)構(gòu)混沌系統(tǒng):
式中:m為開關(guān)控制函數(shù)的門限,m∈x取m=0.2,其他參數(shù)同前。對變結(jié)構(gòu)混沌系統(tǒng)(3)進行仿真計算,所獲得的時域波形x-t和y-z平面上的軌跡如圖3所示。
圖3中,實線和虛線分別為為系統(tǒng)(1)和(2)的波形或軌跡。
從圖3看出,該系統(tǒng)的信號波形或解的軌跡由兩個不同的部分構(gòu)成。當系統(tǒng)的解x≥m=0.2時,u(x-m)=1,混沌系統(tǒng)(3)為混沌系統(tǒng)(2)的結(jié)構(gòu);當系統(tǒng)的解x<m=0.2時,u(x-m)=0,式(3)變?yōu)榛煦缦到y(tǒng)(1)的結(jié)構(gòu),如此往復(fù)變化。雖然在這種結(jié)構(gòu)變化中的門限為一確定值,但由于混沌的不可預(yù)測性導(dǎo)致何時達到這一門限足無法預(yù)知的,即這種結(jié)構(gòu)隨時間而變化的規(guī)律是無法預(yù)知的,也是隨機的。
這種由兩個不同的混沌信號按時間隨機地混雜在一起而形成的一個完整的混沌信號,比之由單一混沌系統(tǒng)產(chǎn)牛的信號要復(fù)雜得多,且門限參數(shù)本身又是一種密鑰參數(shù),它擴展了混沌偽隨機序列的密鑰空間,使其提高了安全性。
2 偽隨機序列發(fā)生器設(shè)計及性能分析
基于上述的變結(jié)構(gòu)混沌系統(tǒng)可設(shè)計一種新的偽隨機序列發(fā)牛器。主要思路是以變結(jié)構(gòu)混沌系統(tǒng)作為隨機信號源,采用一定的方法對其離散、量化,獲得一系列的偽隨饑序列。
這里研究的變結(jié)構(gòu)混沌系統(tǒng)是一個非線性常微分方程組,在數(shù)字系統(tǒng)中對其進行數(shù)值解就是一種離散的方法。常微分方程近似求解的數(shù)值方法有歐拉算法、改進型的歐拉算法和龍格庫塔法等,這都是將連續(xù)系統(tǒng)進行近似離散化的方法。其中,歐拉算法速率最快,本文采用歐拉算法將連續(xù)混沌離散化。對于一個連續(xù)的混沌系統(tǒng),有:
當τ足夠小時,經(jīng)過歐拉算法離散化后的系統(tǒng)具有與式(3)所示的連續(xù)混沌系統(tǒng)相同的動力學特性,此處選擇τ=0.004。
在數(shù)字系統(tǒng)中迭代求解式(8)所示的離散化系統(tǒng),迭代過程中的每一個解變量xn,yn和zn都可以通過二進制數(shù)據(jù)的方式來表示。以xn為例:
式中:b1n,b2n,…,b(k+1+l)n分別為二進制數(shù)的所有位(0或1),混沌系統(tǒng)的解xn隨時間不斷變化,其二進制表達式中的每一位bm(“0”或“1”)也隨時間小斷變化。如果抽取隨時間變化的一位或多位,可構(gòu)成一個由“0”或“1”組成的偽隨機序列。為了保證提取的序列具有較好的隨機性,可以嚴格地從小數(shù)部分中提取其中一位作為隨機序列,也可以從{b1n,b2n,…,b(k+1+l)n}中選取隨機性能較好的多位作為隨機序列,從而增加隨機序列的提取速度。這種量化方法可用圖4表示。
式(5)~式(9)描述了混沌偽隨機序列發(fā)生器設(shè)計的核心算法。實現(xiàn)一個混沌偽隨機序列發(fā)生器可借助于軟件和硬件平臺。如果為計算機或其他軟件提供偽隨機序列,可借助數(shù)字計算機這個性能完善的平臺實現(xiàn)式(5)~式(9)的運算,如可用Matlab,C語言等軟件實現(xiàn)一個混沌偽隨機序列發(fā)生器。也可結(jié)合實際應(yīng)用在相關(guān)信號處理軟硬件平臺上實現(xiàn)混沌偽隨機序列發(fā)生器,如利用DSP芯片對語音或視頻信號進行混沌加密,可在DSP內(nèi)進行上述運算而實現(xiàn)混沌偽隨機序列發(fā)生器,也可利用FPGA硬件平臺實現(xiàn)這種偽隨機序列發(fā)生器。本文不側(cè)重利用何種平臺,如何實現(xiàn)混沌偽隨機序列發(fā)生器,而是著重基于上述變結(jié)構(gòu)混沌系統(tǒng)的偽隨機序列發(fā)生器性能的測試。為此,選擇Matlab求解變結(jié)構(gòu)混沌系統(tǒng),通過實現(xiàn)式(5)~式(9)的運算產(chǎn)生一系列偽隨機序列,提取序列并進行序列的隨機性統(tǒng)計測試。
描述一個序列隨機性統(tǒng)計性能的指標有多種,但目前應(yīng)用最廣的是NIST(National Institute of Standardsand Technology,美國國家技術(shù)與標準局)標準。NIST推出2.0版本的測試軟件包STS是當前最具權(quán)威的一種隨機性檢測工具,它為研究人員提供了一種量化的報告,顯式地說明一個偽隨機序列性能的好壞。STS-2.0b是當前最新的軟件包版本,由十五項核心測試指標組成。
該測試包評價序列性能好壞有兩項指標:其一是通過率,另一項是P-value分布的均勻性。測試獨立生成的m組隨機序列,依據(jù)各組每次測試的P-value值是否大于測試水平α=0.01來計算通過率。若各次測試的通過率在可信性區(qū)間內(nèi),其中1-a,則可說明此次測試算法的信任度高。對于P-value分布均勻性,若P-valueT>0.000 1,則說明P-value值是均勻分布的。
在Linux操作系統(tǒng)環(huán)境下進行測試。通過編程將變結(jié)構(gòu)混沌系統(tǒng)進行離散迭代運算來產(chǎn)生數(shù)字混沌序列,然后將產(chǎn)生的二進制數(shù)字序列保存為txt文檔,并通過測試指令調(diào)用軟件包對txt文檔中的序列進行測試,測試由STS軟件包自動完成,并生成測試報告?;谧兘Y(jié)構(gòu)混沌系統(tǒng)產(chǎn)生的偽隨機序列的測試結(jié)果如表1所示,序列共有100000000 b,以每組100000 b分為1 000組。
從表1中P-value這一列看出,序列僅在FFT這一項中的P-value值測試不滿足P-valueT>0.000 1的條件,這說明序列在該項測試中的P-value值分布不均勻,在其余14項測試中表現(xiàn)為分布均勻。若從通過率來分析,取顯著水平α=0.01,那么根據(jù)通過率可信區(qū)間的計算公式可得,當PROPORTION的值落在(0.980 560 8,0.999 439 2)區(qū)間內(nèi)時,表明序列通過該測試項,反之則為不通過。表1測試結(jié)果顯示序列在所有測試中其結(jié)果均落在可信區(qū)間之內(nèi),所有指標均通過該項測試。
3 結(jié)論
為產(chǎn)生性能良好的偽隨機序列,本文構(gòu)造了一個新的變結(jié)構(gòu)混沌系統(tǒng)。該系統(tǒng)在一個開關(guān)函數(shù)控制下自動地在兩個混沌子系統(tǒng)之間隨時問隨機地轉(zhuǎn)換,所產(chǎn)生的混沌信號是兩個不同的混沌信號的混合,因而具有較好的復(fù)雜性。利用該變結(jié)構(gòu)混沌系統(tǒng)設(shè)計了一種偽隨機序列發(fā)生器,基于NIST標準和STS-2.0b測試套件對其產(chǎn)生的偽隨機序列進行了測試,序列通過率全部通過了測試,序列的均勻性只有一項未通過測試。測試結(jié)果表明,該偽隨機序列發(fā)生器具有良好的隨機性能,可應(yīng)用于計算機、通信、信息加密等領(lǐng)域之中。