《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 基于Logistic映射PN序列的FPGA實現(xiàn)
基于Logistic映射PN序列的FPGA實現(xiàn)
摘要: 偽噪聲序列(PN序列)可應用于擴頻通信、信息加密、計算機仿真等領(lǐng)域。PN序列發(fā)生器需要一個隨機信號源和一系列的離散、量化算法及其硬件實現(xiàn)技術(shù)。確定性的混沌可以復制,具有長期不可預測性,且很難區(qū)分一個信號是來自于非確定性系統(tǒng)還是混沌系統(tǒng)。因此,混沌滿足密碼系統(tǒng)設(shè)計的基本原則,利用混沌系統(tǒng)作為PN序列的信號源已引起了國內(nèi)外學者的廣泛關(guān)注與研究。
關(guān)鍵詞: FPGA Logistic 混沌系統(tǒng)
Abstract:
Key words :

  0 引 言

  偽噪聲序列(PN序列)可應用于擴頻通信、信息加密、計算機仿真等領(lǐng)域。PN序列發(fā)生器需要一個隨機信號源和一系列的離散、量化算法及其硬件實現(xiàn)技術(shù)。確定性的混沌可以復制,具有長期不可預測性,且很難區(qū)分一個信號是來自于非確定性系統(tǒng)還是混沌系統(tǒng)。因此,混沌滿足密碼系統(tǒng)設(shè)計的基本原則,利用混沌系統(tǒng)作為PN序列的信號源已引起了國內(nèi)外學者的廣泛關(guān)注與研究。

  基于Logistic映射產(chǎn)生PN序列已有不少研究。文獻[7]利用模擬電路研究了其實現(xiàn)技術(shù),由于混沌對初值和參數(shù)的敏感性,兩個模擬電路實現(xiàn)的PN序列,其電路參數(shù)不可能完全匹配,且受環(huán)境條件的變化而出現(xiàn)失配現(xiàn)象,很難保證保密通信或信息加密中兩個PN序列的完全同步。因此,近年來開展了基于數(shù)字電路(如FPGA)的PN序列的實現(xiàn)研究,但現(xiàn)有的研究中大多進行仿真實驗,無法保證硬件實際輸出PN序列的產(chǎn)生及其性能的測試。為此,基于FPGA技術(shù),利用Logistic混沌映射作為隨機信號源對實現(xiàn)PN序列的硬件進行了深入研究,提取Logistic數(shù)值序列中二進制數(shù)的某一位bi(bi∈{0,1})為PN數(shù)字序列,實驗中獲得了硬件輸出序列,并通過一個串口通信電路對硬件輸出序列進行取樣,對其進行序列統(tǒng)計性能分析。分析結(jié)果表明,基于Logistic的PN序列性能良好,滿足PN序列測試的標準。

  1 Logistic映射

  Logistic方程如下:

公式

  式中:Xn∈(0,1);μ∈(0,4),當μ取值[3.571 448,4]時,Logistic映射進入混沌態(tài),并表現(xiàn)出復雜的動力學特性。在此取μ=4,令Xn的初值Xo=O.312 5,則xn的時間序列和吸引子相圖如圖1所示。

xn的時間序列和吸引子相圖

  2 Logistic映射的電路設(shè)計及時間序列的量化

  DSP Builder。將Matlab和Simlalink系統(tǒng)級設(shè)計工具的算法開發(fā)、仿真和驗證功能與VHDL綜合、仿真和開發(fā)工具整合在一起,實現(xiàn)了這些工具的集成,將系統(tǒng)級設(shè)計的實現(xiàn)與DSP算法的開發(fā)相鏈接,涵蓋了算法和存儲功能等基本操作??衫肈SP Builder模塊迅速生成算法硬件電路,并轉(zhuǎn)成VHDL語言,大大縮短了FPGA的設(shè)計周期。圖2為Logistic的DSP Builder電路實現(xiàn)模型。

Logistic的DSP Builder電路實現(xiàn)模型

  圖2中為消除毛刺,在各輸出端加入了一個延時器。其中,xout為Xn+1的時間序列;yout為其延時一個時鐘周期后的輸出,即Xo。xout與yout都是以二進制數(shù)表示的一系列小數(shù)(xn∈(0,1)),可表示為:

