圖像文件加密新算法之廣義2D-Arnold映射
針時圖像加密算法容易被破解、效率低等問題,提出了一種基于廣義2D-Arnold映射和超混沌的圖像文件加密算法。這種難過圖像文件加密算法可以確保在安全可靠的前提下,明顯提高效率。
一、圖像的置亂過程
1、廣義2D-Arnold映射
廣義2D-Arnold映射是一個2維保面積的一一映射,單位矩陣的任一點(diǎn)唯一地變換到單位矩陣內(nèi)的另一點(diǎn),可逆映射,沒有吸引子,非常適合圖像置亂。實際上,Amold映射包括拉伸和折疊兩個過程,乘以矩陣C,x,y變大,相當(dāng)于拉伸,取模,使x,y又回到單位矩陣內(nèi),相當(dāng)于折疊。如此循環(huán)往復(fù),最終達(dá)到混疊的目的。映射方程為:

式中a,b,N為正整數(shù),參數(shù)a,b以N為周期,要求a,b∈N。若初始值x0,yo為正整數(shù),則xn,y為(x=O,1,2,…)也均為正整數(shù)??赏ㄟ^將圖像的像素坐標(biāo)或灰度值作為初始值進(jìn)行迭代來實現(xiàn)圖像的置亂。對于圖像內(nèi)原來相鄰的兩點(diǎn)如(xn,yn)和(xn+1,yn+1),其像素坐標(biāo)經(jīng)廣義貓映射迭代幾次后不再相鄰;具有均勻概率分布的貓映射還可以保證經(jīng)過一定次數(shù)的灰度值迭代后,原圖像的灰度直方圖由具有特定的統(tǒng)計規(guī)律改變?yōu)槌示鶆蚍植?,從而達(dá)到圖像保密的目的。
2、原始圖像的置亂過程
假設(shè)原始明文圖像大小為MxN。置亂過程的步驟如下:
(1)讀入原始明文圖像,如果M>N,將原始明文圖像的第一列數(shù)據(jù)復(fù)制到N+1列,第二列數(shù)據(jù)復(fù)制到第N+2列,依此類推,直到滿足M=N為止,得到正方形圖像,反之一樣。
(2)使用2D-Amold映射置亂像素點(diǎn)位置,通過式(2)對調(diào)整后的正方形圖像進(jìn)行置換。2D-Arnold映射參數(shù)a和b和置亂輪數(shù)優(yōu)為密鑰,2D-Arnold映射矩陣的各個數(shù)據(jù)分別為A11=1,A12=a,A12=b,A22=ab+1,從而保證2D-Arnold映射矩陣的行列式|C|=1。
![]()
二、圖像的擴(kuò)散過程
1、超混沌系統(tǒng)模型
超混沌系統(tǒng)的動力學(xué)方程如下:

式中,a,b,c,d,e為系統(tǒng)參數(shù),當(dāng)a=10,b=45,c=2.5,d=4,e=5時,系統(tǒng)存在超混沌吸引子,表現(xiàn)為超混沌運(yùn)動。在Matlab7.O的環(huán)境下對系統(tǒng)進(jìn)行仿真,得到超混沌系統(tǒng)仿真結(jié)果,如圖1所示。系統(tǒng)具有更復(fù)雜的相空間,表現(xiàn)出更加復(fù)雜的動力學(xué)性質(zhì),產(chǎn)生的混沌序列具有更好地隨機(jī)性,用它設(shè)計密鑰更加安全。

