張修引,曾齊紅,邵燕林,梁梓君
(1.長江大學 地球科學學院,湖北 武漢 430100;2.中國石油勘探開發研究院,北京 100083;3.中國石油新疆油田公司數據公司,新疆 克拉瑪依 834000)
隨著計算技術的迅速發展,多媒體通信已經成為人們信息交流的主要方式之一。數字圖像具有數據量大、相關度高等特點,但是,數字圖像的傳輸存在著很多安全隱患,信息安全已成為日益嚴峻的現實問題。因此,研究圖像加密具有重要的現實意義。
近年來,國內學者對混沌圖像加密的研究成果頗多。比如,周小勇[1]提出了一種新的具有恒Lyapunov指數譜的三維混沌系統,驗證了系統豐富的混沌特性;富立、張鵬、張海龍等利用Lyapunov指數[2-5]的數值計算方法來提高算法的可行性與有效性。此外,用于圖像加密的混沌系統中有二維廣義的Logistic映射[6-8],還有基于廣義維的Arnold變換加密方法[9]和新型圖像加密[10]、明文改進加密[11]以及超混沌系統加密[12-14]和開關分數階混沌加密[15]。黃蕾等人[16-17]設計了基于混沌映射與連續更新對稱擴散的圖像加密算法。離散混沌在圖像加密、計算智能、網絡系統中應用也比較廣泛[18]。在這些常用的混沌加密算法中,低維混沌系統存在密鑰空間小、安全性不高的缺點[19]。因此,把二維超混沌用于圖像加密,不僅具有低維混沌系統的優點,同時兼具超混沌系統的優點,因此二維超混沌的圖像加密算法更具有重要的研究意義。
美國著名的氣象學家洛倫茲(Lorenz E N)在數值實驗中研究氣候的變化,發現系統中有時會出現一種隨機行為,他稱作“決定論非周期流”,并且在《大氣科學》上發表了“決定論非周期流”一文,描述了“對初始條件的敏感性”基本特性,這就是著名的“蝴蝶效應”,并且此后他也繼續致力于該研究,被譽為“混沌學之父”。
眾所周知,混沌(chaos)是指對初值敏感表現出的不可預測、隨機性的運動,是一種無規則的運動理論,不需加入任何隨機因素也可出現類似隨機的行為(內在隨機性),又稱渾沌。
混沌系統有以下特點:
(1)內在隨機性:存在的區域表現出隨機不確定性;
(2)非規則的有序:混沌系統本身是無序的,但在研究的過程中是有序的;
(3)敏感性:對密鑰做出微小改變,密圖會產生巨大改變,和原來使用的密鑰加密效果截然不同;
(4)正的李雅普諾夫指數:李雅普諾夫指數是指數規律的發散表明初始條件非常微小的差別也能被發現,從而使系統狀態被成功預測到是根本不可能的。
二維超混沌系統,是低維混沌系統和高維混沌系統結合起來的一種混沌系統;在使用二維超混沌加密時,可以促使混沌系統的安全性能提高,敏感性加強,有利于圖像加密的保護,是當前以及未來混沌加密研究的重要方向與課題。
使用超混沌離散系統在圖像加密中有以下幾個特性:一是二維超混沌系統產生的密鑰數量多,參數多等;二是由于二維超混沌系統需要使用Lyapunov指數,效果更加具有說服力,更加復雜,可以很好地體現出來。使用Henon映射的理論基礎,二維系統方程如下:

(1)
Henon映射公式如下:

