基于Lorenz三維超混沌系統(tǒng)的圖像加密方法
鑒于傳統(tǒng)圖像加密技術(shù)和低維混沌加密技術(shù)各有其局限性,我們提出了一種利用Lorenz系統(tǒng)產(chǎn)生混沌序列,并結(jié)合混沌鏡像加密方法的三維超混沌圖像加密方法。
一、三維Lorenz混沌系統(tǒng)
1、Lorenz系統(tǒng)
Lorenz系統(tǒng)是經(jīng)典的三維混沌系統(tǒng),以Lorenz系統(tǒng)生成加密混沌序列的優(yōu)點(diǎn)在于:一是其結(jié)構(gòu)較低維混沌系統(tǒng)復(fù)雜,產(chǎn)生的實(shí)數(shù)值序列更不可預(yù)測(cè);二是系統(tǒng)的三個(gè)初始值和三個(gè)參數(shù)都可以作為生成加密混沌序列的種子密鑰,產(chǎn)生的密鑰空間大大高于低維混沌系統(tǒng);三是對(duì)系統(tǒng)輸出的實(shí)值混沌序列進(jìn)行處理,可采用單變量或多變量組合的加密混沌序列,這樣序列密碼的設(shè)計(jì)更靈活。
Lorenz系統(tǒng)的動(dòng)力學(xué)方程式為:

式(1)中,β,σ_,x為系統(tǒng)參數(shù),典型的值為β=8/3,σ=10,x=28,在保持β,σ不變,x>24.74時(shí)Lorenz系統(tǒng)進(jìn)入混沌狀態(tài)。可用數(shù)值積分來(lái)求解微分方程(1)。采用4階Runge-Kutta法進(jìn)行求解,步長(zhǎng)為0.01,得到隨機(jī)性良好的數(shù)值序列x(n),n為數(shù)值積分算法的循環(huán)次數(shù)。Lorenz是三維混沌系統(tǒng),所以得到的x(n)是一個(gè)三維的實(shí)值數(shù)組,有x1,x2,x3三個(gè)分量。
2、生成二進(jìn)制序列
首先我們對(duì)Lorenz微分方程產(chǎn)生的實(shí)值序列進(jìn)行處理,抽取二進(jìn)制序列用于圖像加密。定義一個(gè)量化處理的符號(hào)函數(shù):

其中閾值a選取x(k)的平均值。量化后得到一個(gè)三維的二進(jìn)制混沌序列:
![]()
量化處理是一個(gè)不可逆的過(guò)程,處理后的混沌序列中不包含原混沌系統(tǒng)的信息,因此利用混沌時(shí)間序列進(jìn)行分析的攻擊方法失敗。
經(jīng)過(guò)反復(fù)實(shí)驗(yàn),下面對(duì)二進(jìn)制序列性能進(jìn)行分析:
(1)頻數(shù)檢驗(yàn),用來(lái)測(cè)試序列中是否有大致相同數(shù)量的0、1,小于閾值則通過(guò)檢驗(yàn)。
(2)序列檢驗(yàn),用來(lái)檢驗(yàn)序列中出現(xiàn)的相同或不相同的相鄰元素的概率,小于閾值則通過(guò)檢驗(yàn)。經(jīng)過(guò)反復(fù)實(shí)驗(yàn),序列通過(guò)了顯著水平為5%的頻數(shù)檢驗(yàn)、序列檢驗(yàn),由此可以證明二進(jìn)制序列的隨機(jī)性。如表1所示。

二、改進(jìn)的鏡像變換
鏡像變換是一種十分簡(jiǎn)單的圖像加密方法?;煦珑R像加密算法是利用圖像數(shù)據(jù)的點(diǎn)陣特征,由密鑰產(chǎn)生混沌序列對(duì)圖像進(jìn)行加密的空間域算法。
對(duì)大小為M*N的灰度圖像,定義I(x,y)為圖像在(x,y)位置的灰度值,其中x#[1,M]y#[1,N]。定義置換操作swap(I(a,b),I(c,d))交換I(a,b)和I(c,d)。是否執(zhí)行swap操作由密鑰產(chǎn)生的混沌序列b(i)決定。圖1所示的是一種簡(jiǎn)單的鏡像變換。

