摘 要:基于二維時空混沌模型,給出了一種時空混沌二值序列的產生方法,并對其性能進行了分析。結果表明,該種序列消除了相鄰點的相關性,改善了統計分布特性,并利用此方法產生的序列對灰度圖像進行加密。仿真結果表明,用該方法產生的序列對圖像加密后,其相鄰像素點的相關性很低,并對其密鑰敏感性和統計特性進行了分析,均說明該方法應用于圖像加密很有效。
關鍵詞:混沌; 圖像加密; 保密通信
中圖分類號:TP309.7
文獻標志碼:A
文章編號:1001-3695(2010)02-0697-02
doi:10.3969/j.issn.1001-3695.2010.02.081
Image encryption algorithm based on chaotic system
LIN Jin-qiua, SI Xi-caia, MENG Wei-xiaob, ZHAO Jun-yib
(a.School of Information Communication Engineering,b.Research Institute of Communication Technology, Harbin Institute of Technology,Harbin 150001,China)
Abstract:This paper proposed a new image encryption algorithm based on improved coupled map lattices(CML) in order to meet the requirements of the secure image transfer. Experiment results prove that the encryption scheme is valid, and has high security simple and is easy to implement. Experiment simulation shows that the encryption algorithm has good effect of encryption.
Key words:chaos; image encryption; communication security
0 引言
隨著計算機技術、通信技術的快速發展以及Internet的日漸普及,使得網上的業務越來越豐富。互聯網業務的不斷拓展與信息安全技術的不斷提高是密切相關的,因此信息加密技術愈來愈引起人們的關注。實踐證明,一種好的密碼體制不僅能夠有效保證信息的機密性,而且能夠保證信息的完整性和真實性。近年來的研究表明,利用混沌信號可以構造出優良的加密系統[1]。混沌加密算法以非線性動力學中的混沌現象為理論基礎,借助混沌的初值敏感性和迭代不重復性將其應用于信息加密中,加密速度快,加密效果好,尤其適于數據量較大的圖像加/解密,因此近年來人們提出了許多混沌圖像加密的方法[2]。但是,低維混沌存在密鑰空間小、安全性不高的缺點。與低維混沌相比,高維超混沌具有更高的復雜性、隨機性和更好的不可預測性,更能有效地抵御相空間重構等破譯方法的進攻,其保密性強,算法實現簡單、密鑰空間大[3]。因此,超混沌加密已成為目前混沌圖像加密的方向。
本文基于時空混沌系統,提出了一種超混沌圖像加密的新方案,其算法具有良好的加密效果,密鑰空間大,抗攻擊力強,加密圖像像素值分布隨機,具有較高的安全性。
1 混沌模型
最初的混沌流加密使用一維混沌, 但是計算機運算中的有限字長效應影響了保密性, 使得現有的一維混沌保密系統大都已被破解。后來出現了時空混沌系統, 它不僅在時間方向上具有混沌行為, 而且在系統長時間發展之后, 在空間方向上也具有混沌行為,具有更強的安全性。二維時空混沌模型的映射方程如下:
xn+1=1-a(x2n+y2n)
yn+1=-2a(1-2ε)xnyna=1.95,ε=0.001(1)
它的兩個大于0的Lyapunov指數經計算分別為0.111和0.115。
2 基于二維時空混沌的偽隨機序列產生原理
任何一個混沌系統在一定的條件下都可以產生混沌實數值序列。可以把直接產生的實數值序列作為密鑰流用于加密明文信息,但是由于一般混沌系統的實數值序列分布不均勻,而且相鄰點有很強的相關性。該映射的x(n)和x(n+1)的相關性如圖1所示。如果直接用做密鑰流,勢必會影響加密的效果。因此有必要通過采取一些構造方法對實數值序列進行必要的處理,從而產生偽隨機二值序列。
在這里本文利用時空混沌映射產生新的實值序列的方法[4]可表述如下:
xn+1=flag x∑Mi=1ai2-i(2)
yn+1=flag y∑Mi=1bi2-i(3)
z1,n+1=∑M/2i=1(a2i2-2i+b2i-12-2i+1)(4)
z2,n+1=∑M/2i=1(b2i2-2i+a2i-12-2i+1)(5)
其中:ai和bi可以是‘0’或‘1’; flagx和flagy是xn+1和yn+1的符號位,xn+1,yn+1∈(-1,1);M是實現精度;zk,n+1∈(-1,1)(k=1,2)是新的實值序列。新得到的實值序列相鄰點的相關性參見圖2。從圖中可以看到新得到的序列的分布統計特性和相鄰點的相關性都有很大改善。
當在穩定的混沌序列中選取相應的混沌實值形成最終的二維混沌序列后,用前文所述的方法產生偽隨機實數序列,然后采用相空間分割法對實值序列進行二值化,得到偽隨機二值序列Zk(n)(k=1,2)。
3 圖像加密方法
本次設計在置亂之前,先利用混沌現象的隨機性隨機擾動各點的像素值,然后采用序列置亂算法對圖像進行擾動,以此達到加密的目的。從算法的計算速度、置亂程度、抗攻擊能力等因素綜合考慮,本文采用的基本步驟如下:
a)把大小為M × N的圖像A (i, j)按行的順序首尾相接變換成序列L1{a11,a12, …, a1N, a21,a22,…,a2N,…,aM×N}。
b)選擇適當的參數和初始值作為密鑰,用前面所述方法生成兩個混沌序列Zk(i)(k=1,2)。從這兩個序列中分別截取一段長度為M×N的混沌序列{Zk,i:i=1,2,3,…,M×N },并對{Zk,i}分別按從大到小和從小到大的順序重新排序,分別得到序列{Di:i=1,2,3,…, M×N}和{Ui:i=1,2,3,…,M×N}。
c)根據b)得到的Z1(i)與{Di}對應的位置關系,按照相同的位置對應關系重新排序L1,得到序列L1′。
d)把序列L′1重新排列成矩陣A1,其對應關系為A1(i,j)=L1′((i-1)×M+j)(i=2,3,…,M; j=1,2,…,N)。
e)重復a)~d),所不同的是在a)中采用的是按列排序,在c)中是按{Ui}的對應關系排序,而不是{Di},在d)中應用的對應關系是A2(i,j)=L2′((j-1)×N+i)(i=1,2,3,…,M;j=2,…,N),從而得到矩陣A2。
f)利用Logistic映射式(6)產生序列{Sn},并截取一段長度為M×N的混沌序列{Si:i=1,2,3,…,M×N}:
Sn+1=λsn(1-sn)n∈Z(6)
其中:3.57≤λ≤4,0 g)利用BM×N對圖像A2的像素值進行置亂: E=A2B 4 實驗結果 用上述加密算法對512×512的Lena標準圖像進行加密,圖3給出了仿真結果及其直方圖。從圖3可以看出,加密后圖像的直方圖已經掩蓋了圖像的特征。 5 算法仿真與分析 1)敏感性分析 選擇512×512的Lena標準圖像,選擇兩個密鑰K1和K2,它們之間只是在x0上有微小差別: K1:x0=0.0099999,y0=0.0000009 a=1.95,ε=0.01,λ=3.97,S0=0.3570001 K2:x0=0.0099998,y0=0.0000009 a=1.95,ε=0.01,λ=3.97,S0=0.3570001 圖4說明即便密鑰有10-7的偏差也會導致錯誤解密結果。 2)相鄰像素相關性分析 為了檢驗明文圖像和密文圖像相鄰像素的相關性,從圖像中選取全部水平方向相鄰像素對,全部垂直方向相鄰像素對和部分對角方向相鄰像對,用下式定量計算相鄰像素的相關系數。 rxy=cov(x,y)/D(x)D(y)(7) cov(x,y)=1N∑Ni=1(xi-E(x))(yi-E(y))(8) E(x)=1N∑Ni=1xi(9) D(x)=1N∑Ni=1(xi-E(x))2(10) 表1給出了Lena圖像用K1加密后的相鄰像素相關性的實驗數據。