彩色圖像混沌加密算法

彩色圖像處理是數(shù)字圖像處理的重要組成部分,在網(wǎng)絡與多媒體通信中,常常涉及到彩色圖像文件加密。為此,我們提出了一種彩色圖像混沌加密算法,該加密算法通過選用Lorenz系統(tǒng)中三個不同維的變量生成置亂矩陣來分別實現(xiàn)對RGB彩色圖像三分量的置亂加密,從而實現(xiàn)對整個彩色圖像文件加密。

一、彩色圖像混沌加密算法設(shè)計實現(xiàn)

1、對Lorenz混沌序列的優(yōu)化

Lorenz動力學方程為:

彩色圖像混沌加密算法

其中, 參數(shù)σ,r,b 的典型值分別為σ= 10,r=28,b=8/3,在σ和b不變,當r>24.74時,系統(tǒng)進入混沌狀態(tài)。

但該系統(tǒng)輸出的實值混沌序列有一些固有缺陷:x,y,z的值域各不相同,不利于批處理;x,y,z局部取值呈現(xiàn)單調(diào)性,易受線性預測攻擊;x,y,z自相關(guān)特性非理想的δ函數(shù),互相關(guān)特性非理想的零特性,難以保證不可預測性,而且系統(tǒng)多輸出特性也得不到充分利用。為此,有專家提出了一種對Lorenz混沌序列的優(yōu)化方法,構(gòu)建了式(2)所示的一個數(shù)學模型:

彩色圖像混沌加密算法

其中,x',y',z'三為優(yōu)化后的實值混沌序列;m為控制參數(shù),通過它可以提高序列取值的不規(guī)則性;round()為取最接近整數(shù)函數(shù)。經(jīng)過實驗,證明此優(yōu)化序列具有良好的混沌特性、較理想的萬函數(shù)自相關(guān)特性和近似為0的互相關(guān)特性。

本空域算法采用了此混沌優(yōu)化序列。

2、置亂算法

利用式(2)產(chǎn)生的三個優(yōu)化后的混沌序列x',y',z'生成三個置亂矩陣,分別對RGB彩色圖像的三個分量進行置亂加密。

置亂矩陣的生成方法:利用優(yōu)化混沌序列生成相應的置換矩陣PM×N, 對PM×N來說, 其中任一元素Pij∈[1,2,…,M×N],且Pij=Pkl,當且僅當i=k,j=1。

比如:M=4,N=4,P即為4×4的矩陣,由優(yōu)化混沌序列生成16個實數(shù)值組成的混沌序列為:

10.95621370、10.91248372、 10.57640346、11.0759704、11.62504738、 11.13958961、 10.26628130、 9.10829136、9.53332571、 9.21575219、 9.11570905、 9.19910548、8.87154601、9.27423505、 9.85781001、10.94356727

對以上序列按大小排序,然后從1到16進行標識,即可得到序列:4、6、7、3、1、2、8、15、10、12、14、 13、16、11、9、5。

按行排列成4×4的置亂矩陣P4×4為:

彩色圖像混沌加密算法

置亂規(guī)則:采用非線性置換方法,將圖像IM×N。N與置亂矩陣PM。Ⅳ的元素一一對應。將IM×N中的元素對應PM×N中的元素進行置亂。如對4x4的圖像I4×4按照上面的P4x4矩陣進行
置亂,I中的第1個元素移到第4個元素位置,第2個元素移到第6個元素位置,…,具體過程為:

彩色圖像混沌加密算法

3、分塊加密

由于經(jīng)本加密算法加密的彩色圖像在以后的處理過程中還要進行JPEG壓縮,而JPEG壓縮過程中的二維DCT、系數(shù)量化以及熵編碼都是以8×8塊為基本單位進行的,為了不破壞DCT系數(shù)的分布概率,并且使Huffman編碼表能按最優(yōu)方式使用,我們將待加密彩色圖像的R、G、B3個分量按8×8大小分塊,以8x8塊為單位分別用置亂矩陣Px,Py,Pz進行空域置亂加密。