公式

  因為時間序列Xn的數(shù)值是用二進制數(shù)表示的,隨著迭代的不斷進行,Xn將隨之變化,此時其二進制表示中的某一位(O或1)也隨之變化。因此可以提取Xn時間序列中某一位二進制位作為量化值,當Xn的時間序列值隨時間變化時即生成一PN序列。圖2中的XoutBit為PN序列的輸出端,它取自Xn二進制數(shù)表示中的第9位。后面的分析表明,這種量化方法同樣具有很好的混沌性能和隨機性。

  為了驗證圖2電路模塊的正確性,對Logistic的模塊電路進行仿真,其時間序列和吸引子如圖3所示。比較圖3和圖1發(fā)現(xiàn),利用DSP Builder設(shè)計的電路有效地實現(xiàn)了Logistic映射的功能。

利用DSP Builder設(shè)計的電路有效地實現(xiàn)了Logistic映射的功能

  3 基于FPGA的PN序列實現(xiàn)

  圖2中,xout與yout具有相同的k及l(fā)值,k=1,l=9,即k+l=10。因為所使用的FPGA開發(fā)板自帶THS5651DA轉(zhuǎn)換器接受的是10引腳數(shù)據(jù),k+l=10可實現(xiàn)匹配。盡管xout在最后輸出前轉(zhuǎn)成了10位長度,但在整個內(nèi)部運算環(huán)節(jié),是50位長度的,有限字長明顯大于10,這樣可以最大限度地保持精度,減少有限字長效應帶來的誤差,有效實現(xiàn)混沌的非周期特性。

  理論上混沌序列是非周期的,但因為在使用有限字長表示混沌狀態(tài)的情況下,加上運算結(jié)果的近似化,混沌序列最終會演化為一個周期序列。但是可以通過加長有限字長來延長周期。從實用的角度看,只要設(shè)計得好,映射和分叉參數(shù)選擇合適,所產(chǎn)生的序列周期將足夠長,序列的相關(guān)特性將足夠好,可用的序列數(shù)量將足夠多,可認為位轉(zhuǎn)換就已夠用,因為通信的時間不可能無限長。研究還發(fā)現(xiàn),混沌映射產(chǎn)生的有限字長周期序列具有正的最大Lyapllnov指數(shù)。

  將圖2所示的圖形化模塊通過“Signal Corepiler”直接轉(zhuǎn)化為硬件描述語言,再利用QuartusⅡ進行編譯,其仿真時序圖見圖4。其中,Output為抽取的混沌數(shù)字PN序列,即圖2中的XoutBit;Outputl和Output2分別為Xn+1和Xn。

仿真時序圖

  把工程文件在CycloneⅡ的EP2C35F484C8進行編譯和引腳分配并下載到該芯片進行硬件實驗,從數(shù)字示波器上觀察到的PN序列如圖5(a)所示。為了驗證硬件實現(xiàn)的精度,通過THS5651芯片對得到的混沌數(shù)字信號進行D/A轉(zhuǎn)化,再通過示波器觀察其時間序列和吸引子,如圖5(b),圖5(c)所示。

 

