安守楠,呂 翔
(1.中北大學(xué)軟件學(xué)院,山西 太原 030051;2.山西中醫(yī)藥大學(xué))
為了保證數(shù)字圖像在傳輸中的安全性,對圖像加密十分重要。最常用的加密都是采用置亂-擴散的方法。數(shù)字置亂是通過特定的技術(shù)打亂原圖中的像素位置,使其在視覺上變得雜亂無章可循,而擴散則是不改變像素的位置,對像素值進(jìn)行改變,達(dá)到加密的目的。常見的置亂方法有Arnold變換[1]、幻方變換[8]、仿射變換等,但是其實現(xiàn)都較為復(fù)雜,安全性較低。
本文采用Zig-Zag變換[15]圖像加密方案,有實現(xiàn)簡單,復(fù)雜度低,密鑰周期大的特點,Zig-Zag變換廣泛運用于圖像加密方案中。
混沌系統(tǒng)的初值與參數(shù)極端敏感性、非周期性和長期演化軌道不可預(yù)測性等特性與圖像加密系統(tǒng)的密鑰敏感性、密文呈噪聲特性和明文敏感性相對應(yīng)。文獻(xiàn)[3]對Logistic混沌加密系統(tǒng)進(jìn)行改進(jìn),引進(jìn)兩個與明文相關(guān)的密鑰,提高了安全性。文獻(xiàn)[4]對圖像從里到外不同范圍的各層進(jìn)行Arnold變換,使得層與層之間的置亂相互干擾,達(dá)到打亂Arnold周期性的目的,然后采用斜帳篷映射,對像素值進(jìn)行擴散。文獻(xiàn)[15]利用Zig-Zag變換對彩色圖像進(jìn)行預(yù)處理,增強加密效果;在此基礎(chǔ)上,利用Zig-Zag變換對預(yù)處理后的3個通道進(jìn)行像素位置的置亂;對三維Logistic混沌序列進(jìn)行多次處理,實現(xiàn)多次擴散,提高了加密效率和安全性。
基于以上的分析,在對標(biāo)準(zhǔn)Zig-Zag變換改進(jìn)的基礎(chǔ)上,提出Logistic混沌與改進(jìn)Zig-Zag變換的圖像加密方案。首先將標(biāo)準(zhǔn)Zig-Zag進(jìn)行改進(jìn),利用改進(jìn)后的Zig-Zag[10]變換對圖像進(jìn)行置亂,然后采用Logistic混沌系統(tǒng)[3]產(chǎn)生混沌序列,轉(zhuǎn)化為混沌矩陣,為了達(dá)到更好的效果,最后將置亂矩陣與混沌矩陣進(jìn)行像素值融合,最終得到加密圖像。
Zig-Zag[15]是一種掃描置亂的方法。標(biāo)準(zhǔn)的Zig-Zag變換是從圖像的左上角元素開始掃描,使其按照“Z”字形向下掃描,獲得一維序列,并按照一定方式轉(zhuǎn)換成二維矩陣。但標(biāo)準(zhǔn)Zig-Zag變換僅限于方陣中,而且有些元素位置始終不變,適用性不強,所以對其進(jìn)行改進(jìn)。如圖1所示。從圖1可以看出,1,2,15,16的位置沒有發(fā)生改變,為了達(dá)到更好的置亂效果,對其進(jìn)行改進(jìn),改進(jìn)后的Zig-Zag變換從右下角開始掃描,按照“Z”字形向上掃描,可以使每個元素的位置發(fā)生改變,不僅適合于方陣,還適合于矩陣。如圖2所示。從圖2可以看出,所有元素的位置都發(fā)生了改變。
圖1 標(biāo)準(zhǔn)Zig-Zag
圖2 改進(jìn)后的Zig-Zag
在ZigZag變換過程中,由于矩陣中元素個數(shù)有限確定,所以經(jīng)過有限次Zig-Zag變換后一定可以回到原始狀態(tài),即Zig-Zag變換具有周期性。不同維數(shù)方陣的Zig-Zag如表1所示,由表 1中可見,Zig-Zag變換擁有更大的密鑰周期。
表1 不同維數(shù)矩陣Zig-Zag變換周期
一維Logistic[16]是目前研究最為廣泛的一種混沌映射,其表達(dá)式如式⑴所示:
式中x(0)∈(0,1)為初始值,μ∈(3.5699,4]時,系統(tǒng)處于混沌狀態(tài)。
設(shè)原始圖像I的大小為M*N,G(x,y)表示圖像I在點(x,y)處的像素灰度值,G'(x,y)表示為加密后的圖像在點(x,y)處的像素灰度值。
步驟1將原始圖像I進(jìn)行Zig-Zag變換,次數(shù)為p,得到一維序列L,將其按照行優(yōu)先的順序轉(zhuǎn)換成二維矩陣A,A的大小為M*N;
步驟2計算圖像的像素值總和sum,進(jìn)行式⑵的處理,給定參數(shù)μ,將x(0)和u作為Logistic混沌系統(tǒng)的初始值,迭代式⑴產(chǎn)生混沌序列長度為M*N的混沌序列c(i),迭代次數(shù)為q,對混沌序列中的每個元素進(jìn)行式⑶的處理,使序列內(nèi)的每個元素都取值于0-255之間。得到序列c'(i)。
步驟3將序列c'(i)按照行優(yōu)先的順序轉(zhuǎn)換成二維矩陣N,矩陣N的大小為M*N。
步驟4將二維矩陣A和二維矩陣N對應(yīng)位置按照式⑷進(jìn)行像素值的融合運算,得到加密矩陣I',即為加密圖像。
加密過程如圖3所示:
圖3 加密過程
圖像解密即為加密的逆過程,過程如圖4所示。
圖4 解密過程
解密過程首先根據(jù)密鑰x(0),μ將式⑴迭代q次,產(chǎn)生混沌序列,對混沌序列進(jìn)行式⑵⑶的處理得到混沌矩陣,將密文矩陣與混沌矩陣進(jìn)行像素值的融合,得到變換絕陣,對變換矩陣進(jìn)行p次的Zig-Zag反變換,得到原始圖像。
本文選取了大量的大小為256*256的灰度圖像進(jìn)行測試,這里給出經(jīng)典圖像lena的加密結(jié)果作為代表,本次實驗環(huán)境是Inter(R)Core(TM)i3CPU,內(nèi)存為2GB,64位windows7操作系統(tǒng)的PC機,MATLAB2014a,取u=3.7,p=2,q=500,x(0)由計算所得,圖5(a)表示原始圖像,圖5(b)表示加密圖像。
圖5 實驗結(jié)果
具備足夠大的密鑰空間是一個機密系統(tǒng)加密性能強大的必備條件,本文的密鑰有sun,μ,p,q,計算精度按10-15計算,則密鑰空間 k=1015*4=1060≈2180,能夠有效抵抗窮舉攻擊。
密文特性通常通過直方圖表示出來,圖像直方圖越均勻,表示密文統(tǒng)計特性越好,加密效果越好,實驗結(jié)果如圖6所示。圖6(a)表示原始圖像直方圖,圖6(b)表示加密圖像直方圖。
圖6
明文圖像由于其畫面連貫性強,相鄰像素的像素值一般比較接近或者相同,存在很強的相關(guān)性。攻擊者將此作為一個重要的突破口,所以加密后的圖像相關(guān)性越低說明加密效果越好。本文隨機選取明文圖像和密文圖像相鄰的2000對像素灰度值進(jìn)行比較,計算公式如⑸所示,其中x,y表示相鄰像素的灰度值,Rxy為相鄰兩個像素相關(guān)系數(shù)。其相關(guān)系數(shù)表述如表⑵所示。
由公式⑸可以得出表⑵中的數(shù)據(jù),說明加密能夠破壞其相關(guān)性。
表2 相關(guān)系數(shù)
信息熵反映了圖像信息的不確定性,一般認(rèn)為,信息熵越大,不確定性越大(信息量越大),可視信息越少。信息熵的計算公式如下所示:
這里,L為圖像的灰度等級數(shù),p(i)表示灰度值i出現(xiàn)的概率。對于L=256的灰度值圖像,信息熵的理論值為8。通過計算得到本文加密圖像的信息熵值為7.999383,接近于理論值(即8),而明文圖像的信息熵與理論值有明顯差別。
本文在對已有的標(biāo)準(zhǔn)Zig-Zag變換的基礎(chǔ)上,對其進(jìn)行改進(jìn),提出了基于混沌序列與改進(jìn)Zig-Zag變換的圖像加密算法,算法基于置亂-擴散的思想,首先將標(biāo)準(zhǔn)Zig-Zag進(jìn)行改進(jìn),利用改進(jìn)后的Zig-Zag變換對圖像進(jìn)行置亂,然后采用Logistic混沌系統(tǒng)產(chǎn)生混沌序列,轉(zhuǎn)化為混沌矩陣,為了達(dá)到更好的效果,最后將置亂矩陣與混沌矩陣進(jìn)行像素值融合,得到加密圖像,實驗證明效果良好。
參考文獻(xiàn)(References):
[1]李春虎,羅光春,李春豹.基于斜帳篷混沌映射和Arnold變換的圖像加密方案[J].計算機應(yīng)用研究,2018.11:1-2
[2]湯任君,段競哲,鄧洪敏.Logistic混沌序列和DES算法的圖像加密方法[J].計算機應(yīng)用,2017.37(S1):89-92
[3]廖雪峰.基于Logistic混沌系統(tǒng)的圖像加密算法分析與改進(jìn)[J].軟件導(dǎo)刊,2017.16(5):39-41
[4]謝國波,蘇本卉.基于Arnold分層循環(huán)變換的數(shù)字圖像加密算法[J].計算機工程與設(shè)計,2017.38(5):1200-1204
[5]劉會.改進(jìn)Arnold變換的量子圖像加密系統(tǒng)[D].華中師范大學(xué)碩士學(xué)位論文,2017.
[6]兀旦暉,鄭恩讓.基于混沌Logistic和Arnold二次加密的圖像水印算法研究[J].計算機測量與控制,2017.25(4):193-196
[7]朱淑芹,李俊青.一種混沌圖像加密算法的選擇明文攻擊和改進(jìn)[J].計算機工程與應(yīng)用,2017.53(24):113-121
[8]葉滿珠,廖世芳,王新芳.基于幻方變換的圖像置亂新算法[J].自動化與儀器儀表,2016.2:216-218
[9]朱寧.Arnold加密算法改進(jìn)[D].山東大學(xué)碩士學(xué)位論文,2012.
[10]楊玉琴,蔣天發(fā),劉艮.基于擴展Zig-zag變換的數(shù)字圖像置亂方法[J].信息網(wǎng)絡(luò)安全,2011.11:57-58,67
[11]何冰.基于仿射變換的圖像置亂改進(jìn)新算法[J].計算機與數(shù)字工程,2011.39(3):121-124
[12]鄭文斌.基于Zig-Zag掃描的空域圖像置亂新算法[J].計算機工程與科學(xué),2009.31(7):50-52
[13]冀汶莉,張敏瑞,靳玉萍,黃興.基于Zigzag變換的數(shù)字圖像置亂算法的研究[J].計算機應(yīng)用與軟件,2009.26(3):71-73,87
[14]胡春杰,陳曉,陳霞.基于改進(jìn)廣義Arnold映射的多混沌圖像加密算法[J].包裝工程,2017.38(3):144
[15]李玉珍,金鑫,趙耿,李曉東,田玉露,王子亦.基于Zigzag變換與混沌的彩色圖像加密方案[J].計算機工程與設(shè)計,2016.37(8):2002-2006
[16]張永紅,張博.基于Logistic混沌系統(tǒng)的圖像加密算法研究[J].計算機應(yīng)用研究,2015.32(6):1770-1773