黃佳鑫,趙凱悅,李佳文,李珊珊
(長(zhǎng)安大學(xué)信息工程學(xué)院,西安 710064)
醫(yī)學(xué)、生物特征、個(gè)人、衛(wèi)星圖像等內(nèi)容常含有機(jī)密信息,當(dāng)這些載體通過(guò)公開(kāi)信道進(jìn)行傳輸時(shí),容易被非法竊聽(tīng)獲取,造成機(jī)密信息泄露。圖像加密通過(guò)一定的運(yùn)算來(lái)隱藏視覺(jué)信息,保證信息安全,使得非法用戶無(wú)法得到圖像內(nèi)容,接收方通過(guò)解密密鑰可以獲得圖像的全部?jī)?nèi)容,是保護(hù)圖像安全中最常用的途徑[1]。
20世紀(jì)90年代開(kāi)始,許多學(xué)者開(kāi)始研究圖像加密理論[1]。圖像加密可分為基于傳統(tǒng)方法、空間域、混沌系統(tǒng)、壓縮感知等方法[2-3]。DES(date encryption standard)、AES(advanced encryption standard)等傳統(tǒng)加密技術(shù)主要是針對(duì)數(shù)據(jù)流進(jìn)行加密,沒(méi)有考慮到圖像相鄰像素之間的關(guān)系,加密時(shí)間復(fù)雜度高、運(yùn)算量大并且效率低[4]??臻g域中,如采用zigzag變換、約瑟夫置亂、Arnold變換、幻方排列等[5]對(duì)圖像像素置亂的技術(shù),沒(méi)有改變像素值分布即不存在擴(kuò)散步驟,存在一定的缺陷?;趬嚎s感知的圖像加密存在加密圖像視覺(jué)安全性不高和重構(gòu)圖像質(zhì)量不佳的問(wèn)題。上述加密方法存在加密算法效率低、擴(kuò)散性能不佳、解密損失信息等缺陷。
混沌系統(tǒng)具有復(fù)雜的非線性動(dòng)力學(xué)性能,良好的偽隨機(jī)特性、軌道的不可預(yù)測(cè)性以及對(duì)初始狀態(tài)和控制參數(shù)極其敏感等特征,因此混沌系統(tǒng)廣泛應(yīng)用于圖像加密、保密通信等領(lǐng)域[6]。低維混沌系統(tǒng)具有密鑰空間小和安全級(jí)別低等缺點(diǎn),由于計(jì)算機(jī)計(jì)算精度的限制,混沌系統(tǒng)會(huì)出現(xiàn)動(dòng)力學(xué)退化等現(xiàn)象[7]。常用的低維混沌系統(tǒng)包含Logistic映射、Chebyshev映射、Tent映射、Sine映射、分段線性映射、Cubic映射等[8]。高維混沌系統(tǒng)具有良好的混沌特性,但其時(shí)間復(fù)雜度較高。常見(jiàn)的高維混沌系統(tǒng)有Lorenz系統(tǒng)、Chen’s系統(tǒng)和其他超混沌系統(tǒng)[9-10]。
很多學(xué)者都研究了基于混沌系統(tǒng)的圖像加密方法。文獻(xiàn)[1]采用coupled logistic映射結(jié)合貓映射來(lái)實(shí)現(xiàn)圖像加密,并采用雙向擴(kuò)散提高加密性能。文獻(xiàn)[11]基于PWLCM(piecewise linear chaotic map)、Lorena、Chen混沌系統(tǒng),結(jié)合哈希函數(shù)、DNA(deoxyribonucleic acid)運(yùn)算實(shí)現(xiàn)加密,初始加密參數(shù)通過(guò)SHA-256(secure hash algorithm-256)運(yùn)算與明文相關(guān),提高了密鑰敏感性。文獻(xiàn)[12]提出的算法基于混沌理論、分?jǐn)?shù)傅里葉變換、DNA運(yùn)算,對(duì)圖像進(jìn)行了三次分?jǐn)?shù)階傅里葉變換和異或操作。該算法具有良好的加密效果、較大的密鑰空間和良好的密鑰敏感性。然而,相位掩碼占用了存儲(chǔ)和傳輸中的資源。文獻(xiàn)[13]使用SHA-3(secure hash algorithm-3)算法計(jì)算初始密碼的哈希值,用作混沌系統(tǒng)的初始值,使用Fisher-Yates置亂、排序置亂算法進(jìn)行了二次置亂,增強(qiáng)了置亂效果。
為了克服低維和高維混沌系統(tǒng)存在的不足,許多學(xué)者采用低維混沌系統(tǒng)級(jí)聯(lián)的方式來(lái)設(shè)計(jì)新的混沌系統(tǒng)。文獻(xiàn)[5]基于Logistic-Sine-Cosine混沌系統(tǒng)產(chǎn)生序列,利用該序列進(jìn)行了四輪置亂和擴(kuò)散,但四輪運(yùn)算會(huì)顯著地增加算法的運(yùn)行時(shí)間。文獻(xiàn)[14]提出了一種使用離散復(fù)合混沌映射LSS(logistic-sine)生成混沌S盒圖像加密算法,該算法具有突出的擴(kuò)散和混淆特性。文獻(xiàn)[15]提出一種基于余弦變換的復(fù)合混沌系統(tǒng),該方案克服了現(xiàn)有的低維混沌系統(tǒng)混沌區(qū)間不連續(xù)等缺點(diǎn),但是沒(méi)有針對(duì)彩色圖像進(jìn)行設(shè)計(jì)。文獻(xiàn)[16]基于Logistic、Sine和Tent映射構(gòu)造了新的復(fù)合混沌系統(tǒng),并基于此設(shè)計(jì)循環(huán)移位和分塊等操作實(shí)現(xiàn)加密。
除了密碼學(xué)本身的方法,其他領(lǐng)域的研究成果也拓寬了研究思路,與其他領(lǐng)域方法結(jié)合的新方案逐漸被關(guān)注。如結(jié)合約瑟夫問(wèn)題和濾波器擴(kuò)散的圖像加密算法[17],基于Mandelbrot集的條件移位的圖像加密算法[18],結(jié)合混沌系統(tǒng)和DNA運(yùn)算的圖像加密方法[19],將混沌系統(tǒng)和神經(jīng)網(wǎng)絡(luò)結(jié)合[20],將混沌系統(tǒng)和壓縮感知結(jié)合[21],將安全哈希算法和脫氧核糖核酸編碼與混沌系統(tǒng)相結(jié)合[22],結(jié)合DNA編碼與混沌系統(tǒng)[23],基于量子魔方旋轉(zhuǎn)圖像置亂的方案[24],基于一維Logistic和Sine映射耦合而來(lái)的新的二維混沌映射[25]等。
現(xiàn)設(shè)計(jì)基于Logistic-Sine-Cosine混沌系統(tǒng)的空間域無(wú)損圖像加密算法,該算法包含針對(duì)彩色圖像的Fisher-Yates置亂方案和二維異或?yàn)V波擴(kuò)散方案,在提高安全性、實(shí)時(shí)性的同時(shí)降低時(shí)間復(fù)雜度。
為保證加密系統(tǒng)的安全性和較低的時(shí)間復(fù)雜度,將Logistic映射和Sine映射作為種子映射,與Cosine映射級(jí)聯(lián),構(gòu)成Logistic-Sine-Cosine映射[15],表達(dá)式為
(1)
式(1)中:F(α,xi)、G(1-α,xi)為已知的Logistic、Sine映射;α、β為控制參數(shù),取β=-0.5得到Logistic-Sine-Cosine映射的表達(dá)式為
xi+1=cosπ[4αxi(1-xi)+(1-α)sin(πxi)-0.5]
(2)
式(2)中:α∈[0,1],xi∈(0,1)。
樣本熵、分岔圖、Lyapunov指數(shù)分析表明該混沌系統(tǒng)的性能良好[15],如圖1所示。該系統(tǒng)在定義域α∈[0,1]內(nèi)都能呈現(xiàn)出混沌狀態(tài),且輸出狀態(tài)是隨機(jī)的。
圖1 Logistic-Sine-Cosine系統(tǒng)分叉圖
Fisher-Yates置亂生成一個(gè)有限集合的隨機(jī)排列[13]。傳統(tǒng)的Fisher-Yates置亂方案將圖像轉(zhuǎn)化為一維序列進(jìn)行置亂。設(shè)計(jì)一種針對(duì)彩色圖像的三維Fisher-Yates置亂方案,對(duì)像素點(diǎn)同時(shí)進(jìn)行行、列、平面維度的置亂。該方案對(duì)矩陣A[l1,l2,l3]的具體置亂步驟如下:
(1)令i=1,j=1,k=1。
(2)生成1~l1的整數(shù)i1,生成1~l2的整數(shù)j1,生成1~l3的整數(shù)k1。
(3)交換A(i,j,k)和A(i1,j1,k1)的值。
(4)按照平面、行、列的順序執(zhí)行(2)和(3),遍歷完所有的像素點(diǎn)。
濾波是采用濾波器對(duì)圖像進(jìn)行卷積處理的圖像處理技術(shù)。濾波器是二維矩陣,其中心元素和當(dāng)前處理像素對(duì)齊,其余元素和相關(guān)的像素對(duì)應(yīng)。濾波結(jié)果是濾波器元素與對(duì)應(yīng)像素相乘再相加?,F(xiàn)在傳統(tǒng)濾波技術(shù)的基礎(chǔ)上,將異或運(yùn)算引入濾波中。
假設(shè)二階濾波器f的尺寸為a×b。對(duì)像素y(lr,lc)進(jìn)行處理得到y(tǒng)′(lr,lc),公式為
b+j)
(3)
圖2描述了濾波操作,其中y是圖像塊,y(2,2)是要處理的元素,濾波器f的尺寸是2×2。f的中心元素f(2,2)與y(2,2)異或⊕,其他元素與y(2,2)對(duì)應(yīng)的元素異或,這些異或結(jié)果相加得到濾波結(jié)果y′(2,2)。
圖2 濾波過(guò)程
采用合適的濾波器,濾波可以去除圖像中的噪聲。然而,使用不規(guī)則的濾波器,圖像濾波會(huì)使圖像模糊,故采用濾波技術(shù)來(lái)實(shí)現(xiàn)圖像加密中的擴(kuò)散操作。本方案使用二階異或?yàn)V波的方式對(duì)圖像進(jìn)行擴(kuò)散。傳統(tǒng)濾波技術(shù)不需要恢復(fù)明文像素值,將該技術(shù)應(yīng)用在圖像加密領(lǐng)域時(shí),必須存在其逆過(guò)程以保證運(yùn)算可逆。根據(jù)異或的性質(zhì),任何正整數(shù)和0異或,其值不變,故濾波過(guò)程可逆問(wèn)題可以通過(guò)設(shè)置濾波器的中心元素f(2,2)=0,其他元素為正整數(shù)來(lái)解決。
濾波過(guò)程存在邊界問(wèn)題,像素矩陣在每個(gè)平面的首行和最左邊的一列沒(méi)有足夠的像素。當(dāng)處理這些像素點(diǎn)的時(shí)候,使用對(duì)角方向上的像素來(lái)擴(kuò)充矩陣,如圖3所示,擴(kuò)充的矩陣不需要被存儲(chǔ),因此像素矩陣的尺寸不會(huì)改變。
圖3 擴(kuò)充示意圖
為了更加清晰地表示該過(guò)程,定義對(duì)像素點(diǎn)進(jìn)行濾波時(shí),像素點(diǎn)p2(lr,lc,lz)對(duì)應(yīng)的相鄰像素矩陣為T(mén),其表達(dá)式為
(4)
為了進(jìn)一步提高濾波的隨機(jī)性,在濾波器模板中引入混沌序列值,即將濾波器f中的第一個(gè)元素設(shè)置為偽隨機(jī)像素。
對(duì)像素p2(lr,lc,lz)進(jìn)行濾波,其表達(dá)式為
(5)
從相鄰像素矩陣T中可以看出,像素左上角元素已經(jīng)經(jīng)過(guò)處理,右下角元素是未經(jīng)過(guò)處理的原始像素。當(dāng)對(duì)當(dāng)前像素進(jìn)行逆運(yùn)算時(shí),矩陣T中的元素與正向處理時(shí)處于相同的狀態(tài),故式(5)是可逆的,其逆運(yùn)算表達(dá)式為。
(6)
根據(jù)式(5)和式(6)設(shè)計(jì)圖像擴(kuò)散算法。
現(xiàn)有的擴(kuò)散技術(shù)通常使用同一行或列的先前像素值來(lái)改變當(dāng)前像素。本文中的擴(kuò)散方法引入像素的鄰域像素,且濾波器模板由明文和密鑰共同決定并引入偽隨機(jī)像素值,實(shí)現(xiàn)了可變?yōu)V波器。該濾波技術(shù)可以更快的將一個(gè)像素的微小變化擴(kuò)散到所有像素,在抗差分攻擊方面表現(xiàn)出更好的性能。
根據(jù)Fisher-Yates置亂和濾波器擴(kuò)散的原理,提出了一種基于置亂-擴(kuò)散框架的圖像加密方案。該方案由兩部分組成,分別是Fisher-Yates置亂和濾波器擴(kuò)散。設(shè)計(jì)的三維Fisher-Yates置亂可以同時(shí)對(duì)行、列、平面位置進(jìn)行置亂,從而獲得良好的置亂效果,濾波技術(shù)可以實(shí)現(xiàn)良好的擴(kuò)散特性,因此將二者結(jié)合設(shè)計(jì)了加密方案。解密過(guò)程是加密過(guò)程的逆過(guò)程,本文不再描述。加密過(guò)程如圖4所示。
圖4 加密流程圖
為了提高加密密鑰和明文的相關(guān)性,本文中初始密鑰由用戶輸入的密鑰k0、k1和明文SHA-512值h0共同決定,其中k0,k1∈[0,1],h0是對(duì)明文p進(jìn)行SHA-512運(yùn)算得到的128位十六進(jìn)制字符串。具體步驟如下。
(1)將h0中的元素按照先后順序,每4位為一組轉(zhuǎn)化為十進(jìn)制序列記為h1,表達(dá)式為
h1(i)=hex2dec{h0[(i-1)×4+1:i×4]},i∈[1,32]
(7)
(2)將h1中的元素按順序每8位進(jìn)行取模運(yùn)算然后求和,結(jié)合k0、k1來(lái)生成F0,表達(dá)式為
(8)
(3)生成混沌系統(tǒng)的舍棄項(xiàng)數(shù)n0,表達(dá)式為
(9)
(4)令混沌系統(tǒng)的初始參數(shù)y0=F1(1),u0=F1(2),表達(dá)式為
(10)
(5)為了確保濾波過(guò)程可逆,設(shè)置濾波器的中心元素為0,通過(guò)F0得到f0,重新排列后得到濾波器模板f,表達(dá)式為
f0(i)=bitxor[F0(i),F0(4)],i∈[1,4]
(11)
f(i,j)=f0[(i-1)×2+j],i∈[1,2],j∈[1,2]
(12)
對(duì)像素矩陣p進(jìn)行三維Fisher-Yates置亂,置亂后的像素矩陣記為p1。利用控制參數(shù)u0和初始值y0迭代式(2)所定義的系統(tǒng)l1l2l3+n0次,并且舍棄前n0項(xiàng)獲得一維序列X。將X按照行優(yōu)先的順序重新排列得到與矩陣p尺寸相同新矩陣X2。
(1)令lr=1,lc=1,lz=1;根據(jù)平面、行、列的順序來(lái)重復(fù)執(zhí)行(2)和(3),置亂后的矩陣記為p1。
(2)計(jì)算坐標(biāo)(lr,lc,lz)置亂后的坐標(biāo)(lrs,lcs,lzs),公式為
(13)
(3)交換像素p(lr,lc,lz)和p(lrs,lcs,lzs)。
采用2.1節(jié)中生成的濾波器f來(lái)對(duì)像素進(jìn)行濾波處理。利用式(14)對(duì)X處理得到偽隨機(jī)像素序列X3,利用式(15)將X3排列為尺寸為[l1,l2,l3]的偽隨機(jī)像素矩陣X4,X4是f中使用的偽隨機(jī)像素矩陣。按照RGB平面的順序?qū)ο袼鼐仃囘M(jìn)行濾波,在每個(gè)平面內(nèi),利用式(16)按照行優(yōu)先的順序執(zhí)行濾波運(yùn)算。對(duì)當(dāng)前像素點(diǎn)p2(lr,lc,lz)處理時(shí),將X4中的混沌序列值引入濾波器f中,得到對(duì)應(yīng)的f如式(17)所示。直到所有的像素點(diǎn)都濾波完成,得到加密后的圖像矩陣Pe。
X3(i)=fix[X(i)×1015]mod256,i∈[1,l1l2l3]
(14)
X4(i,j,k)=X3[(k-1)l1l2+(i-1)l2+j],i∈[1,l1],j∈[1,l2],k∈[1,l3]
(15)
T(i,j)]mod256
(16)
(17)
實(shí)驗(yàn)軟件采用Matlab R2022a,CPU為3.10 GHz的Intel i5-12500H處理器,內(nèi)存為16G。參數(shù)k0=0.666 6,k1=0.888 8,明文的十六進(jìn)制SHA-512值為’cc3de5553fe62ff546f66b5b27a1de0a2758e2 299216af8004e10ec353e1ac695c04103bc11d1ffc70646 34332c89290f94caac381d79a6d1835692b653276ca’。
為了測(cè)試本文所提算法的性能,對(duì)尺寸為512×512×3的彩色“Lena”圖像進(jìn)行仿真,結(jié)果如圖5所示。由圖5可知,密文和明文完全不同,而且密文類似于噪聲圖像且密文的直方圖分布是近似均勻的,表明該方案可以對(duì)圖像進(jìn)行有效的加密。
通道取值為1、2、3分別代表R、G、B平面的像素分布直方圖
加密破壞了明文中的像素相關(guān)性,繪制明文和密文相鄰像素點(diǎn)分布點(diǎn)圖如圖6所示。明文相鄰像素對(duì)集中分布在對(duì)角線附近,說(shuō)明明文相鄰像素之間的相關(guān)性較強(qiáng),而密文鄰域像素對(duì)近似均勻的分布于整個(gè)平面之中,說(shuō)明加密破壞了明文相鄰像素的相關(guān)性。
通道取值為1、2、3分別代表對(duì)應(yīng)平面水平、垂直、對(duì)角線的相鄰像素對(duì)分布點(diǎn)圖
計(jì)算明文和密文RGB平面相關(guān)系數(shù),如表1所示。由表1可知明文在三個(gè)通道內(nèi)的相關(guān)系數(shù)接近于1,對(duì)應(yīng)的密文相關(guān)系數(shù)均接近0。表明明文相鄰像素的相關(guān)性很強(qiáng),密文相關(guān)性較弱,加密有效的降低了明文像素之間的強(qiáng)相關(guān)關(guān)系。
表1 明文和密文的相關(guān)系數(shù)
信息熵反映一個(gè)系統(tǒng)的混亂程度。根據(jù)香農(nóng)定理,圖像的信息熵通定義[5]為
(18)
式(18)中:i為像素值,f(i)為該像素出現(xiàn)的概率。
計(jì)算Lena圖像在加密前后不同通道的信息熵,如表2所示。結(jié)果顯示明文信息熵的值較小,密文信息熵接近于8,說(shuō)明密文的像素值分布較明文更加均勻,加密隱藏了明文的像素分布規(guī)律,攻擊者不能通過(guò)分析密文像素分布規(guī)律來(lái)得到有用信息。
表2 明文和密文的信息熵
傳統(tǒng)密碼攻擊分析算法包括:唯密文攻擊、已知明文攻擊、選擇明文攻擊和選擇密文攻擊[6]。其中,選擇明文攻擊對(duì)密碼系統(tǒng)最具有威脅性。如果一個(gè)加密系統(tǒng)能夠抵御選擇明文攻擊,那么該算法也可以抵御其余三種攻擊。本文的方案中,密鑰和明文的SHA-512值相關(guān),故密文圖像與明文圖像高度相關(guān),所以對(duì)抗選擇明文攻擊是安全的。圖7顯示了512×512×3的純黑、白圖像加密結(jié)果,表3列出了對(duì)應(yīng)的相關(guān)系數(shù)和信息熵。結(jié)果表明,這些特殊圖像的信息熵接近于8,且直方圖是均衡的,表明該算法也適用于單一像素值圖像。
表3 純黑和純白圖像信息熵與相關(guān)系數(shù)
圖7 純黑和純白圖像加密結(jié)果
安全的加密方法應(yīng)該對(duì)明文高度敏感,即明文的微小變化會(huì)導(dǎo)致加密圖像發(fā)生很大的變化。NPCR(number of pixel change rate)、UACI(unified average change intensity)用來(lái)評(píng)估密碼抗差分攻擊的能力[3],NPCR與UACI 的定義為
攻擊者通常對(duì)原始圖像進(jìn)行微小的改變,找出原始圖像和加密圖像之間的關(guān)系,即差分攻擊。
(19)
(20)
NPCR理論值是99.6094%,UACI理論值為33.463 5%[6]。當(dāng)明文p中的第一個(gè)像素點(diǎn)的改變量為1時(shí),加密算法的NPCR和UACI值如表4所示。
表4 NPCR與UACI值
NPCR值接近于1表明當(dāng)明文發(fā)生微小變化時(shí),密文中幾乎所有的像素點(diǎn)都會(huì)發(fā)生改變,表明算法抗差分攻擊能力較強(qiáng)。本文方法的NPCR值與參考文獻(xiàn)性能基本一致,UACI值低于參考文獻(xiàn)的值,但均接近于理想值。
密鑰空間包含所有參與加密過(guò)程的密鑰集合,較大的密鑰空間可以抵御任何窮舉攻擊。圖像加密算法的密鑰空間大于2100才能夠抵抗窮舉攻擊[6]。圖像SHA-512值h0產(chǎn)生的密鑰空間為2512。根據(jù)美國(guó)電氣電子工程師學(xué)會(huì)(Institute of Electrical and Electronics Engineers,IEEE)浮點(diǎn)標(biāo)準(zhǔn)[26],64位雙精度數(shù)據(jù)的計(jì)算精度為1015。所以本算法的密鑰空間為2512×1015×2≈2611,遠(yuǎn)大于2100,故該算法產(chǎn)生的密鑰空間可以抵御窮舉攻擊。
除了足夠大的密鑰空間外,加密算法還需要對(duì)密鑰高度敏感才能更好地抵抗暴力攻擊[1]。本文加密密鑰分別是k0、k1、h0。當(dāng)解密密鑰分別發(fā)生微小的變化變?yōu)閗0+10-15、k1+10-15、h0中第一位字符改變1位,解密結(jié)果如圖8所示,由圖8可知,當(dāng)密鑰發(fā)生微小的改變,無(wú)法正確的解密出明文,表明加密算法對(duì)密鑰高度敏感。
圖8 密鑰敏感性分析
圖9 噪聲攻擊解密結(jié)果
圖像具有大量的像素點(diǎn),因此對(duì)處理時(shí)間要求較高,好的圖像加密算法要求具有較短的運(yùn)行時(shí)間。加密算法的耗時(shí)不僅和時(shí)間復(fù)雜度有關(guān),還和運(yùn)行的硬件環(huán)境相關(guān)。選擇和本文算法運(yùn)行環(huán)境相近的方法比較,如表5所示。由表5可知,在圖像尺寸相同的情況下,本文算法用時(shí)少于文獻(xiàn)[14]。
表5 不同尺寸圖像計(jì)算時(shí)間對(duì)比
針對(duì)數(shù)字圖像加密算法存在安全性低的問(wèn)題,提出了一種基于Logistic-Sine-Cosine復(fù)合混沌映射、Fisher-Yates置亂和濾波器擴(kuò)散的彩色圖像加密方案。采用明文哈希值和用戶輸入?yún)?shù)來(lái)生成密鑰;應(yīng)用Fisher-Yates置亂和混沌序打亂明文像素間強(qiáng)相關(guān)性;采用濾波器分別在圖像RGB平面濾波。選擇標(biāo)準(zhǔn)Lena圖進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文算法能夠抵御差分、暴力、剪切、噪聲等常見(jiàn)攻擊,可應(yīng)用于數(shù)字圖像的加密和傳輸。本文為了提高算法的安全性,設(shè)計(jì)的濾波擴(kuò)散增加了運(yùn)算的次數(shù)。若將算法應(yīng)用于實(shí)時(shí)性要求高的場(chǎng)合,需進(jìn)一步提升算法效率。