模式1中為swap(I(,ij),I(,ij+N/2)),模式2中為sawp(I(,ij),I(i+M/2,j))??梢宰C明運(yùn)用混沌二值序列結(jié)合鏡像加密的算法,可能的加密結(jié)果有21/2*M*N。例如模式一中有1/2*M*N個(gè)鏡像點(diǎn),每個(gè)鏡像點(diǎn)是否置換又有兩種可能性,所以可能的加密結(jié)果有21/2*M*N種。
圖像進(jìn)行鏡像變換的關(guān)鍵在于鏡子的位置。鏡子可以水平放置,也可以垂直放置。當(dāng)鏡子水平放置時(shí),同一列內(nèi)的象素進(jìn)行變換,當(dāng)鏡子垂直放置時(shí),同一行內(nèi)的象素進(jìn)行變換。該文的算法采用移動(dòng)鏡子的位置,并以數(shù)w,q代替N/2,M/2,以加強(qiáng)變換的效果。
例如swap(I(,ij),I(mod(95+,i256)+1,j)),mod(,ij)為求模運(yùn)算。若b(1)=1執(zhí)行swap操作,這樣I(1,1)與I(96,1)交換了位置。若b(96)=1執(zhí)行swap操作,I(96,1)與I(195,1)互換位置,這樣增加了置換復(fù)雜度,有效避免了變換的規(guī)律可循。選擇w須考慮到避免循環(huán)的出現(xiàn),避免I(,ij)經(jīng)過(guò)一系列的變換后回到原位置的可能性。算法考慮的鏡像點(diǎn)為M*N個(gè),可能加密結(jié)果為2M*N。
由于Lorenz系統(tǒng)產(chǎn)生的是三維的混沌序列,單純利用其中的一維進(jìn)行加密,加密的效果并不理想。如何利用三維的混沌序列加密二維的圖像矩陣成為該文所解決的問(wèn)題關(guān)鍵??梢钥紤]將二維的矩陣變?yōu)槿S數(shù)據(jù),如圖2所示。

