張晨
(上海大學 通信與信息工程學院,上海 200444)
圖像信息,具備許多文字信息所不具有的特點,因此圖像在教育、軍事、娛樂等領域被廣泛應用。隨著Internet的迅速發展,信息的傳播變得越來越快捷,但正如任何事物都有其矛盾對立的一面,盜版、竊密等侵權問題也隨著網絡技術的不斷推進而變得日益猖獗。對于商業授權圖像,或是企業機密圖像,又或是軍事機密圖像等的隱私保護也成了信息時代急需解決的一大難題。圖像加密可分為基于空域的圖像加密和基于頻域的圖像加密,本文主要是基于空域的圖像加密,并評定其中綜合性能最好的加密方法。
Arnold變換置亂加密技術,屬于基于矩陣變換/像素置換的圖像加密技術,這種算法要求圖像的寬度和高度必須相等,否則無法進行Arnold變換。
設一幅 N×N圖像的橫坐標為 x, 縱坐標為 y,x,y∈{0,1,2,…,N-1},定義 x’,y’滿足式(1)

其中,a,b 均為整數,通常令 a=b=1,得式(2)

從幾何意義上講,Arnold變換實際上是對圖像進行拉伸、壓縮、折疊、拼接操作[1],遍歷一次Arnold變換后,原圖像像素點的位置坐標(x,y)被搬遷到置亂圖像的坐標(x’,y’),由于單純的坐標變換會引起圖像大小的改變,所以引入取模運算(mod N),這樣置亂后的圖像就能保持原圖像的大小,即N×N。
一次Arnold變換之后,圖像仍然保留許多原始信息,為達到較好的加密效果,需要重復多次迭代Arnold變換,因此,加密公式可推

一般n>5,即迭代次數大于5次時,可以達到相對理想的加密效果。
Arnold變換置亂算法是有很大局限性的,一方面,對于尺寸較大的圖像來說,多次迭代Arnold變換進行加密、解密操作,會使得計算量非常大,加密周期也會因此變得很長;另一方面,Arnold變換加密算法不符合Kerckhoffs準則,因為這種算法是經不起公開的考驗的,一旦加密算法被攻擊者得知,攻擊者可根據Arnold變換的周期性,進行唯密文攻擊,即可在不知密鑰(迭代次數)的情況下,直接破解出原始圖像,對此,有一種改進措施是引入新密鑰(ku,kv),將Arnold變換式改進為

如此一來,密鑰總數增加到 3 個(n,ku,kv),其中(ku,kv)和加密算法有效地分開,但是,新加入的密鑰僅會引起圖像像素點在空間上的循環平移,因此保密性依然欠缺,總而言之,這種算法一般需要與其它加密算法結合在一起使用,而不適合單獨對圖像進行加密。
在非線性科學中,混沌(Chaos)是一種由確定性規律支配,卻貌似無規律而不可預測的運動過程。混沌系統具有擴散性、初始條件敏感性和非周期性,正因為這3種特性,所以混沌置亂算法也被應用到了圖像加密技術中。
Logistic映射定義式如式(5)所示

其中,μ 稱為分枝參數[3],假設 x0∈(0, 1),若 μ 在區間(0, 4)內取值,則 xk無論迭代多少次,都將落在(0, 1)范圍之內,實驗表明,當3.569 945 6…≤μ≤4時,序列xk將進入混沌狀態,特別地,取 μ=4,則 xk將充分占用(0, 1)區間,并且在(0,1)區間內等概率取值。因此,在密碼系統的應用中,通常將Logistic映射直接寫成

與Logistic混沌置亂加密不同,Logistic混沌序列加密不改變圖像像素點的空間位置,而改變圖像像素點的色度值,其算法原理是,利用Logistic映射和閾值函數產生混沌二值序列,再用這個二值序列與原圖像像素點的色度值進行異或運算,從而完成圖像加密,如果繼續對加密的圖像用Logistic二值序列進行異或運算,則能實現圖像解密。
相應地,對于整幅圖像的加密也很簡單,只需先把圖像的二維坐標矩陣轉換成一維序列的形式,并測定該序列的長度N,然后產生24×N個元素的混沌序列[xn],再產生24×N個元素的混沌二值序列[yn],最后把圖像的所有像素點的RGB色度信息全部提取出來,并將其合并成一個二進制序列,與[yn]進行按位異或運算,就能實現整幅圖像的加密,解密則只需再做一次異或運算即可。
Fibonacci序列[4]屬于線性遞推序列,其遞推式如式(7)所示,其中 f0和 f1均為初始值,n≥2,n∈Z。

而在實際編程實現中,為了防止數據溢出出錯,需要在進行公式(7)計算時引入取模運算,把式(7)改進為式(8),不過N的取值不能過小,否則會影響加密效果。

對于整幅圖像的加密與Logistic混沌序列加密的方法類似,即把圖像的二維坐標矩陣轉換成一維序列的形式并測定該序列的長度N,然后利用式(8)產生24×N個元素的序列[xn],最后把圖像的所有像素點的RGB色度信息全部提取出來,并把它們合并成一個二進制序列,與[xn]進行按位異或運算,就能實現整幅圖像的加密,圖像的解密只需再做一次異或運算。Fibonacci序列加密的視覺保密性欠佳,加密圖像中可以隱約看出原始圖像中物體的輪廓,這點就遜色于Logistic混沌序列加密。
正如像素坐標置亂加密存在無法保密圖像顏色信息的短板,像素色度替換加密也有其缺陷,即對差分選擇明文攻擊[5]的抵抗薄弱,而空域混合加密就能取長補短,它是對一幅圖像進行多種不同類型的加密。有兩種加密方案:一種是對整幅圖進行不同類型加密算法的多重加密;另一種是先對整幅圖像進行分塊,再對分出的每一小塊進行不同類型的加密。
圖1是對原始圖像先后進行Logistic混沌置亂加密和Logistic混沌序列加密的最終效果,取密鑰a1=0.618,密鑰b1=100,密鑰 a2=0.618,密鑰 b2=100。

