基于多混沌的彩色圖像加密算法
針對混沌系統(tǒng)產(chǎn)生的混沌序列具有遍歷性、偽隨機(jī)性、對初始條件(值)和系統(tǒng)參數(shù)敏感以及具有類似白噪聲等特點,提出了一種利用多個混沌系統(tǒng)結(jié)合的方法對彩色圖像進(jìn)行加密的算法,首先利用Arnold變換對圖像進(jìn)行像索置換,然后利用統(tǒng)一混沌系統(tǒng)對圖像像素加密處理,在加密的過程中利用Logistic混沌系統(tǒng)對統(tǒng)一混沌系統(tǒng)序列進(jìn)行亂序處理。
一、Arnold映射
眾所周知,圖像相鄰像素之間有著非常強(qiáng)的相關(guān)性,大量的統(tǒng)計分析表明一幅圖像相鄰的水平,垂直或?qū)蔷€的8到16個像素之間存在著強(qiáng)相關(guān)性。為減少這些像素之間的這種強(qiáng)相關(guān)性,我們采用了Arnold變換來置換圖像像素的位置關(guān)系來降低像素之間的相關(guān)性。
假設(shè)原始圖像I是大小為N×N,灰度級為256的灰度圖,圖像像素的坐標(biāo)表示為C={(x,y)|x,y=O,1,2,….N-1},則Arnold變換可表述為:
![]()
其中p和q為正整數(shù),x和y為原圖像像素的位置。x’和y’為變換后圖像像素新的位置。當(dāng)對圖像進(jìn)行n次Arnold變換,即:
![]()
不斷地改變圖像像素之間的位置,使得原圖變得混亂不堪。
若再進(jìn)行若干次Arnold變換后,原圖可能被還原,即Arnold變換具有一定的周期性。因此為了增強(qiáng)圖像的加密效果,一般還需要與其他變換結(jié)合來使用。
二、統(tǒng)一混沌系統(tǒng)
其作為Lorenz系統(tǒng)、Lǖ系統(tǒng)和Chen系統(tǒng)之間的橋梁,因此統(tǒng)一混沌系統(tǒng)是更為一般意義上的混沌系統(tǒng)。該系統(tǒng)的數(shù)學(xué)表達(dá)式為:

其中,x,y,z和α為實數(shù),當(dāng)α∈[O,1]時,系統(tǒng)處于混沌狀態(tài)。
特別,當(dāng)α=0時,式(3)是Lorenz系統(tǒng),當(dāng)α=1時,式(3)為Chen系統(tǒng);當(dāng)α∈[o,1]之間時,系統(tǒng)為統(tǒng)一混沌系統(tǒng)。因此統(tǒng)一混沌系統(tǒng)表現(xiàn)出更加復(fù)雜的動態(tài)行為。
圖1是當(dāng)α=0.5,x=10,y=12和z=12時,統(tǒng)一混沌系統(tǒng)的時序圖。

