田佳鷺,鄧立國(guó)
(沈陽(yáng)師范大學(xué)數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院,遼寧 沈陽(yáng) 110034)
隨著信息化時(shí)代的高速發(fā)展,人們?nèi)找嬷匾晫?duì)敏感信息的保護(hù)。圖像信息在數(shù)據(jù)傳輸過(guò)程中扮演著十分重要的角色。圖像信息包含了大量的隱私信息,使得圖像加密技術(shù)的重要性逐漸凸顯。傳統(tǒng)圖像加密算法將加密技術(shù)和隱藏技術(shù)相結(jié)合,以提高算法的安全性。通過(guò)改變明文圖像的像素值或置亂其像素位置進(jìn)行加密,可以有效增加機(jī)密信息被攻破的難度。傳統(tǒng)的DES(data encryption standard,DES)算法[1]、AES(advanced encryption standard,AES)算法[2]等通常被用來(lái)加密一維文本數(shù)據(jù),不適用于加密二維圖像數(shù)據(jù)。因此,高效的混沌加密系統(tǒng)被提出。它利用混沌序列所獨(dú)有的初值敏感性、偽隨機(jī)性等特點(diǎn)對(duì)圖像進(jìn)行置亂和擴(kuò)散處理,降低了圖像中信息的相關(guān)程度,從而達(dá)到加密的效果。本文基于超混沌系統(tǒng)提出了一種將像素置亂和像素替換相結(jié)合的圖像加密方法。該方法經(jīng)檢驗(yàn),具有良好的圖像保密效果,并且在保證算法可靠性的同時(shí)簡(jiǎn)化了系統(tǒng)的復(fù)雜程度。
混沌現(xiàn)象是一種發(fā)生在確定系統(tǒng)中,貌似有序但實(shí)則無(wú)序的偽隨機(jī)性運(yùn)動(dòng)[1]。它具有的特征如下。
1)初值敏感性較高。初始條件的任何細(xì)微變化,都會(huì)伴隨著算法演變出巨大的差異[2]。
2)混迭特性?;煦缦到y(tǒng)的運(yùn)動(dòng)軌跡能有效識(shí)別其中的每一個(gè)狀態(tài),使有界區(qū)域中的每一個(gè)點(diǎn)都被遍歷到。
3)普適特性。當(dāng)混沌系統(tǒng)經(jīng)過(guò)迭代過(guò)程趨于混沌狀態(tài)時(shí),會(huì)出現(xiàn)某類特征保持相對(duì)不變,可用于替代一般情況中的空間或時(shí)間周期性。
4)有序性。混沌現(xiàn)象的軌跡會(huì)呈現(xiàn)出異常復(fù)雜的運(yùn)動(dòng)模式,但在偽隨機(jī)運(yùn)動(dòng)中卻表現(xiàn)出驚人的確定性,因此具有長(zhǎng)期穩(wěn)定而局部不穩(wěn)定的特點(diǎn)[3]。
由于混沌系統(tǒng)能夠更好地起到隱藏信息的作用,因此,當(dāng)今的大部分信息加密算法選擇將混沌理論和圖像加密技術(shù)相結(jié)合,算法的基本思路一般為“置亂—擴(kuò)散—替換”?;煦缦到y(tǒng)的偽隨機(jī)性以及自帶的自擴(kuò)散性使其在置亂和擴(kuò)散過(guò)程中充分發(fā)揮了優(yōu)勢(shì)。圖像的像素置亂是為了降低相鄰信息的相關(guān)程度,常通過(guò)改變像素的空間位置來(lái)實(shí)現(xiàn)。像素替換則是利用將偽隨機(jī)數(shù)序列與原始像素值相計(jì)算,來(lái)改變像素值的大小,進(jìn)而打破像素間的統(tǒng)計(jì)規(guī)律[4]。
常見(jiàn)的圖像加密離散混沌系統(tǒng)包括二維Logistic 映射、Henon 混沌映射和三維Lorenz 映射系統(tǒng)等。這些系統(tǒng)的維數(shù)較低,密鑰空間較小,保密性能不強(qiáng)。本文采用的五階細(xì)胞神經(jīng)網(wǎng)絡(luò)(cellular neural network,CNN)超混沌系統(tǒng),相比于一般混沌系統(tǒng)其敏感性更強(qiáng),復(fù)雜性更高[5]。本文算法利用超混沌系統(tǒng)所產(chǎn)生的超混沌序列,對(duì)圖像的4 個(gè)高位平面進(jìn)行第2 次的深度加密處理,以有效保障圖像信息的安全性。
細(xì)胞神經(jīng)網(wǎng)絡(luò)(CNN)是一種結(jié)構(gòu)有規(guī)律、維數(shù)可無(wú)限擴(kuò)展的動(dòng)力學(xué)系統(tǒng)。CNN 要包含4 個(gè)以上的細(xì)胞才能成為超混沌序列。細(xì)胞神經(jīng)元為CNN 的基本單位,其排列組合方式呈現(xiàn)局部連通的網(wǎng)格式,并且由權(quán)值模板來(lái)控制相鄰細(xì)胞間的關(guān)系程度[6]。此外,每個(gè)神經(jīng)元都具有輸入輸出狀態(tài),以及滿足動(dòng)力學(xué)規(guī)則的狀態(tài)。CNN 所具有的穩(wěn)定性特征在動(dòng)力學(xué)特性中表現(xiàn)得尤為突出,也因此被廣泛應(yīng)用于圖像加密、去噪、邊緣檢測(cè)等領(lǐng)域。本文算法所采用的是五階細(xì)胞神經(jīng)網(wǎng)絡(luò),如圖1 所示。
圖1 五階細(xì)胞神經(jīng)網(wǎng)絡(luò)超混沌系統(tǒng)的拓?fù)浣Y(jié)構(gòu)圖
由圖1 可知,該細(xì)胞神經(jīng)網(wǎng)絡(luò)包括25 個(gè)細(xì)胞,其中C(i,j)代表第i行第j列的1 個(gè)細(xì)胞,局部相連的細(xì)胞間通過(guò)權(quán)值模板相互聯(lián)系,不相鄰的細(xì)胞則以間接的傳遞方式來(lái)連接[7]。
CNN 的狀態(tài)方程用微分方程表示為
式中:xij(t)表示t時(shí)刻第(i,j)細(xì)胞的狀態(tài)變量;ykl(t)表示對(duì)應(yīng)輸出變量;ukl(t)表示已知外界輸入變量;Z是閾值,是網(wǎng)絡(luò)的外部輸出[8];A(i,j;k,l)為反饋權(quán)值模板,代表細(xì)胞C(k,l)與自身輸出變量ui j間的權(quán)值;B(i,j;k,l)為控制權(quán)值模板,代表細(xì)胞C(k,l)與自身輸入變量ukl間的權(quán)值[9];C為線性電容;Rx為線性電阻。
方程中的約束條件為
式中:j為細(xì)胞記號(hào);xj為狀態(tài)變量;f(xj)為細(xì)胞輸出,是一種分段線性函數(shù)形式;為閾值;aj是常量;GO和GS分別代表細(xì)胞輸出及連接狀態(tài)變量線性組合。
其中,f(xj)的表達(dá)式[10]為
式中Sjk為狀態(tài)變量間的連接權(quán)值參數(shù)。
首先,對(duì)待加密圖像采用位平面分解方法,分解出8 個(gè)名為Qn(n=0,1,2···,7)的位平面。n值越大代表位平面越高,因此Q7為最高位平面。
然后,對(duì)8 個(gè)位平面Qn(n=0,1,2,···,7)分別利用幻方變換置亂方法,進(jìn)行圖像像素置亂的預(yù)加密處理。
接著,對(duì)4 個(gè)高位平面Q7、Q6、Q5、Q4進(jìn)行第2 次深度加密處理。因?yàn)轭A(yù)加密處理后的高位平面中仍保存著大量顯著性信息,為將圖像信息更好的隱藏,所以進(jìn)行第2 次深度加密處理。其方法是將基于五階細(xì)胞神經(jīng)網(wǎng)絡(luò)超混沌系統(tǒng)所產(chǎn)生的5 個(gè)超混沌序列進(jìn)行標(biāo)準(zhǔn)化處理,再分別與4 個(gè)高位平面異或,從而達(dá)到像素替換的目的。
位平面分解的基本原理是將一幅灰度圖像分解成二進(jìn)制圖像的集合?;叶葓D像中每個(gè)像素值由8 個(gè)二進(jìn)制位組成,且灰度值非0 即1,共256 個(gè)灰度級(jí),因此將像素中的每一位提取出來(lái)可以分別組成8 個(gè)位平面。該算法將選取的灰度圖像所分解出的8 個(gè)位平面,依次編號(hào)為Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0。圖3 為位平面的分解示意圖[11]。
圖2 算法實(shí)現(xiàn)流程圖
圖3 位平面分解示意圖
圖4 為隨機(jī)選取的灰度圖像的相應(yīng)位平面分解圖??梢钥闯?,第7 個(gè)、第6 個(gè)、第5 個(gè)、第4 個(gè)高位平面均包含了原始圖像中的大部分信息,而低位平面的第3 個(gè)、第2 個(gè)、第1 個(gè)、第0 個(gè)則包含了較少的圖像信息,可看作是隨機(jī)噪聲。由于每個(gè)平面所包含的信息量不同,為更好地隱藏信息,本文算法分別采用不同的方式來(lái)處理高位平面與低位平面。
圖4 灰度圖像的位平面分解
幻方矩陣A[12]如式(7)所示,式中的元素為1至n2的自然數(shù),并按式(8)的規(guī)律排列組成。
式(8)表示矩陣中每行元素的累加和、每列元素的累加和,以及2 條對(duì)角線上元素的累加和都相等,證明該矩陣是幻方矩陣?;梅阶儞Q的置亂方法是在幻方矩陣與加密圖像矩陣像素一一對(duì)應(yīng)的基礎(chǔ)上,對(duì)像素位置進(jìn)行調(diào)整的方法。假定有n階明文數(shù)字圖像方陣B、n階幻方矩陣A[12],其變換過(guò)程具體如下。
1)將幻方矩陣A中由自然數(shù)組成的元素值,與明文圖像矩陣B中的像素值一一對(duì)應(yīng);
2)將矩陣A中標(biāo)號(hào)為m的 元素移動(dòng)至標(biāo)號(hào)為mmod(n×n)+1的元素位置上,其中m∈{1,2,···,n},再將矩陣A中標(biāo)號(hào)為n的 元素移動(dòng)到標(biāo)號(hào)為1 的元素位置;
3)隨著矩陣A中元素位置的移動(dòng),矩陣B中的元素位置也將做相應(yīng)的調(diào)整。
當(dāng)矩陣A轉(zhuǎn)變成A1,矩陣B轉(zhuǎn)變成B1,記A1=EA,那么B1=EB,E為上述的處理變換過(guò)程,那么:
因?yàn)榛梅阶儞Q可進(jìn)行多次迭代操作,則推出公式為
為更加清晰地闡述幻方變換過(guò)程,例舉如式(11)、式(12)的變換過(guò)程,其中設(shè)n=4。
在本文算法中對(duì)8 個(gè)位平面Qn(n=0,1,2,···,7)分別利用幻方變換置亂方法,進(jìn)行預(yù)加密處理,得到8 個(gè)預(yù)加密平面,達(dá)到對(duì)圖像的像素置亂的目的。加密密鑰是8 個(gè)置亂次數(shù),即tn(n=0,1,2,···,7)。
為能更好地隱藏高位平面中的重要信息,利用五階CNN 超混沌系統(tǒng)對(duì)已經(jīng)過(guò)預(yù)加密處理的4 個(gè)高位平面Q7、Q6、Q5、Q4進(jìn)行第2 次深度加密處理,加密過(guò)程如下。
1)首先,構(gòu)建五階CNN 狀態(tài)方程。在式(6)的基礎(chǔ)之上為使其達(dá)到更好的混沌效果,且假設(shè)系統(tǒng)處于不受外界其他因素干擾的情況下[13],將參數(shù)設(shè)置為:
把參數(shù)代入式(6),可以得到五階CNN 狀態(tài)方程為式(14)。
設(shè)步長(zhǎng)h為 0.005,初始值設(shè)為x1(0)=x2(0)=x3(0)=x4(0)=x5(0)=0.1,利用龍格庫(kù)塔算法[14?15]進(jìn)行非線性常微分方程求解,得到5 個(gè)超混沌序列X1、X2、X3、X4、X5。圖5 為五階CNN 超混沌吸引子在三維空間中的表示。
圖5 五階CNN 超混沌吸引子在三維空間上的關(guān)系
2)接著,先從5 路超混沌序列中任選一路Xt(t=1,2,3,4,5),求其均值,如當(dāng)t=1 時(shí),求X1的均值,再利用均值對(duì)X2、X3、X4、X5這4 路超混沌序列進(jìn)行標(biāo)準(zhǔn)化處理,產(chǎn)生4 路二值序列量化公式為
3)最后,將先前經(jīng)過(guò)預(yù)加密處理的4 個(gè)高位平面Q7、Q6、Q5、Q4異或于4 路二值序列得到最終的加密位平面
實(shí)驗(yàn)選取大小為254×254 的灰度圖,如圖6 所示,作為加密圖像,仿真實(shí)驗(yàn)均以MATLAB2018a 為基礎(chǔ)環(huán)境進(jìn)行模擬,運(yùn)行環(huán)境為Intel(R) Core(TM)i5-10210U CPU @ 1.60 GHz 2.11 GHz,操作系統(tǒng)為Windows 10。該實(shí)驗(yàn)選取Lyapunov 指數(shù)來(lái)證明五階細(xì)胞神經(jīng)網(wǎng)絡(luò)處于混沌狀態(tài);選取直方圖顯示圖像的加密效果;選取白噪聲攻擊、高斯低通濾波攻擊以及旋轉(zhuǎn)攻擊檢驗(yàn)該算法的魯棒性;選取UACI 理論值檢驗(yàn)加密算法的敏感性;選取相關(guān)性系數(shù)分析相鄰像素間的相關(guān)性;選取信息熵來(lái)衡量數(shù)據(jù)間的無(wú)序程度。
圖6 原圖
判斷構(gòu)造的五階細(xì)胞神經(jīng)網(wǎng)絡(luò)是否處于超混沌狀態(tài)的方法通常是利用Lyapunov 指數(shù)來(lái)證明。該指數(shù)又被稱為李雅普諾夫指數(shù),屬于混沌運(yùn)動(dòng)判別中的一個(gè)重要指標(biāo)。Lyapunov 指數(shù)為正則表明該系統(tǒng)處于混沌狀態(tài),反之則亦然。當(dāng)高維相空間中存在至少2 個(gè)李雅普諾夫指數(shù)為正實(shí)數(shù)時(shí),稱這樣的系統(tǒng)為超混沌系統(tǒng)[16? 17]。Lyapunov 指數(shù)為
求本文算法中超混沌系統(tǒng)的所有Lyapunov指數(shù),結(jié)果發(fā)現(xiàn),有2 個(gè)指數(shù)是大于0 的,說(shuō)明構(gòu)造的五階細(xì)胞神經(jīng)網(wǎng)絡(luò)屬于超混沌系統(tǒng),如圖7所示。
圖7 Lyapunov 指數(shù)譜系圖
由于超混沌系統(tǒng)中所有Lyapunov 指數(shù)中至少有2 個(gè)是大于0 的,所以形成的吸引子比一般混沌系統(tǒng)要復(fù)雜的多,密鑰空間相對(duì)來(lái)說(shuō)也更大,使信息加密過(guò)程更加高效。
實(shí)驗(yàn)選取圖6 進(jìn)行加密,加密效果如圖8 所示。圖像的像素變化信息、加密效果,可以通過(guò)直方圖直觀地進(jìn)行解讀,好的加密算法會(huì)將重要信息更好地隱藏起來(lái)。如圖9 所示,可觀察出經(jīng)本文算法加密后的圖像直方圖的分布變得更加均勻,說(shuō)明信息被很好地隱藏。
將本文算法與三維Chen 映射方法[18]和二維Logistic 映射方法[19]做比較。設(shè)三維Chen 映射方法的初始狀態(tài)為x0=0.271 8、y0=0.453 6、z0=0.783 9
圖8 加密效果圖
圖9 原圖與圖像加密后的直方圖
并且這3 個(gè)值作為此次加密的密鑰,加密效果及直方圖如圖10 所示。二維的Logistic 映射的初始狀態(tài)為x0=0.361 2、y0=0.563 9,加密效果及直方圖如圖11 所示。
圖10 Chen 映射加密方法效果圖及直方圖
圖11 Logistic 映射加密方法效果圖及直方圖
對(duì)比本文算法與Chen 映射、Logistic 映射2 種加密方法的密文圖和直方圖,可以發(fā)現(xiàn)本文算法的加密直方圖分布得更均勻,說(shuō)明本文算法的加密效果相對(duì)更優(yōu)。
3.4.1 白噪聲攻擊、高斯低通濾波攻擊和旋轉(zhuǎn)攻擊
好的加密算法應(yīng)具有一定抵抗攻擊、干擾的能力,因此實(shí)驗(yàn)選取白噪聲攻擊、高斯低通濾波攻擊以及旋轉(zhuǎn)攻擊3 種攻擊方式來(lái)檢驗(yàn)本文算法的魯棒性能。白噪聲攻擊是在MATLAB 環(huán)境下利用imnoise()函數(shù)在原圖上添加白噪聲。高斯低通濾波攻擊是利用高斯低通濾波器對(duì)圖像進(jìn)行濾波處理,使圖像的頻率域受到干擾,在MATLAB 中使用imfilter()函數(shù)進(jìn)行處理。旋轉(zhuǎn)攻擊是在保持圖像大小不變的基礎(chǔ)上將圖像旋轉(zhuǎn)10°,在MATLAB中使用imrotate()函數(shù)進(jìn)行處理。
解密過(guò)程是加密方法的逆過(guò)程,即先像素替換再像素置亂。在已知加密圖像、加密密鑰的前提下,通過(guò)混沌同步運(yùn)算得到一個(gè)相同的超混沌系統(tǒng),利用生成的超混沌序列與加密圖像進(jìn)行異或運(yùn)算,實(shí)現(xiàn)初步解密,完成像素值的反替換操作;再利用幻方變換的逆變換過(guò)程實(shí)現(xiàn)像素值的反置亂操作,最終得到解密圖像。利用本文加密方法對(duì)圖像進(jìn)行加密和解密操作,得到3 種攻擊后的解密圖,如圖12 所示。
圖12 3 種攻擊后的解密圖
由圖可知,遭攻擊后的解密圖像雖存在一定的噪聲影響,但與正確解密圖像相差甚小,說(shuō)明本文算法具有一定的抗攻擊能力,具有較好的魯棒性能。
3.4.2 差分攻擊分析
差分攻擊主要是將明文中某一像素值進(jìn)行極小的修改后,再比較分析原始明文與改動(dòng)后明文加密時(shí)的傳播情況,若兩者的加密效果呈現(xiàn)出相同規(guī)律,則可通過(guò)攻擊的方式從中獲取重要信息,輕易地獲取密鑰使得信息被竊取。因此優(yōu)秀的加密算法應(yīng)對(duì)明文的任何變化極其敏感并使信息無(wú)規(guī)律可循,這樣才能有效抵抗差分攻擊。
本文通過(guò)對(duì)統(tǒng)一平均變化強(qiáng)度(UACI)的評(píng)估來(lái)說(shuō)明對(duì)明文進(jìn)行微小改變后像素的變化程度,越近似UACI 理論值33.4635%,說(shuō)明加密算法對(duì)待改變的敏感性能越好。UACI 的計(jì)算公式為
式中,W和H代表圖像的寬和高。假設(shè)2 個(gè)明文圖像中僅設(shè)置2 個(gè)像素值不同,密文圖像中第(i,j)點(diǎn)的像素值,對(duì)應(yīng)的C1(i,j)是明文加密圖像中的像素值,C2(i,j)是細(xì)微改變后的密文圖像中的像素值。利用本文加密算法和文獻(xiàn)[7]、文獻(xiàn)[20]與文獻(xiàn)[16]的加密算法分別對(duì)圖像進(jìn)行加密,計(jì)算UACI 值,其結(jié)果如表1 所示。由表可知,本文算法的UACI 值最接近理論值,其敏感性最強(qiáng),能較好地抵御差分攻擊。
表1 4 種算法的UACI 值%
3.5.1 圖像相鄰像素的相關(guān)性分析
為有效抵御外部攻擊,加密后像素間的相關(guān)性應(yīng)降低。本文利用圖像相鄰像素間的相關(guān)性系數(shù)rx,y,來(lái)驗(yàn)證算法對(duì)重要信息的保密程度[20]。相關(guān)性系數(shù)的取值范圍為[?1,1],其絕對(duì)值越大越接近1,則像素間的相關(guān)程度越大,信息越容易泄露,其絕對(duì)值越接近0,信息的相關(guān)程度越低,對(duì)圖像的保密程度越好,安全性能更高。相關(guān)性系數(shù)的計(jì)算公式為
式中:xi,yi是一對(duì)相鄰像素值;N是像素對(duì)數(shù)。本文分別從垂直、水平和對(duì)角線3 個(gè)方向隨機(jī)選取3000對(duì)相鄰像素對(duì)進(jìn)行測(cè)試,比較本文算法與文獻(xiàn)[7]一種新三維混沌動(dòng)力系統(tǒng)的加密方法、文獻(xiàn)[20]一種相鄰像素間比特置亂加密算法以及文獻(xiàn)[16]基于Lorenz 混沌系統(tǒng)加密算法的相關(guān)性系數(shù),其結(jié)果如表2 所示。由表可知,本文算法能較好地去除相鄰像素間的相關(guān)性,提高了對(duì)信息的保護(hù)能力。
表2 圖像相鄰像素間相關(guān)性系數(shù)
3.5.2 圖像信息熵分析
圖像信息熵描述了像素灰度分布的聚集特征和空間特征所包含的信息量。信息熵可以用來(lái)衡量數(shù)據(jù)間的無(wú)序程度,圖像信息的內(nèi)部結(jié)構(gòu)越混亂則加密效果越好,對(duì)應(yīng)的信息熵也就越大。信息熵的計(jì)算公式為
式中:si為灰度值;p(si)表示si的發(fā)生概率。
計(jì)算圖像信息熵的過(guò)程是首先遍歷圖像矩陣,統(tǒng)計(jì)矩陣中每個(gè)灰度值si的出現(xiàn)概率,接著利用式(19)計(jì)算灰度值的總期望值,該結(jié)果即為圖像信息熵。
表3 示出利用Arnold 置亂、Logistic 映射和Chen 映射以及本文算法等4 種加密算法處理后的的信息熵計(jì)算結(jié)果。由表可知,本文算法較其他3 種映射系統(tǒng)的信息熵更大,因此,本文算法的加密效果更好。
表3 4 種加密算法處理圖像后的信息熵結(jié)果
信息隱藏作為信息安全保密的重要手段,已然成為人們研究的重點(diǎn)方向。其中,圖像隱藏技術(shù)通常先對(duì)保密圖像進(jìn)行加密預(yù)處理操作,再進(jìn)行更加深度的信息隱秘操作。本文提出的加密算法結(jié)合像素置亂和像素替換2 種處理方式,并利用位平面分解技術(shù)、幻方變換置亂方法以及五階CNN 超混沌系統(tǒng)來(lái)實(shí)現(xiàn)對(duì)灰度圖像的加密操作。通過(guò)仿真實(shí)驗(yàn),對(duì)加密直方圖、密文圖、像素相關(guān)性、魯棒性及敏感性等方面進(jìn)行了分析,其結(jié)果表明,本文算法較其他加密算法具有更好的加密性能。今后還將對(duì)該算法進(jìn)行優(yōu)化,繼續(xù)提高該算法的抗攻擊性,使其更加高效完善。