圖像文件加密算法之雙一維混沌系統(tǒng)

大家都知道傳統(tǒng)的圖像加密技術(shù)是一種基子像素置亂的加密算法,一般密鑰和算法不能有效地分開。為此,我們提出了一個(gè)基于雙一維混沌系統(tǒng)的圖像文件加密算法,該算法利用雙一雛混沌系統(tǒng)對圖像進(jìn)行替代和置換變換,采用雙混沌系統(tǒng)擴(kuò)大了密鑰空間,并增加了密鑰的復(fù)雜性;將替代和置換結(jié)合提高了加密的安全性。

一、雙一維混沌系統(tǒng)及圖像文件加密算法

1、雙混沌系統(tǒng)

混沌系統(tǒng)具有以下幾個(gè)適合作為密碼系統(tǒng)的特性:

(1)遍歷性:在有限區(qū)域內(nèi),混沌軌道上的點(diǎn)可以任意接近,這使得對系統(tǒng)參數(shù)及初始條件的預(yù)測十分困難。

(2)混合性:混沌軌道上術(shù)不規(guī)則性及系統(tǒng)局部擴(kuò)展,使得混沌系統(tǒng)的輸出類似于噪聲。

(3)指數(shù)發(fā)散性:任意接近的兩點(diǎn)隨著迭代進(jìn)行都會指數(shù)發(fā)散,因而混沌系統(tǒng)既具有混合特性又具有擴(kuò)散特性,完全符合密碼學(xué)的要求。

Logistic映射是一種非常簡單卻被廣泛應(yīng)用的混沌映射,本文采用的混沌系統(tǒng)之一就是由式(1)描述的Logistic映射系統(tǒng)。

其中O≤u≤4為分岔參數(shù),xn∈(0,1)是系統(tǒng)的狀態(tài)變量。當(dāng)3.569 945 6…<u≤4時(shí)。Logistic映射工作于混沌狀態(tài),此時(shí),由韌值加在Logistic映射的作用下產(chǎn)生的序列{xo,n;0,1,3…}是非周期、不收斂、對初值敏感的序列。當(dāng)分岔參數(shù)u=4時(shí),該序列的概率分布函數(shù)是:

由式(2)可以知道,Logiatic映射不滿足一致分布,為了得到隨機(jī)性更好的一致分布的隨機(jī)系統(tǒng),可將式(1)作如下變換:

變量y的分布函數(shù)為:

因而,變量y的概率分布函數(shù)為:

即式(3)在(0,1)區(qū)間滿足一致分布。

本文加密采用的另一混沌系統(tǒng)為式(6)描述的正弦迭代映射:

其中l(wèi)<b∈R,系統(tǒng)初值xo∈R,且O<xo<l。由式(6)產(chǎn)生的系統(tǒng)的Lyapunov指數(shù)是Inb>0,因而該系統(tǒng)是混沌的。

2、圖像像素值替代算法

考慮一幅大小為M×N具有L級灰度的圖像,設(shè)I(i,J)為(i,J)坐標(biāo)處的像素值,其中1≤i≤M,1≤J≤N,I’(I,J)為(I,J)坐標(biāo)處替代操作后圖像的像素值,即要求設(shè)計(jì)一個(gè)映射f,使得:

為了使替代操作后的像素值I'(i,J)具有不可預(yù)測性,采用離散混沌系統(tǒng)產(chǎn)生密鑰,利用混沌密鑰實(shí)現(xiàn)對像素值的替代,替代操作可以由以下公式表示:

其中K(i,J)由式(3)的離散混沌系統(tǒng)產(chǎn)生,由式(3)的離散混沌系統(tǒng)所生成的序列具有完全不可預(yù)測性,具有非常好的密碼學(xué)特性。為了使用于加密的混沌序列對初始值更加敏感,將初始值預(yù)迭代3 000次i:為了得到K(i,J)具體的值由下面的公式產(chǎn)生:

其中round(x)函數(shù)表示取與膏最接近的整數(shù)值,K(i,J)由序列yn的實(shí)數(shù)序列值中取小數(shù)點(diǎn)后第4位開始的連續(xù)3位數(shù)字組成的整數(shù)得到。將式(9)產(chǎn)生的整數(shù)密鑰序列代入式(8)實(shí)現(xiàn)像親值的替代加密,對所有的(i,j)點(diǎn)完成替代操作后,即完成了替代設(shè)計(jì)。

