0 引 言
偽噪聲序列(PN序列)可應用于擴頻通信、信息加密、計算機仿真等領域。PN序列發生器需要一個隨機信號源和一系列的離散、量化算法及其硬件實現技術。確定性的混沌可以復制,具有長期不可預測性,且很難區分一個信號是來自于非確定性系統還是混沌系統。因此,混沌滿足密碼系統設計的基本原則,利用混沌系統作為PN序列的信號源已引起了國內外學者的廣泛關注與研究。
基于Logistic映射產生PN序列已有不少研究。文獻[7]利用模擬電路研究了其實現技術,由于混沌對初值和參數的敏感性,兩個模擬電路實現的PN序列,其電路參數不可能完全匹配,且受環境條件的變化而出現失配現象,很難保證保密通信或信息加密中兩個PN序列的完全同步。因此,近年來開展了基于數字電路(如FPGA)的PN序列的實現研究,但現有的研究中大多進行仿真實驗,無法保證硬件實際輸出PN序列的產生及其性能的測試。為此,基于FPGA技術,利用Logistic混沌映射作為隨機信號源對實現PN序列的硬件進行了深入研究,提取Logistic數值序列中二進制數的某一位bi(bi∈{0,1})為PN數字序列,實驗中獲得了硬件輸出序列,并通過一個串口通信電路對硬件輸出序列進行取樣,對其進行序列統計性能分析。分析結果表明,基于Logistic的PN序列性能良好,滿足PN序列測試的標準。
1 Logistic映射
Logistic方程如下:
式中:Xn∈(0,1);μ∈(0,4),當μ取值[3.571 448,4]時,Logistic映射進入混沌態,并表現出復雜的動力學特性。在此取μ=4,令Xn的初值Xo=O.312 5,則xn的時間序列和吸引子相圖如圖1所示。
2 Logistic映射的電路設計及時間序列的量化
DSP Builder。將Matlab和Simlalink系統級設計工具的算法開發、仿真和驗證功能與VHDL綜合、仿真和開發工具整合在一起,實現了這些工具的集成,將系統級設計的實現與DSP算法的開發相鏈接,涵蓋了算法和存儲功能等基本操作。可利用DSP Builder模塊迅速生成算法硬件電路,并轉成VHDL語言,大大縮短了FPGA的設計周期。圖2為Logistic的DSP Builder電路實現模型。
圖2中為消除毛刺,在各輸出端加入了一個延時器。其中,xout為Xn+1的時間序列;yout為其延時一個時鐘周期后的輸出,即Xo。xout與yout都是以二進制數表示的一系列小數(xn∈(0,1)),可表示為:
因為時間序列Xn的數值是用二進制數表示的,隨著迭代的不斷進行,Xn將隨之變化,此時其二進制表示中的某一位(O或1)也隨之變化。因此可以提取Xn時間序列中某一位二進制位作為量化值,當Xn的時間序列值隨時間變化時即生成一PN序列。圖2中的XoutBit為PN序列的輸出端,它取自Xn二進制數表示中的第9位。后面的分析表明,這種量化方法同樣具有很好的混沌性能和隨機性。
為了驗證圖2電路模塊的正確性,對Logistic的模塊電路進行仿真,其時間序列和吸引子如圖3所示。比較圖3和圖1發現,利用DSP Builder設計的電路有效地實現了Logistic映射的功能。
3 基于FPGA的PN序列實現
圖2中,xout與yout具有相同的k及l值,k=1,l=9,即k+l=10。因為所使用的FPGA開發板自帶THS5651DA轉換器接受的是10引腳數據,k+l=10可實現匹配。盡管xout在最后輸出前轉成了10位長度,但在整個內部運算環節,是50位長度的,有限字長明顯大于10,這樣可以最大限度地保持精度,減少有限字長效應帶來的誤差,有效實現混沌的非周期特性。
理論上混沌序列是非周期的,但因為在使用有限字長表示混沌狀態的情況下,加上運算結果的近似化,混沌序列最終會演化為一個周期序列。但是可以通過加長有限字長來延長周期。從實用的角度看,只要設計得好,映射和分叉參數選擇合適,所產生的序列周期將足夠長,序列的相關特性將足夠好,可用的序列數量將足夠多,可認為位轉換就已夠用,因為通信的時間不可能無限長。研究還發現,混沌映射產生的有限字長周期序列具有正的最大Lyapllnov指數。
將圖2所示的圖形化模塊通過“Signal Corepiler”直接轉化為硬件描述語言,再利用QuartusⅡ進行編譯,其仿真時序圖見圖4。其中,Output為抽取的混沌數字PN序列,即圖2中的XoutBit;Outputl和Output2分別為Xn+1和Xn。
把工程文件在CycloneⅡ的EP2C35F484C8進行編譯和引腳分配并下載到該芯片進行硬件實驗,從數字示波器上觀察到的PN序列如圖5(a)所示。為了驗證硬件實現的精度,通過THS5651芯片對得到的混沌數字信號進行D/A轉化,再通過示波器觀察其時間序列和吸引子,如圖5(b),圖5(c)所示。
4 PN序列隨機性分析
為了對硬件輸出的PN序列進行性能測試,首先通過一個串口通信模塊電路對FPGA輸出的數字PN序列進行采樣,然后利用計算機對其進行隨機性能分析。這里采用的FPGA開發板其內核為CycloneⅡ的EP2(235F484C8,外圍電路提供了USB口、并行I/O以及串口等一系列可供用戶選擇的端口。抽取Xn二進制表示的小數部分的第9位作為比特序列,并通過串口來實時獲得該位在一定時間段t內的所有值,其串口通信模塊電路如圖6所示。
為了確保計算機在接收該序列時不出現比特丟失現象,可預先向計算機發送一組周期序列來保證數據的可靠性。假設串口傳輸波特率為9 600,系統晶振為20 MHz,為了得到整數倍的分頻,可根據公式:
n=(20×106×k)/9600
令k=3,則可得出n為6 250。其中,比例因子k可通過鎖相環來獲得。上述兩步驟可通過在QuartusⅡ中添加鎖相環代碼與分頻器代碼實現。此時,讓系統時鐘T=1/9 600再經過二分頻后通過串口輸出,如果在接收端收到“01010”的周期序列,則表明FPGA與計算機之間的通信無問題。
5 PN序列隨機性能分析
5.1 頻率測試(Frequency Test)
該測試可用來判斷序列當中0和1的個數是否近似相等,若近似相等,則符合隨機序列的必要條件。令n0,n1分別代表0與1的個數;n代表序列s的長度。
該統計方程為:
T1=(n0-n1)2/n
若n≥lO,則T1近似符合1維自由度的x2分布。
對采集到的PN序列進行自由度為l的x2檢驗,取顯著性水平α=0.05,可以從標準表中查到顯著性水平a=O.05的x2值為3.84。如果T1值小于3.84,則該序列通過測試。n0,n1和T1的測試值如表l所示,由此可知,該序列的T1值遠小于3.84,通過測試。
5.2 串列測試(Serial Test)
該測試可用來判斷序列中00,01,10,11子序列的個數是否近似相等。若近似相等,則符合隨機序列的必要條件。令n0,n1分別代表0與1的個數,而n00,n01,n10,n11分別代表s序列中00,01,10,11的個數。由于n00+n01+no+nll=n-l,該統計方程為:
若n≥21,則T2近似符合2維自由度的x2分布。對序列進行自由度為2的x2檢驗。顯著性水平α置為O.05,查標準表得此時的x2值為5.99。測試結果如表2所示,T2=O.352 5《5.99,通過測試。
5.3 Poker測試(Poker Test)
令m為符合(n/m)≥5×2m的正整數,并令k=n/m。將序列s分成k個不重復的部分,每部分的長度為m,令ni為第i個長度為m的序列標號,1≤i≤2m。Poker測試可用來確定ni在序列s中,長度為m的各個不同子序列出現的概率是否近似相等。該統計方程為:
式中:T3近似符合2m-1維自由度的x2分布。值得注意的是,頻率測試其實是Poker測試的一個特例,令m=1,Poker測試即成為了頻率測試。分別取m=1,2,3,4,5,6,對待測序列進行自由度為2m-1的x2檢驗,結果列于表3。由表3可見,對于不同m值的T3值均小于對應的x2值,通過測試。
5.4 游程測試(RLins Test)
該測試的目的是為了判斷s序列中不同長度的游程是否具有隨機序列的游程特性。理論上,在一個長度為n隨機序列中,長度為i的連續O或連續1的期望值為ei=(n—i+3)/2i+2。令k為當ei≥5時的最大的i;Bi,Gi分別為各個block和gap的個數。游程測試的統計方程為:
則T4近似符合2k-2維自由度的χ2分布。
分別取i為1,2,3,4,5,6,7,8,9。對本序列,k值為9,所以可對T4進行自由度為16的χ2檢驗。查標準表知自由度為16的χ2值為26.3。將上述數值代人統計方程,運算得T4=19.883 1<26.3,通過測試。其測試結果如表4所示。
5.5 自相關測試(Autocorrelation Test)
該測試是為了檢測s序列與其(非循環的)移動后的序列的相關性。令d為一個整數,1≤d≤(n/2)。比較s序列和它移動d位之后的序列,兩者不同的位的數目可由計算得出。⊕表異或運算。自相關測試的統計方程為:
當,n-d≥10時,T5近似符合N(O,1)分布。
為判斷序列是否符合N(O,1)分布,可用余誤差函數計算再將erfc(z)與顯著性水平α=O.05比較,若大于它,則通過測試,測試結果如表5所示。由檢驗結果可知,每一個erfc(z)都大于a,通過測試。
6 結 語
利用Logistic混沌映射作為隨機信號源,基于FP-GA技術研究了PN序列的硬件產生。通過對產生的PN序列進行性能分析發現,其具有很好的隨機性,可被應用于擴頻通信和數字信息加密等領域。由于直接以離散混沌作為隨機信號源,相對于將連續混沌離散化后再量化產生PN序列,其精確度更高。由于數字序列是通過抽取二進制數值中某一位產生的,只要迭代值的位數足夠多,序列的可變性就更大,從而增大了密鑰空間和通信的保密性。