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

  0 引 言

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

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

  1 Logistic映射

  Logistic方程如下:

公式

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

xn的時(shí)間序列和吸引子相圖

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

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

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

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

公式

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

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

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

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

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

  理論上混沌序列是非周期的,,但因?yàn)樵谑褂糜邢拮珠L(zhǎng)表示混沌狀態(tài)的情況下,加上運(yùn)算結(jié)果的近似化,,混沌序列最終會(huì)演化為一個(gè)周期序列,。但是可以通過(guò)加長(zhǎng)有限字長(zhǎng)來(lái)延長(zhǎng)周期。從實(shí)用的角度看,,只要設(shè)計(jì)得好,,映射和分叉參數(shù)選擇合適,所產(chǎn)生的序列周期將足夠長(zhǎng),序列的相關(guān)特性將足夠好,,可用的序列數(shù)量將足夠多,,可認(rèn)為位轉(zhuǎn)換就已夠用,因?yàn)橥ㄐ诺臅r(shí)間不可能無(wú)限長(zhǎng),。研究還發(fā)現(xiàn),,混沌映射產(chǎn)生的有限字長(zhǎng)周期序列具有正的最大Lyapllnov指數(shù)。

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

仿真時(shí)序圖

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

 

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

  4 PN序列隨機(jī)性分析

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

串口通信模塊電路

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

n=(20×106×k)/9600

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

  5 PN序列隨機(jī)性能分析

  5.1 頻率測(cè)試(Frequency Test)

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

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

T1=(n0-n1)2/n

  若n≥lO,則T1近似符合1維自由度的x2分布,。

  對(duì)采集到的PN序列進(jìn)行自由度為l的x2檢驗(yàn),,取顯著性水平α=0.05,可以從標(biāo)準(zhǔn)表中查到顯著性水平a=O.05的x2值為3.84,。如果T1值小于3.84,,則該序列通過(guò)測(cè)試。n0,n1和T1的測(cè)試值如表l所示,,由此可知,,該序列的T1值遠(yuǎn)小于3.84,通過(guò)測(cè)試,。

n0

  5.2 串列測(cè)試(Serial Test)

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

公式

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

測(cè)試結(jié)果

  5.3 Poker測(cè)試(Poker Test)

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

公式

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

Poker測(cè)試結(jié)果

  5.4 游程測(cè)試(RLins Test)

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

公式

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

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

游程測(cè)試結(jié)果

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

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

公式

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

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

 

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

  6 結(jié) 語(yǔ)

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

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