用本文所述的5種加密方法分別對原始圖像進行加密,再分別用正確的密鑰解密,最后對各解密圖像進行像素改變率測試,得到實驗結果如表1所示,5種加密方法都不會引起圖像的失真。
密鑰空間的大小決定了加密方法能否抵御唯密文攻擊,從理論上講,密鑰空間可以是無限大的,不過由于計算機數字精度的限制[6],密鑰空間有一定的取值范圍,但是這個范圍依然非常大,因此本文中除了Arnold變換置亂加密以外,其余4種加密方法都能抵御唯密文攻擊,而Arnold變換由于具有周期性,從而Arnold變換置亂加密在唯密文攻擊前,超過最小回復周期的迭代次數都是冗余的,所以實際有效的密鑰空間非常小,無法抵御唯密文攻擊。

表1 5種加密圖像的像素改變率Tab.1 NPCR of five kinds of encrypted images
從效果圖中可以看出,除了Arnold變換置亂加密以外,其余4種加密方法即使加密密鑰與解密密鑰差別很小,也無法恢復出原始圖像的任何信息,因此具有較好的密鑰敏感性。

表2 各方法使用的加解密密鑰Tab.2 Secret key of encryption and decryption

圖2 原始圖像與5種錯誤解密圖像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
通過比較可以看出,由于Arnold變換置亂加密和Logistic混沌置亂加密都屬于像素坐標置亂加密,因此加密圖像的直方圖不會發生變化,而其余3種加密方法均有涉及像素色度替換,使得直方圖發生改變,從而起到了對圖像顏色信息進行加密的效果。
圖像鄰域像素相關性是測試圖像加密性能的重要指標之一[7],而相關系數分析也是統計分析的一種,相關系數越大,圖像加密效果越差,相關系數越小,圖像加密效果越好。設N為參與計算的像素點對數,x和y是圖像中兩個相鄰像素點的灰度值,則相關系數可用式(9)表示

(xi-Ex)(yi-Ey)。對原始圖像與5種加密圖像分別進行如下實驗:在圖像中隨機地選取水平、垂直和對角線方向相鄰的像素點各10 000對,并分別計算各方向上的相關系數,得到的實驗結果如表3所示。

表3 原始圖像與5種加密圖像的鄰域像素相關性Tab.3 Correlation between neighboring pixels of original im age and encrypted images
從表中數據可以看出,原始圖像在水平、垂直和對角線方向上的相關系數都很大,經過加密之后,各方向上的相關系數都大幅度減小,對于直方圖分布集中的圖像,采用像素色度替換加密會使得加密圖像的鄰域像素相關性降低更明顯。
設圖像灰度級為 N,灰度值為 i(i=0, 1, 2, …,N-1)的像素出現的概率為,根據Shannon定理,圖像的信息熵為

信息熵可以度量圖像灰度值的分布情況,信息熵越大,圖像的灰度分布越一致。信息熵可用于混沌程度的識別及其混沌程度的整體度量。未加密、Arnold變換置亂加密與Logistic混沌置亂加密的信息熵均為6.234,Logistic混沌序列加密和Logistic混沌置亂與Logistic混沌序列混合加密的信息熵均為7.997,Fibonacci序列加密為7.995。可以看出,圖像單純經過像素坐標置亂加密后,信息熵都沒有發生變化,而經過像素色度替換加密后,信息熵都發生了改變,本文給出的3種涉及像素色度替換的加密方法,其加密圖像的信息熵都接近8,這也說明了它們具有加密圖像顏色信息的能力。

表4 5種加密方法的綜合評價Tab.5 Comprehensive evaluation of five kinds of encryption method
分析表中的數據可以得出,Logistic混沌序列加密和Logistic混沌系統混合加密都是優秀的加密方法,但是前者屬于單純的像素色度替換加密,難以抵抗差分選擇明文攻擊,所以Logistic混沌置亂與Logistic混沌序列混合加密是綜合性能最好的加密方法。
通過分析得出的結論:基于Logistic混沌系統的混合加密是綜合性能較為理想的加密方法。不過這種加密方法依然存在缺陷:一是加密圖像的輸出像素并不依賴于原始圖像的輸入像素,即改變原始圖像的一個像素只能改變加密圖像的一個像素,加密算法的擴散性不好;二是由于加密圖像的鄰域像素相關性被減小,導致圖像數據難以被壓縮。而新近發展起來的SCAN算法加密技術和基于頻域的加密[7]技術就能分別解決這兩個問題,如何設計出擴散性好且能結合圖像壓縮編碼技術的圖像加密算法是下一步研究的目標。
[1]李昌剛,韓正之.圖像加密技術新進展[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].遼寧工程技術大學學報:自然科學版,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]孫鑫,易開祥,孫優賢.基于混沌系統的圖像加密算法[J].計算機輔助設計與圖形學學報,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]孫勁光,汪潔,孟祥福.改進的Fibonacci雙置亂圖像加密算法[J].計算機科學,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變換的數字圖像加密算法[J].光學技術,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加密算法實現[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.