從數(shù)字示波器上觀察到的PN序列

  4 PN序列隨機性分析

  為了對硬件輸出的PN序列進行性能測試,首先通過一個串口通信模塊電路對FPGA輸出的數(shù)字PN序列進行采樣,然后利用計算機對其進行隨機性能分析。這里采用的FPGA開發(fā)板其內(nèi)核為CycloneⅡ的EP2(235F484C8,外圍電路提供了USB口、并行I/O以及串口等一系列可供用戶選擇的端口。抽取Xn二進制表示的小數(shù)部分的第9位作為比特序列,并通過串口來實時獲得該位在一定時間段t內(nèi)的所有值,其串口通信模塊電路如圖6所示。

串口通信模塊電路

  為了確保計算機在接收該序列時不出現(xiàn)比特丟失現(xiàn)象,可預先向計算機發(fā)送一組周期序列來保證數(shù)據(jù)的可靠性。假設(shè)串口傳輸波特率為9 600,系統(tǒng)晶振為20 MHz,為了得到整數(shù)倍的分頻,可根據(jù)公式:

n=(20×106×k)/9600

  令k=3,則可得出n為6 250。其中,比例因子k可通過鎖相環(huán)來獲得。上述兩步驟可通過在QuartusⅡ中添加鎖相環(huán)代碼與分頻器代碼實現(xiàn)。此時,讓系統(tǒng)時鐘T=1/9 600再經(jīng)過二分頻后通過串口輸出,如果在接收端收到“01010”的周期序列,則表明FPGA與計算機之間的通信無問題。

  5 PN序列隨機性能分析

  5.1 頻率測試(Frequency Test)

  該測試可用來判斷序列當中0和1的個數(shù)是否近似相等,若近似相等,則符合隨機序列的必要條件。令n0,n1分別代表0與1的個數(shù);n代表序列s的長度。

  該統(tǒng)計方程為:

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,通過測試。

n0

  5.2 串列測試(Serial Test)

  該測試可用來判斷序列中00,01,10,11子序列的個數(shù)是否近似相等。若近似相等,則符合隨機序列的必要條件。令n0,n1分別代表0與1的個數(shù),而n00,n01,n10,n11分別代表s序列中00,01,10,11的個數(shù)。由于n00+n01+no+nll=n-l,該統(tǒng)計方程為:

公式

  若n≥21,則T2近似符合2維自由度的x2分布。對序列進行自由度為2的x2檢驗。顯著性水平α置為O.05,查標準表得此時的x2值為5.99。測試結(jié)果如表2所示,T2=O.352 5《5.99,通過測試。

測試結(jié)果

  5.3 Poker測試(Poker Test)

  令m為符合(n/m)≥5×2m的正整數(shù),并令k=n/m。將序列s分成k個不重復的部分,每部分的長度為m,令ni為第i個長度為m的序列標號,1≤i≤2m。Poker測試可用來確定ni在序列s中,長度為m的各個不同子序列出現(xiàn)的概率是否近似相等。該統(tǒng)計方程為:

公式

  式中:T3近似符合2m-1維自由度的x2分布。值得注意的是,頻率測試其實是Poker測試的一個特例,令m=1,Poker測試即成為了頻率測試。分別取m=1,2,3,4,5,6,對待測序列進行自由度為2m-1的x2檢驗,結(jié)果列于表3。由表3可見,對于不同m值的T3值均小于對應的x2值,通過測試。

Poker測試結(jié)果

  5.4 游程測試(RLins Test)

  該測試的目的是為了判斷s序列中不同長度的游程是否具有隨機序列的游程特性。理論上,在一個長度為n隨機序列中,長度為i的連續(xù)O或連續(xù)1的期望值為ei=(n—i+3)/2i+2。令k為當ei≥5時的最大的i;Bi,Gi分別為各個block和gap的個數(shù)。游程測試的統(tǒng)計方程為:

公式

  則T4近似符合2k-2維自由度的χ2分布。

  分別取i為1,2,3,4,5,6,7,8,9。對本序列,k值為9,所以可對T4進行自由度為16的χ2檢驗。查標準表知自由度為16的χ2值為26.3。將上述數(shù)值代人統(tǒng)計方程,運算得T4=19.883 1<26.3,通過測試。其測試結(jié)果如表4所示。

游程測試結(jié)果

  5.5 自相關(guān)測試(Autocorrelation Test)

  該測試是為了檢測s序列與其(非循環(huán)的)移動后的序列的相關(guān)性。令d為一個整數(shù),1≤d≤(n/2)。比較s序列和它移動d位之后的序列,兩者不同的位的數(shù)目可由公式計算得出。⊕表異或運算。自相關(guān)測試的統(tǒng)計方程為:

公式

  當,n-d≥10時,T5近似符合N(O,1)分布。

  為判斷序列是否符合N(O,1)分布,可用余誤差函數(shù)計算公式再將erfc(z)與顯著性水平α=O.05比較,若大于它,則通過測試,測試結(jié)果如表5所示。由檢驗結(jié)果可知,每一個erfc(z)都大于a,通過測試。

 

自相關(guān)測試結(jié)果

  6 結(jié) 語

  利用Logistic混沌映射作為隨機信號源,基于FP-GA技術(shù)研究了PN序列的硬件產(chǎn)生。通過對產(chǎn)生的PN序列進行性能分析發(fā)現(xiàn),其具有很好的隨機性,可被應用于擴頻通信和數(shù)字信息加密等領(lǐng)域。由于直接以離散混沌作為隨機信號源,相對于將連續(xù)混沌離散化后再量化產(chǎn)生PN序列,其精確度更高。由于數(shù)字序列是通過抽取二進制數(shù)值中某一位產(chǎn)生的,只要迭代值的位數(shù)足夠多,序列的可變性就更大,從而增大了密鑰空間和通信的保密性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。