(2)
其中參數a=1.4,b=0.3。
由于使用二維超混沌系統加密的效果更好,二維超混沌系統所具有的形式更加簡單,并且正的Lyapunor指數也與混沌程度有關,因此多采用Lyapunor指數來衡量所研究的方程是否存在混沌運動,具體的形式如下:
(3)
其中,a,b,c,d為系統參數a=1.68,b=-1.3,c=-1.1,d=0.1。
Step1:讀入一幅256*256的圖像,取紅色分量AR并將256*256的數組轉成1*65 536的數組,并輸出;取綠色分量AG并將256*256的數組轉成1*65 536的數組,并輸出;取藍色分量AB并將256*256的數組轉成1*65 536的數組,并輸出;
Step2:將其轉化成灰度圖B,并輸出;
Step3:利用二維超混沌方程(式(3)),二維超混沌方程使用的系數如下所示:a=1.68,b=-1.3,c=-1.1,d=0.1;生成混沌序列X,Y;
Step4:取出X的第五位,第六位和第七位,重新組成一個新的三位數,接著X1對256取余,存放在數組X1中;
Step5:取出Y的第五位,第六位和第七位,重新組成一個新的三位數,接著Y1對256取余,存放在數組Y1中;
Step6:對(X1+Y1)對256取余存放數組Z1中;
Step7:將KA中的所有元素放入M的第一行;將AR中的所有元素放入M的第二行;將C中的所有元素放入M的第三行;
Step8:將M中的元素按照第一行排序,第二行與第三行也相應發生變化,將排序后的M數組第二行取出,放入一維數組F中,將F數組中的數據轉化成二維數組AR1,即為紅色加密圖AR1;
Step9:AG重排成256*256的二維數組,將其與加密的灰度圖進行異或加密,得到綠色加密圖AG1;
Step10:將M1中的元素按第一行排序,第二行與第三行也相應發生變化,將排序后的M1數組第二行取出,放入一維數組F1中,將F1數組中的數據轉化成二維數組AB1,AB1重排成256*256的二維數組,與Z1進行異或加密,得到藍色密圖AB2。
Step1:分別讀入紅(AR1)、綠(AG1)、藍(AB2)分量密圖;解密紅色分量密圖AR1(256*256),取第三行,對其進行排序,第三行改變相應的第一二行也發生改變,從而進行解密;
Step2:解密綠色分量密圖AG1(256*256),綠色分量圖是采用異或加密,所以解密將AG1與序列Y1進行異或,從而可以得到解密圖AG;
Step3:解密藍色分量密圖AB2(256*256),首先進行異或解密,異或解密完成,將解密之后的數組進行第三行排序,相應的兩行隨之發生改變,從而藍色解密完成。
使用256*256的灰度圖像在matlab 2010b下進行仿真實驗,二維超混沌方程使用的系數如下:a=1.68,b=-1.3,c=-1.1,d=0.1;生成混沌序列X,Y。
圖1是256*256像素的BMP格式的彩色圖像,圖2為彩色圖像分離出來的三色圖像。

圖1 原圖

圖2 分離后的圖像
分離三色圖像后,分別對紅綠藍三色分量圖進行不同方式的加密,圖3即為加密以后的圖像。

圖3 加密后的圖像
加密以后得到三張分量加密圖,將三張分量加密圖合成為一張新的圖片,即為合成后的最終加密圖,見圖4。

圖4 最終加密圖
得到最終加密圖以后,對其進行解密。首先需要對最終加密圖進行三色分量輸出,按照加密的方式對它進行解密,將最終加密圖還原成三色圖以后,就可以對它進行合成,得到最終解密圖,即原圖(見圖1)。
圖片像素的相關性是指圖像中兩個像素點(水平相關,垂直相關,對角相關)之間的關系,用協方差表示,范圍在0到1之間。相關性系數的值越大(接近1)說明圖像的相關性越強,反之值越小(接近0),說明圖像相關性越弱。因此,在沒有進行加密的圖像中,相鄰的兩個像素點之間的相關性很強,經過加密處理后的圖像,相鄰像素的相關性就很弱。
相關性系數的計算公式如下所示:
(4)
(5)
(6)
(7)
其中,x,y分別表示圖像中兩個相鄰的像素灰度值,計算時采用均值E(x),方差D(x)和協方差COV(x,y)的離散形式。對圖像進行加密前后的相鄰像素的相關性分析,即選取5 000對像素點,進行分析。加密前后5 000對圖片像素的水平相鄰、垂直相鄰、對角相鄰的像素相關系數分析如表1所示。

