空域彩色圖像混沌加密算法

針對彩色圖像的存儲特性提出一種混沌加密算法——空域彩色圖像混沌加密算法,該圖像加密算法首先對Lorenz系統(tǒng)輸出的實值混沌序列進行預處理,然后利用其構造置亂索引矩陣,進而實現(xiàn)空域彩色圖像三基色置亂,它很好地克服了傳統(tǒng)圖像文件加密方法秘密不能全部寓于密鑰之中的缺陷,被廣泛運用。

一、Lorenz混沌序列的預處理

Lorenz系統(tǒng)的動力學方程為:

空域彩色圖像混沌加密算法

其中,系統(tǒng)參數(shù)σ,r,b的典型值分別為σ=10,r=28,b= 8/3。在σ和b保持不變,r>24.74時,系統(tǒng)進入混沌態(tài)。該系統(tǒng)輸出的實值混沌序列的時域特性如圖1 所示(僅以x實值混沌序列為例)。

空域彩色圖像混沌加密算法

該系統(tǒng)輸出的實值混沌序列固有一些缺陷:x,y,z的值域各不相同,不利于批處理;x,y,z局部取值呈現(xiàn)單調性,易受線性預測攻擊;x,y,z自相關特性非理想的艿函數(shù),互相關特性非理想的零特性,不僅難以保證不可預測性,而且系統(tǒng)多輸出特性也不能得到充分利用,另外,由于系統(tǒng)混沌特性的成熟研究,使其容易被攻擊,所以對Lorenz混沌序列的應用必須予以處理,以克服其自身缺陷、充分發(fā)揮其三輸出的特性,并將其成熟特性加以演變。對于連續(xù)混沌系統(tǒng),改善其混沌序列偽隨機特性一個最簡單的方法是加大積分步長。但是,隨著所需序
列長度的增加,迭代時間也將隨之增長,且積分步長的加大并未改變混沌序列的演化規(guī)律,通過大量的數(shù)據分析,本文構建了對Lorenz混沌序列預處理的數(shù)學模型。

空域彩色圖像混沌加密算法

其中,x',y',z'為預處理后的實值混沌序列;m為移位控制參數(shù),通過它可以提高序列取值的不規(guī)則性;round(.)為取最接近整數(shù)運算,對Lorenz系統(tǒng)混沌特性加以不可逆演變;a為轉換因子,當a=0.5時,即得到(0.1)分布的實值混沌序列。

x',y',z'實值混沌序列的時域特性如圖2所示(僅以x'實值混沌序列為例)。預處理結果為x',y',z'的值域均為(0,1);取值不規(guī)則性大大提高;3個實值混沌序列均有較理想的δ函數(shù)自相關特性,近似為0的互相兼特性。同時預處理還不可逆地演變了Lorenz系統(tǒng)為人所熟知的混沌特性,進一步提高了算法的保密性。x',y',z'可獨立使用,也可互相組合構成多個加密混沌序列,實現(xiàn)圖像文件的多路并行加密。所有這些均說明預處理是正確、可行的。

空域彩色圖像混沌加密算法

二、空域彩色圖像混沌加密算法/解密算法

從及iam算法的計算速度、置亂程度、抗攻擊能力等因素綜合考慮,本文提出以8×8塊為單位的彩色圖像三基色空域置亂算法,其基本原理如下:

1、 Lorenz系統(tǒng)3個參數(shù)和3個初值作為算法的密鑰足(σ,r,b,xo,y0,z0)(還可以加入算法設計過程中的部分控制參數(shù))?;煦缦到y(tǒng)對系統(tǒng)參數(shù)和初始狀態(tài)極其敏感,因此加密算法理論密鑰空間無窮大,有著近于“一次一密竹的安全性。

2、置亂算子——置亂索引矩陣,由混沌系統(tǒng)的密鑰控制生成,不同的密鑰生成不同的置亂算子,其秘密全部寓于密鑰之中。因此加密算法符合Kerckhoffs準則,滿足現(xiàn)代加密體制的要求。

置亂索引矩陣的構造.由x',y',z'實值混沌序列生成索引序列l(wèi)x,ly,lz,用其構造置亂索引矩陣Px,Py,Pz。索引序列指定置亂索引矩陣中各元素的幾何位置,各元素按索引序列的順序賦以0,…,l的自然數(shù),則置亂索引矩陣的任一元素Pi∈[1,2,…,n],且Pij=Pkl,當且僅當i=j,k=l。

3、將待加密彩色圖像的R,G,B3個分量按8×8大小分塊,以塊為單位分別用置亂索引矩陣Px,Py,Pz進行空域置亂。JPEG壓縮過程的二維DCT、系數(shù)量化以及熵編碼都是以8×8塊為基本單位進行的,圖像像素幾何位置被置亂,破壞了DCT系數(shù)的分布概率;而Huffman編碼表無法按最優(yōu)方式使用,導致壓縮后解密效果變壞。按8×8塊置亂大大地減小了對DCT系數(shù)分布的破壞,使加密圖像對JPEG壓縮具有一定的抵抗能力;同時其既不失全局置亂的優(yōu)勢(尤其對大尺寸圖像),又能降低計算強度和空間需求。

加密算法

Step1、輸入待加密彩色圖像文件。分離彩色圖像的R,G,B三基色分量。

Step2、Lorenz混沌序列預處理.輸入密鑰是(σ,r,b,xo,y0,z0)。生成x,y,z實值混沌序列,應用式(2)對x,y,z混沌序列進行預處理,得到x,y,z實值混沌序列。

