張晨
(上海大學(xué) 通信與信息工程學(xué)院,上海 200444)
圖像信息,具備許多文字信息所不具有的特點(diǎn),因此圖像在教育、軍事、娛樂等領(lǐng)域被廣泛應(yīng)用。隨著Internet的迅速發(fā)展,信息的傳播變得越來(lái)越快捷,但正如任何事物都有其矛盾對(duì)立的一面,盜版、竊密等侵權(quán)問題也隨著網(wǎng)絡(luò)技術(shù)的不斷推進(jìn)而變得日益猖獗。對(duì)于商業(yè)授權(quán)圖像,或是企業(yè)機(jī)密圖像,又或是軍事機(jī)密圖像等的隱私保護(hù)也成了信息時(shí)代急需解決的一大難題。圖像加密可分為基于空域的圖像加密和基于頻域的圖像加密,本文主要是基于空域的圖像加密,并評(píng)定其中綜合性能最好的加密方法。
Arnold變換置亂加密技術(shù),屬于基于矩陣變換/像素置換的圖像加密技術(shù),這種算法要求圖像的寬度和高度必須相等,否則無(wú)法進(jìn)行Arnold變換。
設(shè)一幅 N×N圖像的橫坐標(biāo)為 x, 縱坐標(biāo)為 y,x,y∈{0,1,2,…,N-1},定義 x’,y’滿足式(1)
其中,a,b 均為整數(shù),通常令 a=b=1,得式(2)
從幾何意義上講,Arnold變換實(shí)際上是對(duì)圖像進(jìn)行拉伸、壓縮、折疊、拼接操作[1],遍歷一次Arnold變換后,原圖像像素點(diǎn)的位置坐標(biāo)(x,y)被搬遷到置亂圖像的坐標(biāo)(x’,y’),由于單純的坐標(biāo)變換會(huì)引起圖像大小的改變,所以引入取模運(yùn)算(mod N),這樣置亂后的圖像就能保持原圖像的大小,即N×N。
一次Arnold變換之后,圖像仍然保留許多原始信息,為達(dá)到較好的加密效果,需要重復(fù)多次迭代Arnold變換,因此,加密公式可推
一般n>5,即迭代次數(shù)大于5次時(shí),可以達(dá)到相對(duì)理想的加密效果。
Arnold變換置亂算法是有很大局限性的,一方面,對(duì)于尺寸較大的圖像來(lái)說(shuō),多次迭代Arnold變換進(jìn)行加密、解密操作,會(huì)使得計(jì)算量非常大,加密周期也會(huì)因此變得很長(zhǎng);另一方面,Arnold變換加密算法不符合Kerckhoffs準(zhǔn)則,因?yàn)檫@種算法是經(jīng)不起公開的考驗(yàn)的,一旦加密算法被攻擊者得知,攻擊者可根據(jù)Arnold變換的周期性,進(jìn)行唯密文攻擊,即可在不知密鑰(迭代次數(shù))的情況下,直接破解出原始圖像,對(duì)此,有一種改進(jìn)措施是引入新密鑰(ku,kv),將Arnold變換式改進(jìn)為
如此一來(lái),密鑰總數(shù)增加到 3 個(gè)(n,ku,kv),其中(ku,kv)和加密算法有效地分開,但是,新加入的密鑰僅會(huì)引起圖像像素點(diǎn)在空間上的循環(huán)平移,因此保密性依然欠缺,總而言之,這種算法一般需要與其它加密算法結(jié)合在一起使用,而不適合單獨(dú)對(duì)圖像進(jìn)行加密。
在非線性科學(xué)中,混沌(Chaos)是一種由確定性規(guī)律支配,卻貌似無(wú)規(guī)律而不可預(yù)測(cè)的運(yùn)動(dòng)過(guò)程?;煦缦到y(tǒng)具有擴(kuò)散性、初始條件敏感性和非周期性,正因?yàn)檫@3種特性,所以混沌置亂算法也被應(yīng)用到了圖像加密技術(shù)中。
Logistic映射定義式如式(5)所示
其中,μ 稱為分枝參數(shù)[3],假設(shè) x0∈(0, 1),若 μ 在區(qū)間(0, 4)內(nèi)取值,則 xk無(wú)論迭代多少次,都將落在(0, 1)范圍之內(nèi),實(shí)驗(yàn)表明,當(dāng)3.569 945 6…≤μ≤4時(shí),序列xk將進(jìn)入混沌狀態(tài),特別地,取 μ=4,則 xk將充分占用(0, 1)區(qū)間,并且在(0,1)區(qū)間內(nèi)等概率取值。因此,在密碼系統(tǒng)的應(yīng)用中,通常將Logistic映射直接寫成
與Logistic混沌置亂加密不同,Logistic混沌序列加密不改變圖像像素點(diǎn)的空間位置,而改變圖像像素點(diǎn)的色度值,其算法原理是,利用Logistic映射和閾值函數(shù)產(chǎn)生混沌二值序列,再用這個(gè)二值序列與原圖像像素點(diǎn)的色度值進(jìn)行異或運(yùn)算,從而完成圖像加密,如果繼續(xù)對(duì)加密的圖像用Logistic二值序列進(jìn)行異或運(yùn)算,則能實(shí)現(xiàn)圖像解密。
相應(yīng)地,對(duì)于整幅圖像的加密也很簡(jiǎn)單,只需先把圖像的二維坐標(biāo)矩陣轉(zhuǎn)換成一維序列的形式,并測(cè)定該序列的長(zhǎng)度N,然后產(chǎn)生24×N個(gè)元素的混沌序列[xn],再產(chǎn)生24×N個(gè)元素的混沌二值序列[yn],最后把圖像的所有像素點(diǎn)的RGB色度信息全部提取出來(lái),并將其合并成一個(gè)二進(jìn)制序列,與[yn]進(jìn)行按位異或運(yùn)算,就能實(shí)現(xiàn)整幅圖像的加密,解密則只需再做一次異或運(yùn)算即可。
Fibonacci序列[4]屬于線性遞推序列,其遞推式如式(7)所示,其中 f0和 f1均為初始值,n≥2,n∈Z。
而在實(shí)際編程實(shí)現(xiàn)中,為了防止數(shù)據(jù)溢出出錯(cuò),需要在進(jìn)行公式(7)計(jì)算時(shí)引入取模運(yùn)算,把式(7)改進(jìn)為式(8),不過(guò)N的取值不能過(guò)小,否則會(huì)影響加密效果。
對(duì)于整幅圖像的加密與Logistic混沌序列加密的方法類似,即把圖像的二維坐標(biāo)矩陣轉(zhuǎn)換成一維序列的形式并測(cè)定該序列的長(zhǎng)度N,然后利用式(8)產(chǎn)生24×N個(gè)元素的序列[xn],最后把圖像的所有像素點(diǎn)的RGB色度信息全部提取出來(lái),并把它們合并成一個(gè)二進(jìn)制序列,與[xn]進(jìn)行按位異或運(yùn)算,就能實(shí)現(xiàn)整幅圖像的加密,圖像的解密只需再做一次異或運(yùn)算。Fibonacci序列加密的視覺保密性欠佳,加密圖像中可以隱約看出原始圖像中物體的輪廓,這點(diǎn)就遜色于Logistic混沌序列加密。
正如像素坐標(biāo)置亂加密存在無(wú)法保密圖像顏色信息的短板,像素色度替換加密也有其缺陷,即對(duì)差分選擇明文攻擊[5]的抵抗薄弱,而空域混合加密就能取長(zhǎng)補(bǔ)短,它是對(duì)一幅圖像進(jìn)行多種不同類型的加密。有兩種加密方案:一種是對(duì)整幅圖進(jìn)行不同類型加密算法的多重加密;另一種是先對(duì)整幅圖像進(jìn)行分塊,再對(duì)分出的每一小塊進(jìn)行不同類型的加密。
圖1是對(duì)原始圖像先后進(jìn)行Logistic混沌置亂加密和Logistic混沌序列加密的最終效果,取密鑰a1=0.618,密鑰b1=100,密鑰 a2=0.618,密鑰 b2=100。
用本文所述的5種加密方法分別對(duì)原始圖像進(jìn)行加密,再分別用正確的密鑰解密,最后對(duì)各解密圖像進(jìn)行像素改變率測(cè)試,得到實(shí)驗(yàn)結(jié)果如表1所示,5種加密方法都不會(huì)引起圖像的失真。
密鑰空間的大小決定了加密方法能否抵御唯密文攻擊,從理論上講,密鑰空間可以是無(wú)限大的,不過(guò)由于計(jì)算機(jī)數(shù)字精度的限制[6],密鑰空間有一定的取值范圍,但是這個(gè)范圍依然非常大,因此本文中除了Arnold變換置亂加密以外,其余4種加密方法都能抵御唯密文攻擊,而Arnold變換由于具有周期性,從而Arnold變換置亂加密在唯密文攻擊前,超過(guò)最小回復(fù)周期的迭代次數(shù)都是冗余的,所以實(shí)際有效的密鑰空間非常小,無(wú)法抵御唯密文攻擊。
表1 5種加密圖像的像素改變率Tab.1 NPCR of five kinds of encrypted images
從效果圖中可以看出,除了Arnold變換置亂加密以外,其余4種加密方法即使加密密鑰與解密密鑰差別很小,也無(wú)法恢復(fù)出原始圖像的任何信息,因此具有較好的密鑰敏感性。
表2 各方法使用的加解密密鑰Tab.2 Secret key of encryption and decryption
圖2 原始圖像與5種錯(cuò)誤解密圖像Fig.2 Original imageand five kinds of decrypted images with wrong key
圖3 原始圖像與5種加密圖像的直方圖Fig.3 Histogram of original image and five kinds of encrypted images
通過(guò)比較可以看出,由于Arnold變換置亂加密和Logistic混沌置亂加密都屬于像素坐標(biāo)置亂加密,因此加密圖像的直方圖不會(huì)發(fā)生變化,而其余3種加密方法均有涉及像素色度替換,使得直方圖發(fā)生改變,從而起到了對(duì)圖像顏色信息進(jìn)行加密的效果。
圖像鄰域像素相關(guān)性是測(cè)試圖像加密性能的重要指標(biāo)之一[7],而相關(guān)系數(shù)分析也是統(tǒng)計(jì)分析的一種,相關(guān)系數(shù)越大,圖像加密效果越差,相關(guān)系數(shù)越小,圖像加密效果越好。設(shè)N為參與計(jì)算的像素點(diǎn)對(duì)數(shù),x和y是圖像中兩個(gè)相鄰像素點(diǎn)的灰度值,則相關(guān)系數(shù)可用式(9)表示
(xi-Ex)(yi-Ey)。對(duì)原始圖像與5種加密圖像分別進(jìn)行如下實(shí)驗(yàn):在圖像中隨機(jī)地選取水平、垂直和對(duì)角線方向相鄰的像素點(diǎn)各10 000對(duì),并分別計(jì)算各方向上的相關(guān)系數(shù),得到的實(shí)驗(yàn)結(jié)果如表3所示。
表3 原始圖像與5種加密圖像的鄰域像素相關(guān)性Tab.3 Correlation between neighboring pixels of original im age and encrypted images
從表中數(shù)據(jù)可以看出,原始圖像在水平、垂直和對(duì)角線方向上的相關(guān)系數(shù)都很大,經(jīng)過(guò)加密之后,各方向上的相關(guān)系數(shù)都大幅度減小,對(duì)于直方圖分布集中的圖像,采用像素色度替換加密會(huì)使得加密圖像的鄰域像素相關(guān)性降低更明顯。
設(shè)圖像灰度級(jí)為 N,灰度值為 i(i=0, 1, 2, …,N-1)的像素出現(xiàn)的概率為,根據(jù)Shannon定理,圖像的信息熵為
信息熵可以度量圖像灰度值的分布情況,信息熵越大,圖像的灰度分布越一致。信息熵可用于混沌程度的識(shí)別及其混沌程度的整體度量。未加密、Arnold變換置亂加密與Logistic混沌置亂加密的信息熵均為6.234,Logistic混沌序列加密和Logistic混沌置亂與Logistic混沌序列混合加密的信息熵均為7.997,F(xiàn)ibonacci序列加密為7.995??梢钥闯?,圖像單純經(jīng)過(guò)像素坐標(biāo)置亂加密后,信息熵都沒有發(fā)生變化,而經(jīng)過(guò)像素色度替換加密后,信息熵都發(fā)生了改變,本文給出的3種涉及像素色度替換的加密方法,其加密圖像的信息熵都接近8,這也說(shuō)明了它們具有加密圖像顏色信息的能力。
表4 5種加密方法的綜合評(píng)價(jià)Tab.5 Comprehensive evaluation of five kinds of encryption method
分析表中的數(shù)據(jù)可以得出,Logistic混沌序列加密和Logistic混沌系統(tǒng)混合加密都是優(yōu)秀的加密方法,但是前者屬于單純的像素色度替換加密,難以抵抗差分選擇明文攻擊,所以Logistic混沌置亂與Logistic混沌序列混合加密是綜合性能最好的加密方法。
通過(guò)分析得出的結(jié)論:基于Logistic混沌系統(tǒng)的混合加密是綜合性能較為理想的加密方法。不過(guò)這種加密方法依然存在缺陷:一是加密圖像的輸出像素并不依賴于原始圖像的輸入像素,即改變?cè)紙D像的一個(gè)像素只能改變加密圖像的一個(gè)像素,加密算法的擴(kuò)散性不好;二是由于加密圖像的鄰域像素相關(guān)性被減小,導(dǎo)致圖像數(shù)據(jù)難以被壓縮。而新近發(fā)展起來(lái)的SCAN算法加密技術(shù)和基于頻域的加密[7]技術(shù)就能分別解決這兩個(gè)問題,如何設(shè)計(jì)出擴(kuò)散性好且能結(jié)合圖像壓縮編碼技術(shù)的圖像加密算法是下一步研究的目標(biāo)。
[1]李昌剛,韓正之.圖像加密技術(shù)新進(jìn)展[J].信息與控制,2003,32(4):339-343.LI Chang-gang,HAN Zheng-zhi.New progress ofimage encryption technology[J].Information and Control,2003,32(4):339-343.
[2]張穎,楊珗.Arnold雙置亂圖像加密算法[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版,2013,32(10):1429-1432.ZHANG Ying,YANG Yue.Arnold dual scrambling image encryption algorithm[J].Journal of Liaoning Technical U-niversity:Natural Science Edition,2013,32(10):1429-1432.
[3]孫鑫,易開祥,孫優(yōu)賢.基于混沌系統(tǒng)的圖像加密算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002,14(2):136-139.SUN Xin,YI Kai-xiang,SUN You-xian.The image encryption algorithmbased onchaotic system[J].Journal of Computer Aided Design&Computer Graphics,2002,14(2):136-139.
[4]孫勁光,汪潔,孟祥福.改進(jìn)的Fibonacci雙置亂圖像加密算法[J].計(jì)算機(jī)科學(xué),2012,39(11):249-253.SUN Jin-guang,WANG Jie,MENG Xiang-fu.An improved Fibonacci dual scrambling image encryption algorithm[J].Computer Science,2012,39(11):249-253.
[5]Mandal MK,Banik G D,Chattopadhyay D,et al.An image encryption process based on chaotic logistic map[J].IETE Technical Review,2012,29(5):395-404.
[6]任洪娥,尚振偉,張健.一種基于Arnold變換的數(shù)字圖像加密算法[J].光學(xué)技術(shù),2009,35(3):384-387.REN Hong-e,SHANG Zhen-wei,ZHANG Jian.Andigital image encryption algorithm based on Arnold transform[J].Optical Technique,2009, 5(3):384-387.
[7]戈勇,李華,寧永成.基于FPGA的DES加密算法實(shí)現(xiàn)[J].電子科技,2013(7):172-176.GE Yong,LI Hua,NING Yong-cheng.The implementation of DES algorithm based on FPGA[J].Electronic Science and Technology,2013(7):172-176.