2、超混沌密鑰序列的生成
使用超混沌方程式(2)生成超混沌序列的步驟如下:
(1)超混沌系統(tǒng)取四個初值x,y,z,w,預(yù)迭代N次,得到xo,Yo,z0,wo及迭代次數(shù)No,將其作為初始密鑰。
(2)對超混沌系統(tǒng)以初始值xo,Yo,z0,wo迭代L/4次,得到四組超混沌序列{Xk,yk,Zk,wk},(l≤k<L,L =MAX(M,N)xMAX(M,N))。
(3)初始化—個空序列Aa設(shè)M=mod(X1,Yi,ZI,wl,2),若m=0,將(X1,Yi,Z1,WI)加入序列A,若m=1,將(yl,Xi,Z1,Wl)加入序列A,若m=2,將(Z1,Xl,Yi,W1)加入序列A。
(4)初始化—個空序列Bo設(shè)n=mod(xk+yk+Zk+wk,2),若n=0,將(W1,XI,Yi,Zl)加入序列B,若m=1,將(Z1,xi,yl,w1)加入序列B,若m=2,將(z1,wl,Yi,XI)加入序列B。
重復(fù)執(zhí)行步驟(3)和(4),生成兩個長度為L的原始混沌序列A和B。
按照變換式:

對混沌序列進(jìn)行改造,得到混沌密鑰序列k1,k2。k1i(i)∈[O,255],k2i∈[O,255]。
式中,floor(x)表示取不大于x的最大整數(shù);mod(x,y)表示取x除以y所得的余數(shù)。
3、圖像的擴(kuò)散操作
圖象擴(kuò)散操作由以上兩個混沌系統(tǒng)產(chǎn)生的密鑰對圖象進(jìn)行兩論擴(kuò)散操作。在擴(kuò)散過程中使用混沌系統(tǒng)產(chǎn)生的兩種密鑰交替加密,并引入密鑰擴(kuò)散機(jī)制,使明文、密文、密鑰之間的關(guān)系更加復(fù)雜。把得到的超混沌序列按照置換的圖像矩陣的大小變換成矩陣形式,稱之為灰度矩陣H1和H20經(jīng)過這樣的變換,要擴(kuò)散的圖像矩陣就和灰度矩陣具有同樣地大小,便于進(jìn)一步處理。
第一輪擴(kuò)散加密過程如下:

第二輪擴(kuò)散加密過程如下:

其中,D表示置亂后圖像矩陣,E表示加密后圖像矩陣,Eo.o,EM.N為加密第一個明文像素時的初始密鑰,E0.∈[O,255],EM.N∈[0,255],H1和H2為混沌灰度矩陣。
在以上的算法中,Eo.o為a和6進(jìn)行二進(jìn)制“位異或”運(yùn)算;mod(a,b)為“盤除以b”得到的余數(shù)。
由上述的加密方法看到,圖像的擴(kuò)散過程由兩個混沌灰度矩陣共同作用,擴(kuò)散過程不僅與明文相關(guān),也與密文相關(guān),同時引進(jìn)了非線性的“取?!辈僮?,因此,攻擊者想要破譯出最終的密鑰的可能性是非常小的。
三、圖像的解密過程
解密過程是加密的逆過程,首先,利用初始密鑰生成的超混沌密鑰島和k2,把得到的超混沌序列按照置換的圖像矩陣的大小變換成灰度矩陣H1和H2,實現(xiàn)置亂圖像的復(fù)原。
反置亂過程如下:
反置亂過程是置亂過程的逆運(yùn)算,利用相同密鑰的2D-Arnold映射的逆矩陣進(jìn)行像素點(diǎn)位置的復(fù)原,逆矩陣如式(1O)所示。

四、實驗仿真
本文使用256位的經(jīng)典測試圖像lena.bmp在Matlab7.O下進(jìn)行仿真,設(shè)定式(1)的系統(tǒng)參數(shù)a=M-2,b=M-4,m=16,保證ab都是小于M的正整數(shù),而且密鑰a,b與圖像的大小相關(guān)。式(2)的系統(tǒng)參數(shù)a=10,b=45,c=2.5,d=4,e=5時,系統(tǒng)是超混沌的,超混沌系統(tǒng)初值取為(0.22,0.57,1.O,0.30),微分方程的求解的時間步長為0.001,預(yù)迭代次數(shù)No =1000,初始密鑰Eo.o=102,EM.N=28.Lena原圖像如圖2(a)所示,加密后的圖像如圖2(b)所示。比較原始圖像和加密圖像后發(fā)現(xiàn),二者存在巨大差別,加密圖像已經(jīng)完全隱藏了原始圖像。原始圖像的直方圖和加密后的圖像的直方圖如圖3所示,原始lena圖像的像素值分布非常不均勻,加密后的直方圖表明像素值在[0,255]內(nèi)呈均勻分布。因此,該算法能夠有效地防止統(tǒng)計分析的攻擊。

