張 楠,夏 瑋,趙子平,程鄴華
(1.天津師范大學計算機與工程信息學院,天津 300387;2.河北工程大學 信息與電氣工程學院,河北 邯鄲 056000)
彩色圖像的廣泛應用使得彩色圖像加密具有更大的使用價值,并日漸成為人們的研究熱點[1-3].近年來,很多學者對彩色圖像空間域加密算法進行了大量研究[4-13],而對頻域加密的研究較少.空間域加密算法主要是對二維灰度圖像的像素點進行位置置亂,然后對置亂的像素點進行異或運算,以達到加密效果.空間域加密算法的優勢是可以充分利用圖像數據的矩陣特征,計算速度快,算法直觀,易于理解.但是,由于加密過程破壞了像素之間的相關性,會導致圖像壓縮的效果變差.基于頻域的圖像加密算法對圖像進行小波變換后的系數進行加密處理,且可以根據人類視覺系統的特征,僅對一些重要數據進行處理,明顯減少了加密的數據量,提高了加密效率.同時,這類算法可以很好地與壓縮算法結合,減少網絡傳輸的數據量.
為了加強圖像加密的安全性,目前多采用復雜的高維混沌系統[14-15].相對于低維混沌系統,高維混沌系統的密鑰空間更大,隨機性更強,具有更高的安全性.本研究提出了一種基于Lorenz 混沌系統,針對彩色圖像小波域的加密算法,首先對圖像進行小波處理,對得到的小波域系數矩陣依據混沌系統產生的無序序列進行多次分塊置亂,以提高置亂效率;然后采用擴散和置亂同時進行的方式,減少算法的遍歷次數,從而提高圖像的加密效率,減少加密算法運算的時間.
混沌現象是出現在非線性動力系統中的確定性的、類似隨機的過程,這種過程既非周期性的又不收斂,并且對初始值有極其敏感的依賴性.通過自身對初始值和結構參數的敏感依賴性,系統可以提供數量眾多、非相關、類隨機而又確定可再生的信號.由于上述特點,混沌已廣泛應用于保密通訊中,同時也可以作為加密序列.
Lorenz 混沌具有很好的隨機性,基于此混沌序列的加密系統可以獲得更好的安全性.由Lorenz 混沌系統生成的混沌序列具有以下優點:(1)系統結構較低維系統復雜,系統變量的實數值序列更不可測;(2)通過對系統輸出的實數值混沌序列進行處理,可以產生單變量或多變量組合的加密混沌序列,使得加密序列的設計非常靈活;(3)系統的初值和系統參數均可以作為生成加密混沌的種子密鑰,若設計過程中再加入部分控制變量,加密算法的密鑰空間將大大高于低維混沌系統.
Lorenz 混沌映射由美國氣象學家Lorenz 在實驗過程中提煉得出,其動力系統學方程式[16]為

當參數σ、r 和b 分別取10、28 和8/3 時,Lorenz 混沌映射模型處于典型的混沌狀態.基于初始條件,通過四階Runge-Kutta 迭代作用可以產生三維混沌序列x(i)、y(i)和z(i),該序列是非周期性的,且對初值非常敏感.
基于頻域的圖像加密原理首先對彩色圖像進行R、G 和B 三基色分離,然后對轉換成的二維灰度圖像進行小波變換,得到小波域系數;再把混沌系統的初始值和參數作為密鑰,將密鑰帶入混沌系統使之產生無序實數序列,并對實數序列進行預處理;用所得的無序實數序列根據一定的規則對小波域系數進行置亂,接著對置亂后的數據矩陣進行異或運算,最終得到加密圖像.
為了降低算法的計算強度和空間需求,可把三維彩色圖像轉化為二維空間的灰度圖像進行處理.將輸入的Pm×n×3原三維彩色圖像分離成R、G 和B三基色分量PR、PG和PB,分離方法為

