王 麗 燕, 李 永 華, 賈 思 齊, 剛 家 泰*
(1.大連大學(xué) 信息工程學(xué)院,遼寧 大連 116622;2.大連理工大學(xué) 軟件學(xué)院,遼寧 大連 116620)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和信息交換的日益頻繁,信息安全技術(shù)的研究變得越來(lái)越重要,作為新的密碼技術(shù),混沌密碼技術(shù)已引起國(guó)內(nèi)外學(xué)者濃厚的興趣和廣泛的研究.混沌作為一種特有的非線性現(xiàn)象,具有良好的偽隨機(jī)特性、軌道的不可預(yù)測(cè)性、對(duì)初始狀態(tài)及結(jié)構(gòu)參數(shù)的極端敏感性等一系列優(yōu)良特性,這些特性都與密碼學(xué)中的混亂和擴(kuò)散相吻合.
混沌密碼作為一類(lèi)新型的密碼技術(shù),在數(shù)據(jù)加密、圖像加密和電子商務(wù)安全等領(lǐng)域得到了廣泛研究[1-4].周紅等提出了一種基于分段線性映射產(chǎn)生具有均勻不變密度和自相關(guān)函數(shù)呈δ形態(tài)的動(dòng)力系統(tǒng),并利用多次迭代混沌映射來(lái)獲得非線性前饋型流密碼[5,6].為了進(jìn)一步提高安全性,桑濤等將用于加密的分段線性動(dòng)力系統(tǒng)改進(jìn)為“逐段二次方根”混沌映射,設(shè)計(jì)反饋序列密碼[7].王相生等用一個(gè)特殊的混沌動(dòng)力系統(tǒng),通過(guò)隨機(jī)改變混沌映射的參數(shù)來(lái)提高混沌的復(fù)雜性,并以此代替密鑰生成器,產(chǎn)生密鑰流[8,9].盡管已經(jīng)提出了許多混沌加密方法,但有些加密方法已受到質(zhì)疑并已形成攻擊方案.比如,Short破譯了美國(guó)海軍研究所提供的混沌掩蓋加密方法[10].Wheeler等在文獻(xiàn)[11]中說(shuō)明文獻(xiàn)[1]中給出的混沌序列密碼由于存在嚴(yán)重的有限精度效應(yīng)問(wèn)題而不適于實(shí)際應(yīng)用.金晨輝等在文獻(xiàn)[12]中指出了文獻(xiàn)[5,7]中密碼算法的弱點(diǎn),并給出了相應(yīng)的優(yōu)化分割攻擊方案.文獻(xiàn)[13,14]都進(jìn)一步指出了用單一的混沌動(dòng)力系統(tǒng)進(jìn)行迭代的加密算法的弱點(diǎn),并給出了相應(yīng)的攻擊方案.為了解決用單一混沌系統(tǒng)實(shí)現(xiàn)的密碼算法不夠安全的問(wèn)題,許多學(xué)者提出了各種加密方案,李紅達(dá)等提出了基于復(fù)合離散混沌動(dòng)力系統(tǒng)的序列密碼算法,算法以迭代初始點(diǎn)作為密鑰,以粗?;牡壽E作為密文[15,16],用傳統(tǒng)加密和混沌加密級(jí)聯(lián)[17]、高維混沌系統(tǒng)或多混沌系統(tǒng)[18]實(shí)現(xiàn)密碼算法等.本文則將二維Logistic映射和分段線性混沌映射復(fù)合,用二維Logistic映射的輸出作為分段線性混沌映射的分段參數(shù)P,再用帶有參數(shù)P的分段線性混沌映射構(gòu)造加密算法,給出加密和解密算法,并進(jìn)行仿真實(shí)驗(yàn)和安全性分析.
二維Logistic映射定義為
其中u、λ1、λ2、λ為控制參數(shù),通常取u=4.二維Logistic映射的行為是非常復(fù)雜的[19],圖1給出了兩組不同控制參數(shù)情形下的分岔圖.
圖1 二維Logistic映射分岔圖Fig.1 Branch chart of 2-D Logistic mapping
當(dāng)λ1=0.8,λ2=0.2,λ=0.3時(shí),利用奇異值分解求其Lyapunov指數(shù),求得其中一個(gè)Lyapunov指數(shù)為0.044 8>0,說(shuō)明這時(shí)系統(tǒng)處于混沌狀態(tài).
一維分段線性混沌映射定義為
其中X∈ [0,1],P∈ (0,0.5).當(dāng)P=0.247時(shí),該一維分段線性混沌映射的圖像如圖2所示.
圖2 分段線性混沌映射Fig.2 Piecewise linear chaotic map
根據(jù)文獻(xiàn)[20],該迭代系統(tǒng)是混沌的,其輸出序列{X(t)}在[0,1]上遍歷,具有良好的自相關(guān)性且呈δ形態(tài).由Frobenius-Perron算子[21]有
易得Pr(1)=1,說(shuō)明系統(tǒng)的不變分布密度函數(shù)為f*(x)=1.從而系統(tǒng)在[0,1]上是均勻分布的.
加密方案如圖3所示.
圖3 加密算法框圖Fig.3 Encryption algorithm block diagram
設(shè)明文長(zhǎng)度為h,對(duì)二維Logistic映射:0.3,λ1=0.8,λ2=0.2,給定初始值(x0y0),迭代得yi∈ [0,1](i=1,2,…,2h),由于分段線性混沌映射的參數(shù)P∈(0,0.5),可簡(jiǎn)單地取Pi=y(tǒng)i/2,且Pi∈ (0,0.05).顯然,Pi為一個(gè)混沌序列.具體的加密和解密算法如下.
步驟1 將明文由十進(jìn)制轉(zhuǎn)換為十六位二進(jìn)制,如果明文是文字,將明文字符的ASCII碼轉(zhuǎn)化為十六位二進(jìn)制.得到二進(jìn)制明文序列{a1,a2,…,ah}(ai只能取0或者1,i=1,2,…,h).
步驟2 選取Logistic映射的初始值(x0y0),迭代得yi∈ [0,1](i=1,2,…,2h),并將Pi=y(tǒng)i/2(Pi∈ (0,0.05))代入分段線性混沌映射(2)進(jìn)行迭代得到混沌序列{xi}(i=1,2,…,2h).
步驟3 由 離 散 化 算 子Tj(xi) =[10jxi+h]mod 2計(jì)算得到ki=Tj(xi+h),i=1,2,…,h.其中(x0y0)和j均為密鑰.
步驟4 得到的二進(jìn)制序列{k1,k2,…,kh}與明文二進(jìn)制序列{a1,a2,…,ah}進(jìn)行異或運(yùn)算就得到加密二進(jìn)制序列.
解密算法與加密算法類(lèi)似,先進(jìn)行步驟2和3,然后和二進(jìn)制密文序列作異或運(yùn)算就可以把密文還原成明文,得到解密的效果.
為了更明確說(shuō)明加密算法運(yùn)算過(guò)程,對(duì)加密算法進(jìn)行性能分析,下面給出一個(gè)例子,對(duì)一段文字進(jìn)行加密.
例1 明文:混沌密碼學(xué)原理及其應(yīng)用
首先將明文字符轉(zhuǎn)換成ASCII碼,然后轉(zhuǎn)化為十六位二進(jìn)制,其明文序列的二進(jìn)制序列表示為
1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1
對(duì)于二維Logistic映射有
①若?。▁0y0)=(0.432 323 0 0.452 680 0),j=8,得到對(duì)應(yīng)的密文為
②若 取 (x0y0)= (0.432 323 0+10-160.452 680 0),j=8,得到的密文為
③若?。▁0y0)=(0.432 323 0+2×10-160.452 680 0),j=8,得到的密文為
④若 取 (x0y0)= (0.324 252 7+10-160.452 680 0),j=8,得到的密文為
⑤若 取 (x0y0)= (0.324 252 7-10-160.452 680 0),j=8,得到的密文為
⑥ 若 取 (x0y0)= (0.324 252 7 0.452 680 0),j=7,得到的密文為
用0、1序列的圖形化表示如圖4所示,k為0與1出現(xiàn)次數(shù)的比值.從仿真結(jié)果來(lái)看,初始值的微小變化將會(huì)引起密文的巨大變化.
圖4 不同初始值的密文Fig.4 Ciphers under different initial values
例2 對(duì)文本“混沌一詞從字面上理解就是雜亂無(wú)章,混亂無(wú)序之意,但是由于混沌系統(tǒng)的奇異性和復(fù)雜性到目前為止尚未被人們徹底了解,因此至今混沌還沒(méi)有給出一個(gè)比較統(tǒng)一的定義”,用密鑰(x0y0)=(0.432 323 0 0.452 680 0),j=8,進(jìn)行加密得到密文:
用正確的密鑰可以精確地恢復(fù)得到明文.但若改變密鑰,比如將密鑰變成(x0y0)=(0.432 323 0+10-160.452 680 0),j=8,則解密得到:
由此可見(jiàn)密鑰的微小變化導(dǎo)致不能得到正確的明文,說(shuō)明密鑰與密文之間關(guān)系十分敏感.
取明文為105位全為0的二進(jìn)制序列,取密鑰(x0y0)= (0.432 323 0 0.452 680 0),j=8,加密得到密文為C.試驗(yàn)表明,當(dāng)初始值x0變?yōu)閤0=0.432 323 0+10-16和x0=0.432 323 0+2×10-16,而y0與j不變時(shí),新生成的密文和原密文C相比,分別有50.05%和50.02%位發(fā)生了變化.
如果選取一系列全為0的二進(jìn)制序列為明文,其長(zhǎng)度L由1位增加到10 000位,選取10個(gè)不同初始值x0=0.432 323 0+10-16i(i=0,1,…,9),y0與j不變,得到改變的比特位數(shù)(bc)與長(zhǎng)度L的關(guān)系如圖5所示.圖6是j=2,4,6,8,10,(x0y0)= (0.432 323 0 0.452 680 0)時(shí)得到改變的比特位數(shù)與長(zhǎng)度L的關(guān)系圖.可以看出初始值發(fā)生微小變化,都會(huì)使變化后的密文與原密文相比有接近50%的比特位數(shù)發(fā)生變化.這就說(shuō)明密鑰與密文具有很強(qiáng)的敏感性.
圖5 不同初始值條件下比特位數(shù)變化比Fig.5 The changed bit ratio under different initial values
圖6 不同密鑰條件下比特位數(shù)變化比Fig.6 The changed bit ratio under different key
取一系列全為0的二進(jìn)制序列為明文,其長(zhǎng)度L由1位增加到10 000位,取密鑰(x0y0)=(0.432 323 0 0.452 680 0),j=8,生成的密文中1的位數(shù)與長(zhǎng)度L之比p如圖7所示.
圖7 改變的比特位數(shù)與長(zhǎng)度L之比Fig.7 The ratio of changed bit number to the length L
由圖7可以看出,在加密時(shí)明文序列的每個(gè)比特位數(shù)都以0.5的概率發(fā)生改變或保持不變,也就是說(shuō),與明文相比,密文序列中大約有一半的比特位數(shù)發(fā)生改變,這使密文與明文的相關(guān)度很小,而且隨著長(zhǎng)度的增加還趨于0.同時(shí)還可以保證生成的密文序列中0與1的個(gè)數(shù)幾乎相等,這說(shuō)明本算法產(chǎn)生均勻分布的密文,可以有效抵抗統(tǒng)計(jì)攻擊.
在本文中選擇的密鑰是二維Logistic映射和分段線性混沌映射的迭代初始值x0和y0以及離散化算子參數(shù)j,且二維Logistic映射的參數(shù)λ、λ1、λ2、u也是可以隨機(jī)選取的,所以同樣可以選取作為密鑰.僅以計(jì)算精度為10-4估算本算法的密鑰空間,密鑰空間就大于1030.實(shí)際上,目前計(jì)算機(jī)系統(tǒng)的計(jì)算精度遠(yuǎn)大于10-4,這樣相應(yīng)的密鑰空間會(huì)更大.因此本文算法擁有足夠大的密鑰空間,可以抵抗窮舉攻擊.
本文利用二維Logistic映射與分段線性映射的參數(shù)空間和相空間較大的特點(diǎn),以及混沌序列的遍歷性與復(fù)雜性,用二維Logistic映射的輸出作為分段線性映射的分段參數(shù)P,分段線性映射的輸出與明文異或后得到密文.本算法克服了單一迭代型混沌密碼的參數(shù)和初態(tài)的低位比特對(duì)前若干輸出信號(hào)的影響不大的信息漏洞,使整個(gè)加密過(guò)程十分復(fù)雜,提高了密文的不可預(yù)測(cè)性,可以抵御分辨率攻擊法和分割攻擊法.計(jì)算機(jī)模擬實(shí)驗(yàn)結(jié)果表明,本算法產(chǎn)生均勻分布的密文,密鑰與密文具有很強(qiáng)的敏感性,密鑰空間很大且明文與密文的相關(guān)度很小,提高了抗已知明文/密文攻擊的能力,可以有效地抵御統(tǒng)計(jì)分析,是一個(gè)良好的加密算法.
[1] Matthewn H.On the derivation of a ‘chaotic’encryption algorithm [J].Cryptologia,1989,13(1):29-42.
[2] Mitchell D W. Nonliner key generators [J].Cryptologia,1990,14(4):350-354.
[3] Feldmann U,Hasler M,Schwarz W.Communication by chaotic signals:the inverse system approach [J].International Journal of Circuit Theory and Applications,1996,24(5):551-579.
[4] Frey D R.Chaotic digital encoding:an approach to secure communication [J].IEEE Transactions on Circuits and Systems II,1993,40(10):660-666.
[5] 周 紅,羅 杰,凌燮亭.混沌非線性反饋密碼序列的理論設(shè)計(jì)和有限精度實(shí)現(xiàn)[J].電子學(xué)報(bào),1997,25(10):57-60.ZHOU Hong,LUO Jie,LING Xie-ting.Generating nonlinear feedback stream ciphers via chaotic systems[J].Acta Electronica Sinica,1997,25(10):57-60.(in Chinese)
[6] 周 紅,俞 軍,凌燮亭.混沌前饋型流密碼的設(shè)計(jì)[J].電子學(xué)報(bào),1998,26(1):98-101.ZHOU Hong,YU Jun,LING Xie-ting.Design of chaotic feed forward stream cipher [J]. Acta Electronica Sinica,1998,26(1):98-101.(in Chinese)
[7] 桑 濤,王汝笠,嚴(yán)義塤.一類(lèi)新型混沌反饋密碼序列的理論設(shè)計(jì)[J].電子學(xué)報(bào),1997,27(7):47-50.SANG Tao, WANG Ru-li, YAN Yi-xun. The theoretical design for a class of new chaotic feedback stream ciphers[J].Acta Electronica Sinica,1997,27(7):47-50.(in Chinese)
[8] 王相生,王小港,甘駿人.基于可變參數(shù)混沌的序列密碼的設(shè)計(jì)[J].計(jì)算機(jī)工程,2001,27(9):103-104.WANG Xiang-sheng,WANG Xiao-gang,GAN Junren.A chaotic sequence encryption method [J].Computer Engineering,2001,27(9):103-104.(in Chinese)
[9] 王相生,甘駿人.一種基于混沌的序列密碼生成方法[J].計(jì)算機(jī)學(xué)報(bào),2002,25(4):351-356.WANG Xiang-sheng, GAN Jun-ren. A chaotic sequence encryption method [J].Chinese Journal of Computers,2002,25(4):351-356.(in Chinese)
[10] Short K M. Steps toward unmasking secure communications [J]. International Journal of Bifurcation and Chaos,1994,4(4):959-977.
[11] Wheeler D D,Matthews R A J.Supercomputer investigations of a chaotic encryption algorithm [J].Cryptologia,1991,15(2):140-152.
[12] 金晨輝,高海英.對(duì)兩個(gè)基于混沌的序列密碼算法的分析[J].電子學(xué)報(bào),2004,32(7):1066-1070.JIN Chen-h(huán)ui,GAO Hai-ying.Analysis of two stream ciphers based on chaos[J].Acta Electronica Sinica,2004,32(7):1066-1070.(in Chinese)
[13] 張 斌,金晨輝.對(duì)迭代型混沌密碼的逆推壓縮攻擊[J].電子學(xué)報(bào),2010,38(1):129-140.ZHANG Bin, JIN Chen-h(huán)ui. Inversion and compression attacks to iterative chaotic ciphers[J].Acta Electronica Sinica,2010,38(1):129-140.(in Chinese)
[14] 汪海明,李 明,金晨輝.對(duì)XW混沌密碼算法的分割攻擊[J].計(jì)算機(jī)應(yīng)用研究,2010,27(7):2625-2628.WANG Hai-ming,LI Ming,JIN Chen-h(huán)ui.Divideand-conquer attack on XW chaotic cipher [J].Application Research of Computers,2010,27(7):2625-2628.(in Chinese)
[15] 李紅達(dá),馮登國(guó).復(fù)合離散混沌動(dòng)力系統(tǒng)與序列密碼體系[J].電子學(xué)報(bào),2003,31(8):1209-1212.LI Hong-da,F(xiàn)ENG Deng-guo.Composite nonlinear discrete chaotic dynamical systems and stream cipher systems[J].Acta Electronica Sinica,2003,31(8):1209-1212.(in Chinese)
[16] 李紅達(dá),馮登國(guó).基于復(fù)合離散混沌動(dòng)力系統(tǒng)的序列密碼算法 [J].軟件學(xué)報(bào),2003,14(5):991-998.LI Hong-da, FENG Deng-guo. Stream cipher algorithms based on composite nonlinear discrete chaotic dynamical systems[J].Journal of Software,2003,14(5):991-998.(in Chinese)
[17] 丘水生,陳艷峰,吳 敏,等.一種新的混沌加密系統(tǒng)方案原理[J].電路與系統(tǒng)學(xué)報(bào),2006,11(1):98-103.QIU Shui-sheng, CHEN Yan-feng, WU Min,etal.A novel scheme of chaotic encryption system[J].Journal of Circuits and Systems,2006,11(1):98-103.(in Chinese)
[18] 劉金梅,丘水生,向 菲,等.基于多混沌映射的信息加密算法[J].華南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,35(5):1-5.LIU Jin-mei,QIU Shui-sheng,XIANG Fei,etal.Information encryption algorithm based on multiple chaotic mappings [J].Journal of South China University of Technology(Natural Science Edition),2007,35(5):1-5.(in Chinese)
[19] 劉尚懿,王麗君.一種基于二維Logistic映射的圖像加密算法[J].鞍山科技大學(xué)學(xué)報(bào),2006,29(4):365-370.LIU Shang-yi, WANG Li-jun.Image encryption algorithm based on Coupled Logistic chaotic map[J].Journal of Anshan University of Science and Technology,2006,29(4):365-370.
[20] XIAO Di,LIAO Xiao-feng,DENG Shao-jiang.One-way hash function construction based on the chaotic map with changeable-parameter[J].Chaos,Solitons &Fractals,2005,24(1):65-71.
[21] Lasota A,Mackey M.Probabilistic Properties of Deterministic Systems[M].Cambridge:Cambridge University Press,1985:32-76.