4、彩色圖像混沌加密算法的實現(xiàn)

(1)彩色圖像混沌加密算法的實現(xiàn)

圖像加密算法實現(xiàn)步驟為:

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

Step2:對Lorenz混沌序列進行優(yōu)化處理。輸入密鑰σ,r,b,x0,yo,z0(xo,yo,zo為初始值),生成x,y,z實值混沌序列,用式(2)對x,y,z混沌序列進行優(yōu)化,得到x',y',z'優(yōu)化混沌序列。

Step3:將待加密彩色圖像的R、G、B3個分量按8x8大小分塊,以8×8塊為單位生成置亂矩陣Px,Py,Pz。

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

Step5:輸出置亂彩色圖像。合成置亂后的三基色圖,即得到加密后的圖像。

(2)解密算法實現(xiàn)

用戶輸入正確的密鑰后,將加密算法逆向運算,即可獲得解密圖像。

二、實驗仿真

我們選取大小為512×512的彩色圖像Lena作為實驗對象(如圖1),利用MATLAB 6.5編程實現(xiàn)算法。選取密鑰σ=10,r=28,b=8/3,xo=0.5143978026,yo=0.3246981507,
zo=0.7021364589。為了增強生成混沌序列的安全性,我們除去序列的初始段,使Lorenz方程預先迭代n=10000次。

圖2、圖3、圖4分別是Lena的三基色分量分解圖,圖5、圖6、圖7分別是三基色分量圖加密后的圖像,圖8是將分量圖合成為彩色圖像后的Lena最終加密圖像。

彩色圖像混沌加密算法

三、安全性分析

1、保密性測試

本算法在空域范圍內(nèi)使用Px,Py,Pz對彩色圖像三基色分置亂,從密碼學角度來說,加強了算法擴散的強度。若采取唯密文攻擊,則解密工作量高達3×(M×N)!,進一步加大了破譯難度。另外,三基色分量分別置亂,混淆了彩色圖像每一像素的R,G,B三分量,使加密圖像在視覺上發(fā)生了色彩變化,圖像更難讀懂。圖9為參數(shù)r的偏差為10的-10次方時的錯誤解密圖像,圖10為初值xo的偏差為10的-10次方時的錯誤解密圖像。

由于混沌序列對系統(tǒng)參數(shù)和初值極其敏感,即使密鑰有微小的變化也會得到完全不同的置亂矩陣,從而導致錯誤的解密結(jié)果。

彩色圖像混沌加密算法

2、置亂度分析

我們使用置亂度(SM)來評估加密圖像的置亂程度。它的計算式為:

彩色圖像混沌加密算法

在本加密算法中,我們將R定義為經(jīng)過幻方變換生成的置亂圖像。幻方變換是一種矩陣變換,在圖像文件加密中,它的加密算法和密鑰是不能公開的,因此,一般不單獨作為加密算法。但單就置亂效果而言,幻方變換的置亂效果是很好的,所以我們將它作為衡量本加密算法置亂度好壞的一個標準。

我們利用本加密算法多次試驗來計算Lena三基色分量圖像的置亂度,可得到SM的平均值SM為:

彩色圖像混沌加密算法

可見,本加密算法的置亂度與幻方變換的置亂度相近,具有良好的置亂性。

3、抗攻擊測試

圖11、圖12分別為Lena加密圖像受到壓縮處理、噪聲干擾后的解密圖像。圖1 1為加密圖像經(jīng)JPEG壓縮為原大小20%后的解密圖像,圖12為加密圖像受到10%強度的高斯噪聲干擾后的解密圖像,可以看出解密圖像效果較好,具有較強的抗攻擊能力。

彩色圖像混沌加密算法

小知識之Huffman編碼

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