三、Logistlc混沌系統(tǒng)
Logistic是比較早被人們研究的一類混沌系統(tǒng),其具有表達(dá)形式簡單,易實現(xiàn)等優(yōu)點被廣泛使用在多種場合,其數(shù)學(xué)表達(dá)式為:
![]()
其中0≤μ≤4為分岔參數(shù),xk∈(0.1),當(dāng)3.5699456…<μ≤4.0000時,Logistic系統(tǒng)將表現(xiàn)為混沌性,此時產(chǎn)生的序列(xk,k=0,1, 2,3,…)為混沌序列。
圖2是當(dāng)x=0.6時,Logistic系統(tǒng)隨μ的分岔圖,從圖中可以看出系統(tǒng)隨μ的增加,系統(tǒng)將表現(xiàn)出非常復(fù)雜和豐富的動態(tài)行為,特別當(dāng)μ=4時系統(tǒng);進(jìn)入到混沌系統(tǒng)。
圖3是當(dāng)μ=4、x=0.6時,Logistic混沌系統(tǒng)的時序圖。
四、多混沌彩色圖像加密算法
多彩色圖像加密算法由3部分組成。首先利用Arnold變換對彩色圖像的原始圖像像素的位置進(jìn)行置亂變換,接著將統(tǒng)一混沌系統(tǒng)產(chǎn)生混沌序列,并將其轉(zhuǎn)為整數(shù),然后利用Logistic混沌系統(tǒng)產(chǎn)生的序列改變上面的整數(shù)序列順序,最后利用新的序列分別對彩色圖像的各層按順序依次進(jìn)行加密改變相應(yīng)層的像索灰度值。
1、Arnold對彩色圖像置亂
利用Arnold變換分別對原始彩色圖像的R,G,B層像素進(jìn)行置亂,其中迭代次數(shù)可以視為密鑰,為了減少運算,令p=1,q=1。
由于Arnold變換存在零點位置不變性,因此存在一定的安全隱患。為了克服零點位置不變性,首先對每一個圖層的原圖進(jìn)行,n次Arnold變換,然后再對Arnold變換后的中間圖進(jìn)行水平(或垂直)鏡像,接著進(jìn)行撒次Arnold變換。這樣零點位置也將被打亂,這樣同時又對圖像像素做了進(jìn)一步的混淆。
2、加密序列的生成
加密序列的生成由下列3個步驟組成,具體如下:
步驟1 由式(3)的統(tǒng)一混沌系統(tǒng)在初始值{x1,y1,Z1}和設(shè)定好α值時使系統(tǒng)處于混沌狀態(tài),即{x1,y1,Z1}和α值作為初始密鑰。再利用步長為0.001的4階Runge-Kutta數(shù)值算法不斷迭代計算獲得3個混沌序列X,y,Z,它們分別為:

其中n為圖像的大小,假設(shè)圖像大小為n=MXN,{x1,y1,Z1}為初始值,X,y,Z分別由{x1,y1,Z1}不斷迭代產(chǎn)生的集合。由于x1,y1,Z1都是實數(shù)集,不能直接用于圖像加密,還需進(jìn)一步處理,接著采用式(6)的方法對式(5)數(shù)集進(jìn)行處理而獲得介于0~255之間的整數(shù)。

其中int表示取整運算,mod表示取模運算,256為最大的圖像像素灰度值決定。abs表示絕對值。由此,R,G和B構(gòu)成了三個整數(shù)序列。
步驟2 由式(4)的Logistic混沌系統(tǒng)按式(7)的規(guī)則產(chǎn)生如下的一個整數(shù)序列。
![]()
其中Li=[ 4*4*xi* (1-xi)],以為圖像的大小,xi為式(4)不斷迭代產(chǎn)生的數(shù),xi為Logistic混沌系統(tǒng)的初始值,可以作為密鑰的一部分。符號[ l ]表示取不大于l的最大整數(shù)。由此可知,li∈u,U={0.1,2,3}。
步驟3利用式(7)產(chǎn)生的序列按式(8)規(guī)則對式(6)進(jìn)行變換處理,

其中Rxi∈R,Gyi∈G和Bzi∈B,符號→表示該符號的前后兩個數(shù)進(jìn)行交換。
經(jīng)過上述步驟后產(chǎn)生能夠用于加密彩色圖像的新序列。
3、彩色圖像文件加密
利用式(8)產(chǎn)生的新序列分別對彩色圖像的R、G和B層像素的灰度值分別按式(9)進(jìn)行操作:

其中符號+表示異或操作,Rxi,Gyi和Bzi是由式(8)在第f次產(chǎn)生的整數(shù)對,IRi,IGi和IBi,分別為原始圖像在第I個位置的R,G,B層像素灰度值,IRi',IGi'和IBi'為加密后彩色圖像的像素值。
五、試驗仿真結(jié)果
下面對512×512大小的彩色Lena圖像采用前面所述算法進(jìn)行仿真。
1、Arnold變換仿真
利用按照前面介紹的Arnold變換算法對彩色Lena進(jìn)行置換處理,其中先鏡像n=10次Arnold變換,接著進(jìn)行網(wǎng)像水平鏡像,最后鏡像m=7次Arnold變換,仿真結(jié)果如圖4所示。
由如圖4所示的直方圖中可知Arnold只是將圖像的像素打亂,其灰度值并沒有發(fā)生變化。

