段雪峰, 王 瑞
(桂林電子科技大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣西 桂林 541004)
隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,數(shù)字圖像在社交媒體軟件中的傳輸變得愈加頻繁。為確保圖像在傳輸過(guò)程中不被敵手所截獲而獲得有效信息,圖像加密技術(shù)成為圖像信息安全領(lǐng)域的熱門內(nèi)容。由于數(shù)字圖像具有數(shù)據(jù)量龐大、相鄰像素相關(guān)性強(qiáng)、冗余度高等特點(diǎn),傳統(tǒng)的文本加密算法如DES、AES、RSA等直接應(yīng)用于圖像的加密,顯得十分笨重,效果并不理想。因此,研究高效的圖像加密算法成為了當(dāng)前要解決的關(guān)鍵問(wèn)題。
彩色圖像相較于灰度圖像,包含的數(shù)據(jù)量更大,傳遞的視覺(jué)信息更加豐富,在日常的網(wǎng)絡(luò)傳輸中具有廣泛的應(yīng)用,于是針對(duì)彩色圖像的加密技術(shù)成為了研究的重中之重。由于混沌映射具有眾多的良好性質(zhì),如對(duì)初值和初始參數(shù)的高敏感性,生成序列的偽隨機(jī)性和遍歷性等,與密碼學(xué)的基本要求相契合,近年來(lái)產(chǎn)生了許多基于混沌的彩色圖像加密算法[1-5]。Wang等[2]將彩色圖像RGB的3個(gè)通道進(jìn)行水平或垂直拼接,構(gòu)成規(guī)模更大的矩陣,利用混沌序列的偽隨機(jī)性,將混沌序列進(jìn)行排序,從而置亂圖像像素點(diǎn)的位置。Pak等[3]通過(guò)構(gòu)造性質(zhì)更為良好的一維混沌映射,采用經(jīng)典的“混淆-擴(kuò)散”結(jié)構(gòu),將三維的彩色圖像轉(zhuǎn)化為二維平面矩陣,通過(guò)對(duì)混沌序列排序和相鄰像素間位異或的方式進(jìn)行加密。由于彩色圖像包含的數(shù)據(jù)量較大,對(duì)混沌序列排序的計(jì)算復(fù)雜度較高,針對(duì)大尺寸的圖像,加解密時(shí)間將會(huì)大量增加。因此,王興元等[4]設(shè)計(jì)了一種基于混沌的快速加密算法,采用僅對(duì)圖像的行和列進(jìn)行移位和交換,達(dá)到快速置亂的目的。但單純地使用結(jié)構(gòu)簡(jiǎn)單的混沌序列進(jìn)行圖像置亂,往往不能夠保證加密算法具有較高的安全性和抗攻擊能力。陳軍等[5]利用Logistic映射對(duì)明文圖像進(jìn)行位置置亂,再利用高維的Lorenz映射對(duì)圖像進(jìn)行分塊擴(kuò)散處理,進(jìn)而保證了加密算法的強(qiáng)度。雖然高維的混沌映射帶來(lái)了加密強(qiáng)度的提升,但是相應(yīng)地增加了計(jì)算成本。
在保證安全性的前提下,為解決使用高維混沌映射和對(duì)混沌序列進(jìn)行排序帶來(lái)的計(jì)算復(fù)雜度增加的問(wèn)題,采用中國(guó)剩余定理直接對(duì)彩色圖像像素點(diǎn)的3個(gè)分量進(jìn)行擴(kuò)散,再將生成的中間加密圖像結(jié)合一維的Logistic映射對(duì)像素值和像素位置進(jìn)行進(jìn)一步的置亂。在加密過(guò)程中,混沌序列的初值生成與明文像素值之和相關(guān)聯(lián),保證了密鑰生成與明文具有依賴關(guān)系,增強(qiáng)了加密算法抵御選擇明文和選擇密文攻擊的能力。
中國(guó)剩余定理,又名孫子定理,在計(jì)算機(jī)密碼學(xué)中具有重要的影響和地位。運(yùn)用數(shù)學(xué)語(yǔ)言可描述為如下形式。
定理1[6](中國(guó)剩余定理) 設(shè)m1,m2,…,mk是k個(gè)兩兩互素的正整數(shù),則對(duì)任意的正整數(shù)a1,a2,…,ak,同余式組
(1)
一定有解,且解是唯一的。若令m=m1m2…mk,則解可表示為
(2)
由于圖像的灰度值是介于0和255之間的整數(shù),加密算法中選取的mi是大于255的互素的整數(shù)。彩色圖像的每個(gè)像素點(diǎn)由3個(gè)灰度值確定,因此可將3個(gè)分量灰度值a1、a2、a3作為一個(gè)同余式組的3個(gè)余數(shù),從而得到一個(gè)唯一確定的值x。在解密過(guò)程中,可通過(guò)ai≡x(modmi),i=1,2,3,從而正確解密。
Logistic映射是經(jīng)典的一維混沌映射,具有簡(jiǎn)單的結(jié)構(gòu)和復(fù)雜的混沌行為。其數(shù)學(xué)表達(dá)式為
xn+1=μxn(1-xn),
(3)
其中,xn∈(0,1),μ∈(0,4],當(dāng)μ∈(3.569 945 6,4]時(shí),輸出序列處于混沌狀態(tài)。
本加密算法采用先對(duì)像素值擴(kuò)散,再對(duì)像素位置進(jìn)行置亂的兩步經(jīng)典加密結(jié)構(gòu)。首先將RGB圖像通過(guò)中國(guó)剩余定理進(jìn)行壓縮,產(chǎn)生的壓縮矩陣會(huì)發(fā)生數(shù)據(jù)膨脹。通過(guò)對(duì)膨脹的矩陣進(jìn)行取模和取整運(yùn)算,得到相應(yīng)的數(shù)值在0~255之間的圖像矩陣,再結(jié)合Logistic映射,將圖像矩陣進(jìn)行整體的比特異或運(yùn)算,進(jìn)一步擴(kuò)散像素灰度值。最后,利用混沌映射的偽隨機(jī)性,置亂圖像的像素位置,得到最終的加密圖像。加密算法流程如圖1所示。
圖1 加密算法流程
1) 讀取一幅尺寸為M×N的彩色圖像P,計(jì)算圖像P的像素值之和S1。
2) 選定互素的3個(gè)整數(shù)m1、m2、m3,按照從左到右,自上而下的順序,對(duì)圖像P中(i,j)處的像素(a1,a2,a3)應(yīng)用定理1得到相應(yīng)的解bi,j,生成的矩陣記為B。
3) 對(duì)數(shù)據(jù)膨脹后的矩陣B應(yīng)用式(4)和(5)計(jì)算,i=1,2,3,其中D0=B。
Ci=mod(Di-1,256),
(4)
Di=floor(Di-1/256)。
(5)
4) 輸入任意數(shù)x0(0 x1=(x0+S1/214-[S1/214])mod 1, (6) (7) 5) 按式(8)和(9)得到矩陣K1、E1、E2和E3,其中E0=K1,并按從左到右的順序?qū)1、E2和E3拼接成尺寸為M×3N的圖像矩陣E,計(jì)算E的像素值之和S2。 K1=D3?X1, (8) Ei=Ei-1?Ci。 (9) (10) 8) 將序列zn從左至右按每組MN個(gè)元素轉(zhuǎn)化為二維矩陣,分別構(gòu)成加密后的彩色圖像矩陣F的RGB三個(gè)通道的分量矩陣。 因?yàn)樵摷用芩惴ㄖ忻坎蕉伎赡?,所以解密過(guò)程為相應(yīng)的加密過(guò)程的逆運(yùn)算。值得注意的是,在解密過(guò)程中,解密密鑰包含一個(gè)在加密過(guò)程中生成的與明文自相關(guān)的密鑰矩陣K1。由于K1是通過(guò)中間加密圖像和混沌映射生成矩陣通過(guò)位異或運(yùn)算得到的,不會(huì)暴露明文中的任何信息。同時(shí),由于Logistic映射的初值是結(jié)合明文信息生成的,使得加密算法對(duì)明文具有較高的敏感性,提升了加密的強(qiáng)度。 仿真實(shí)驗(yàn)使用的圖片為512×512的標(biāo)準(zhǔn)彩色圖片Pepper和Baboon,全部實(shí)驗(yàn)在個(gè)人計(jì)算機(jī)上應(yīng)用MATLAB 2014a軟件實(shí)現(xiàn)。個(gè)人計(jì)算機(jī)配置為:AMD A10-5750 M APU @2.50 GHz,8 GiB內(nèi)存,Windows7旗艦版操作系統(tǒng)。 如圖2所示,本算法可對(duì)圖像進(jìn)行正確的加密和解密操作。加密后的圖像從人類視覺(jué)系統(tǒng)上無(wú)法獲得有效信息,解密后的圖像與原圖相比較未失真,驗(yàn)證了本加密算法的有效性。 圖2 明文圖像的加密和解密 密鑰空間是指在密碼系統(tǒng)中所有可能取到的密鑰總數(shù)。為防止加密算法被暴力攻擊破解,文獻(xiàn)[7]指出,密鑰空間至少要大于2100,而且密鑰空間越大,表示加密算法的安全級(jí)別越高。 表 1 不同加密算法密鑰空間大小比較 圖像直方圖描繪了圖像中像素灰度值的分布情況,反映了圖像具有的基本的統(tǒng)計(jì)信息。一幅具有視覺(jué)信息的明文圖像的直方圖通常情況下是高低起伏的,而加密后的圖像的直方圖是均勻、平滑的。Baboon原圖與密圖RGB通道直方圖如圖3所示。從圖3可看出,明文圖像Baboon的RGB三個(gè)通道經(jīng)過(guò)本算法加密后,密文圖像的直方圖形狀基本接近水平,從而可以掩蓋明文圖像的統(tǒng)計(jì)信息,有效地抵御統(tǒng)計(jì)攻擊。 圖3 Baboon原圖與密圖RGB通道直方圖 一幅具有豐富含義的明文圖像,其相鄰像素的灰度值十分接近,一個(gè)合格的加密算法應(yīng)該具備打破相鄰像素間較強(qiáng)相關(guān)性的能力。像素間的相關(guān)性可通過(guò)相關(guān)系數(shù)來(lái)描述,定義如下: (11) cov(x,y)=E([x-E(x)][y-E(y)]); (12) (13) (14) 其中:x和y為相鄰像素的灰度值,E(x)和E(y)分別為期望和方差。從表2可看出,加密后的圖像RGB三個(gè)通道的相鄰像素相關(guān)系數(shù)接近于0,密圖中相鄰像素的相關(guān)性被大大減弱,從而驗(yàn)證了加密算法具有良好的加密性能。 表2 Pepper原圖和加密圖RGB通道相關(guān)系數(shù)比較 一個(gè)優(yōu)秀的圖像加密算法不僅要具備抵御各種攻擊的能力,還要有較高的加解密效率,從而保證圖像在網(wǎng)絡(luò)實(shí)時(shí)傳輸中的需求。因此,圖像加解密的時(shí)間是衡量密碼算法的重要參數(shù)和指標(biāo)。表3比較了3種算法對(duì)Baboon進(jìn)行一輪加解密的總時(shí)間,本算法比文獻(xiàn)[10]和文獻(xiàn)[11]的算法耗時(shí)更少,加解密效率更高。 表3 對(duì)Baboon一輪加解密總時(shí)間比較 s 抗差分攻擊分析是用來(lái)檢測(cè)加密算法對(duì)明文的敏感性強(qiáng)弱程度,即在相同密鑰下,輸入的明文圖像僅有一個(gè)位置的像素灰度值相異,產(chǎn)生的密文圖像也會(huì)發(fā)生巨大的改變。通常用像素?cái)?shù)變化率(number of pixels change rate,簡(jiǎn)稱NPCR)和像素歸一化平均變化強(qiáng)度(unified average changing intensity,簡(jiǎn)稱UACI)進(jìn)行衡量和比較。其中NPCR用于測(cè)量2幅加密圖像相同位置相應(yīng)的像素灰度值是否相同,而UACI用來(lái)衡量這種差異的程度。若將2幅加密的圖像分別記為C1和C2,則有: (15) (17) 經(jīng)過(guò)本算法加密后的Baboon的NPCR和UACI平均值可達(dá)99.59%和33.49%,與NPCR和UACI的理想值99.61%和33.46%十分接近,表明本加密算法可抵御抗差分攻擊,加密算法對(duì)明文具有較高的敏感性。 圖像的信息熵反應(yīng)了圖像包含信息的不確定性,一幅理想的加密圖像,其灰度值的分布是均勻的,從而其信息熵越大,反映的視覺(jué)信息就越少。圖像的信息熵為 (18) 其中:L為灰度級(jí);mi為像素的灰度值;p(mi)為mi出現(xiàn)的概率。針對(duì)8 bit的灰度圖像,L=256。信息熵的理想值為8,對(duì)Baboon使用本算法加密,加密后圖像的3個(gè)通道的信息熵分別為:HR=7.999 03,HG=7.998 55,HB=7.996 78,均與理想值8非常接近,表明本算法可有效隱藏明文信息。 針對(duì)彩色圖像數(shù)據(jù)量龐大,相鄰像素相關(guān)性高等特性,為了提高加解密效率,保證圖像信息安全,提出了基于中國(guó)剩余定理與Logistic映射的彩色圖像加密算法。通過(guò)中國(guó)剩余定理將圖像像素灰度值進(jìn)行擴(kuò)散,再結(jié)合Logistic映射與中間生成密文圖像相關(guān)聯(lián),從而進(jìn)一步對(duì)圖像像素位置進(jìn)行一輪置亂,達(dá)到了對(duì)像素位置和灰度值雙重置亂的效果。仿真實(shí)驗(yàn)結(jié)果表明,本算法具有龐大的密鑰空間,較高的加解密效率,且加密后的圖像直方圖是均勻、平滑的,相鄰像素的強(qiáng)相關(guān)性也被有效打破。通過(guò)抗差分攻擊分析與信息熵分析表明,加密算法對(duì)明文具有較高的敏感性,極大地降低了明文統(tǒng)計(jì)信息被暴露的風(fēng)險(xiǎn)。2.3 解密算法
3 仿真實(shí)驗(yàn)
4 安全性能分析
4.1 密鑰空間分析
4.2 直方圖分析
4.3 相鄰像素相關(guān)性分析
4.4 時(shí)間復(fù)雜度
4.5 抗差分攻擊分析
4.6 信息熵分析
5 結(jié)束語(yǔ)