表1 加密前后紅綠藍三色分量相鄰點相關系數
MSE(mean squared error)表示均方誤差,是衡量“平均誤差”的一種方法,計算出的MSE的值越小,說明預測數據的精確度越好;計算出的MSE的值越大,反之越不好。均方誤差的表達式為:
(8)
其中,I(i,j)為加密圖像,I(i,j)為原始圖像,M,N表示圖像的橫坐標與縱坐標在圖像中像素點的個數。均方誤差從整體上反映了原始圖像和加密圖像的差別,MSE值越大,算法越好,加密效果就越好。
PSNR(peak signal to noise ratio,峰值信噪比),peak的意思是頂點,ratio的意思是比率,即到達噪音比率的頂點信號。PSNR的單位為dB。當圖像PSNR值越大,就代表圖像的失真程度越少。峰值信噪比的表達式為:
(9)
其中L為圖像中灰度取值的范圍,對8比特的灰度圖像而言L=255。圖像的峰值信噪比越大,圖像的失真程度就越低,反之,圖像的峰值信噪比越小,其失真程度就越大。然而對于加密圖而言,加密效果越好,其峰值信噪比越小,如表2所示。

表2 測試圖像的結果對照
密鑰的敏感性是指在密鑰發生細小變化時,系統產生的加密效果也會發生明顯變化。采用正確密鑰以及與之差異微小的另幾組密鑰分別對密文圖像進行解密實驗。實驗選取大小為256*256的灰度圖像,正確密鑰為Key=(x=0.1,y=0.2,a=1.68,b=-1.3,c=-1.1,d=0.1),如表3所示。圖5中,(a)為紅色分量解密圖,(b)綠色分量解密圖,(c)藍色分量解密圖。

表3 選取的密鑰進行敏感性分析的結果對照

(1)正確密鑰解密圖

(2)Key1密鑰解密圖

(3)Key2密鑰解密圖

(4)Key3密鑰解密圖

(5)Key4密鑰解密圖

(6)Key5密鑰解密圖

(7)Key6密鑰解密圖
由上可得,當改變選取的密鑰后,即使只有10-10的改變,解密的圖像都不能被解出來,這就說明使用到的加密方法具有良好的密鑰敏感性。
信息熵是19世紀中葉由德國物理學家克勞修斯提出的,信息論創始人美國著名數學家香農于1948年發表的《通訊的數學理論》一文中將熵的概念正式引入到信息論中,稱之為“信息熵”,即平均信息量,公式如下:
(10)
其中,P(Si)是Si出現的概率,2n是信息源,S是總狀態數。從理論上來說,一個256級灰度值的圖像,灰度值有28種可能,由此可以根據理論算出信息熵的理論值。
利用文中所選用的二維超混沌系統加密,對加密后的圖像進行計算,所得的信息熵如表4所示,可以得出非常接近理想值8。

表4 信息熵
由上可知,信息熵分布越均勻,圖像的信息熵越大,信息熵灰度分布越無序,圖像的信息熵越小。當圖像的灰度分布是不均勻的,信息熵較小,這樣的圖像數據很容易被竊取,當信息熵越大時,圖像加密效果越好,越不容易被竊取。
文中算法對加密的密鑰是非常敏感的,密鑰空間的取值范圍要足夠大,只要密鑰空間足夠大,就可以有效地抵抗破譯者的攻擊。對于文章提出的加密算法,密鑰空間分析如下;一般計算機的精度設置為10-16,混沌系統共4個參數,2個變量,密鑰為K=(a,b,c,d,x,y),所以就能得到密鑰空間大小為1096=2319,相當于319 bit的密鑰長度。由此可知,該算法的密鑰空間取值范圍足夠大,因此能夠有效地抵抗攻擊者的窮舉攻擊方法。
二維超混沌系統是將低維混沌系統和高維混沌系統結合起來的一種全新的混沌系統,二維超混沌加密可以促使混沌系統的安全性能提高,敏感性加強,有利于圖像加密的保護。二維超混沌系統具有多個參數和變量,不易破解。在圖像的加密方面,對分離的紅綠藍分量分別進行排序加密、異或、先排序后異或加密,該加密方法的復雜性較高。整個加密算法的安全性高,相關性低,抗干擾性強,密鑰敏感性高,密鑰空間大,能有效抵抗窮舉搜索的攻擊。