朱 珍,盧世軍,張福泉
(1.廣東工程職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,廣東 廣州 510520;2.中山大學(xué) 地理科學(xué)與規(guī)劃學(xué)院,廣東 廣州 510275;3.北京理工大學(xué) 軟件學(xué)院,北京 100081)
當(dāng)前較為主流的圖像加密技術(shù)主要分類為[1-9]光學(xué)加密與混沌加密。如Chen等[5]提出基于多干涉光束與矢量分解的光學(xué)圖像加密方案,利用相應(yīng)的光學(xué)加密結(jié)構(gòu)與裝置,完成圖像加密。曾大奎等[6]提出了基于兩步正交相移干涉的光學(xué)圖像加密算法,設(shè)計(jì)光學(xué)加密裝置與路徑,結(jié)合雙隨機(jī)相位編碼,完成數(shù)字圖像加密。Zhao等[7]設(shè)計(jì)了改進(jìn)的相位檢索技術(shù)的光學(xué)圖像加密機(jī)制,有效破壞了明文與密文之間的線性關(guān)系。雖然此類光學(xué)技術(shù)具有多密鑰維度和高速并行處理的優(yōu)點(diǎn)[7]。然而,光學(xué)加密技術(shù)是將明文信息完全保留在一個(gè)POMS中,易導(dǎo)致密文產(chǎn)生輪廓問(wèn)題,降低了密文的安全性。
近年來(lái),混沌加密技術(shù)被廣泛研究,如孫倩等[8]設(shè)計(jì)了基于改進(jìn)cat映射與混沌系統(tǒng)的彩色圖像快速加密算法,采用比特置亂技術(shù)與改進(jìn)的cat映射來(lái)完成圖像加密。Li等[9]提出了基于改進(jìn)的Tent映射的圖像加密算法,利用改進(jìn)的Tent映射與擴(kuò)散機(jī)制,對(duì)明文進(jìn)行加密。Chai等[10]提出了基于混沌系統(tǒng)與DNA序列的圖像加密技術(shù),利用DNA編碼技術(shù)與波形置亂技術(shù),改變DNA矩陣中每個(gè)元素的位置,建立逐行擴(kuò)散機(jī)制,對(duì)置亂的DNA矩陣完成擴(kuò)散。
混沌加密技術(shù)[1]可避免光學(xué)加密存在的輪廓顯示等不足,但是低維混沌映射的安全性不佳,而高維混沌映射的加密效率較低[9],且當(dāng)前混沌圖像加密技術(shù)存在一個(gè)共同的缺點(diǎn):在置亂與擴(kuò)散過(guò)程中,都是將相同的加密操作應(yīng)用于所有的明文像素,導(dǎo)致算法的隨機(jī)性不高。
為了解決上述難題,充分利用置亂與擴(kuò)散的雙重加密結(jié)構(gòu)優(yōu)勢(shì),本文設(shè)計(jì)了基于方波空間填充曲線與零交叉邊緣檢測(cè)的選擇性圖像加密算法。該加密技術(shù)是一種混合域加密算法。首先,引入正交多項(xiàng)式變換OPT,借助零交叉邊緣檢測(cè)機(jī)制,在OPT時(shí)域中確定圖像的感興趣區(qū)域與非重要區(qū)域。通過(guò)設(shè)計(jì)一種方波空間填充機(jī)制,對(duì)感興趣區(qū)域與不重要區(qū)域進(jìn)行置亂,輸出置亂子塊。隨后,利用明文像素值,定義兩個(gè)引擎參數(shù),設(shè)計(jì)異擴(kuò)散函數(shù),利用相應(yīng)的擴(kuò)散函數(shù)對(duì)感興趣區(qū)域、不重要區(qū)域進(jìn)行獨(dú)立加密,借助可逆OPT機(jī)制,得到其對(duì)應(yīng)的擴(kuò)散結(jié)果。最后,測(cè)了所提加密算法的安全性與抗攻擊能力。
所提的基于方波空間填充曲線與零交叉邊緣檢測(cè)的選擇性圖像加密算法過(guò)程如圖1所示。其主要包括3個(gè)階段:①感興趣區(qū)域與非重要區(qū)域的劃分;②基于方波空間填充機(jī)制的明文置亂;③基于異擴(kuò)散函數(shù)的圖像加密。
令初始明文為f(x,y),其尺寸為N×N,為了快速分析圖像的時(shí)域特征,本文引入正交多項(xiàng)式變換OPT技術(shù)[11]。根據(jù)OPT原理[11],其對(duì)應(yīng)的點(diǎn)擴(kuò)散函數(shù)M(x,y)可被視為實(shí)值函數(shù)。基于M(x,y),則明文f(x,y)二維OPT變換為
圖1 本文選擇性圖像加密算法過(guò)程
(1)
式中:β′為OPT系數(shù)。
根據(jù)OPT技術(shù),將式(1)演變?yōu)榫仃囆问?/p>
(2)
(3)
其中,?為外積運(yùn)算;|M|為OPT的點(diǎn)擴(kuò)散算子;u(x)為其正交基。
依據(jù)式(2)與式(3),即可得到輸入圖像的OPT系數(shù),從而將圖像從空域轉(zhuǎn)變?yōu)闀r(shí)域,詳細(xì)的OPT變換見(jiàn)文獻(xiàn)[11]。
隨后,引入零交叉邊緣檢測(cè)機(jī)制[12],在OPT時(shí)域中找出符合人眼視覺(jué)的邊緣。其步驟如下:
(2)根據(jù)兩個(gè)相鄰的OPT系數(shù),計(jì)算每個(gè)3×3子塊的梯度值
(4)
(3)設(shè)置判斷閾值T;
(4)若梯度值D (5)計(jì)算梯度值D的二階偏導(dǎo)D″ (5) 若D″<0,則在此子塊的中心標(biāo)記邊緣點(diǎn),同時(shí)統(tǒng)計(jì)該子塊的邊緣點(diǎn)數(shù)量,用cnt表示。利用上述過(guò)程處理所有的子塊,完成整個(gè)圖像的邊緣點(diǎn)標(biāo)記。 (6)再設(shè)置閾值T2,其最小值為0,最大值為100。 (7)若子塊中的邊緣點(diǎn)數(shù)量cnt>T2,則該子塊被視為感興趣子塊;否則,為非重要子塊。將感興趣子塊標(biāo)記為1,非重要子塊標(biāo)記為0,將這些標(biāo)記值組合為一個(gè)數(shù)組; (8)若某個(gè)子塊為感興趣子塊,則利用可逆OPT機(jī)制處理這個(gè)子塊的系數(shù),得到空域值。 (9)執(zhí)行上述過(guò)程,直到最后一個(gè)子塊,整個(gè)過(guò)程結(jié)束。 空間填充曲線[13]是一種連續(xù)遍歷圖像所有像素的混淆方法,能夠提高圖像像素位置的置亂度。胡亦等[14]提出了一種鋸齒填充曲線來(lái)實(shí)現(xiàn)圖像的像素混淆,取得了良好的效果。本文基于文獻(xiàn)[14]的思想,通過(guò)改變曲線形狀,提出了一種空間填充曲線,稱為方波空間填充曲線。圖2展示了一種方波的多種表示。其中,a為曲線高度;T為寬度。所提的方波填充曲線可精確地在每個(gè)方向穿過(guò)每個(gè)像素,有效避免置亂周期性。不同模式的方波曲線如圖3所示。其中,圖3(a)~圖3(e)為初始模式;圖3(f)為圖3(e)的拓展模式;k為方波曲線穿過(guò)的圖像像素?cái)?shù)量。依圖可知,所提方波空間填充曲線不受明文尺寸的限制,不僅可以對(duì)方形圖像進(jìn)行混淆,還能對(duì)非方形圖像進(jìn)行置亂,具有良好的通用性。本文就是利用這種方波空間填充曲線在空域上完成像素置亂。 圖2 方波 圖3 不同模式及其拓展版的方波空間填充曲線 為了研究不同k值的方波空間填充曲線的置亂效果,本文以圖4(a)為例,利用k=1、3、8、12、16、30對(duì)應(yīng)的拓展曲線對(duì)其進(jìn)行混淆,結(jié)果如圖4(b)~圖4(g)所示。依圖可知,隨著k值的增大,圖像的置亂效果更好,如圖4(b)~圖4(e)所示;但是,當(dāng)k繼續(xù)增大時(shí),其置亂效果反而降低,如圖4(f)~4(g)所示。 為了體現(xiàn)所提方波空間填充曲線的優(yōu)勢(shì),將傳統(tǒng)的鋸齒填空曲線[14]、Zigzag掃描以及Raser曲線視為對(duì)照組,利用頻譜失真來(lái)量化置亂效果,結(jié)果見(jiàn)表1。由表可知,隨著k值的增大,置亂密文的安全性越高,當(dāng)k大于12時(shí),其性能逐步降低;另外,與其它3種技術(shù)相比,所提算法的置亂效果最好,其頻譜失真均要大于對(duì)照組。這表明置亂圖像與明文是截然不同的,充分掩蓋了明文信息。 圖4 不同k值下的方波空間填充曲線的置亂效果 表1 不同空間填充曲線的置亂效果 圖像經(jīng)過(guò)上述置亂后,雖然其像素位置得到了充分混淆,但是每個(gè)像素的像素值卻沒(méi)有變,使其安全性不理想[15]。為此,本文利用明文自身像素,基于Logistic映射[1]來(lái)設(shè)計(jì)異擴(kuò)散機(jī)制,對(duì)感興趣子塊、非重要子塊進(jìn)行差異化加密。Logistic映射具有結(jié)構(gòu)簡(jiǎn)單,加密效率高等特點(diǎn),其函數(shù)為[1] xk+1=λxk(1-xk) (6) 式中:λ∈[0,4]是混沌控制參數(shù);xk為系統(tǒng)變量。 為了改善所提技術(shù)的抗明文攻擊能力,借助初始圖像的像素來(lái)獲取式(6)中的x0 x0=T/107 (7) 式中:T為明文的像素總數(shù)。 然后,利用如下的量化機(jī)制對(duì){x1,x2,…,xM×N}進(jìn)行處理,獲取一組加密密鑰{ki} ki=mod(floor(xi×1014), 256) (8) 再利用明文像素值,定義兩個(gè)引擎參數(shù)kt1,kt2 (9) (10) 利用kt1,kt2,設(shè)計(jì)異擴(kuò)散函數(shù),對(duì)感興趣子塊、非重要子塊進(jìn)行獨(dú)立加密 S′(i)ROI=S(i)⊕k(i)⊕S(kt1)⊕S(kt2) (11) S′(i)N-ROI=S(i)⊕k(i)⊕S(kt1) (12) 對(duì)于感興趣子塊、非重要子塊,分別利用式(11)、式(12)對(duì)其相應(yīng)的OPT系數(shù)進(jìn)行擴(kuò)散。通過(guò)3×3的逆OPT變換,得到相應(yīng)的擴(kuò)散子塊,從而完成圖像加密。 借助式(11)、式(12)對(duì)圖4(e)實(shí)施加密,結(jié)果如圖5所示。依圖5(a)可知,輸出圖像的內(nèi)容被高度隱秘,經(jīng)過(guò)異擴(kuò)散后,輸出一幅與置亂圖像截然不同的密文,呈現(xiàn)類似噪聲干擾結(jié)果;且擴(kuò)散密文的像素分布較為均勻,如圖5(b)所示。這表明該機(jī)制具備較高的安全性。 圖5 圖像加密結(jié)果 為了驗(yàn)證本文加密技術(shù)的有效性與優(yōu)異性,在MATLAB軟件中進(jìn)行測(cè)試,并將文獻(xiàn)[8]、文獻(xiàn)[9]視為對(duì)照組。實(shí)驗(yàn)環(huán)境為:Intel3.5 GHz、雙核CPU、4 GB的內(nèi)存;系統(tǒng)是Window 7。關(guān)鍵參數(shù)設(shè)置為:子塊尺寸為3×3,判斷閾值T=35[16],λ=3.6,方波空間填充曲線的a=8,W=8,且其穿越像素?cái)?shù)量k=12;另外,經(jīng)過(guò)多次加密實(shí)驗(yàn),取閾值T2為60。 以大小為480×480的明文為實(shí)驗(yàn)?zāi)繕?biāo),如圖6(a)所示,并采用本文方法、文獻(xiàn)[8]、文獻(xiàn)[9]對(duì)其實(shí)施加密,輸出結(jié)果如圖6(b)~圖6(d)所示。依圖可知,明文被本文方法與對(duì)照組技術(shù)進(jìn)行置亂-擴(kuò)散后,其信息被高度隱蔽,沒(méi)有任何信息泄露,外來(lái)攻擊者無(wú)法從中得到任何有用的線索。但是,主觀評(píng)價(jià)難以區(qū)分三者技術(shù)的差異,為此,本文引入信息熵值[2]來(lái)客觀量化這三者的加密安全性,測(cè)試數(shù)據(jù)見(jiàn)表2。依據(jù)表中的測(cè)試數(shù)據(jù),所提機(jī)制、文獻(xiàn)[8]和文獻(xiàn)[9]算法的保密能力都很好,且本文技術(shù)的熵值最大,約為7.9994;而文獻(xiàn)[8]、文獻(xiàn)[9]輸出的密文熵值分別為7.9978、7.9953。原因是所提技術(shù)設(shè)計(jì)了方波填充曲線,通過(guò)一次遍歷所有圖像像素,充分提高了像素置亂度,且無(wú)置亂周期性,同時(shí),依據(jù)人眼視覺(jué)特性,將整個(gè)圖像分割為感興趣區(qū)域與非重要區(qū)域,利用初始明文的像素來(lái)設(shè)計(jì)異擴(kuò)散函數(shù),對(duì)感興趣像素與非重要像素進(jìn)行獨(dú)立差異加密,顯著破壞了加密算法的線性關(guān)系,增強(qiáng)了算法的隨機(jī)性,該算法從空域與時(shí)域兩個(gè)方面完成像素加密,顯著提高了密文的安全性。而文獻(xiàn)[8]則是采用比特替代傳統(tǒng)的字節(jié)來(lái)完成圖像像素的置亂,通過(guò)動(dòng)態(tài)改變每一輪的加密控制參數(shù),并借助改進(jìn)的二維Cat映射來(lái)輸出一組密鑰流,對(duì)圖像進(jìn)行擴(kuò)散,具有很高的加密安全性,但是此技術(shù)在像素的置亂與擴(kuò)散過(guò)程中,均是采用了相同的加密操作,雖然其采用了動(dòng)態(tài)加密原理,但這種擴(kuò)散機(jī)制仍然存在一定的線性關(guān)系,易被攻擊者利用,使其安全性要略低于所提技術(shù)。文獻(xiàn)[9]則是利用一維Tent映射來(lái)實(shí)現(xiàn)圖像的快速加密,但是一維Tent映射結(jié)構(gòu)較為簡(jiǎn)單,其混沌行為不理想,且在圖像加密過(guò)程中,借助同一加密機(jī)制對(duì)明文實(shí)施混淆,使得此技術(shù)仍存在線性關(guān)系。 圖6 不同加密算法的輸出密文 表2 各算法對(duì)應(yīng)的密文熵值測(cè)試 圖像像素之間通常具有較高的相關(guān)性,攻擊者可以利用這特性來(lái)破譯密文,對(duì)算法的安全性影響較大[4],一般而言,圖像中的像素分布不均,出現(xiàn)堆積現(xiàn)象,則顯示其相關(guān)性越強(qiáng)烈,其安全性越低,反之,則其相關(guān)性較小,安全性越高。對(duì)此,本文測(cè)試了文獻(xiàn)[8]、文獻(xiàn)[9]以及所提加密技術(shù)的密文相關(guān)性。從圖6(a)~圖6(d)中隨機(jī)選擇2000對(duì)相鄰像素來(lái)計(jì)算其相關(guān)系數(shù)Cxy[4] (13) 不同算法的Cxy計(jì)算數(shù)據(jù)如圖7所示。由圖7(a)可得,明文的其像素分布極為不均,所有像素堆積為對(duì)角線形態(tài),這說(shuō)明其像素間的相關(guān)性非常高,其Cxy值為0.9583;然而,經(jīng)過(guò)本文算法、文獻(xiàn)[8]、文獻(xiàn)[9]置亂與擴(kuò)散后,圖像的像素分布變?yōu)榫鶆驙顟B(tài),這種對(duì)角線形態(tài)的得到了極大改善,Cxy分別為0.0011、0.0026、0.0043。通過(guò)對(duì)比圖7(b)~圖7(d)可知,所提技術(shù)的輸出密文的像素分布均勻度最高,無(wú)像素堆積現(xiàn)象,要優(yōu)于文獻(xiàn)[8]、文獻(xiàn)[9]的加密機(jī)制。 圖7 不同算法的密文像素相關(guān)性測(cè)試 剩余兩個(gè)方向的Cxy結(jié)果見(jiàn)表3。由表可知,對(duì)于3個(gè)方向,初始圖像的Cxy值始終是最高的,表明其相關(guān)性是最高的。但是,明文被所提方法、文獻(xiàn)[8]與文獻(xiàn)[9]加密后,其相關(guān)性被顯著降低,Cxy值出現(xiàn)了大幅下降,同樣,在這三者中,所提加密機(jī)制的Cxy值均為最小。 表3 3個(gè)方向的相關(guān)系數(shù)測(cè)試結(jié)果 圖像在網(wǎng)絡(luò)中傳輸時(shí),面臨的最大威脅就是明文攻擊,主要分為兩類:已知明文攻擊與選擇明文攻擊[17]。因此,良好的加密技術(shù)應(yīng)能有效抵御此類攻擊,為了量化這3種不同加密方法的抗明文攻擊能力,本文引入NPCR與UACI值[4]評(píng)估加密機(jī)制的抗選擇明文攻擊能力 (14) (15) (16) 其中,W,H分別是圖像的高度與寬度;I,I′分別為2個(gè)明文被加密后輸出對(duì)應(yīng)的密文,且這兩個(gè)明文都只存在一個(gè)相異灰度值。 本文將圖6(a)作為測(cè)試對(duì)象,把像素點(diǎn)(105,39)的像素值112改為19,再借助所提技術(shù)、文獻(xiàn)[8]、文獻(xiàn)[9]對(duì)修改前后的圖像進(jìn)行加密,并基于式(14)~式(16),形成了NPCR、UACI曲線,如圖8所示??梢?jiàn),所提機(jī)制的抗選擇明文攻擊性能最佳,對(duì)應(yīng)的NPCR和UACI值均為最大,分別是99.86%、35.23%,而文獻(xiàn)[8]、文獻(xiàn)[9]算法的NPCR、UACI值都要小于所提機(jī)制。原因是所提加密方法的擴(kuò)散階段是與明文自身像素密切相關(guān),使得不同的明文會(huì)產(chǎn)生不同的密鑰,導(dǎo)致攻擊者無(wú)法對(duì)算法進(jìn)行破譯,另外,利用初始明文的像素來(lái)設(shè)計(jì)異擴(kuò)散函數(shù),對(duì)感興趣像素與非重要像素進(jìn)行獨(dú)立差異加密,顯著破壞了加密算法的線性關(guān)系。而文獻(xiàn)[8]、文獻(xiàn)[9]算法都沒(méi)有考慮初始圖像的特性,使得加密密文與明文特性無(wú)關(guān),導(dǎo)致其抗選擇明文攻擊能力不理想。 已知明文攻擊主要借助攻擊來(lái)獲取算法的解密密鑰,從而用于其它密文的復(fù)原[17]。為了量化這3種加密技術(shù)的抗已知明文攻擊性能,基于文獻(xiàn)[17]的方法,對(duì)本文算法、文獻(xiàn)[8]、文獻(xiàn)[9]進(jìn)行了測(cè)試。以圖9(a)為已知明文,利用本文算法、文獻(xiàn)[8]、文獻(xiàn)[9]各自對(duì)應(yīng)的算法對(duì)其加密,輸出的密文如圖9(b)~圖9(d)所示,此時(shí),攻擊者已經(jīng)獲取了這些密文。再利用文獻(xiàn)[17]的攻擊方法對(duì)這些密文進(jìn)行破譯,得到了相應(yīng)的解密密鑰。通過(guò)這些密鑰,對(duì)圖6(b)~圖6(d)完成解密,結(jié)果如圖9(e)~圖9(g)所示。依據(jù)解密結(jié)果可知,所提加密技術(shù)的抗已知明文攻擊能力最高,攻擊者利用其獲取的密鑰是無(wú)法對(duì)圖6(b)進(jìn)行正確解密;而文獻(xiàn)[8]、文獻(xiàn)[9]算法的抗已知明文攻擊能力不理想,其對(duì)應(yīng)的密文均被不同程度的解密,泄露了圖像的部分信息,如圖9(f)、圖9(g)所示。 圖8 3種算法的抗選擇明文攻擊能力來(lái)量化測(cè)試 本文測(cè)試了密鑰λ=3.6的敏感性,其余密鑰保持不變。通過(guò)利用微小因子δ=10-16來(lái)改變密鑰λ,獲取兩個(gè)錯(cuò)誤密鑰:λ1=3.6+10-16、λ2=3.6-10-16,從而形成3組密鑰,一組是正確的,其余兩組為錯(cuò)誤。再利用這3組密鑰對(duì)圖5(a)進(jìn)行解密,結(jié)果如圖10(a)~圖10(c)所示,并測(cè)試了λ=3.6相應(yīng)的MSE曲線,如圖10(d)所示。依圖可知,利用兩組錯(cuò)誤密鑰對(duì)其進(jìn)行解密,是無(wú)法獲得正確的明文圖像,如圖10(a)~圖10(b)所示;只有利用正確密鑰λ=3.6方可對(duì)其完成解密,輸出正確的明文,如圖10(c)所示。另外,由圖10(d)可知,λ=3.6具有理想的“雪崩效應(yīng)”,當(dāng)密鑰無(wú)變化時(shí),其MSE曲線發(fā)生了劇烈變化。這說(shuō)明本文算法具有理想的密鑰敏感性,能夠很好地滿足“雪崩效應(yīng)”。 為了提高加密算法的安全性與抗明文攻擊能力,本文設(shè)計(jì)了基于方波空間填充曲線與零交叉邊緣檢測(cè)的選擇性圖像加密算法,從空域與時(shí)域上完成像素的置亂與擴(kuò)散。通過(guò)設(shè)計(jì)一種方波空間填充曲線,對(duì)明文子塊進(jìn)行置亂,高度混淆像素位置;同時(shí),引入正交多項(xiàng)式變換OPT(orthogonal olynomials transform),對(duì)每個(gè)明文子塊進(jìn)行OPT處理,獲取每個(gè)子塊對(duì)應(yīng)的OPT系數(shù),以計(jì)算每個(gè)子塊梯度值;基于零交叉邊緣檢測(cè)機(jī)制,聯(lián)合梯度值與用戶閾值,判斷子塊的重要性,將其劃分為感興趣區(qū)域與不重要區(qū)域;并利用明文像素值來(lái)設(shè)計(jì)異擴(kuò)散函數(shù),對(duì)明文的不同區(qū)域進(jìn)行選擇性加密。實(shí)驗(yàn)結(jié)果表明了所提算法的有效性與優(yōu)異性。 圖10 本文算法的密鑰敏感性測(cè)試1.2 基于方波空間填充機(jī)制的明文置亂
1.3 基于異擴(kuò)散函數(shù)的圖像加密
2 實(shí)驗(yàn)結(jié)果與分析
2.1 加密效果分析
2.2 密文相關(guān)性分析
2.3 抗明文攻擊能力測(cè)試
2.4 密鑰敏感性測(cè)試
3 結(jié)束語(yǔ)