應用于數字圖像的離散小波變換(Discrete Wavelet Transform,DWT)可以視為利用低通濾波器和高通濾波器將數字圖像在頻域上分解為低頻和高頻兩類系數.低頻類系數包含了圖像的大部分信息,能量較為集中,對這一部分系數進行加密即可得到較好的圖像加密效果.
輸入PR、PG和PB共3 個灰度圖像矩陣,分別對其進行db1 一級小波分解.將所得小波域系數的低頻系數矩陣進行置亂加密,而高頻系數則不做改變.
設產生的低頻系數矩陣為DR(l,k)、DG(l,k)和DB(l,k),為了計算方便,本研究將這3 個矩陣轉化為一維序列DR(i)、DG(i)和DB(i),其中i=l×k.
采用上文中提到的Lorenz 混沌映射產生所需的實數序列{x(i),y(i),z(i)},但文獻[6]指出,該序列易受線性預測攻擊,且序列間的相關特性較高,故在對圖像進行加密前需要對產生的原始序列進行置亂預處理.
置亂預處理的具體步驟為:
(1)將序列值同時擴大10 的m 次方倍,m≥6.
(2)利用round 函數求取步驟(1)中產生的每個數值的最近整數,與原數值作差,得出值域在(-0.5,0.5)之間的新序列.
數學計算模型為

根據式(2)產生的值作如下處理,使其成為適合異或的操作數,得到擴散預處理的計算模型:

式(3)中:mod 函數是取模運算,得出序列{Cx(i),Cy(i),Cz(i)},用于下文中的異或操作.
本研究采用小波域系數值置亂和擴散同步進行的方法,即每置亂1 個系數后,就對該置亂系數進行異或擴散.
置亂與擴散的過程(僅用R 分量舉例說明)為:
(1)設m 為DR(i)序列的長,k′=1,l′=log2(m)-1,n=l′.
(2)將DR(i)序列分成2n×2n大小的序列段,每個序列段用FR(i)來表示.
(3)將由式(2)所得的預處理過的三維實數序列{x(i),y(i),z(i)}從小到大進行排序,在每個序列的排序過程中,根據其序列地址變化的映射生成一個由序列地址組成的序列Kx(i),將該序列作為對步驟(2)中生成的小波域低頻系數序列段進行置亂的置亂索引,即DR(i)表示原低頻系數序列中第i段,則FR(Kx(i))表示置亂后的FR(i).
(4)令DR(i)=FR(i),k′=k′+1,n′=n′-1.這時程序回到步驟(2),進行循環操作,直到k′≤l′.當k′=l′時,FR(i)的大小為2×2.
(5)對分段置亂后的Dr(i)進行整體置亂,每置亂一個系數值后即與式(3)中生成的操作數序列進行異或操作.

(6)輸出合成彩色圖像,完成加密.
(7)解密算法為加密算法的逆過程.
該加密模版對小波域系數進行了多次置亂,與單次置亂算法相比較,增大了解密的難度,且置亂時先對分成的序列段進行置亂,節省了計算時間.最后擴散與置亂同時進行,減少了算法對加密圖像的遍歷次數.
選用大小為256×256×3、灰度值為256 色的Lena.jpg 作為實驗圖像,利用Matlab7.0 為平臺進行實驗,Lorenz 混沌系統的3 個初值分別取值為0.182 505 937 4、0.362 709 148 5 和0.251 940 736 8,參數取值為a=35,b=10,c=1,d=10 和u=8,積分步長為0.001,采用四階Runge-Kutta 算法解微分方程.本研究的最終加密效果如圖1 所示,由圖1可見,算法已經完全隱藏了原始圖像,看不出原始圖像的輪廓.

采用本研究提出的算法與文獻[4]和文獻[6]中提出的算法對同一彩色Lena 圖像在同一設備上運行計算,測試得到的加密運算時間如表1 所示.

表1 算法運行時間比較Tab.1 Comparison of running time of algorithms
由表2 可以看出,本研究提出的算法在運行時間上比其他2 種算法節省多于1.080 0 s 的時間,達到了研究所期望的效果.文獻[4]中提出的算法為直接在空域上對圖像進行置亂和擴散;文獻[6]中提出的算法則是在對圖像進行小波處理的基礎上,對小波域系數進行置亂和擴散,后2 種算法采用了相同的置亂方法.
原圖的灰度直方圖與加密后的灰度直方圖對比如圖2 和圖3 所示.


對比圖2 和圖3 可知,與分布不均勻的原始直方圖相比,加密后的直方圖平坦且灰度值呈均勻分布.這表明密文的像素值在0~255 范圍內的取值概率均等,即對整個密文空間呈均勻分布特性,攻擊者無法從灰度值的特征中獲取有效信息,因而可以有效地防止統計攻擊,加強了圖像的安全性.
一個好的加密系統應該有足夠大的密鑰空間來防止攻擊者暴力破解.本研究提出的算法中,密鑰包括了x(0)、y(0)和z(0),以及對序列預處理時的m 值,任何一個值改變都不能正確解密圖像.為了測試本研究的密鑰敏感性,采取2 組密鑰對加密圖像進行解密,圖4a 為原始密鑰即x(0)=0.182 605 937 4,其他初始值不變時的解密圖像,圖4b 為將x(0)的值改變為0.182 605 937 5,其他初始值不變時的解密圖像,可以看出,即使在密鑰發生微小改變時,也不能得到正確的解密圖像.