2、加密序列的仿真
按照5.2節(jié)的方法,對統(tǒng)一混沌取x=1O,y=12,z=19和α=0.5作為初始值,代入式(3)并且不斷迭代生成混沌序列X,y,Z,它們長度都為圖像大小512X512。
假設(shè)Logistic混沌系統(tǒng)的初始密鑰為l=O.123456789,按照前述算法將獲得介于[0,3]之間的整數(shù)序列,其長度為圖像大小512×512。
3、彩色圖像加密仿真
對Arnold變換后的圖像,并利用獲得的加密序列進(jìn)行加密處理。如圖5所示,加密后圖像的R,G,B各層圖像變得無法閱讀,并且對應(yīng)的直方圖也變得非常平坦和均勻,顯然不同于原圖的直方圖,即表明加密后的圖像的灰度值完全地被均勻分布到整個灰度區(qū)間,所以加密后的圖像有著非常好的統(tǒng)計特性,從而能夠抵抗統(tǒng)計攻擊而使之變得無效。

下面測試彩色圖像加密速度,其測試結(jié)果如表1所示。

表明所提出的加密算法在加密速度上快于DES的加密速度。
上述仿真是在個人計算機(jī)環(huán)境下進(jìn)行測試的,其測試平臺配置為:CPU: Pentium 4 2.6G;內(nèi)存:512M;操作系統(tǒng):Windows XP。基本測試圖像為512×512大小的彩色Lena圖像。
七、安全分析
下面對彩色圖像加密算法的安全分析從下面幾個方面來分析:相鄰像素的相關(guān)性、抗差分攻擊能力、一次一密、密鑰的空間以及密鑰敏感性等4方面,具體如下所述。
1、相鄰像素的相關(guān)性分析
下面是原圖與加密圖相鄰像素的相關(guān)性分析,分別隨機(jī)地從原始和加密后的圖像中取隨即取1500個相鄰像素對(水平,或垂直或?qū)蔷€)。圖6顯示的是原網(wǎng)與加密后圖像R層的水平相關(guān)分布圖。從左圖可以看出加密前的R層圖像的相關(guān)性很強(qiáng),右圖2是加密的圖,其相鄰的像素完全均勻分布到了整個圖像空間。
對彩色圖像的B層和G層做了相同的測試,結(jié)果均與圖6相同。

為了計算像素的相關(guān)性,可以使用下面公式:

其中x和y是圖像中相鄰兩個的灰度值。
表2中顯示出它們之問的相關(guān)值,從中可知分析出:原網(wǎng)中相鄰兩個像素值之間的相關(guān)性很強(qiáng),而加密后圖像相鄰兩像素之間的相關(guān)性卻減少到很低了。

2、抗差分攻擊能力分析
通常攻擊者可以通過對圖像作微小的改變來觀察加密的效果,這樣可能發(fā)現(xiàn)原始圖像與加密圖像之間的某種關(guān)系。但如果對原始圖像進(jìn)行微小的改變后導(dǎo)致加密圖像有很大的改變,這樣差分攻擊方法將失去作用。
為分析抗差分的攻擊能力,一般采用兩個參數(shù)對這種變換進(jìn)行描述,即像素變化率(NPCR)和平均變化強(qiáng)度(UCAl)。對于一幅原始圖像經(jīng)加密處理變?yōu)镃1,如果對原始圖像修改了一位像素的灰度值后再進(jìn)行相同條件下的加密處理變?yōu)镃2,比較灰度值矩陣C1和CZ所有點的值,如果兩點相同,即Ci(i,j)=Cz(i,j),則D(i,j)=l,否則D(i,
j)=0。NPCR和UCAI具體定義為:

