(內(nèi)蒙古化工職業(yè)學(xué)院計算機與信息工程系,內(nèi)蒙古 呼和浩特 010070)
當(dāng)圖像在網(wǎng)絡(luò)上傳輸時,對圖像內(nèi)容的有效加密和保護非常重要,保證信息的安全傳輸成為近年來學(xué)者研究的熱點[1]。圖像加密領(lǐng)域以圖像置亂為主,可分成三類:像素位置變換方法[2-3]、像素值變換方法[4-5]以及兩種方法相結(jié)合[6-11]的方法。
近年來,國內(nèi)外學(xué)者提出眾多加密方案。Fridich等人[12]提出一種基于二維標(biāo)準(zhǔn)baker映射的對稱塊加密技術(shù);丁瑋等人[13]提出按空間填充曲線、Arnold變換、幻方的圖像置亂(置換)變換;文獻[14]提出基于騎士巡游變換的圖像置亂方法,實現(xiàn)了圖像細節(jié)的隱藏;南艷紅等人[15]探討Fibonacci變換的置亂效果及其在數(shù)字圖像水印中的應(yīng)用[16],給出了一種描述數(shù)字圖像置亂程度的定義,并比較Arnold變換和Fibonacci變換的置亂效果;鄒建成等人[17]研究了Fibonacci變換在圖像加密中的應(yīng)用,取得了較好的加密效果;N.K.Pareek等人[18]結(jié)合兩個Logistic混沌映射實現(xiàn)圖像加密;Mazloom等人[19]基于非線性耦合混沌映射(CNCM)實現(xiàn)圖像加密,通過對密鑰做代數(shù)變換,有效地增強了加密系統(tǒng)的安全性;Sesha[10]和Vinod[20]將三維矩陣轉(zhuǎn)換成為二維矩陣,順序執(zhí)行行列置換、行列替代、行列置換完成彩色圖像加密;Pareek[21]利用像素替換和像素置換的方法,采用反饋機制增強系統(tǒng)魯棒性。
本文基于二維Fibonacci變換和均勻分塊的思想,提出了一種新的替代和置亂相結(jié)合的數(shù)字圖像分塊加密算法。該算法具有一定的抗剪切、抗噪聲攻擊的能力,而且實時性較好,可有效地對圖像進行加密與解密。
圖像置亂可以達到圖像加密的目的,其目的是降低圖像相鄰像素相關(guān)性,使圖像像素由確定性變?yōu)椴淮_定性的過程,也就是使圖像信息量增加的過程。用熵值來衡量置亂的效果,下面首先給出圖像位置熵的定義:
(1)
式中:B為圖像分塊區(qū)域個數(shù);Hk(P)為第k個分塊區(qū)域的信息熵。
(2)
式中:P(i,j)為原始圖像坐標(biāo)為(i,j)的像素出現(xiàn)在置亂后圖像的第k個圖像塊的概率。當(dāng)P(i,j)等概率時,熵函數(shù)Hk(P)和位置熵H(R)最大。最佳的置亂狀態(tài)是置亂后的圖像中任意塊內(nèi)的像素點來自原始圖像各個位置的概率相同,此時置亂后圖像信源的平均信息量最大,熵值越接近于8,置亂效果越好。
均勻置亂是最好的置亂方法,它首先假設(shè)原始圖像被分割成n×n塊,每塊含有n×n個點,且這些點分別出現(xiàn)在置亂后圖像的n×n個圖像塊中。
先將圖像做分塊處理,正方塊在圖像加密的研究中具有代表意義。假設(shè)圖像的尺寸為M×N,以f(i,j)(1≤i≤M,1≤j≤N)為中心的m×n(0≤m≤M,0≤n≤N)個相鄰像素組成的鄰域,稱為圖像塊,且約束條件如下:①圖像行列數(shù)為2的指數(shù);②每個圖像塊的行列數(shù)相等。對16×16的圖像均勻分塊,將該圖像分成8×8塊,每塊含有2×2個像素點,其示意圖如圖1所示。
圖1 圖像塊內(nèi)像素值替代和均勻分塊示意圖
加密算法具體步驟如下。
① 將圖像分成8×8塊(記作P1,P2,…,P64),每塊含有2×2個像素點(記作p1,p2,p3,p4),假設(shè)圖像灰度級是256,即8位(b1b2…b8)二進制構(gòu)成每個像素點,根據(jù)前一像素點pi-1的三個最重要位(b1b2b3)的值和如表1所示的該位值的操作,修改pi的像素值。例如,首先取出P1塊,p1和p2的像素值分別是201(11001001)和185(10111001)。像素點p1相應(yīng)的位值6(110)進行查表,對p2的像素值循環(huán)左移一位后取反,由新像素值141(10001101)替代185(10111001)。根據(jù)p2新像素值修改p3的像素值,同理修改p4的像素值,并根據(jù)該值修改p1的像素值。按照以上規(guī)律,依次完成塊P1,P2,…,P64的替代操作。
表1 位值和相應(yīng)的操作
② 對步驟①得到的圖像塊進行如下操作:根據(jù)前一像素點pi-1的兩個最重要位(b1b2)的值和表1對應(yīng)該位值的操作,修改pi的像素值。例如,p3和p4的像素值分別是140(10001100)和186(10111010),則對p4應(yīng)用p3相應(yīng)的位值2(10)進行運算,采用新值69(01000101)替代p4的原像素值。按照以上規(guī)律,依次實現(xiàn)塊P1,P2,…,P64的替代操作。
③ 對步驟②得到的圖像塊進行如下操作:根據(jù)前一像素點pi-1的最重要位(b1)的值和表1對應(yīng)該位值的操作,修改pi的像素值。例如,p2和p3的像素值分別是235(11101011)和153(10011001),則p3的像素值應(yīng)用p2相應(yīng)的位值1(1)進行運算后變成76(01001100)。按照以上規(guī)律,依次對塊P1,P2,…,P64完成替代操作。
④ 完成上述步驟后,采用均勻分塊算法將每個圖像塊內(nèi)的所有像素充分擴散到其他圖像塊中。如圖1所示,實現(xiàn)原始圖像各塊中像素點間的距離由“最近”到“最遠”,保證該塊中所有像素點被分到置亂后圖像的不同塊中,滿足條件S≥P;實現(xiàn)原始圖像各塊中像素點間的距離由“最遠”到“最近”,按照規(guī)定的次序,在原始圖像所有塊中各取一點,同時分到置亂后圖像的同一塊中,滿足條件S≥p。因為s≥P、S≥p,則sS≥PS≥pP,已知sS=pP,那么s=P、p=S。置亂后圖像分成2×2(S×S)塊,每塊含有8×8(s×s)個點。
⑤ 分別對置亂后的每個圖像塊做Fibonacci像素值置亂,h表示任意像素值橫縱坐標(biāo)的十六進制,分別取出每個像素高4位和低4位作為Fibonacci變換的輸入,F(xiàn)ibonacci像素值置亂表示形式如下:
(3)
⑥ 對整幅圖像做位置變換,將置亂后的整幅圖像作為Fibonacci位置變換的輸入,利用以下公式進行變換。圖像像素的位置矩陣表示為p=[x,y]H,則對圖像做n次Fibonacci位置變換表達式為:
(4)
式中:x,y,x′,y′∈{0,1,…,N-1};整數(shù)N≥2為數(shù)字圖像矩陣的階數(shù);(x,y)和(x′,y′)分別為原圖像和變換后圖像像素的行位置和列位置坐標(biāo)。
圖像加密流程如圖2所示。
圖2 圖像加密流程圖
從美國南加州大學(xué)USI-SIPI image database和美國麻省media實驗室圖像庫中選擇實驗圖像。通過對大量圖像進行試驗分析,均得到了一致的結(jié)果。本試驗選擇典型的Lena圖像,文獻[22]和本文算法的分塊示意圖如圖3所示。
圖3 圖像分塊示意圖
圖3(a)~圖3(d)所示為采用文獻[22]提出的高效率分塊圖像置亂算法得到的分塊示意圖,該算法分兩步進行:首先對圖像分塊;然后對圖像塊進行Arnold變換。圖3(e)~圖3(h)為采用本文算法由不同分塊數(shù)目獲得的加密效果。加密圖像所對應(yīng)的灰度直方圖如圖4所示。直觀上看本文算法置亂效果更均勻,既改變了圖像的紋理信息又改變了統(tǒng)計信息,達到了混亂和擴散的效果,加密圖像的直方圖的均勻分布也說明了這一點。
圖4 加密圖像灰度直方圖
從直觀上比較兩種算法的置亂效果欠缺說服力,本文引入置亂度(SM)來衡量圖像的置亂性能,它能較好地反映圖像的置亂程度[23]。SM的計算式為:
(5)
為了衡量圖像分塊數(shù)對本算法的影響,分別采用不同的分塊數(shù)對原始圖像進行加密,試驗結(jié)果如表2所示。
表2 分塊數(shù)對置亂度的影響
從表2可以看出,兩種算法的置亂度隨分塊數(shù)的增加呈非線性遞增趨勢,而本文方法置亂度增加緩慢,說明該算法的置亂程度受分塊數(shù)影響較小,算法有效。
圖像的本質(zhì)特征決定了圖像中相鄰像素間具有較強的相關(guān)性。基于這一性質(zhì),利用統(tǒng)計攻擊方法來分析圖像加密算法具有較高的可行性,因此用相關(guān)系數(shù)來衡量加密算法破壞相鄰像素相關(guān)性的能力。
(6)
(7)
(8)
(9)
式中:x和y分別為相鄰兩個像素的像素值;E(·)、D(·)和Cov(·,·)分別為期望、方差和協(xié)方差;r為相鄰兩像素的相關(guān)系數(shù),r的值接近1的程度越高,則圖像相鄰像素的相關(guān)性越強。
分別采用Arnold-Fibonacci變換(即A-F變換)、文獻[22]算法和本文算法對Lena圖像進行加密,從圖像中隨機選取1 000對相鄰像素點(水平、垂直和對角),然后利用以上公式分別計算圖像在三個方向的相鄰像素相關(guān)系數(shù),其結(jié)果如表3所示。由表3可知,原始圖像的相鄰像素高度相關(guān),本文算法去相關(guān)性能力較強,加密圖像的像素相關(guān)性接近于0,且熵值更接近8,可見本文加密算法優(yōu)于其他算法。
表3 相鄰像素的相關(guān)系數(shù)對比
數(shù)字圖像經(jīng)常發(fā)生剪切攻擊,如果圖像受到不同程度上的剪切,算法仍然能夠在一定程度上恢復(fù)原始信息,則說明該加密解密算法對剪切具有魯棒性。首先利用本文算法對Lena圖像進行加密,然后進行一定程度的剪切,最后對剪切圖像進行解密,如圖5所示。
圖5 抗剪切試驗結(jié)果圖
由圖5可以看出,即使圖像受到50%的剪切,解密算法仍然能夠恢復(fù)出原始圖像,說明本算法是有效的,可抗剪切攻擊。本文加密算法具有均勻置亂步驟,保證了被剪切掉的部分具有最大的不相關(guān)性,同時加密后的圖像具有最大的不相關(guān)性,從而可以很容易地恢復(fù)原始圖像。
為了驗證本文算法的抗噪聲性能,在加密后的圖像中加入均值為0、方差為σ的高斯白噪聲。在圖3(h)中加入不同方差的高斯噪聲然后采用本文算法進行加密與解密,抗噪聲試驗結(jié)果如圖6所示。
圖6 抗噪聲試驗結(jié)果圖
通過上述噪聲攻擊試驗可以看出,當(dāng)加密圖像受到不同程度的高斯白噪聲影響時,本文的解密算法也能基本恢復(fù)原始圖像,而且基本不會影響圖像整體視覺效果,表明本算法可以抵抗不同程度的高斯白噪聲攻擊。
試驗運行平臺為Pentium(R)、雙CPU、2.10 GHz、內(nèi)存2 GB的計算機,操作系統(tǒng)為Windows XP企業(yè)版,利用VC++6.0編寫相應(yīng)的加密、解密算法,并記錄執(zhí)行時間,對文獻[22]、文獻[24]、文獻[25]算法進行了對比,得到的執(zhí)行時間如表4所示。由表4可知,本文算法遠優(yōu)于文獻[24],文獻[24]與文獻[22]的執(zhí)行時間相差不到1 s。
表4 不同算法的執(zhí)行時間
本文基于二維Fibonacci變換和均勻分塊的思想,提出了一種新的圖像分塊加密算法[25-27]。首先對原圖像分塊,對塊內(nèi)像素點執(zhí)行按位替代操作,然后利用均勻分塊算法置亂,再對置亂后的每個圖像塊進行Fibonacci像素值置亂,最后對塊置亂后的圖像進行Fibonacci位置置亂。試驗表明,本文算法加密、解密效果較好,可以抵抗不同程度的剪切、噪聲等常規(guī)攻擊,而且算法具有一定的實時性,滿足實際應(yīng)用。
[1] 齊東旭,鄒建成,韓效宥.一類新的置亂變換及其在圖像信息隱蔽中的應(yīng)用[J].中國科學(xué)(E輯),2000,43(3):304-312.
[2] Won Y,Hyoungshick K.An image encryption scheme with a pseudorandom permutation based on chaotic maps[J].Communication in Nonlinear Science and Numerical Simulation,2010,15(12):3998-4006.
[3] NayakC K,Acharya A K,Das S.Image encryption using an enhanced block based transformation algorithm[J].International Journal of Research and Review in Computer Science,2011,2(2):275-279.
[4] Ismail I A,Amin M,Diab H.A digital image encryption algorithm based a composition of two chaotic logistic map[J].International Journal of Network Security,2010,11(1):1-10.
[5] Chen Dongming,Chang Yunpeng.A novel image encryption algorithm based on logistic maps[J].Advances in Information Science and Service Sciences,2011,3(7):364-372.
[6] Pareek N K,Patidar V,Sud K K.Image encryption using chaotic logistic map[J].Image and Vision Computing,2006(24):926-934.
[7] Patidar V,Sud K K.Modified substitution-diffusion image cipher using chaotic standard and logistic maps[J].Communication in Nonlinear Science and Numerical Simulation,2010(15):2755-2765.
[8] Jolfaei A,Mirghadri A.Image encryption using chaos and block cipher[J].Computer and Information Science,2011,4(1):172-185.
[9] Sathishkumar G A,Bagan K B.A novel image encryption algorithm using pixel shuffling base 64 encoding based chaotic block cipher[J].WSEAS Transactions on Computers,2011,10(6):169-178.
[10]Indrakanti S P,Avadhani P S.Permutation based image encryption technique[J].International Journal of Computer Applications,2011,28(8):45-47.
[11]Patidar V,Pareek N K,Purohit G.A robust and secure chaotic standard map based pseudorandom permutation-substitution scheme for image encryption[J].Optics Communications,2011(284):4331-4339.
[12]Fridrich J.Symmetric ciphers based on two-dimensional chaotic maps[J].Internation Journal of Bifurcat Chaos,1988,8(6):1259-1284.
[13]丁瑋,齊東旭.數(shù)字圖像變換及信息隱藏與偽裝技術(shù)[J].計算機學(xué)報,1998,21(9):839-843.
[14]柏森,曹長修,曹龍漢.基于騎士巡游變換的圖像細節(jié)隱藏技術(shù)[J].中國圖像圖形學(xué)報,2001,6A(11):1096-1100.
[15]南艷紅,李南,鄒建成.Fibonacci變換及其在數(shù)字圖像水印中的應(yīng)用[J].中山大學(xué)學(xué)報:自然科學(xué)版,2004,43(2):148-151.
[16]Zou J C,Qi D X,Rabab K.A novel watermarking method based on Fibonacci numbers[C]//Proceedings of ACM International Conference on Virtual Reality Continuum and its Applications,2006:335-338.
[17]Zou J C,Rabab K W,Qi D X.A new digital image scrambling method based on fibonacci numbers[C]//Proceedings of the 2004 IEEE International Symposium on Circuits and Systems,2004:965-968.
[18]Pareek N K,Patidar V,Sud K K.Image encryption using chaotic logistic map[J].Image and Vision Computing,2006(24):926-934.
[19]Mazloom S,Eftekhari A M.Color image encryption algorithm based on coupled nonlinear chaotic map[J].Chaos,Solitons & Fractals,2009,42(3):1745-1754.
[20]Patidar V,Purohit G,Sud K K.Image encryption through a novel permutation-substitution scheme based on chaotic standard map[C]//International Workshop on Chaos-Fractals Theories and Applications,2010,5(8):164-169.
[21]Pareek N K.Design and analysis of a novel digital image encryption scheme[C]//International Journal of Network Security & its Applications,2012,4(2):95-108.
[22]王圓妹,李濤.基于Arnold變換的高效率分塊圖像置亂算法的研究[J].電視技術(shù),2012,36(3):17-19.
[23]侯啟檳,楊小帆,王陽生等.一種基于小波變換和騎士巡游的圖像置亂算法[J].計算機研究與發(fā)展,2004,41(2):369-375.
[24]王道順,楊地蓮,齊東旭.數(shù)字圖像的兩類非線性變換及其周期性[J].計算機輔助設(shè)計與圖形學(xué)報,2001,13(9):829-833.
[25]Zou J C,Rabab K W,Qi D X.The generalized fibonacci transformations and application to image scrambling[C]//Proceedings of the 2004 IEEE International Conference on Acoustic,Speech,and Signal Processing(ICASSP),2004:385-388.
[26]李太勇,賈華丁,吳江.基于三維混沌序列的數(shù)字圖像加密算法[J].計算機應(yīng)用,2006(7):52-56.
[27]向德生,熊岳山.基于約瑟夫遍歷的數(shù)字圖像置亂算法[J].計算機工程與應(yīng)用,2005(10):23-24.