五、安全性分析
1、像素的相關(guān)性分析
像素的相關(guān)性指相鄰像素的相似的程度,相關(guān)性越大,灰度值的差別越小,圖像信息的冗余度也越大??疾煜嚓P(guān)性,主要方法是考察水平、垂直、對角線相鄰像素的相關(guān)性。圖4顯示了明文與密文水平方向的相關(guān)性,可見原始圖像的相關(guān)性很大,本文算法加密后的密文圖像的相鄰像素的相關(guān)性呈現(xiàn)隨機(jī)的對應(yīng)關(guān)系。

相關(guān)系數(shù)又稱皮(爾生)氏積矩相關(guān)系數(shù),能夠說明兩個現(xiàn)象之間相關(guān)關(guān)系密切程度的統(tǒng)計分析指標(biāo)。從原始圖像和加密后的圖像的水平、垂直及對角方向取lOOO對像素對,根據(jù)式(11)進(jìn)行相關(guān)系數(shù)計算。

式中,xi,yi分別表示圖像中第i組相鄰像素的像素值,N為像素對的組數(shù),r為相鄰兩個像素的相關(guān)系數(shù)d如下表1所示,原始圖像lena的像素存在高度的相關(guān)性,r接近于1,對應(yīng)的密文圖像的相關(guān)系數(shù)r接近于0,基本不存在相關(guān)性。表明本文的加密算法能夠有效地掩蓋原始圖像的統(tǒng)計特征。

2、時間效率分析
本算法的仿真實驗在Matlab 7.1的實驗平臺上進(jìn)行,實驗所使用的硬件環(huán)境為Intel酷睿i3 3220CPU,3.3GHz主頻,2GB內(nèi)存,120G硬盤口使用本文算法加密一幅256x256的灰度圖像的平均時間為47ms,加密算法的速度比較高。
3、密鑰的敏感性分析
本算法選取256x256的8位經(jīng)典測試圖像lena.bmp進(jìn)行測試,2D-Arnold映射的參數(shù)a=M-2和b=M—4,置換輪數(shù)m=16,超混沌系統(tǒng)初值(x,y,z,w)=(0.22,0.57,1.O,0.30)作為密鑰進(jìn)行加密,然后對超混沌的初值進(jìn)行微小的擾動(x,y,z,w)=(0.22+10也,0.57,1.0,0.30)生成的密鑰進(jìn)行解密。原始圖像和密鑰微小擾動之后的解密的圖像如圖5所示,解密后圖像與原始圖像存在巨大差別。均方誤差MSE可以度量原始圖像和解密圖像之間的差別,其表達(dá)式為:

這里,P={P(i,j},E=e(i,j)),i=1,2,..,M,j=l,2,…,N 。 P表示原始圖像,E表示解密圖像。
表2給出了本文算法的正確密鑰及錯誤密鑰所得的解密圖像分別與原始圖像之間的均方誤差值,使用正確密鑰解密,解密圖像與原始圖像的均方誤差為O.OOOO,在其他解密鑰保持不變,超混沌方程的4個初值x,y,z,w分別與正確值相差10-12,結(jié)果顯示,正確密鑰可以完全解密,而具有微小擾動的密鑰的解密圖像與原始圖像差別巨大,表明本算法對解密密鑰非常敏感。

小知識之映射
映射,或者射影,在數(shù)學(xué)及相關(guān)的領(lǐng)域經(jīng)常等同于函數(shù)。 基于此,部分映射就相當(dāng)于部分函數(shù),而完全映射相當(dāng)于完全函數(shù)。



