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

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

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

其中,x',y',z'為預(yù)處理后的實(shí)值混沌序列;m為移位控制參數(shù),通過(guò)它可以提高序列取值的不規(guī)則性;round(.)為取最接近整數(shù)運(yùn)算,對(duì)Lorenz系統(tǒng)混沌特性加以不可逆演變;a為轉(zhuǎn)換因子,當(dāng)a=0.5時(shí),即得到(0.1)分布的實(shí)值混沌序列。
x',y',z'實(shí)值混沌序列的時(shí)域特性如圖2所示(僅以x'實(shí)值混沌序列為例)。預(yù)處理結(jié)果為x',y',z'的值域均為(0,1);取值不規(guī)則性大大提高;3個(gè)實(shí)值混沌序列均有較理想的δ函數(shù)自相關(guān)特性,近似為0的互相兼特性。同時(shí)預(yù)處理還不可逆地演變了Lorenz系統(tǒng)為人所熟知的混沌特性,進(jìn)一步提高了算法的保密性。x',y',z'可獨(dú)立使用,也可互相組合構(gòu)成多個(gè)加密混沌序列,實(shí)現(xiàn)圖像文件的多路并行加密。所有這些均說(shuō)明預(yù)處理是正確、可行的。

二、空域彩色圖像混沌加密算法/解密算法
從及iam算法的計(jì)算速度、置亂程度、抗攻擊能力等因素綜合考慮,本文提出以8×8塊為單位的彩色圖像三基色空域置亂算法,其基本原理如下:
1、 Lorenz系統(tǒng)3個(gè)參數(shù)和3個(gè)初值作為算法的密鑰足(σ,r,b,xo,y0,z0)(還可以加入算法設(shè)計(jì)過(guò)程中的部分控制參數(shù))?;煦缦到y(tǒng)對(duì)系統(tǒng)參數(shù)和初始狀態(tài)極其敏感,因此加密算法理論密鑰空間無(wú)窮大,有著近于“一次一密竹的安全性。
2、置亂算子——置亂索引矩陣,由混沌系統(tǒng)的密鑰控制生成,不同的密鑰生成不同的置亂算子,其秘密全部寓于密鑰之中。因此加密算法符合Kerckhoffs準(zhǔn)則,滿足現(xiàn)代加密體制的要求。
置亂索引矩陣的構(gòu)造.由x',y',z'實(shí)值混沌序列生成索引序列l(wèi)x,ly,lz,用其構(gòu)造置亂索引矩陣Px,Py,Pz。索引序列指定置亂索引矩陣中各元素的幾何位置,各元素按索引序列的順序賦以0,…,l的自然數(shù),則置亂索引矩陣的任一元素Pi∈[1,2,…,n],且Pij=Pkl,當(dāng)且僅當(dāng)i=j,k=l。
3、將待加密彩色圖像的R,G,B3個(gè)分量按8×8大小分塊,以塊為單位分別用置亂索引矩陣Px,Py,Pz進(jìn)行空域置亂。JPEG壓縮過(guò)程的二維DCT、系數(shù)量化以及熵編碼都是以8×8塊為基本單位進(jìn)行的,圖像像素幾何位置被置亂,破壞了DCT系數(shù)的分布概率;而Huffman編碼表無(wú)法按最優(yōu)方式使用,導(dǎo)致壓縮后解密效果變壞。按8×8塊置亂大大地減小了對(duì)DCT系數(shù)分布的破壞,使加密圖像對(duì)JPEG壓縮具有一定的抵抗能力;同時(shí)其既不失全局置亂的優(yōu)勢(shì)(尤其對(duì)大尺寸圖像),又能降低計(jì)算強(qiáng)度和空間需求。
加密算法
Step1、輸入待加密彩色圖像文件。分離彩色圖像的R,G,B三基色分量。
Step2、Lorenz混沌序列預(yù)處理.輸入密鑰是(σ,r,b,xo,y0,z0)。生成x,y,z實(shí)值混沌序列,應(yīng)用式(2)對(duì)x,y,z混沌序列進(jìn)行預(yù)處理,得到x,y,z實(shí)值混沌序列。
Step3、構(gòu)造置亂索引矩陣.按需要長(zhǎng)度l=(M×N)/(8×8)隨機(jī)截取x',y',z',升序排列[a,lx]=sort(i),[b,ly]= sort(歹),[clz]=sort(y');用生成的索引序列l(wèi)x,ly,lz按行或列轉(zhuǎn)換成二維矩陣,即得置亂索引矩陣Px,Py,Pz。
Step4、空域置亂.按置亂索引矩陣Px,Py,Pz規(guī)則重排三基色分量8×8塊的幾何位置,實(shí)現(xiàn)塊式空域置亂。
Step5、輸出置亂彩色圖像文件。合成R,G,B三基色圖,即得置亂彩色圖像文件。
解密算法是加密算法的逆過(guò)程。
三、仿真實(shí)驗(yàn)
1、密鑰空間的保證
測(cè)試條件如下:系統(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ā)生微小變化。測(cè)試結(jié)果如表1所示,其中的位變化率指索引序列的位變化率,當(dāng)系統(tǒng)參數(shù)和初值發(fā)生微小變化時(shí),索引序列的位變化率超過(guò)99%。這表明預(yù)處理后的混沌序列仍對(duì)系統(tǒng)參數(shù)和初值極其敏感,既保證了算法的密鑰空間,同時(shí)說(shuō)明若采用有微小錯(cuò)誤的密鑰嘗試解密是不可能的,且算法能夠抵抗對(duì)密鑰的窮舉攻擊。

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


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

其中,X={xi,j }N表示原始圖像,X'={x'i,j }N表示混沌置亂圖像,A={xi,j }N是Arnold置亂圖像。二維Arnold變換為:
![]()
其中x,y∈(0,1,2,…,N-1)為某一像素點(diǎn)的原坐標(biāo),x’,y'∈(0,1,2,…,N-1)為變換后的坐標(biāo),N是原始圖像矩陣的階數(shù)。Arnold變換具有周期性,對(duì)應(yīng)給定的自然數(shù)N≥2,Arnold變換的周期是使得:
![]()
成立的最小自然數(shù)n,則對(duì)應(yīng)640×640圖像文件,n=480;對(duì)應(yīng)512×5 12圖像,n=384;對(duì)應(yīng)320×320圖像,n= 240。
圖6所示為對(duì)圖3中的3幅圖像進(jìn)行置亂并應(yīng)用式(3)計(jì)算出的對(duì)應(yīng)Arnold變換一個(gè)周期的置亂度曲線??梢姡疚牡幕煦缰脕y與Arnold變換相比不低于96%,具有一定的可靠性。

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

小知識(shí)之Huffman編碼
哈夫曼編碼(Huffman Coding)是一種編碼方式,哈夫曼編碼是可變字長(zhǎng)編碼(VLC)的一種。Huffman于1952年提出一種編碼方法,該方法完全依據(jù)字符出現(xiàn)概率來(lái)構(gòu)造異字頭的平均長(zhǎng)度最短的碼字,有時(shí)稱之為最佳編碼,一般就叫作Huffman編碼。