圖像在處理、保存和傳輸過程中經常會受到噪聲的干擾,一個好的加密算法應該具有良好的抗干擾能力.傳輸過程中在可能引入的隨機噪聲引起損失或加密圖像部分數據缺損后,圖像應均能正確解密,恢復出原圖像.從實驗結果看,本研究算法具有較好的抗干擾能力.圖5 為加密圖像受到幾何失真或噪聲污染后的加密圖像和解密圖像.

圖5b 為加密圖像被剪切24%后的解密圖像,圖像存在噪點,但圖像特征與細節效果仍然很明顯,效果良好.圖5d 為加密圖像被剪切50%后的解密圖像,圖像存在大量的噪點,個別細節失真,但圖像特征依舊明顯.圖5f 是受到5%高斯噪聲污染后的解密圖像,可以看出噪聲污染對原圖像幾乎沒有影響.
本研究提出一種基于Lorenz 混沌系統的彩色圖像小波域加密算法,在置亂階段對系數矩陣進行多次分塊置亂,可在增加置亂強度的同時,降低置亂算法的強度.本研究所采用的擴散和置亂同時進行的方式減少了算法遍歷次數,提高了加密效率.實驗結果和數據分析表明:該算法具有良好的加密效果和很強的密鑰敏感性,可以抵抗暴力破解和其他干擾,具有較高的安全性.但小波系數所含圖像信息的減少導致圖像的加密強度有所降低,這是今后研究需要改進的地方.
[1]BLACKLEDGE J,AHMAD M,FAROOQ O.A multi-level blocks scrambling based chaotic image cipher [J].Information Processing Letters,2010,94:171—182
[2]YE G D,WONG K W.An efficient chaotic image encryption algorithm based on a generalized Arnold map[J].Science Business Media,2012,69(4):2079—2087.
[3]GUAN Z Q,PENG J,JIN S Z.Research on a novel image encryption scheme based on the hybrid of chaotic maps[J].Verlag Berlin Heidelberg,2010,6064:222—229.
[4]劉云,鄭永愛.基于混沌系統的彩色圖像加密新方案[J].計算機工程與應用,2011,47(3):90—93.
[5]舒永錄,張玉書,肖迪,等.基于置亂擴散同步實現的圖像加密算法[J].蘭州大學學報:自然科學版,2012,48(2):113—116.
[6]尹顯東,姚軍,李在銘,等.基于混沌序列的頻域圖像加密技術研究[J].計算機工程與應用,2004(34):12—14.
[7]張曉強,王蒙蒙,朱貴良.圖像加密算法研究新進展[J].計算機工程與科學,2012,34(5):1—5.
[8]陳剛,趙曉宇,李均利.一種自適應的圖像加密算法[J].軟件學報,2005,16(11):1970-1982.
[9]陸陽,楊文泉,陳蕾.圖像頻域加密算法[J].計算機工程與應用,2003(14):130—131.
[10]王虹,孫景.基于混沌的圖像復合置亂和多級信息隱藏算法[J].計算機工程與應用,2008,44(3):67—70.
[11]邱勁.混沌偽隨機序列及其在數字圖像加密應用的研究[D].重慶:重慶大學,2011:36—55.
[12]王英,鄭德玲,王振龍.空域彩色圖像混沌加密算法[J].計算機輔助設計與圖形學學報,2006,18(6):876—880.
[13]田巖,謝玉波,李濤,等.一種基于分塊和混沌網的圖像置亂方法[J].中國圖象圖形學報,2007,12(1):56—60.
[14]張碩,蔡如華,陳光喜.一種空頻域結合的多維混沌系統圖像加密方案[J].微電子學與計算機,2010,27(7):60—64.
[15]鄭潔,韓鳳英.基于四維混沌系統的數字圖像加密算法[J].計算機工程與應用,2009,45(12):104—106.
[16]余日,張定會.彩色數字圖像的Lorenz 混沌加密[J].信息安全,2012,28(4):117—118.