楊曉云,徐強,莊燕濱
(常州工學院計算機信息工程學院,江蘇 常州 213002)
人類社會已進入信息時代,人們在享受網(wǎng)絡及信息技術帶來的許多便利和愉快的同時,也面臨著信息泄漏,信息篡改和信息偽造等麻煩。為了保證信息在網(wǎng)絡上傳輸?shù)谋C苄?、真實性、完整性,必須對所傳遞的信息進行加密。序列密碼是密碼學中一個重要的信息加密系統(tǒng)。序列密碼的加密過程首先是將原始明文變換數(shù)據(jù)序列,然后與密鑰序列進行逐位加密生成密文序列,再通過信道傳送到接收端。接收端用相同的密鑰序列對接收到的密文序列進行逐位解密,恢復出明文序列,如圖1所示。序列密碼不存在數(shù)據(jù)擴展,實時性好,加密與解密器硬件容易實現(xiàn)。
圖1 序列密碼系統(tǒng)原理圖
序列密碼的安全保密性主要依賴于密鑰序列,因此序列密碼研究的核心是密鑰序列的產(chǎn)生。目前常用偽隨機序列(如m序列)作為密鑰序列,其優(yōu)點是理論研究比較成熟,硬件實現(xiàn)比較方便,但其缺點是序列長度有限,故密鑰數(shù)目有限,容易被破譯。
混沌是指確定性系統(tǒng)中產(chǎn)生貌似隨機的不規(guī)則運動?;煦缧盘柧哂蟹侵芷?、寬頻帶功率譜、類隨機噪聲等特性,竊聽者無法利用頻譜信息來對混沌信號進行跟蹤分析。由于混沌信號具有對初始條件極其敏感的特性,因此決定了混沌信號的長期行為不可預測。另外根據(jù)混沌信號的遍歷性,可以遍歷有界混沌區(qū)域內每一個狀態(tài)不重復,所以決定了其產(chǎn)生的混沌序列具有無限長度,這個特點就克服了上述偽隨機序列長度有限的局限性?;煦缧盘柺怯纱_定的非線性系統(tǒng)產(chǎn)生的,其種類繁多,數(shù)目巨大,因此混沌信號序列十分適合作為序列密碼中的密鑰序列。
混沌信號是由非線性系統(tǒng)產(chǎn)生的,其電路實現(xiàn)方法如下:
1)由模擬電路(如運算放大器,模擬乘積等)來實現(xiàn)。這種產(chǎn)生方法比較簡單,但是由于分立器件的離散性大,故精確度差,設計與調試不方便。近來,由于現(xiàn)場可編程模擬陣列FPAA(Field Programmable Analog Array)的發(fā)展,克服分立器件的缺點,因此情況會有較大變化。
2)采用數(shù)字電路來實現(xiàn)。該方法可使輸出信號的混沌特征對電路參數(shù)變化具有魯棒性,同時輸出信號具有可再生性,即在產(chǎn)生系統(tǒng)參數(shù)已知時,可由相同的系統(tǒng)產(chǎn)生同樣的輸出信號。這點在生成密鑰序列時十分重要。用FPGA、CPLD、DSP等數(shù)字處理芯片進行數(shù)字電路實現(xiàn)時,需要消耗大量的硬件邏輯資源,這是目前的一個困難。
系統(tǒng)選用微控制器(MCU),STM32F103RBT6的芯片數(shù)字電路來產(chǎn)生混沌信號序列,具體步驟如下:
選用經(jīng)典的蔡氏混沌電路,它是一個三維連續(xù)自混沌系統(tǒng),經(jīng)過無量綱歸一化處理后,其狀態(tài)方程可以用一個常微分方程組來描述:
其中,g(x)= αx+0.5(b-a)(|x+1|-|x-1|)。
式(1)為蔡氏電路方程,它只有一個分段線性的非線性項,當無量綱參數(shù)α=10,β=14,a=-1/7和b=2/7時,式(1)可以產(chǎn)生一個典型的雙渦卷蔡氏混沌吸引子。
為了便于硬件實現(xiàn),采用較為簡單的歐拉算法,將其離散化處理,得到相應的離散迭代模型為:
其中,g(xn)= αxn+0.5(b-a)(|xn+1|-|xn-1|)。
根據(jù)上述典型的無量綱參數(shù)α=10,β=14,a=-1/7和b=2/7,并選擇迭代步長 h=0.002和初始條件(x0,y0,z0)=(0.1,0.1,0.001),用 C語言設計基于芯片STM32F103RBT6的運行程序,其程序流程如圖2所示。離散迭代模型產(chǎn)生一個雙渦卷蔡氏混沌吸引子。選取x維前10個數(shù)據(jù)作為實驗的密鑰源,其十進制序列為:
(0.100 000,0.102 286,0.104 578,0.106 877,0.109 182,0.111 494,0.113 813,0.116 138,0.118 470,0.120 808),將其轉換成雙精度浮點數(shù)。
浮點數(shù)運算模塊的設計,所依據(jù)的標準為IEEE-754浮點數(shù)標準格式,它是國際電工電子學會在1985年制定的浮點標準格式,其中的雙精度格式由1位符號位、11位階碼、52位尾位組成,共64 bit。因此密鑰源為:
3FB999999999999A
3FBA2F6A50D6229
3FBAC59FB1E18EFC
3FBB5C4A83B1D0C8
3FBBF359FF4FD6D8
3FBC8ADEEBB341E1
3FBD22D948DC11E4
3FBDBB384FD2A63B
3FBE540CC78E9F6B
3FBEED45E9185CEE
密鑰源長度為640 bit,密鑰比特流之間沒有任何相關性,并且可以根據(jù)需要將密鑰長度進一步加長,不受任何限制。
圖2 混沌信號序列程序流程
本序列密碼實驗系統(tǒng)如圖3所示。其中混沌序列源及定時電路,用芯片ARM,STM32F103RBT6實現(xiàn)。其余電路有Altera公司的CPLD,EPM1270T144C5來完成。對應上述密鑰序列,由計算機產(chǎn)生一個測試文本:
0123456789ABCDEF
0011223344556677
8899AABBCCDDEEFF
0000111122223333
4444555566667777
88889999AAAABBBB
CCCCDDDDEEEEFFFF
1032547698BADCFE
FEDCBA9876543210
0123456789ABCDEF
試驗時,將測試文本輸入到本實驗系統(tǒng)發(fā)送端,經(jīng)并/串變換,與混沌密鑰序列進行模2相加,形成加密信號,而后經(jīng)信道送到接收端。接收端首先從發(fā)送端送來的加密信號中提取位同步信息,形成本端時鐘CP',并將發(fā)端送來的混沌密鑰序列與加密信號調整到同相位置,而后將二者進行模2加,得到解密信號,再經(jīng)串/并變換恢復出測試文本。
由上述試驗可見,只要簡單改變產(chǎn)生混沌序列信號產(chǎn)生的初始條件(x0,y0,z0)與步長h值,就可形成大量不同的混沌密鑰序列,進行不同的試驗。
圖3 混沌序列密碼實驗系統(tǒng)
本實驗系統(tǒng)是對蔡氏電路方程式(1)采用了較為簡單的歐拉算法進行離散化處理,在已知3個變量初始值(x0,y0,z0),經(jīng)不斷迭加得到的式(2)的近似解,并用硬件實現(xiàn)。試驗證明了混沌信號對初始條件高度敏感的特點,使其具有長期不可預測性和良好的抗破譯能力,比許多偽隨機序列有較大的優(yōu)越性?;诨煦缧蛄行盘柕莫毺貎?yōu)點,將其作為密鑰序列,具有較大的應用前景。
[1]楊明,胥光輝,齊望東,等.密碼編碼學與網(wǎng)絡安全[M].北京:電子工業(yè)出版社,2001.
[2]肖國鎮(zhèn),梁川甲,王育民.偽隨機序列及其應用[M].北京:國防工業(yè)出版社,1985.
[3]李輝.混沌數(shù)字通信[M].北京:清華大學出版社,2006.
[4]關新平,范正平,陳彩蓮,等.混沌控制機器在保密通信中的應用[M].北京:國防工業(yè)出版社,2002.
[5]方錦清.混沌通信及其相關網(wǎng)路信息安全研究的若干進展[J].系統(tǒng)工程學報,2010,25(6):725-741.
[6]徐強,包博成,胡文,等.數(shù)字實現(xiàn)混沌系統(tǒng)的建模、仿真與實驗[J].計算機工程與設計,2010,31(15):3404-3407.
[7]徐強,包博成,楊曉云.蔡氏電路方程的離散化與數(shù)字電路實現(xiàn)[J].計算機應用研究,2011,28(6):2158-2160.