對(duì)于圖像來(lái)說(shuō)很容易實(shí)現(xiàn),只需將M*N的圖像分塊,將分塊的索引排列即可形成三維的數(shù)組數(shù)據(jù)。將256*256的圖像分成1024個(gè)8*8的塊,按照i=1,2,3__1024編號(hào)圖像塊的索引,并排列塊。加密時(shí)在x1軸方向和x2軸方向上按上述的鏡像加密規(guī)則變換,在x3軸上方法類似,只是改為對(duì)塊進(jìn)行操作。為保證加密效果,在x1軸和x2軸上仍對(duì)M*N的整個(gè)二維平面圖像操作,而不是對(duì)塊內(nèi)進(jìn)行鏡像變換。經(jīng)過(guò)x1軸x2軸x3軸三個(gè)方向的立體變換,象素置亂的范圍較大,可有效抵抗基于統(tǒng)計(jì)的攻擊。
三、基于Lorenz三維超混沌系統(tǒng)的圖像加密算法
基于上面介紹的鏡像變換和三維超混沌Lorenz系統(tǒng)產(chǎn)生的混沌序列,我們提出如下的混沌圖像加密算法。
圖像加密算法:
(1)輸入密鑰x0={1.1840;1.3627;1.2519}由Lorenz系統(tǒng)產(chǎn)生三維的混沌的實(shí)值序列x(n),n為迭代次數(shù)。
(2)實(shí)值混沌序列預(yù)處理。用量化處理的符號(hào)函數(shù)(2)經(jīng)過(guò)量化處理后得到二進(jìn)制偽隨機(jī)序列b(k),k=1,2,3,...n。同樣b(k)也是一個(gè)三維的數(shù)組。
(3)讀入256*256標(biāo)準(zhǔn)的lena灰度圖作為待加密的圖像。開(kāi)始如下變換:
*在x1軸的方向上進(jìn)行變換,若b1(i)=1則將I(,ij)與I(mod(w+,i256)+1,j)互換,否則不變。
*在x2軸的方向上進(jìn)行變換,若b2(i)=1則將I(,ji)與I(,jmod(q+,i256)+1)互換,否則不變。
*在x3軸的方向上進(jìn)行變換,若b3(i)=1則將第i塊和第(mod(r+,i1024)+1)塊互換,否則不變。整數(shù)w,q,r的選取不能使變換的位置重復(fù)。算法實(shí)現(xiàn)中令w=18,q=89,r=105。
(4)輸出加密后的圖像,并在網(wǎng)絡(luò)中傳輸。將密鑰x0通過(guò)安全的可信賴信道傳輸。
圖像解密算法為圖像加密算法的逆過(guò)程,圖像解密算法:
(1)輸入解密密鑰,由Lorenz系統(tǒng)產(chǎn)生三維的混沌實(shí)值序列x(n)。
(2)實(shí)值混沌序列預(yù)處理。用量化處理的符號(hào)函數(shù)(2)經(jīng)過(guò)量化處理后得到二進(jìn)制偽隨機(jī)序列b(k),k=1,2,3,...n。
(3)讀入待解密的圖像。開(kāi)始如下變換:
*在x3軸的方向上進(jìn)行變換,若b3(i)=1則將第i塊和第(mod(r+,i1024)+1)塊互換,否則不變。
*在x2軸的方向上進(jìn)行變換,若b2(i)=1則將I(,ji)與I(,jmod(q+,i256)+1)互換,否則不變。
*在x1軸的方向上進(jìn)行變換,若b1(i)=1則將I(,ij)與I(mod(w+,i256)+1,j)互換,否則不變。
(4)得到解密后的圖像,密鑰正確即可恢復(fù)出原圖像。密鑰錯(cuò)誤,則無(wú)法正確解密。
四、實(shí)驗(yàn)和結(jié)論
這節(jié)將驗(yàn)證以上提出的基于三維Lorenz系統(tǒng)和鏡像變換的加密算法的有效性,并進(jìn)行安全分析。我們對(duì)256*256的lena圖像文件加密,如圖3中的a所示。輸入密鑰{1.1840;1.3627;1.2519}后得到的密圖如圖3中的b所示,若用錯(cuò)誤密鑰{1.1841;1.3627;1.2519}解密后的圖像為圖3中的c所示。d為正確解密后恢復(fù)的原圖。由此可見(jiàn),即使是密鑰中的一維有微小的變化,也不能正確解密出原圖。圖3中的e,f分別為對(duì)原圖像和加密后的圖像上同一位置的線段上各個(gè)象素灰度值的分布顯示。由此可見(jiàn),加密后將原圖的灰度值分布得更均勻更隨機(jī)。由上面的算法分析可知,對(duì)于M*N的圖像加密后,可能的加密結(jié)果為22*M*N+1024。該算法可以有效抵抗基于統(tǒng)計(jì)的攻擊和利用混沌時(shí)間序列進(jìn)行分析的攻擊方法。且算法不必利用混沌序列生成置換矩陣,只須將實(shí)值混沌序列轉(zhuǎn)換為二進(jìn)制的混沌序列,預(yù)處理的時(shí)間短。

小知識(shí)之二進(jìn)制
二進(jìn)制是計(jì)算技術(shù)中廣泛采用的一種數(shù)制。二進(jìn)制數(shù)據(jù)是用0和1兩個(gè)數(shù)碼來(lái)表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是“逢二進(jìn)一”,借位規(guī)則是“借一當(dāng)二”,由18世紀(jì)德國(guó)數(shù)理哲學(xué)大師萊布尼茲發(fā)現(xiàn)。當(dāng)前的計(jì)算機(jī)系統(tǒng)使用的基本上是二進(jìn)制系統(tǒng)。