其中M和N分別為圖像的長和寬。以彩色Lena圖像的RGB作為測試對象,假設(shè)加密圖像為C1,當(dāng)修改了某一個像素的灰度值后的加密圖像為C2。分別根據(jù)式(14)和(15)分別計算R,G,B層的NPCR和UCAI值,具體如表3所示。
從表3中可以看出當(dāng)原始幽像有微小的改變而將導(dǎo)致加密圖像有很大的改變,因此該算法具有良好的抗差分攻擊能力。

3、一次一密分析
根據(jù)Shannon提出的一次一密加密的算法是安全的原則,由于混沌系統(tǒng)產(chǎn)生的混沌序列具有不重復(fù)性,而由多個混沌系統(tǒng)共同生成的序列將更加不會重復(fù),因此多混沌彩色加密算法屬于一次一密性的算法,由此可知該算法安全性是非常高的。
4、密鑰空間分析
一個好的加密算法應(yīng)該對密鑰非常敏感,并且密鑰空間要足夠大以抵抗窮舉攻擊法。多混沌加密算法的加密密鑰由各個混沌系統(tǒng)的密鑰共同確定,因此該加密算法有著更大的密鑰空間。假設(shè)計算機(jī)精度為1015,那么密鑰空間將遠(yuǎn)遠(yuǎn)大于1075(=1015* 1015* 1015*1O15*1015)。因為統(tǒng)一混沌系統(tǒng)的x,Y和z。的取值范圍不僅僅限制在(0.1)
之間,更可以為(0,1)之外的其他一些實數(shù),只要xi,yi和Zi的取值不超過計算機(jī)的計算范圍均可,并且還尚未計入Arnold的迭代此次作為密鑰的情況,這么大的密鑰空間足夠抵抗各種窮舉攻擊。
5、密鑰敏感性分析
由于混沌系統(tǒng)有著對初始值和參數(shù)及其敏感的天然性質(zhì),下面對其進(jìn)行分析。
圖7是當(dāng)同定三個參數(shù),而令另外一個參數(shù)發(fā)生微小變化(1015)的效果圖和直方圖。(加密密鑰為x=10,y=12,z=19,l=0.12和α=0.5)。(說明:這里為了與統(tǒng)一混沌系統(tǒng)中的z區(qū)別.Logistic的初始值設(shè)為l,下同),設(shè)同定初始值x、y和Z不變,僅初始值z=19.00000000000001,即z有微小的變化進(jìn)行解密,解密結(jié)果如圖7所示,說明即使密鑰有微小的差異也不能得到正確的圖像。

類似的,當(dāng)x,y和z不變,僅當(dāng)初始值Z有微小變化l=0.120000000000001時對加密后的彩色圖像進(jìn)行解密,結(jié)果如圖8所示,在這種情況也不能獲得正確的原始圖像。

通過圖7和圖8所觀察對應(yīng)的直方圖可以發(fā)現(xiàn)錯誤解密后彩色圖像的直方圖仍然保持均勻分布的特性,因此即使解密密鑰有微小的變化也不可能正確解密出原始圖像。
總而言之,該彩色圖像加密算法具有以下優(yōu)點:1)擁有非常大的密鑰空間;2)加密后的圖像有著非常好的統(tǒng)計特性;3)加密算法對密鑰非常敏感。
小知識之遍歷性
遍歷性是指統(tǒng)計結(jié)果在時間和空間上的統(tǒng)一性,表現(xiàn)為時間均值等于空間均值。例如要得出一個城市A、B兩座公園哪一個更受歡迎,有兩種辦法。第一種辦法是在某一個時點考察兩個公園的人數(shù),人數(shù)多的為更受歡迎公園;第二種辦法,隨機(jī)選擇一名市民,在一年的時間里考察他去兩個公園的次數(shù),去得多的為更受歡迎公園。如果這個兩個結(jié)果始終一致,則表現(xiàn)為遍歷性。








