張 琴,林 達,余 亮
(1.四川理工學院 自動化與信息工程學院, 四川 自貢 643000; 2.四川理工學院 物理與電子工程學院, 四川 自貢 643000)
隨著通信技術的快速發(fā)展和普及,多媒體通信已成為一種重要的通信手段,并為人們的工作和生活提供了極大的便利。與此同時,信息傳遞的安全性正變得越來越重要。圖像作為信息傳播的重要載體之一,而圖像加密是保證圖像信息安全的重要手段。因此,圖像加密及解密算法和技術已經(jīng)成為信息安全領域中的重要問題之一。
圖像通常是以二維矩陣的形式存儲,用傳統(tǒng)的加密算法如數(shù)據(jù)加密標準(Data Encryption Standard,DES)、高級數(shù)據(jù)加密標準(advanced encryption standard,AES)、非對稱加密算法(RSA)等加密圖像,則需將待加密的圖像重新排列成明文的形式,這樣會導致加密時間長,加密效率不高等缺陷[1]。另一方面,由于混沌系統(tǒng)所產(chǎn)生的信號具有確定性,類似噪聲的統(tǒng)計特性與非周期性,且對初始條件極端敏感性等,可應用于圖像加密,并且能夠表現(xiàn)出許多優(yōu)良的密碼學特性[2]。因此,混沌密碼學在圖像加密上的研究引起了眾多學者的關注。
細胞神經(jīng)網(wǎng)絡[3-4](cellular neural network,CNN)是一種非線性動力混沌系統(tǒng),是基于Hopfield神經(jīng)網(wǎng)絡和細胞自動機的一種人工神經(jīng)網(wǎng)絡[3],具有復雜的混沌動力學特性,同時具備實時、高速、并行處理信號等特點,且易于實現(xiàn)超大規(guī)模集成電路。因此,CNN系統(tǒng)被廣泛用于加密系統(tǒng)[3,5],并在彩色數(shù)字水印加密[6]、語音加密[7]和圖像加密系統(tǒng)[2]中均取得了良好的加密效果。目前,文獻基于混沌系統(tǒng)的圖像加密算法主要有離散混沌系統(tǒng)的圖像加密[8]、連續(xù)混沌系統(tǒng)的圖像加密[9]和混合混沌系統(tǒng)的圖像加密[10]等3種。
為了進一步提高圖像加密算法的保密性,獲得更大的密鑰空間及更好的不可預測性,本文提出一種基于高維CNN的超混沌系統(tǒng)的圖像加密算法。先通過研究一種高維CNN的超混沌系統(tǒng)動力學特征,然后,依據(jù)其特征設計并生成偽隨機序列算法,再利用所生成的偽隨機序列算法,通過治亂和擴散等方法,完成對圖像的加密。最后,通過仿真驗證算法的有效性,測試了算法的安全性和魯棒性。
考慮一種超混沌系統(tǒng)模型[3]
(1)
其中
b、c、d、e分別為系統(tǒng)的控制參數(shù)。當控制參數(shù)
a=2,b=11,c=12,d=2,e=101
時,系統(tǒng)式(1)呈現(xiàn)為超混沌狀態(tài)。
采用四階龍格庫塔離散算法,對系統(tǒng)方程(1)進行迭代,得到混沌時間序列圖及吸引子相圖如圖1 所示。圖1僅列出部分時間序列圖及吸引子相圖,其他時間序列圖及吸引子相圖類似。從圖1可知,該混沌系統(tǒng)呈現(xiàn)特定吸引域的遍歷性,可以生成復雜隨機且不可預測的信號。
(a) x1時間序列
(b) x2-x4平面
(c) x1-x4-x5三維吸引子
(d) x2-x3-x5三維吸引子
該5階CNN超混沌系統(tǒng)具有3個特點:(1)該系統(tǒng)結構較低維系統(tǒng)更為復雜,生成的信號具有不可預測性;(2)該系統(tǒng)較低維系統(tǒng)具有更多的系統(tǒng)參數(shù)和初始值,具有較大的密鑰空間;(3)該系統(tǒng)可產(chǎn)生多路混沌序列,應用于圖像加密中更為靈活。
圖像加密與傳統(tǒng)的流密碼加密類似。流密碼的長度取決于待加密圖像像素的大小,圖像像素越小,流密碼長度越短,反之,圖像越大,流密碼長度越長。對于灰度圖像而言,假設圖片為M×N的矩陣,則至少需要生成長度為M×N的密鑰流。密鑰流由混沌序列組成,因此,減少圖像加密時間的一個重要方法就是減少混沌序列的長度。為了充分利用混沌序列,故本文采用多路混沌序列生成密鑰流,偽隨機序列發(fā)生器的結構框圖見圖2。
圖2 偽隨機序列發(fā)生器的結構框圖
假定灰度圖像的像素大小為M×N,具體的偽隨機序列生成為算法可以按照如下3個步驟完成。
(1)生成超混沌序列
任取初始值(x10,x20,x30,x40,x50)代入CNN超混沌系統(tǒng)方程(1)中,迭代(M×N)/3+1000次。如果圖像像素大小M×N不能被3整除時,迭代次數(shù)應保證所產(chǎn)生的序列長度不得少于圖像像素的大小。為了消除混沌序列暫態(tài)效應以及提高對初始條件的敏感性,采用丟掉混沌序列前1000組的值后,每次迭代所得到序列記為x1j,x2j,x3j,x4j,x5j(其中,j=1,2,…,(M×N)/3,表示每一維的長度。),即為所生成的超混沌序列。
(2)超混沌序列量化
對超混沌序列進行量化,采用方式為
Δxij=xij- └xij┘,
(2)
得到超混沌序列的小數(shù)部分。式中 └xij┘表示取小于或等于xij的最近整數(shù)。i=1,2,3,4,5,表示系統(tǒng)的維數(shù)。再來量化小數(shù)部分,利用方程
Xij=mod( └Δxij×1014┘,256),
(3)
其中,Xij表示系統(tǒng)第i維第j個量化值。i=1,2,3,4,5,表示系統(tǒng)的維數(shù),j=1,2,…,M×N÷3,表示系統(tǒng)每一維的長度,最終得到整數(shù)序列{X1j,X2j,X3j,X4j,X5j}.
(3)生成密鑰流
將每個整數(shù)序列Xij表示為8位2進制。利用
可得
bi,j,u= └Xij/2u┘ mod 2,
(4)
式中u=0,1,…,7。即可得到Xij的二進制表述。對應二進制的組合分別得到偽隨機序列Key1和Key2,即為所需的密鑰流,其表示式分別為
(5)
(6)
其中,j=1,2,…,(M×N)/3,j和k的關系表示為
k=3j-2。
按照上述步驟,可以得到偽隨機序列密鑰流Key1和Key2,即可用Key1和Key2對圖像進行加密。對于加密圖像而言,偽隨機序列生成方法決定了混沌系統(tǒng)產(chǎn)生混沌序列的長度??紤]到混沌序列長度為(M×N)/3,加密圖像的大小為M×N的灰度圖像。對于5維微分方程,我們使用4階龍格庫塔法生成混沌序列值。
在文中第一部分可知,當控制參數(shù)分別取值
a=2,b=11,c=12,d=2,e=101
時,由超混沌系統(tǒng)方程(1)生成混沌序列,然后應用第二部分所提出偽隨機序列發(fā)生器產(chǎn)生加密圖像時所需的密鑰流。具體的加密算法如下。
(1)像素置亂算法
像素置亂階段是一個像素從一個位置到另一個位置的過程。該過程必須是一一對應關系,以便能夠再次恢復圖像而不會產(chǎn)生失真[11]。置亂階段可以用一個矩陣來表示,每個矩陣元素為原始像素位置所對應新的位置。假定置亂矩陣為T,其矩陣元素Tij,且為M×N階,與圖像大小相一致,圖像像素位置是從左上角到右下角進行置亂的。
利用偽隨機序列構造置亂矩陣,再將圖像明文矩陣P進行像素置亂,得到圖像密文矩陣C1。像素置亂方式為
(7)
其中clnew,rwnew分別表示圖像密文矩陣C1的行和列的下標。
像素位置置亂后得到密文圖像C1。僅使用置亂算法進行圖像加密,安全性還不夠高,被破譯的可能性會很大。為了提高算法的安全性,將對C1采用分別進行橫向和縱向擴散。
(2)像素值橫向擴散
對密文圖像矩陣C1進行橫向擴散,橫向擴散的過程如圖3(a),方法是利用密鑰key1對C1進行擴散得到密文圖像C2,具體對應的橫向擴散方程為
(8)
式中C1(i,j)和C2(i,j)分別表示矩陣C1和C2的矩陣元素。
(3)像素值縱向擴散
像素值縱向擴散是對所得到密文圖像矩陣C2再進行縱向列擴散,縱向擴散的過程如圖3(b)。方法是利用key2對C2進行縱向擴散,得到最終密文圖像C,縱向擴散方程為
(9)
式中C(i,j)表示矩陣C的矩陣元素,即完成灰度圖像加密算法。
(a) 橫向擴散過程
(b) 縱向擴散過程
按照上述步驟即可完成圖像加密,而對應的解密的過程則是加密的逆過程。解密是否可逆的關鍵是所設計的置亂矩陣是可逆矩陣。由實驗數(shù)據(jù)得知,本文所采用256×256階置亂矩陣為非奇異矩陣,其行列式不等于零,故其具有可逆性,使用的解密密鑰也是加密過程中所用的密鑰。因此,本文所提的解密算法是可行的。鑒于解密過程是加密過程的逆過程,不再贅述。
實驗中,混沌系統(tǒng)參數(shù)分別設為
a=2,b=11,c=12,d=2,e=101,
利用matlab模擬加密解密算法。機器配置為4G的內(nèi)存,2.6GHz CPU。以256×256灰度圖像plane為例,系統(tǒng)方程式(1)初始值取[-1,0.2,0.8,0,1.5],圖像加密及解密結果分別如圖4所示。
圖4加密解密圖
4.2.1密鑰敏感性分析
如果加密方案對密鑰敏感,則密鑰的微小變化將會引起密文的很大不同,密鑰發(fā)生微小變化將導致了解密失敗。密鑰的微小改變采用原始加密密鑰與對應微小變化的加密密鑰組成的密鑰對方式,來測試加密系統(tǒng)對密鑰的敏感性。如表1是采用不同的5個秘鑰對時,本文算法所相應的平均變化強度和像素個數(shù)改變率測試結果。從表1可見,平均變化強度和像素個數(shù)改變率的結果分別為33%和99.6%,因此,本文所提出算法的加密系統(tǒng)對密鑰具有較強的敏感性,符合加密安全要求。
表1 密鑰敏感性測試結果
4.2.2密鑰空間分析
對于超混沌系統(tǒng),密鑰空間的大小一般取決于超混沌方程的初始值及系統(tǒng)的控制參數(shù)。本文CNN超混沌系統(tǒng)有5個初始值,5個控制參數(shù),因此,密鑰空間為1014×10,遠遠大于理論要求值2128。
4.2.3抵抗差分攻擊分析
攻擊者通過觀察明文微小變化引起解密的變化,找到圖像明文與圖像密文的相關性。如果原圖像的微小變化能引起密文的很大變化,差分攻擊的影響會減小。抵抗差分攻擊的指標采用像素個數(shù)改變率(Number of Pixel of Change Rate,NPCR)和平均變化強度(Unified Average Changing Intensity,UACI)。像素個數(shù)改變率是通過評估兩圖像像素不同的數(shù)目來獲得兩圖像的差異,其定義[12]為
(10)
其中D(i,j)是兩幅加密圖像I1和I2對應像素差異值,其取值為:如果I1(i,j)≠I2(i,j),則D(i,j)=1;如果I1(i,j)=I2(i,j),則D(i,j)=0;M和N為圖像的寬和高。平均變化強度是通過評價視覺效果的變化來獲得兩圖像的差異,其定義為
(11)
明紋改變1比特,本文算法像素個數(shù)改變率和平均變化強度本算法測試結果如表2。可以看出,NPCR值接近理論值0.99,UACI值接近理論值0.33,說明本文加密系統(tǒng)對明文具有好的敏感性。
表2 明文敏感性測試結果
4.2.4相關性分析
相鄰像素的強相關性是圖像的一個重要特征,一般用相鄰像素相關性來恢復原圖像,如果通過相鄰像素不能獲得加密圖像的像素,則認為加密算法是有效的。本文算法明文圖像與密文圖像的像素分布圖如圖5所示。圖5(a)~5(c)為明文相鄰像素相關性分布圖,圖5(d)~5(f)為密文相鄰像素相關性分布圖。從圖可見,加密圖像的像素是雜亂無章的,無規(guī)律可尋,因此,通過相鄰像素相關性來復原加密圖像是幾乎不可行的,說明加密算法是有效的。
圖5 明文與密文相鄰像素相關性分布圖
4.2.5信息熵分析
信息熵是衡量隨機系統(tǒng)復雜度的一個指標,計算公式[1]為
(12)
式中H(S)表示信息熵,P(Si)表示每一級灰度值出現(xiàn)的概率。一般情況,如果圖像像素值用8比特位表示,當圖像處于理想的混沌狀態(tài)時,信息熵的值為8。本文算法選取的灰度圖像大小為256×256,其加密圖的信息熵為7.9668,大于文獻[13]中的加密圖信息熵(7.69),說明本文算法較文獻[13]具有更多的復雜性。
4.2.6特征統(tǒng)計攻擊分析
為了防止攻擊者獲得圖像的特征像素,統(tǒng)計分析是圖像加密算法需要考慮的一個因素,圖6(a)為明文直方圖,圖6(b)為密文直方圖,從圖中可見,加密圖像具有統(tǒng)一分布均勻性,對于攻擊者而言,是不容易破解的。
圖6 明文與密文直方圖分布圖
4.2.7魯棒性分析
魯棒性指加密圖像在傳輸過程中受到攻擊或噪聲污染時,對原圖像進行解密的能力[14]。我們選取常見的椒鹽噪聲作為污染源,分析其污染加密圖像時,加密圖像的魯棒性。圖7分別表示噪聲污染等級Δ=0.1和Δ=0.01為時,本文算法的測試結果。從結果可以看出,等級的椒鹽噪聲的污染,解密算法仍然能夠?qū)⒓用軋D像恢復成原圖像。此外,對本文算法進行了剪切攻擊測試,其結果如圖8。圖8(a)為將加密的圖像剪切掉一個小三角形后,經(jīng)過本文解密算法,圖8(b)為原圖恢復解密圖像。可見,剪切后的加密圖像,經(jīng)過解密后,仍然能夠恢復成原始圖像。因此,本文提出的算法具有好的魯棒性。
圖7 加不同等級的椒鹽噪聲的解密圖像
圖8 剪切攻擊后的解密圖像
為了說明本文算法的優(yōu)點,本部分將吧本文所提出的加密算法與其他相關文獻所提出的研究結果進行對比。首先,將本文算法的NPCR和UACI的值與其他相關文獻進行對比,結果見表3。可見,本文算法的NPCR和UACI的值均高于文獻[15-17]的值,并且與理論值相一致。其次,將本文算法的相關系數(shù)與其他相關參考文獻進行對比,其結果見表4。可以看出,文獻[18]水平方向系數(shù)是最低的,本文算法的垂直方向系數(shù)及對角線方向系數(shù)是最低的。因此,本文算法較其他文獻的算法相比具有較好的性能,更能夠抵抗任何攻擊,適合圖像加密。
表3 本文算法與其他文獻的NPCR與UACI對比
表4 本文算法與其他文獻的相關系數(shù)對比
基于一種五維CNN超混沌細胞神經(jīng)網(wǎng)絡系統(tǒng)提出一種混沌序列生成算法,充分利用了系統(tǒng)混沌序列特點生成密鑰流,極大地減少了混沌序列的長度,在擴散過程中利用密鑰流,并利用置亂和擴散方法,實現(xiàn)灰度圖像的加密和解密。通過仿真方法證明了算法的可行性,安全性分析結果表明,本文算法具有較強的復雜性、安全性和魯棒性。與相關算法的比較結果表明,本文算法較已有的算法具有較高的平均變化強度和像素個數(shù)改變率,在擴散階段及置亂階段具有一定的優(yōu)勢。因此,是一種性能較好的圖像加密算法。