劉 嵩, 韋亞萍, 劉靜漪, 張國平
(1.華中師范大學物理科學與技術學院, 武漢 430070;2.湖北民族大學新材料與機電工程學院, 湖北 恩施 445000)
混沌是非線性動力系統(tǒng)的一種運動形式,描述了確定性非線性系統(tǒng)中的復雜現(xiàn)象.自Lorenz于1963年首次在確定性方程中發(fā)現(xiàn)混沌現(xiàn)象以來,學者們對混沌系統(tǒng)展開了廣泛深入的研究,其理論已廣泛的應用于生物醫(yī)學、信息科學、氣象學、圖像處理、天文學、經濟學等領域[1-3].
混沌系統(tǒng)具有遍歷性、有界性、對初始條件敏感等特征,非常符合數(shù)字圖像加密的需求,引起了圖像加密領域研究者的密切關注[4-5].文獻[6]改進了Logistic混沌,采用擴散-置亂-擴散的方法對圖像進行加密,降低了有限精度效應,提高了密鑰空間.文獻[7]生成了四維多翼超混沌吸引子,采用混合加密方法,消除了確定的明文密文映射關系.文獻[8]分析了AES算法在處理大尺寸圖像時效率不高,需要增加額外的計算時間.文獻[9]設計了一種基于塊加密認證的圖像加密算法.文獻[10]首先置亂明文圖像的像素,然后通過混沌映射得到偽隨機序列,再利用得到的偽隨機序列與置亂圖像進行異或操作實現(xiàn)像素擴散,最后通過S-Box進行像素灰度值替換得到密文圖像,取得了較好的加密效果.文獻[11]提出一種彩色圖像加密方案,首先將彩色圖像的3個分量合成為一個灰度圖像,然后對圖像像素分別進行行置亂和列置亂,實現(xiàn)圖像加密.
采用軌跡簡單的混沌系統(tǒng)組成的密碼直接加密明文,能夠相對較容易的被破解.與單渦卷混沌系統(tǒng)或者雙渦卷混沌系統(tǒng)相比,多渦卷混沌系統(tǒng)控制參數(shù)更多,相應的密鑰參數(shù)也就更多,而且在相空間中能呈現(xiàn)出復雜的多方向分布的網格狀渦卷,渦卷的數(shù)量和形狀等性能也可以由系統(tǒng)的參數(shù)來控制調整,因此具有更加復雜的動力學行為[12-15],更有利于圖像加密.鑒于此,本文從研究5階線性系統(tǒng)出發(fā),通過引入分段線性函數(shù)構造一個多渦卷混沌系統(tǒng),將該混沌系統(tǒng)應用于一種新的“置亂+擴散”加密算法,獲得了較為優(yōu)越的加密效果.
首先構建一個新的5階線性系統(tǒng),該系統(tǒng)的雅克比矩陣為滿秩,保證系統(tǒng)唯一的平衡點屬于指標2的鞍焦平衡點[16].新的五階線性系統(tǒng)描述為:
(1)
基于線性系統(tǒng)(1),引入分段線性函數(shù)構建多渦卷混沌系統(tǒng):
(2)
其中,fi(xi)是分段線性函數(shù),為簡便起見,選擇階躍函數(shù)構建分段線性函數(shù),其表達式如式(3)和(4),其中式(3)可以擴展的渦卷數(shù)目為 2Ni+2,式(4)可以拓展的渦卷數(shù)目為2Mi+1.
sgn(xi+2nAi)],
(3)
sgn(xi+(2n-1)Ai)].
(4)
如選擇Ai=1,Mi=1,即
fi(xi)=sgn(xi-1)+sgn(xi+1).
(5)
系統(tǒng)可以在每一維空間方向上擴展3個渦卷,在MATLAB上的數(shù)值仿真如圖1所示.
圖1 五階系統(tǒng)的相圖Fig.1 Phase diagram of five-dimensional chaotic system
從系統(tǒng)(2)可以看出,系統(tǒng)滿足(x,y,z,w,u)→(-x,-y,-z,-w,-u),因此該系統(tǒng)是關于坐標原點對稱,從而為擴展多渦卷吸引子提供了可能.由于
(6)
所以系統(tǒng)(2)是耗散的,且以指數(shù)形式收斂,其運動軌跡被固定在一個吸引子上, 也說明混沌吸引子是存在的[17-18].
(7)
選擇適當?shù)某踔?,利用Wolf算法可以計算系統(tǒng)(2)的5個Lyapunov指數(shù)如下:
L1=0.1815,L2=0.1671,L3=-0.2208,
L4=-0.2212,L5=-0.5622,
系統(tǒng)有2個Lyapunov指數(shù)大于0,由此說明系統(tǒng)(2)是一個超混沌系統(tǒng)[19].
系統(tǒng)(2)的維數(shù)計算如下.
圖2 指標2的鞍焦平衡點分布Fig.2 The saddle-focus equilibrium distribution of index 2
(8)
因此,系統(tǒng)(2) 的Lyapunov維數(shù)為分數(shù)維數(shù),也驗證了系統(tǒng)(2)為混沌[20].
混沌系統(tǒng)具有初值敏感性和不可預測性,是其能夠應用于圖像加密的根本原因.采用系統(tǒng)(2)構造的多渦卷混沌系統(tǒng),用于圖像加密的方案原理如圖3所示.
圖3 圖像加密的方案原理圖Fig.3 Schematic diagram of image encryption scheme
本加密算法采用的密鑰為key={x0y0z0w0u0},主要步驟如下:
Step1: 讀入待加密圖像P,設圖像大小為:M×N;
Step2: 錄入混沌系統(tǒng)參數(shù)值和初值,通過迭代生成5個混沌序列x,y,z,w,u;
Step3: 利用公式(9)從x序列中截取10個M長的混沌序列row[10,M],用于圖像行置亂.利用公式(10)從y序列中截取10個N長的混沌序列column[10,N],用于圖像列置亂.舍去前10 000個元素以消除混沌序列的暫態(tài)效應;
row(i,∶)=x(i*1000+
10001∶i*1000+10000+M),
(9)
column(i,∶)=y(i*1000+
10001∶i*1000+10000+N).
(10)
Step4: 按照式(11)將矩陣row(i,∶)按從小到大的順序進行排序,得到一個位置序列L1,通過式(12)對圖像P進行行置亂,得到圖像P1;
[y1,L1]=sort(row(i,∶)),
(11)
P1(j,∶)=P(L1(j),∶).
(12)
Step5: 同理,將矩陣column(i,∶)按從小到大的順序進行排序,得到一個位置序列L2,通過式L2對圖像P1進行列置亂,得到圖像P2;
Step6: 重復Step4和Step5,依次對圖像進行行置亂和列置亂,經過10輪得到置亂圖像P3;
Step7: 通過式(13)、(14)首先提取z(10000+1,10000+M×N)、w(10000+1,10000+M×N)兩個偽隨機序列元素中小數(shù)點后第9~12位的二進制數(shù)字,再將提取的兩個二進制數(shù)求模后加1,得到兩個隨機整數(shù)序列,最后將兩個隨機整數(shù)序列轉換成M×N的矩陣
K1={k1(i,j)},K2={k2(i,j)};
K1=reshape(mod(mod(floor(z(10000+1∶10000+M×N)*1012),1000),M)+1,M,N),
(13)
K2=reshape(mod(mod(floor(w(10000+1∶10000+M×N)*1012),1000),M)+1,M,N),
(14)
Step8: 通過式(15)取u(10000+1,10000+M×N)元素中小數(shù)點后9~12位數(shù)字,對256求模,得到一個0~255的隨機整數(shù)序列,將其轉換成M×N的矩陣K3;
K3=reshape(mod(mod(floor(u(10000+1:10000+M×N)*1012),1000),M)+1,M,N).
(15)
Step9: 通過式(16)對圖像P3進行像素值擴散,得到加密圖像.
P3(i,j)=bitxor(bitxor(P3(i,j),K3(i,j)),
P3(k1(i,j),k2(i,j))).
(16)
當k1(i,j)=i且k2(i,j)=j時,式(16)修正為式(17):
P3(i,j)=bitxor(P3(i,j),K3(i,j)).
(17)
分別選取256×256的Lena、pepper和bridge灰度圖作為初始實驗圖像,實驗結果如圖4所示,說明本算法可以完成圖像的加密和解密操作.
圖4 圖像的加密結果仿真Fig.4 Image encryption simulation results
該算法密匙由5個狀態(tài)變量的初值組成,假設計算機存儲精度為10-15,則該算法的密匙空間為1015×1015×1015×1015×1015=1075.如果增加系統(tǒng)參數(shù)密匙,算法密匙空間將變得更大,也就具有更強的抵抗窮舉暴力攻擊的能力.
直方圖反映了數(shù)字圖像像素的各個灰度級與其出現(xiàn)概率的關系,直方圖分布越均勻,圖像數(shù)據越隨機,加密效果越好[21].圖5給出了明文圖像和密文圖像的灰度直方圖,從圖5可以看出,經過加密運算,圖像的灰度均勻性明顯優(yōu)于原始明文圖像,且密文的像素值在整個像素取值范圍內出現(xiàn)的概率趨于均等,有效地掩蓋了明文圖像像素值的分布情況,給攻擊者利用統(tǒng)計分析方法破解密文圖像增加了難度.
圖5 原始圖像和加密圖像灰度值直方圖Fig.5 Histogram of gray value of original image and encrypted image
圖像加密的目標之一就是減少圖像相鄰像素的相關性,使相關系數(shù)趨于 0.為了評估加密圖像相鄰像素的相關性,在3幅實驗圖像的明文圖像和密文圖像上分別隨機選取1 000個像素,計算相關系數(shù)
(18)
其中,cov(x,y)、D(x)、E(x)分別為協(xié)方差、方差和均值:
(19)
圖6是Lena原圖和加密圖像在水平、垂直和對角線三個方向的相關性.表1給出明文圖像和密文圖像在水平方向、垂直方向和對角線方向的相關系數(shù).從圖6可以看出明文圖像相鄰像素在水平方向、垂直方向和對角線方向上的相關性極強,而密文圖像相鄰像素在3個方向上相關性已經非常小,對應的相關系數(shù)非常接近0,說明明文圖像的統(tǒng)計特性已很好地擴散到密文圖像中.
表1 原始圖像與密文圖像相關系數(shù)的比較
圖6 Lena圖像相鄰像素相關性對比Fig.6 Correlation comparison of adjacent Lena pixels
密匙敏感性包括加密敏感性和解密敏感性,加密敏感性是用來表征在加密解密過程中,如果將加密密匙的某個參數(shù)值引入微弱的擾動,得到的密文圖像與原密文圖像的差異程度,解密敏感性是用來表征在解密同一密文圖像時,對密匙引入微弱擾動,得到的解密圖像與原明文圖像的差異程度.如果差異顯著,說明該算法具有較好的敏感性.像素變化比率(NPCR)和歸一化平均變化程度(UACI)可以用來評價算法的加密敏感性[22-23],其計算方法如下:
(20)
其中,M,N為圖像大小,C1(i,j),C2(i,j)為兩個密文圖像,NPCR和UACI的理想值為99.6094%和33.4635%.為評估該算法的加密敏感性,在圖像加密過程中,分別對五個初值加以微弱擾動,相應的測試結果如表2所示.從表2可以看出在加密過程中,計算得到密文圖像的NPCR和UACI均接近理想值,證明了該算法在加密過程中具有良好的敏感性.
表2 密文圖像密匙敏感性
在解密過程中,采用同樣的辦法對密匙加以擾動,相應的測試結果如圖7所示,從圖7可以看出:加入擾動后該算法不能正確解出原始圖像,同樣說明了該算法具有良好的解密敏感性.
圖7 解密密匙敏感性測試(解密圖像)Fig.7 Sensitivity test for decryption key (decryption image)
圖像信息熵也可以反映圖像灰度值的分布,一般來說,圖像的灰度值分布越均勻,其信息熵就越大[24].其計算方法如下:
(21)
其中,L為像素的灰度級,p(xi)為灰度值xi出現(xiàn)的概率.表3給出了明文圖像和密文圖像的信息熵,從表3可以看出密文圖像的信息熵與理論值(8)非常接近.表4給出了本算法的信息熵與現(xiàn)有圖像加密方案得到的信息熵對比,從表4可以看出本算法的密文信息熵優(yōu)于其他文獻,說明本算法具有更好的加密效果.
表3 明文圖像與密文圖像信息熵對比表
表4 信息熵對比分析表
以Lena圖像為例,對密文圖像進行剪裁,即將其中部分像素值置成0.表5給出了經部分裁剪后的密文圖像及其對應的解密圖像.從表5可以看出密文圖像經過不同程度的裁剪后解密,得到的密文圖像雖然存在噪聲,但并不影響圖像的整體識別,說明本算法對圖像各點置亂均勻,雖然剪切了一定面積的加密圖像,解密后的圖像都基本能辨清其輪廓.因為有置亂操作,被剪切的解密圖像能均勻分散在整個圖像上,因此該算法可以抵抗剪切和噪聲污染的攻擊.
表5 剪裁的密文圖像及解密圖像
本文設計了一種5階多渦卷混沌系統(tǒng),分析了系統(tǒng)的基本動力學特性,包括平衡點、Lyapunov指數(shù)、Lyapunov維數(shù)等.同時將該系統(tǒng)應用于所提出的圖像加密算法,并對加密系統(tǒng)進行了數(shù)值仿真,仿真結果驗證了算法的有效性,因此,本文提出的數(shù)字圖像加密系統(tǒng)在信息安全領域有潛在的應用價值.