Step3、構造置亂索引矩陣.按需要長度l=(M×N)/(8×8)隨機截取x',y',z',升序排列[a,lx]=sort(i),[b,ly]= sort(歹),[clz]=sort(y');用生成的索引序列l(wèi)x,ly,lz按行或列轉換成二維矩陣,即得置亂索引矩陣Px,Py,Pz。

Step4、空域置亂.按置亂索引矩陣Px,Py,Pz規(guī)則重排三基色分量8×8塊的幾何位置,實現(xiàn)塊式空域置亂。

Step5、輸出置亂彩色圖像文件。合成R,G,B三基色圖,即得置亂彩色圖像文件。

解密算法是加密算法的逆過程。

三、仿真實驗

1、密鑰空間的保證

測試條件如下:系統(tǒng)參數(shù)σ=10,r=28,b=8/3;初始值xo=0.1826059374,yo=0.3627091485,zo=0.2519407368;迭代次數(shù)以=1×105(除去了序列的初始段)。系統(tǒng)參數(shù)r和初值x0,yo,z0分別發(fā)生微小變化。測試結果如表1所示,其中的位變化率指索引序列的位變化率,當系統(tǒng)參數(shù)和初值發(fā)生微小變化時,索引序列的位變化率超過99%。這表明預處理后的混沌序列仍對系統(tǒng)參數(shù)和初值極其敏感,既保證了算法的密鑰空間,同時說明若采用有微小錯誤的密鑰嘗試解密是不可能的,且算法能夠抵抗對密鑰的窮舉攻擊。

空域彩色圖像混沌加密算法

2、保密性測試

如圖3所示,選擇640×640tissue,512×512 airplane,320×320 kids 3幅具有不同紋理特征的標準圖像;圖4所示為置亂圖像。從密碼學角度,為了加強算法的擴散過程,三基色分量
分別用Px,Py,Pz置亂。若采取唯密文攻擊,則解密工作量高達3×(M×N)!,迸一步加大了破譯難度,另外,三基色分量分別置亂,混淆了彩色圖像文件每一像素的R,G,B三元素,使加密圖像文件在視覺上發(fā)生了色彩變化,圖像更難讀懂。圖5所示為正確解密和錯誤解密示例,其中圖5a所示為以tissue為例的正確解密圖像,圖5b所示為以airplane為例,參數(shù)r的偏差為10 -10時的錯誤解密圖像,圖5c所示為以kids為例,初值x0的偏差為有10 -10時的錯誤解密錯誤解密示例,其中圖5a所示為以tissue為例的正確解密圖像,圖5b所示為以airplane為例,參數(shù)r的偏差為10-10時的錯誤解密圖像,圖5c所示為以kids為例,初值zo的偏差為有10 -10時的錯誤解密圖像,由于x,y,z實值混沌序列對系統(tǒng)參數(shù)和初值極其敏感,即使密鑰有微小變化也會得到完全不同的置亂索引矩陣,從而導致錯誤的解密結果。

空域彩色圖像混沌加密算法

空域彩色圖像混沌加密算法

 

3、置亂度分析

常用于圖像失真度量的峰值信噪比和歸一化互相關度不能很好地刻畫圖像的置亂度,怎樣對置亂效果進行量化,以客觀地反映置亂算法的有效性。給出了圖像置亂程度的3個定義,但其不便于計算,張華熊等利用概率論中的均值和方差定義以階置亂度的計算公式,計算較為復雜,本文引入了一種以最簡單、最常用的Arnold置亂作為基底的置亂度量,可以用來衡量對混沌置亂的置信度,其計算式構造為:

空域彩色圖像混沌加密算法

其中,X={xi,j }N表示原始圖像,X'={x'i,j }N表示混沌置亂圖像,A={xi,j }N是Arnold置亂圖像。二維Arnold變換為:

空域彩色圖像混沌加密算法

其中x,y∈(0,1,2,…,N-1)為某一像素點的原坐標,x’,y'∈(0,1,2,…,N-1)為變換后的坐標,N是原始圖像矩陣的階數(shù)。Arnold變換具有周期性,對應給定的自然數(shù)N≥2,Arnold變換的周期是使得:

空域彩色圖像混沌加密算法

成立的最小自然數(shù)n,則對應640×640圖像文件,n=480;對應512×5 12圖像,n=384;對應320×320圖像,n= 240。

圖6所示為對圖3中的3幅圖像進行置亂并應用式(3)計算出的對應Arnold變換一個周期的置亂度曲線。可見,本文的混沌置亂與Arnold變換相比不低于96%,具有一定的可靠性。

空域彩色圖像混沌加密算法
4、抗攻擊測試

圖7所示為加密圖像受到壓縮處理、噪聲污染及幾何失真后的解密效果,圖7a所示為以tissue為例的圖像文件加密經約20%不規(guī)則剪切后的解密圖像,其與原始圖像的相似度為86.2396;圖7b所示為以airplane為例的加密圖像經75%的JPEG壓縮后的解密圖像,其與原始圖像的相似度為92. 6496;圖7c所示為以kids為例的加密圖像受到10%強度的高斯噪聲污染后的解密圖像,其與原始圖像的相似度為84.53%。

空域彩色圖像混沌加密算法

小知識之Huffman編碼

哈夫曼編碼(Huffman Coding)是一種編碼方式,哈夫曼編碼是可變字長編碼(VLC)的一種。Huffman于1952年提出一種編碼方法,該方法完全依據字符出現(xiàn)概率來構造異字頭的平均長度最短的碼字,有時稱之為最佳編碼,一般就叫作Huffman編碼。