吳貽峰, 緱新科
(蘭州理工大學(xué)電氣工程與信息工程學(xué)院,蘭州 730050)
隨著軟硬件技術(shù)的快速發(fā)展與革新,數(shù)字化信息傳輸技術(shù)的應(yīng)用也變得越來越廣泛。圖像因其具有快捷方便、信息量大等特點(diǎn),在地質(zhì)、氣象、航空航天等領(lǐng)域均有廣泛的應(yīng)用,這也使得對(duì)信息源的安全保護(hù)變得尤為重要[1]。由于傳統(tǒng)的以AES為代表的信息加密系統(tǒng), 加密效率低,難以滿足當(dāng)前的需求,而混沌具有對(duì)初始 條件的高度敏感性、遍歷性、混合性、非周期性等特點(diǎn),在處理大數(shù)據(jù)量信息時(shí)具有獨(dú)特的優(yōu)勢(shì),因此基于混沌的圖像加密得到了越來越多研究學(xué)者的重視[2-4]。
近年來,大量的圖像加密算法被提出,香農(nóng)提出的混淆擴(kuò)散機(jī)制在圖像加密算法中得到了成功的應(yīng)用和發(fā)展。很多研究人員提出的混沌加密算法,性能優(yōu)異、安全性高,但是也存在一些不足。文獻(xiàn)[5]提出的超混沌加密算法,優(yōu)化了像素置亂和擴(kuò)散過程,魯棒性較好,但是加密速率并不理想,即使是256×256的8位圖像,也需要接近1 s的時(shí)間,實(shí)時(shí)性不佳;文獻(xiàn)[6]提出的新型置換和替代加密算法,將像素值擴(kuò)散矢量和置亂矢量耦合,增加了加密系統(tǒng)的破解難度,但其使用的是一維Logistic映射,擬平凡密鑰存在,安全性不高;文獻(xiàn)[7]提出的像素位置比特位雙重置亂算法,加強(qiáng)了明文與密鑰的關(guān)系,提高了系統(tǒng)的安全性,但只使用了Kent映射,密鑰空間受到限制;文獻(xiàn)[8]提出的基于二維超混沌加密算法以及文獻(xiàn)[9]提出的先局部再整體的置亂方式,方法新穎,僅通過兩輪加密就可以得到較好的效果。
本文對(duì)文獻(xiàn)[7]的置亂方式做出一些改進(jìn),加強(qiáng)了明文和混沌系統(tǒng)初始值的關(guān)系,以及混沌序列的生成。由于當(dāng)前計(jì)算機(jī)精度有限,混沌系統(tǒng)生成的偽隨機(jī)序列會(huì)有短周期性,因此本文采用了二維超混沌與三維混沌復(fù)合的混沌加密,一方面可抵抗短周期性,另一方面增大了密鑰空間,同時(shí)提高了密鑰對(duì)明文的敏感性。經(jīng)過測(cè)試,該算法安全性較高,抗攻擊能力強(qiáng)。
本文選用的是二維超混沌系統(tǒng),即Kawakami超混沌系統(tǒng)[10],系統(tǒng)描述如下
(1)
當(dāng)系統(tǒng)的控制參數(shù)c1為0.10或0.15,d=1.60時(shí)(業(yè)內(nèi)經(jīng)驗(yàn)值),該系統(tǒng)處于超混沌狀態(tài),其相軌圖如圖1a所示。圖1b為L(zhǎng)ogistic映射的分叉圖,它的系統(tǒng)方程為xk+1=μxk(1-xk),其中,xk∈(0,1),0<μ≤4。觀察圖1a可發(fā)現(xiàn),超混沌系統(tǒng)的動(dòng)力學(xué)特性比Logistic等混沌系統(tǒng)要更加隨機(jī)、復(fù)雜且相空間大,所以,將其應(yīng)用在加密系統(tǒng)中可有效提升加密性能。
本文選用的另一個(gè)混沌系統(tǒng)是三維呂系統(tǒng)[11],它是由呂金虎及其導(dǎo)師提出的處于Lorenz混沌系統(tǒng)和Chen混沌系統(tǒng)之間的過渡系統(tǒng),系統(tǒng)方程為
(2)
由于該系統(tǒng)是連續(xù)混沌系統(tǒng),在應(yīng)用的過程中需要將其離散化。本文采用四階Rung-Kutta算法對(duì)呂系統(tǒng)進(jìn)行離散化處理。
其中:a,c2,b均為控制參數(shù),當(dāng)a=36,b=3,c2=20時(shí)(業(yè)內(nèi)經(jīng)驗(yàn)值),系統(tǒng)呈現(xiàn)混沌狀態(tài),設(shè)定(x,y,z)的起始迭代值分別為(12,12,12)(根據(jù)相空間范圍選取),并設(shè)定步長(zhǎng)h=0.001(業(yè)內(nèi)實(shí)驗(yàn)值),仿真實(shí)驗(yàn)得到其相軌圖如圖2所示。由圖2可見x∈(0,40),y∈(-40,40),z∈(-30,30),說明了多維混沌系統(tǒng)的相空間大,拓?fù)浣Y(jié)構(gòu)復(fù)雜,將其應(yīng)用于加密系統(tǒng)能夠有效提高系統(tǒng)的安全性[12]。
圖1 系統(tǒng)映射圖Fig.1 System mapping
圖2 呂系統(tǒng)相軌圖Fig.2 The phase portrait of the LV system
基于混沌的圖像加密算法主要由像素置換和灰度擴(kuò)散兩部分組成。假設(shè)加密的圖像尺寸為M行N列,即大小為M×N,記第i行第j列的像素值為pi,j。
像素置換即通過特定操作打亂圖像的像素矩陣,改變其原有的排列方式,進(jìn)而減弱圖像內(nèi)部像素之間的相關(guān)性,使圖像呈現(xiàn)出類似噪聲的狀態(tài),視覺上無法辨認(rèn)。置換算法設(shè)計(jì)如下。
1) 通過明文像素值控制產(chǎn)生Kawakami系統(tǒng)的初始值X0和Y0,計(jì)算明文圖像的像素值之和,前半部分之和記為S1,后半部分之和記為S2,然后通過式(3)進(jìn)行歸一化處理,超混沌系統(tǒng)初始值產(chǎn)生完成。
(3)
2) 計(jì)算混沌系統(tǒng)的預(yù)迭代次數(shù)N0為
N0=1000+mod(S2,500)>。
(4)
(5)
對(duì)兩組序列進(jìn)行改造,則兩組混沌序列均屬于[0,255]。
4) 同時(shí)選取上述兩組混沌序列的第K1,K2,K3次迭代值,然后通過
(6)
計(jì)算產(chǎn)生呂混沌系統(tǒng)初始值。式中:K1,K2,K3的值可自由設(shè)定,但必須滿足K1,K2,K3均屬于[1,M×N],且w1+w2=1;PK1,PK2,PK3為明文圖像的第K1,K2,K3個(gè)像素值。
5) 通過
i′=i+mod((Xi+Yi),M×N-i)
(7)
Pi′=Pi>
(8)
進(jìn)行置換操作,并記生成的置換圖像序列為Si(i=0,1,2,…,M×N-1)。
1) 設(shè)定呂混沌系統(tǒng)的控制參數(shù)a,b,c2,初始值Xbgn,Ybgn,Zbgn,先迭代N0次,再迭代M×N次,得到3組未經(jīng)處理的混沌序列,然后根據(jù)
(9)
t=mod(Pi,3)
(10)
完成對(duì)混沌序列的改造和重新排列,記最終形成的3組混沌序列為L(zhǎng)xi,Lyi,Lzi(i=0,1,2,…,M×N-1)。
如果t=0,則分別將(bi 1,bi 2,bi 3)放入(Lxi,Lyi,Lzi)中;如果t=1,則分別將(bi 1,bi 2,bi 3)放入(Lyi,Lzi,Lxi);如果t=2,則分別將(bi 1,bi 2,bi 3)放入(Lzi,Lyi,Lxi)中,重復(fù)此過程,完成對(duì)3組混沌序列的構(gòu)造。
2)記最終密文序列為Ci(i=0,1,2,…,M×N-1),中間密文序列為Mi(i=0,1,2,…,M×N-1)。根據(jù)
Mi=Lyi⊕mod((Lxi+Si),256)⊕Mi-1
(11)
Ci=Mi⊕mod((Lzi+Pi),256)⊕Ci-1>。
(12)
完成像素替換和擴(kuò)散。
當(dāng)加密第一個(gè)像素時(shí),取Mi-1=M0,Ci-1=C0,M0,C0自定義,且取值范圍均為[0,255]。
重復(fù)上述過程T次,完成整個(gè)加密過程。
解密即將密文圖像恢復(fù)成原圖的過程,與加密過程相反,需先進(jìn)行替換和擴(kuò)散逆操作,再進(jìn)行置換逆操作,最后才能得到原始像素值,恢復(fù)原圖。
1) 通過
Mi=Ci⊕(Lzi+Pi)⊕Ci-1
(13)
Si=Mi⊕Lyi⊕Mi-1+256-Lxi>
(14)
得到Si。
2) 通過式(7)、式(8)得到原始像素。值得注意的是,解密過程是加密過程的逆序,不僅是算法流程,而且像素處理也需要從圖像的最后一個(gè)像素開始。
一個(gè)安全加密系統(tǒng)必須能夠抵抗基于統(tǒng)計(jì)分析的攻擊?;叶戎狈綀D是反映圖像統(tǒng)計(jì)信息的有力工具,加密后圖像的灰度直方圖分布越均勻則加密效果越好。
信息是用來消除隨機(jī)、不確定的東西,信息熵則是對(duì)信息的一種度量方式,越大則隨機(jī)性越好。對(duì)于任意的隨機(jī)信號(hào)m,其信息熵定義如式(15)所示,單位bit,即
(15)
式中:N表示圖像像素特征的總個(gè)數(shù),這里N=28,即256;p(mi)指mi在信息源中出現(xiàn)的概率。信息源隨機(jī)性越好,則H(m)的值越接近lbn。
相鄰像素相關(guān)性反映了圖像中相鄰灰度值之間的關(guān)聯(lián)強(qiáng)度,加密的目的便是弱化其相關(guān)程度,主要包括水平、垂直和對(duì)角線3個(gè)方向。
相關(guān)性系數(shù)的算式為
(16)
(17)
式中:xi,yi為相鄰的灰度值;N為相鄰像素對(duì)的對(duì)數(shù);E(x)為像素均值;D(x)為方差;cov(x,y)為協(xié)方差。
差分分析雖然對(duì)數(shù)據(jù)量的要求比較高,但卻是一種行之有效的攻擊方法。破解思路是對(duì)特定區(qū)域像素值做出細(xì)微改變,分析改變前后密文之間的關(guān)系,以期望得到與密碼相關(guān)的有用信息。為了抵抗此類攻擊,需要密碼系統(tǒng)能夠在明文即使只變化一個(gè)像素值時(shí)也能產(chǎn)生雪崩效應(yīng),即算法的抗差分能力要強(qiáng),一般通過像素變化率(NPCR)和灰度平均變化強(qiáng)度(UACI)來評(píng)判。它們的理想值分別為99.609 4%和33.463 5%。其計(jì)算方法為
(18)
(19)
式中,C(i,j)和C′(i,j)為兩幅只有一個(gè)像素值不同的明文圖像,當(dāng)C(i,j)=C′(i,j)時(shí),D(i,j)=0,反之D(i,j)=1。
任何安全可靠的加密算法,密鑰都需要具備大空間和強(qiáng)敏感性的特點(diǎn)。密鑰空間的大小能夠增大窮舉法攻擊的難度;強(qiáng)敏感性是對(duì)密鑰唯一性的衡量。只有兩個(gè)特點(diǎn)都具備,才能保證加密系統(tǒng)的安全性。
實(shí)驗(yàn)圖像為8位256色的Baboon圖像,其像素大小為512×512。參數(shù)設(shè)置如下:式(1)中,c1=0.10,d=1.60;式(2)中,a=36,b=3,c2=20;其他:(K1,K2,K3,M0,C0,T)= (2017,2137,2862,142,132,2),參數(shù)可自由設(shè)置,滿足第3章提出的限制條件即可。圖3中給出了Baboon置換效果和最終加密效果。由圖3c可以發(fā)現(xiàn)密文圖像在視覺上呈現(xiàn)雜亂無章的狀態(tài),類似噪聲,無法辨識(shí)。
圖3 加密效果圖Fig.3 Encryption effect
圖4分別給出了 Baboon圖像加密前后的灰度直方圖。從圖中可觀察發(fā)現(xiàn),明文在加密前像素值分布極不平坦,而加密后圖像灰度值基本上在[0,255]內(nèi)呈現(xiàn)等概率分布,說明明文的統(tǒng)計(jì)特性遭到了嚴(yán)重破壞,該加密算法能夠有效抵抗統(tǒng)計(jì)分析。
圖4 灰度直方圖Fig.4 Gray scale histogram
對(duì)于本文實(shí)驗(yàn)中的8位256色圖像,即N=256,P(mi)=1/256,根據(jù)式(15)可以計(jì)算其信息熵理想值為8。表1數(shù)據(jù)說明算法經(jīng)過較少輪次的加密,就能得到理想的信息熵值,即加密算法能夠快速有效地提升信息源的隨機(jī)性;同時(shí),從表2的對(duì)比分析中可以發(fā)現(xiàn),本文算法的信息熵略高于其他幾個(gè)算法,更加接近理想值,因此本文算法的性能更佳。
表1 圖像信息熵
表2 信息熵對(duì)比
密文相鄰像素之間的相關(guān)性越低,則加密圖像越安全。實(shí)驗(yàn)中隨機(jī)采集了明密文在水平、垂直和對(duì)角線3個(gè)方向上的5000對(duì)相鄰像素值,表3是根據(jù)式(16)計(jì)算得到的3個(gè)方向的ρxy,反映出未加密圖像的相鄰像素高度相關(guān),而密文圖像則降低到了10-2以下,相關(guān)性極低。圖5給出了明密文3個(gè)方向上的相鄰像素相關(guān)性圖,可以發(fā)現(xiàn)明文相鄰像素之間大致呈現(xiàn)線性相關(guān),而密文相鄰像素則呈離散分布狀態(tài)。表4中的對(duì)比分析表明了本文算法的安全性比一般算法要好。
表3 相關(guān)性系數(shù)
圖5 相鄰像素相關(guān)性系數(shù)Fig.5 Correlation of two adjacent pixels of plaintext and ciphertext
表4 相關(guān)性系數(shù)對(duì)比
NPCR和UACI揭示了算法對(duì)明文的敏感性,表5數(shù)據(jù)說明算法在明文即使只發(fā)生微小變化時(shí),也能夠快速有效地影響全部密文,使整體密文數(shù)據(jù)均產(chǎn)生巨大變化。對(duì)比文獻(xiàn)[2]、文獻(xiàn)[6]、文獻(xiàn)[9],從表6可看出本文算法對(duì)明文的敏感性更強(qiáng),即算法具有較強(qiáng)的抗差分攻擊能力,密文安全能夠得到有效保障[12]。
表5 NPCR和UACI
表6 NPCR和UACI的對(duì)比
4.5.1 密鑰空間分析
根據(jù)算法設(shè)計(jì)密鑰可設(shè)定為:Kawakami系統(tǒng)(c1,d),呂系統(tǒng)(a,b,c2)以及(K1,K2,K3,M0,C0,T)等,密鑰空間約為10220以上,能夠有效抵抗攻擊者類似窮舉的攻擊[12]。
4.5.2 密鑰敏感性分析
一個(gè)安全的加密系統(tǒng)需要對(duì)明文和密鑰都具備強(qiáng)敏感性。實(shí)驗(yàn)中在呂混沌系統(tǒng)的控制參數(shù)c2分別為20和20+10-14,其他密鑰保持一致的情況下,加解密256×256的 Baboon圖像,得到圖6b的結(jié)果,解密圖像完全混亂,一片噪點(diǎn)。設(shè)定加解密參數(shù)完全一致時(shí)才能得到圖6a的原始圖像。
實(shí)驗(yàn)中一并測(cè)試了上述密鑰加密相同明文圖像,得到密文之間的NPCR和UACI。本文算法的上述值分別為0.996 4和0.334 3,因此本文算法對(duì)密鑰是否準(zhǔn)確極其敏感,微小差別也不能容忍,安全性較高。
圖6 解密圖Fig.6 Decryption images
實(shí)驗(yàn)設(shè)備為臺(tái)式電腦。CPU配置為AMD A8-6500 4.00 GiB 3.50 GHz;軟件為Visual Studio 2010;編程語言為C + +與Halcon混合編程。為了得到較為準(zhǔn)確的數(shù)據(jù),實(shí)驗(yàn)中對(duì)不同的圖像(像素大小均為256×256)進(jìn)行加密,并與該領(lǐng)域的其他算法進(jìn)行對(duì)比分析。從表7中可以發(fā)現(xiàn)本文算法效率得到一定改善,但并非特別顯著,主要原因在于選擇的混沌系統(tǒng),超混沌和多維混沌在迭代速率上稍慢,在算法總體耗時(shí)中占了較大比例。因此,選擇合適的混沌系統(tǒng)對(duì)加密算法影響很大,不同混沌系統(tǒng)特點(diǎn)不一,利用其優(yōu)點(diǎn)避其缺點(diǎn),才能設(shè)計(jì)出更加安全高效的加密算法。
表7 加密時(shí)間對(duì)比
圖像在傳輸過程中極易受到噪聲污染,為了檢測(cè)算法的抗噪能力,在加密過程中對(duì)face(256×256)圖片加入了高斯噪聲(標(biāo)準(zhǔn)差為20)和椒鹽噪聲(15%),然后進(jìn)行解密,解密結(jié)果如圖7所示。從圖中可以發(fā)現(xiàn),即使在傳輸過程中圖像受到了污染,也能夠恢復(fù)圖像的整體信息,不影響其整體感知,因此該算法具有一定的抗噪聲能力。
圖7 加入噪聲與無噪聲解密圖Fig.7 Decryption of noise-added image and original image
本文提出的Kawakami超混沌與三維呂混沌復(fù)合的圖像加密算法,置換過程相比傳統(tǒng)算法做出了較大改進(jìn),參數(shù)設(shè)置更加隨機(jī)和復(fù)雜,增強(qiáng)了明密文之間、置換和替換之間的相互影響強(qiáng)度,使得算法的擴(kuò)散效應(yīng)更好。實(shí)驗(yàn)仿真表明,本文提出的復(fù)合算法充分利用兩種混沌系統(tǒng)的優(yōu)點(diǎn),也一定程度地規(guī)避其缺點(diǎn),使其能夠有效地抵抗各種攻擊,安全性能夠得到較好的保障,但是在相關(guān)性和加密效率上改進(jìn)并不顯著,算法設(shè)計(jì)還可進(jìn)一步優(yōu)化??傮w來說,本文設(shè)計(jì)的算法比大部分的同類算法性能要優(yōu)異,具有較好的應(yīng)用前景和使用價(jià)值。