3、圖像像素位置置換算法

傳統(tǒng)的加密算法中的置換并沒有多大的密碼作用,因?yàn)樗c密鑰尤關(guān),如DES,但置換設(shè)計(jì)可以有效地打亂輸入明文的次序,能有效地掩蓋明文的統(tǒng)計(jì)特性,從而能有效地抵御統(tǒng)計(jì)及預(yù)測分析。本文設(shè)計(jì)了一種依賴于密鑰的圖像轉(zhuǎn)換方法。

考慮一幅大小為MxN具有l(wèi)級灰度圖像,設(shè)I(i,J)為(i,J)坐標(biāo)處的像素值,其中1≤i≤M,1≤J≤N,I’(I,J)為(I,J)坐標(biāo)置換操作后對應(yīng)的新坐標(biāo),即要求設(shè)計(jì)一個(gè)映射f,使得:

為了使置換操作后的新坐標(biāo)(i'J’)具有不可預(yù)測性,采用式(6)離散混沌系統(tǒng)產(chǎn)生,置換操作可以由以下公式表示:

其中1≤m≤M,1≤n≤N,且Zn和Zm由式(6)的混沌離散系統(tǒng)產(chǎn)生。

在生成新的置換坐標(biāo)的過程中,要注意把前面任一相同的i’m(或j’m)值舍去,重新生成不同的值。通過實(shí)驗(yàn)發(fā)現(xiàn),這樣i'm和j’m的取值范圍較小,發(fā)生相同的值的次數(shù)較多,舍去的取值較多,這樣造成計(jì)算時(shí)間較長。因此,本文采取適當(dāng)擴(kuò)展取值范圍的方法,具體的做法為:設(shè)計(jì)變量zoom為取值擴(kuò)展因子,在取值時(shí)采用Zn=zoomxZN和Z,=zoornxZ(即置換操作采用式(12)來完成).由于舍去的相同值較少,因而大大提高了生成新的置換坐標(biāo)的速度。將式(12)產(chǎn)生的序列組成MxN的矩陣,即完成了置換設(shè)計(jì):

4、替代與置換結(jié)合的密碼系統(tǒng)

本文完成了替代設(shè)計(jì),即完成了密碼算法的混淆作用設(shè)計(jì),在上節(jié)中完成了置換設(shè)計(jì),即完成了密碼算法的擴(kuò)散作用設(shè)計(jì),該算法完成符合密碼學(xué)的特性。為了像輸出的密文對明文和密鑰充分敏感,將替代設(shè)計(jì)與置換設(shè)計(jì)重復(fù)進(jìn)行r輪。因此整個(gè)加密算法可以用框圖表示如下:

二、實(shí)驗(yàn)結(jié)果與分析

選擇Lenna圖像(256x256),選擇密鑰參數(shù)分別為u=3.576 8,Xo=0.278 000,b=0.580 00將此雙一維混沌圖像加密算法用Matlab仿真,其仿真結(jié)果如下:圖2是原始圖像,圖3是用此方法加密后的結(jié)果,圖4是用u=3.576 8,X0=0.278 000,b=0.580 00,正確解密后的結(jié)果,圖5是將u=3.576 8,Xo=0.278 001,b=0.580 00解密后的圖像。

實(shí)驗(yàn)結(jié)果表明,本文所給的算法加密效果理想,加密后的圖像沒有留下原圖的痕跡,而解密后的圖像與原圖像看不出差別,且密鑰的細(xì)微差別便會導(dǎo)致無法正確解密圖像。加密圖像直方圖起伏較小,各種像素值分布均勻,而且與已有的基于混沌映射的圖像加密方法相比,由于本文所給方法是基于雙一維混沌系統(tǒng)來生成整數(shù)偽隨機(jī)序列的,這擴(kuò)大了加密算法的密鑰空間,所以算法的安全性得到了迸一步的提高。

小知識之一維

一維實(shí)際是指的是一條線,在理解上即為左-右一個(gè)方向(如:時(shí)間)。也可理解為點(diǎn)動成線,指沒有面積與體積的物體。