黎 學(xué) 軍, 苗 苗, 李 慶 宇, 劉 俊 俏
( 1.大連工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院, 遼寧 大連 116034;2.陸裝沈陽軍代局駐大連地區(qū)軍代室, 遼寧 大連 116033 )
隨著多媒體技術(shù)的飛速發(fā)展和互聯(lián)網(wǎng)的普及,數(shù)字圖像在軍事、醫(yī)學(xué)、工業(yè)工程、公共安全、商標(biāo)保護(hù)等領(lǐng)域得到了廣泛的應(yīng)用[1],數(shù)字圖像通過多種平臺(tái)或信道進(jìn)行存儲(chǔ)和傳輸[2]。由于圖像往往帶有私人或敏感信息,因此圖像安全問題受到越來越多的關(guān)注[3]。
傳統(tǒng)的圖像加密方法通常是將數(shù)字圖像視為二進(jìn)制數(shù)據(jù)序列,然后使用傳統(tǒng)的數(shù)據(jù)加密技術(shù)(如AES[4])對(duì)數(shù)據(jù)序列進(jìn)行加密。由于,數(shù)字圖像中的每個(gè)像素通常使用至少8 bit來表示,并且相鄰像素之間存在較高的信息冗余[5],所以傳統(tǒng)的加密算法并不適合用于圖像加密。而混沌具有初值敏感性、不可預(yù)測(cè)性和遍歷性等特性,這些特性使得混沌系統(tǒng)產(chǎn)生的偽隨機(jī)序列非常適用于圖像加密[6]。目前,研究者利用憶阻器系統(tǒng)[7]、混沌理論[8-10]、量子理論[11-12]、壓縮感知[13-15]、DNA編碼[16-17]等技術(shù),設(shè)計(jì)了多種圖像加密算法。例如,Chen等[18]提出了一種基于改進(jìn)混沌映射的自適應(yīng)醫(yī)學(xué)圖像加密算法,利用logistics混沌映射對(duì)平面圖像進(jìn)行置亂處理,同時(shí)采用超混沌系統(tǒng)對(duì)子塊進(jìn)行自適應(yīng)加密。文獻(xiàn)[19]中提出了一種基于混沌映射和動(dòng)態(tài)模曲線的圖像加密解密算法,利用射影變換提高了算法的擴(kuò)散性。Chai等[20]基于純圖像和拉丁方陣(PPILS)的置換和雙向自適應(yīng)擴(kuò)散。提出了一種具有高自適應(yīng)性的醫(yī)學(xué)圖像加密方案,文獻(xiàn)[21]中提出了一種基于隱藏吸引子混沌系統(tǒng)、Knuth-Durstenfeld算法和DNA序列操作的圖像加密方案,利用隱藏吸引子混沌系統(tǒng)生成圖像加密所需的混沌序列。文獻(xiàn)[22]中提出了一種基于擴(kuò)散過程和改進(jìn)的Playfair密碼的圖像加密算法,利用混沌交叉映射對(duì)各圖像顏色通道的矩陣進(jìn)行置換和擴(kuò)散處理。Niu等[23]提出分?jǐn)?shù)階混沌系統(tǒng)的反控制,并應(yīng)用于彩色圖像加密。文獻(xiàn)[24]中提出了一種基于混沌的并行圖像加密方案。文獻(xiàn)[25]中提出了一種基于左卡普托離散增量的三維分?jǐn)?shù)階離散Hopfield神經(jīng)網(wǎng)絡(luò)(FODHNN),研究了該神經(jīng)網(wǎng)絡(luò)的動(dòng)態(tài)特性和同步特性,并將其應(yīng)用于圖像加密。Zhang等[26]提出了一種基于整數(shù)域的類感知器網(wǎng)絡(luò)的圖像加密方案,以感知器網(wǎng)絡(luò)為核心,實(shí)現(xiàn)普通圖像的信息存儲(chǔ)和傳播。Liu等[27]基于菲涅爾域的雙隨機(jī)相位編碼,提出了一種基于超混沌系統(tǒng)和公鑰密碼理論的光學(xué)圖像加密算法。
與傳統(tǒng)的混沌系統(tǒng)相比,激光混沌系統(tǒng)不僅有各種各樣的耗散系統(tǒng)的復(fù)雜現(xiàn)象,同時(shí)具備雙穩(wěn)態(tài)、接近理想模型、容易設(shè)計(jì)等特性,使得激光混沌系統(tǒng)在混沌密碼學(xué)有很好的應(yīng)用潛力[8]。因此,本研究采用單模激光混沌系統(tǒng)生成像素置亂和擴(kuò)散的偽隨機(jī)序列,與神經(jīng)網(wǎng)絡(luò)方法與Arnold置亂方法、加取模操作擴(kuò)散方法結(jié)合,設(shè)計(jì)了一個(gè)新型的數(shù)字圖像加密方案。
單模激光Lorenz系統(tǒng)的動(dòng)力方程為
(1)
式中:a,b,c是系統(tǒng)參數(shù)。令初值x0=1,y0=2,z0=3;參數(shù)a=10,b=8/3,c=30;步長(zhǎng)h=0.01。計(jì)算得到系統(tǒng)的李雅普諾夫指數(shù)LEs=(1,0,-14.79),其中,有一個(gè)正的李雅普諾夫指數(shù),并且所有的李雅普諾夫指數(shù)和為負(fù),所以單模激光Lorenz系統(tǒng)是混沌系統(tǒng),系統(tǒng)相圖如圖1所示。
(b) x-y-z空間相圖
令系統(tǒng)b=8/3,c=30,h=0.01;初始值x0=1,y0=2,z0=3。當(dāng)a∈[4,23]時(shí),系統(tǒng)的分岔圖、李雅普諾夫指數(shù)譜和SE復(fù)雜度如圖2所示。由圖2(a)、(b)可知,當(dāng)a∈(4.0,5.2)∪(22.18,23.00]時(shí),系統(tǒng)李雅普諾夫指數(shù)均小于0,系統(tǒng)處于穩(wěn)定狀態(tài);當(dāng)a∈(5.20,22.17)時(shí),有一個(gè)正的李雅普諾夫指數(shù),系統(tǒng)處于混沌狀態(tài)。圖2(c)表明系統(tǒng)處于混沌態(tài)時(shí)復(fù)雜度較大,當(dāng)系統(tǒng)處于穩(wěn)定狀態(tài)時(shí),SE復(fù)雜度很小,甚至接近于0。
(a) 分岔圖
(b) 李雅普諾夫指數(shù)譜
(c) SE復(fù)雜度圖2 系統(tǒng)在參數(shù)a∈[4,23]時(shí)的分岔圖、李雅普諾夫指數(shù)譜和SE復(fù)雜度Fig.2 Bifurcation diagrams, Lyapunov exponents spectra and SE complexity diagram of the systemwith parameter a∈[4,23]
令參數(shù)a=10,c=30,h=0.01,系統(tǒng)初始值x0=1,y0=2,z0=3;當(dāng)b∈[0.5,3.5]時(shí),系統(tǒng)的分岔圖、李雅普諾夫指數(shù)譜和SE復(fù)雜度如圖3所示。圖3(a)~(b)中,當(dāng)b∈[0.50,0.58)∪(0.65,0.73)∪(0.96,0.98)時(shí),最大李雅普諾夫指數(shù)為0,系統(tǒng)表現(xiàn)為周期運(yùn)動(dòng)形式,并且系統(tǒng)在b為0.54和0.73處出現(xiàn)倍周期分岔;當(dāng)b∈(0.58,0.65)∪(0.73,0.96)∪(0.98,3.50)時(shí),有一個(gè)正李雅普諾夫指數(shù),系統(tǒng)處于混沌狀態(tài)。圖3(c)表明在混沌狀態(tài)區(qū)間復(fù)雜度較大,與分岔圖和李雅普諾夫指數(shù)譜的狀態(tài)一致。
(a) 分岔圖
(b) 李雅普諾夫指數(shù)譜
(c) SE復(fù)雜度圖3 系統(tǒng)在b∈[0.5,3.5]時(shí)的分岔圖、李雅普諾夫指數(shù)譜和SE復(fù)雜度Fig.3 Bifurcation diagrams, Lyapunov exponents spectra and SE complexity diagram of the systemwith b∈[0.5,3.5]
Arnold變換也稱“貓變換”,是一種在有限區(qū)域內(nèi)進(jìn)行反復(fù)折疊、拉伸變換的混沌映射方法[12]。數(shù)字圖像可看作一個(gè)二維矩陣,圖像中的像素位置可看作二維矩陣中對(duì)應(yīng)坐標(biāo)的位置。經(jīng)過Arnold變換,圖像的像素位置會(huì)重新排列,實(shí)現(xiàn)對(duì)圖像的置亂加密效果。Arnold變換算法(正變換)由式(2)實(shí)現(xiàn)。
(2)
式中:αn和βn為變換前圖像像素的位置,αn+1和βn+1為變換后像素的位置,p和q為當(dāng)前變換的次數(shù),N為圖像的長(zhǎng)或?qū)?,mod為模運(yùn)算。
Arnold變換的逆變換為
(3)
兩個(gè)變換矩陣為互逆矩陣,且逆矩陣仍然是整數(shù)矩陣。
BP神經(jīng)網(wǎng)絡(luò)模型主要由層(包括輸入層、隱含層和輸出層)、神經(jīng)元和神經(jīng)元之間的權(quán)值三部分組成。輸入層神經(jīng)元接收輸入信息,并傳輸給隱含層的各神經(jīng)元,隱含層神經(jīng)元負(fù)責(zé)對(duì)接收的信息進(jìn)行處理變換,由輸出層輸出處理結(jié)果。各層神經(jīng)元僅與相鄰層神經(jīng)元全連接,同層神經(jīng)元無連接。圖4為BP神經(jīng)網(wǎng)絡(luò)方法中各神經(jīng)元的計(jì)算過程。輸出層的神經(jīng)元產(chǎn)生網(wǎng)絡(luò)的初始結(jié)果,輸入與輸出之間的計(jì)算過程可以表示為
(4)
式中:I和H為輸入層和隱含層神經(jīng)元數(shù)量,Xi為輸入信息,bj、bk分別為隱含層偏差和輸出層偏差,foutput和fhidden分別為隱含層神經(jīng)元和輸出神經(jīng)元的傳遞函數(shù),wji為連接輸入層和隱含層的權(quán)值,wkj為隱含層與輸出層之間的權(quán)值。
圖4 神經(jīng)元計(jì)算原理Fig.4 Principles of neurocomputing
通過式(5)測(cè)量輸出值與實(shí)際值之間的誤差,如果誤差超過公差,則通過梯度下降法修正權(quán)值和偏差。通過修改后的權(quán)值和偏差對(duì)輸出值進(jìn)行再訓(xùn)練,重復(fù)上述過程,直到輸出在公差范圍內(nèi)。
(5)
假設(shè)輸入的圖像大小為W×H,所提出的圖像加密流程如圖5所示。
具體的加密算法步驟:
步驟1輸入圖像IW×H,對(duì)輸入圖像的所有像素點(diǎn)進(jìn)行分割,將W×H的圖像分割成N
圖5 加密流程Fig.5 Encryption process
個(gè)子圖像塊,每個(gè)圖像塊的大小為l×l。
步驟2對(duì)生成的子圖像塊矩陣進(jìn)行歸一化處理,并采用均值分布預(yù)處理。待處理圖像的灰度范圍為[xmin,xmax],變換域?yàn)閇ymin,ymax],假設(shè)要處理的像素為xvalue,yvalue可由式(6)得到。
(6)
原始圖像的像素值通過式(6)劃分為[0,1]的集合,構(gòu)成所有訓(xùn)練樣本的預(yù)處理過程。
步驟3BP神經(jīng)網(wǎng)絡(luò)的輸入為圖像數(shù)據(jù)樣本,如果BP神經(jīng)網(wǎng)絡(luò)的壓縮率為k,則網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為ni,隱藏層的節(jié)點(diǎn)數(shù)為nk,即k=ni/nk。當(dāng)神經(jīng)網(wǎng)絡(luò)被訓(xùn)練時(shí),網(wǎng)絡(luò)的耦合權(quán)值在壓縮過程中保持不變。
步驟4利用newff函數(shù)進(jìn)行訓(xùn)練,可得到壓縮數(shù)據(jù),傳遞函數(shù)為
(7)
其中,logsig(n)函數(shù)的特點(diǎn)是(-∞,+∞)范圍的數(shù)據(jù)被映射到區(qū)間(0,1)內(nèi),且n為神經(jīng)元節(jié)點(diǎn)數(shù)的輸入。
(8)
其中在tansig(n)函數(shù)中,輸出將被限制在(-1,1)區(qū)間內(nèi)。為了使預(yù)測(cè)輸出和實(shí)際輸出相差不大,均方差的值應(yīng)足夠小,且考慮加密時(shí)間,本算法中設(shè)置均方差為0.000 35。
步驟5設(shè)置單模激光混沌系統(tǒng)的參數(shù)和初值,對(duì)混沌系統(tǒng)迭代(t+W×H)次。將前t個(gè)值舍去,以提高混沌系統(tǒng)參數(shù)和初值的靈敏度。結(jié)合得到3個(gè)混沌序列x1、x2、x3,得到浮點(diǎn)數(shù)類型的偽隨機(jī)序列S。
步驟6由浮點(diǎn)數(shù)類型的偽隨機(jī)序列K得到整數(shù)類型長(zhǎng)度為2(W×H)的偽隨機(jī)數(shù)向量X,Xi∈{1,2,…,10(W×H)}。再由X得到兩個(gè)偽隨機(jī)序列S1、S2。
步驟7將神經(jīng)網(wǎng)絡(luò)壓縮后的圖像矩陣Q轉(zhuǎn)換為一維向量T,利用偽隨機(jī)序列S1、S2對(duì)T進(jìn)行置亂。再將一維向量還原為W×H的像素矩陣。
步驟8同理根據(jù)第5步和第6步得到偽隨機(jī)序列S3、S4。
步驟9采用偽隨機(jī)序列S3、S4對(duì)像素值進(jìn)行擴(kuò)散操作,擴(kuò)散算法為Bi=(Bi-1+Si+Pi)mod(256)。其中置亂圖像展開為P,S為密碼向量,對(duì)應(yīng)密文為B,i=1,2,3,…,W×H。
Bi=(Bi-1+Si+Pi)mod(256)展開為
Bn=(B0+S1+S2+…+Sn+P1+
P2+…+Pn)mod(256)
(9)
正向擴(kuò)散為
Bi=(Bi-1+Si+Pi)mod(256)
(10)
逆向擴(kuò)散為
Pi=(2×256+Bi-Bi-1-Si)mod(256)
(11)
步驟10根據(jù)式(9)~(11)可得到密文向量B,然后將其恢復(fù)為像素矩陣,最后得到加密圖像C。
圖像的解密過程是圖像加密的逆過程,解密流程如圖6所示。具體的解密步驟:
步驟1讀取加密圖像C,根據(jù)加密算法的第8步,得到逆過程的偽隨機(jī)序列S3和S4。
步驟2由式(12)和式(13)對(duì)像素值進(jìn)行恢復(fù),得到像素矩陣E。
正向擴(kuò)散為
Bi=(Bi+1+Si+Pi)mod(256)
(12)
逆向擴(kuò)散為
Pi=(2×256+Bi-Bi+1-Si)mod(256)
(13)
步驟3根據(jù)加密算法的第5和第6步,得到逆過程的偽隨機(jī)序列S1、S2,結(jié)合Arnold逆變換算法,對(duì)逆擴(kuò)散后的像素矩陣進(jìn)行像素位置的恢復(fù),得到一維向量F。
步驟4將一維向量F的像素值從[0,1]恢復(fù)到[0,255],向量被恢復(fù)為l×l的子圖像塊。
步驟5將所有的子圖像組合成一個(gè)完整的圖像即可得到解密圖像。
選擇256×256的灰度圖像作為對(duì)象對(duì)算法性能進(jìn)行分析。由本文算法得到的明文圖像、密文圖像和解密圖像如圖7所示。從圖像加密的結(jié)果可知,加密效果良好,可以有效掩蓋明文圖像中的信息。同時(shí),解密算法可以完全正確解密密文。由于圖像加密安全性能的好壞直接決定算法能否有效抵御外部攻擊,因此加密效果需要使用密鑰敏感性、直方圖分析、相關(guān)分析、信息熵、NPCR、UACI、魯棒性分析等進(jìn)行安全測(cè)試。
密鑰空間是指所有合法密鑰構(gòu)成的集合,圖像密碼系統(tǒng)的密鑰空間應(yīng)該足夠大,從而可以有效地對(duì)抗窮舉攻擊,密碼長(zhǎng)度至少應(yīng)該為128 bit[29]。在本算法中,密鑰約為292 bit,所以密鑰空間大約是2292。從表1與其他加密算法比較可以看出,本文算法的密鑰空間大小足夠大,可以抵御所有類型的窮舉攻擊。
有效的圖像加密算法應(yīng)該對(duì)加密階段和解密階段密鑰的細(xì)微變化非常敏感,密鑰的細(xì)微變化,加密效果會(huì)有很大的不同。這種不同的程度可以通過計(jì)算兩幅不同的密文的差值來評(píng)價(jià)。本算法中,對(duì)密鑰a、b和c進(jìn)行靈敏度分析,當(dāng)參數(shù)產(chǎn)生了10-15的微小改變時(shí),新的密文圖像和與原始密文圖像之間的差異如圖8所示。從圖8可以看出,當(dāng)參數(shù)發(fā)生微小改變時(shí),所得到的密文圖像與原始密文之間存在差異,表明本文加密算法的密鑰具有確定性和唯一性。
直方圖表示像素點(diǎn)的分布情況。相對(duì)于明文圖像的直方圖,理想加密圖像的像素分布應(yīng)該是均勻的、平坦的,它有效地隱藏了平面圖像的像素值,以防止攻擊者提取有效信息。從圖9的實(shí)驗(yàn)結(jié)果可以看出,明文圖像的直方圖并不平坦,也就是說,圖像中包含像素的關(guān)鍵信息,不能有效地抵抗攻擊者提取圖像的關(guān)鍵信息。而使用本文算法加密的圖像直方圖分布比較平坦,較好地隱藏了圖像的關(guān)鍵信息,可以有效抵抗統(tǒng)計(jì)攻擊。
相關(guān)性反映了相鄰像素之間的相關(guān)程度。在加密算法中,常對(duì)相鄰像素的線性關(guān)系進(jìn)行測(cè)試。一般情況下,明文圖像的相鄰像素具有較高的相關(guān)性,抗差分攻擊能力較弱;而密文圖像極大地消除了相鄰像素之間的相關(guān)性,大大提高了圖像的抗差分攻擊能力。利用式(14)可以計(jì)算出相鄰像素在水平、垂直和對(duì)角方向上的相關(guān)性。
原始密文圖像
密文圖像
密文差異
原始密文圖像
密文圖像
密文差異
原始密文圖像
密文圖像
密文差異
(a) 明文圖像
(b) 密文圖像
(14)
式中:x、y為相鄰兩個(gè)像素的灰度值。圖10為L(zhǎng)ena明文圖像與密文圖像在水平方向、垂直方向和對(duì)角方向的相關(guān)系數(shù)。由圖10的實(shí)驗(yàn)結(jié)果可知,密文圖像相鄰像素的相關(guān)系數(shù)大大降低。為了進(jìn)一步展示相關(guān)系數(shù)的特征,相關(guān)系數(shù)的比較結(jié)果如表2所示。從表中可以看出,應(yīng)用本文算法加密圖像,密文圖像的相關(guān)性更低,具有更好的抗攻擊性能。
由于圖像加密算法的精度很高,使得平面圖像中像素的微小變化都會(huì)導(dǎo)致加密效果發(fā)生巨大變化。這種變化通常通過像素改變率(NPCR)和歸一化平均變化強(qiáng)度(UACI)來測(cè)量,體現(xiàn)了加密算法的抗差分攻擊能力。其定義為
表2 Lena相關(guān)系數(shù)的比較Tab.2 Comparison of Lena correlation coefficients
(15)
式中:c1,c2為兩幅大小為W×H圖像。當(dāng)c1(i,j)≠c2(i,j)時(shí),可得D(i,j)=1。如果c1(i,j)=c2(i,j),則D(i,j)=0。NPCR的期望值為99.6094%,UACI的期望值為33.4635%。通過表3與不同算法的對(duì)比可以看出,本文算法具有更好的抗差分攻擊性能。
信息熵反映了圖像信息的不確定性,是測(cè)試加密算法安全性的一種常用方法。具體算法為
表3 UACI和NPCR的平均值Tab.3 Average values of UACI and NPCR
式中:p(si)是si的概率。對(duì)于256階的灰度圖像,理想信息熵為8。信息熵值越接近8,圖像可視信息越少,像素點(diǎn)的分布越接近隨機(jī)。從表4中Lena圖像的對(duì)比結(jié)果可以看出,本文算法的信息熵接近理想值,具有很高的安全性。
表4 信息熵的比較Tab.4 Comparison of information entropy
在數(shù)字圖像的傳輸和存儲(chǔ)中,容易產(chǎn)生不同類型的噪聲和數(shù)據(jù)丟失,因此一個(gè)好的加密算法應(yīng)該能夠有效抵抗密文圖像的失真。數(shù)據(jù)丟失攻擊和噪聲攻擊常用于測(cè)試圖像加密算法的魯棒性。圖11(a)~(d)顯示了椒鹽噪聲攻擊(SPN)的Lena加密圖像和解密圖像,圖11(e)~(h)顯示出了數(shù)據(jù)丟失(DL)的Lena密文圖像及其解密圖像。當(dāng)加密圖像丟失一些數(shù)據(jù)或被噪聲模糊時(shí),解密過程仍能恢復(fù)原始圖像,且具有很高的視覺效果。實(shí)驗(yàn)結(jié)果表明,該加密算法能夠有效抵抗噪聲和數(shù)據(jù)丟失攻擊,具有很好的魯棒性。
所提出的基于激光混沌系統(tǒng)與神經(jīng)網(wǎng)絡(luò)的圖像加密算法,利用激光混沌系統(tǒng)對(duì)初始條件的敏感性增加了秘鑰空間及其敏感性,并結(jié)合BP神經(jīng)網(wǎng)絡(luò)對(duì)加密圖像進(jìn)行壓縮和Arnold變換有效降低圖像相鄰像素的相關(guān)性,提高了算法抵抗統(tǒng)計(jì)和敏感性攻擊的能力。通過與其他加密算法在安全性上的比較分析,可以看出所提出的算法具有很高的安全性。因此,該算法適合于圖像加密,以保護(hù)數(shù)字圖像信息在互聯(lián)網(wǎng)上的安全傳輸,具有較好的實(shí)用意義和應(yīng)用前景。
(a) 密文圖像(SPN=1%)
(b) 解密圖像(SPN=1%)
(d) 解密圖像(SPN=4%)
(e) 密文圖像(DL=3%)
(f) 解密圖像(DL=3%)
(g) 密文圖像(DL=10%)
(h) 解密圖像(DL=10%)