圖像加密算法之三維貓映射
混沌序列具有易于生成、對(duì)初值敏感和類白噪聲的性質(zhì),因而適合應(yīng)用于密碼系統(tǒng)設(shè)計(jì)。為此我們將二維貓映射推廣到三維,并綜合運(yùn)用一堆無限折疊、Chebyshev、Lorenz等三種較復(fù)雜的混沌映射,共同產(chǎn)生密鑰,對(duì)圖像文件進(jìn)行加密。
一、混沌系統(tǒng)
混沌是非線性學(xué)科的一個(gè)重要方面。它是一種貌似無規(guī)則的運(yùn)動(dòng),是在確定性非線性系統(tǒng)中,不需要附加任何隨機(jī)因素就可出現(xiàn)類似隨機(jī)的行為(內(nèi)在的隨機(jī)性)?;煦缦到y(tǒng)最大的特點(diǎn)就在于系統(tǒng)的演化對(duì)初始條件十分敏感,因此從長期意義上講,系統(tǒng)具有未來不可預(yù)測(cè)性。
1、Chebyshev映射
Chebyshev映射是一種以階數(shù)k為參數(shù)的映射,其離散化形式定義如下:
![]()
其中xn ∈(-1,1),其概率分布函數(shù)PDF為:

ρ(x)為偶函數(shù),由混沌信號(hào)的各態(tài)歷經(jīng)性,可以用集平均代替時(shí)間平均,即:
![]()
定理1若獨(dú)立選取兩個(gè)初始值xoyo,則產(chǎn)生混沌序列互相關(guān)甬?dāng)?shù)如(4)式。由式(4)知,該映射具有類δ函數(shù)的自相關(guān)性和零值互相關(guān)性,與白噪聲性質(zhì)類似,隨機(jī)性能好,因而可以作為密鑰應(yīng)用于數(shù)據(jù)通信或多媒體安全領(lǐng)域。
![]()
2、一維無限折疊映射
一維無限折疊映射的離散化形式可以表示成:
![]()
xn?∈(0,b),a?∈(1,+∞),b?∈(0,1),n=1,2,…,N,該映射系統(tǒng)是一維Markov系統(tǒng),在區(qū)間內(nèi)有可列個(gè)非線性分段、第一類不連續(xù)點(diǎn)和不穩(wěn)定不動(dòng)點(diǎn)。
該序列具有正的李氏常數(shù),兇而是混沌的,且其值隨d增大或6減小而增大,當(dāng)d越大,b越小時(shí),其值遠(yuǎn)遠(yuǎn)大于Logistic映射李氏常數(shù)In2,系統(tǒng)變得更加復(fù)雜,初值敏感性更強(qiáng),信息擴(kuò)散的速度更快,當(dāng)b→0,a→∞時(shí),趨近于均勻分布,較Logistic映射隨機(jī)性好,文中參數(shù)選取a=10,b=0.99。
3、Lorenz映射
Lorenz映射是由美國麻省理工學(xué)院的氣象學(xué)家洛倫茲在1963年研究大氣運(yùn)動(dòng)時(shí)描述的:

Lorenz映射是一種維數(shù)較高的連續(xù)混沌系統(tǒng),其分形維數(shù)介于2~3之間,且主要由參數(shù)r決定??梢杂脭?shù)值積分的方法求得,如采用四階龍格一庫塔法對(duì)方程進(jìn)行數(shù)值積分,得到隨機(jī)性較好的連續(xù)數(shù)值序列,xn,yn,zn可以選取任一序列作為混沌映射序列,并從中隨機(jī)抽取b個(gè)數(shù)據(jù),對(duì)選取的數(shù)據(jù)做取整處理。得到的隨機(jī)自然數(shù)作為貓映射矩陣系數(shù)。文中參數(shù)選擇t=10,b=8/3,r=28。
4、貓映射
貓映射最早由Arnold引入n,其二維映射形式可以表示為:
![]()
定義矩陣
,行列式c的值為1,即該映射是一個(gè)二維保面積、可逆映射,沒有吸引子。實(shí)際上,貓映射包括拉伸和折疊兩個(gè)過程,乘以矩陣C,使x,y變大,相當(dāng)于拉伸,取模使x,y又折回單位矩陣內(nèi),相當(dāng)于折疊,矩陣C的特征值
;相應(yīng)的李氏常數(shù)
,因此該系統(tǒng)是混沌的?,F(xiàn)在,我們將2-D貓映射推廣到3-D。引入兩個(gè)控制參數(shù)a,b。
二維映射可以表示成:
![]()
將映射擴(kuò)展到三維平面,首先固定zn,在x-y平面上做二維貓映射:

? 接下來xn保持不變,在y-z平面上做二維貓映射:

然后yn保持不變,在x-z平面上做二維貓映射:

連接以上三個(gè)方程式,則:

其中:

其中:

a2=0.243 (k1,a3=0.572 8<1,遠(yuǎn)遠(yuǎn)大于二維映射的特征值,相應(yīng)的最大李氏常數(shù)Ai=ln7.184 2>0.因而三維映射系統(tǒng)變得更加復(fù)雜。變換后A的行列式恒等于1,仍為l-I映射,具有保體積性,且存在著逆映射。
二、加密算法
1、移位置換算法
置換本質(zhì)上是原始圖像與加密圖像之間對(duì)應(yīng)點(diǎn)處灰度值的移動(dòng)。移位置換的思想就是通過改變像素的位置即重排像素的位置來達(dá)到置亂的目的,使秘文塊看起來是隨機(jī)的。置換操作可以是局部的,也可以是全部的。局部變換要達(dá)到較好的置亂效果,必須加大置亂塊的大小,但對(duì)于比較平滑的圖像進(jìn)行加密時(shí),即使增加置亂塊的大小,在加密后的圖像中電保留了原圖像的大部分信息,加密效果不好。因此,往往采用全局加密的方法?;梅街脫Q是一種常用的置換算法,其思想是:對(duì)于圖像IM*N,給定幻方矩陣S,將I中像素依S按行或列做一一映射,改變像素位置,達(dá)到置亂的目的。在傳統(tǒng)的加密算法中,這種移位矩陣是事先定義好的,與密鑰無關(guān),因而易于受到差分密碼分析的攻擊,保密性能較差。本文的置換算法是基于混沌密鑰的,移位次數(shù)由混沌序列產(chǎn)生,具有一定的隨機(jī)性,提高了安全性,對(duì)圖像進(jìn)行移位置亂后,完成1次加密。
2、灰度值替代
僅僅靠上述移位置換算法,顯然保密效果足不夠的,要使加密后的圖像變得更加隨機(jī)不可見,就需要改變圖像的灰度直方圖,即對(duì)圖像灰度值進(jìn)行變換。該變換可以在空間域進(jìn)行,也可以在頻域進(jìn)行,兩者各有優(yōu)缺點(diǎn)。空間域算法簡(jiǎn)單,計(jì)算量小,但置亂效果不是很好;頻域算法,需要對(duì)像素做變換,計(jì)算稍復(fù)雜,但經(jīng)過頻域映射,頻域內(nèi)每一點(diǎn)的變化經(jīng)反變換后,都會(huì)對(duì)整個(gè)數(shù)據(jù)集合產(chǎn)生一定的影響,加密效果好。隨著現(xiàn)代電子工業(yè)技術(shù)的發(fā)展,計(jì)算速度已不再成為重要的難題,我們往往更關(guān)心的足加密算法的安全性能。因而本文對(duì)移位置亂后的圖像采用了頻域(DCT)變換,利用系數(shù)矩陣做比例變換,改變灰度值,完成2次加鏹。系數(shù)矩陣是由一維無限折疊映射產(chǎn)生,隨機(jī)性能強(qiáng),安全性能高。
3、3-D貓映射
一個(gè)安全性能較好的加密算法應(yīng)該同時(shí)包括置換、替代和擴(kuò)散三個(gè)過程。以上算法經(jīng)過了置換、替代兩個(gè)過程,貓映射則相當(dāng)于對(duì)序列進(jìn)行擴(kuò)散。它利用貓映射的拉仲和折疊的性質(zhì),使原來相鄰的兩點(diǎn),經(jīng)過迭代映射后,變得不再相鄰,具有一定程度的初值敏感性和混沌性。要將貓映射推廣至三維,首先應(yīng)對(duì)原圖像的灰度矩陣按行或列進(jìn)行重排操作,變到三維空間,如原圖像I,大小MxN,變換后成為(3,mod(MxN/3),即如果MxN不能被3整除,則需要添加0值來補(bǔ)充矩陣,經(jīng)過貓映射后重排像素值,重新變到二維,并去掉添加點(diǎn),恢復(fù)到原圖像大小MxN.完成3次加密。映射矩陣A由高維混沌系統(tǒng)Lorenz產(chǎn)生,它含有3個(gè)變量、3個(gè)參數(shù),加大了密鑰空間,不易被破譯。映射系統(tǒng)矩陣采用整數(shù)值,由于detA=I,其逆映射系數(shù)仍為整數(shù),加密、解密操作簡(jiǎn)單。
4、符號(hào)矩陣
利用Chebyshev映射產(chǎn)生實(shí)值序列,通過設(shè)定一定的門限值,對(duì)實(shí)值數(shù)列進(jìn)行變換,轉(zhuǎn)變成符號(hào)序列,由于實(shí)值序列具有隨機(jī)性,因而產(chǎn)生的符號(hào)序列也具有類似的性質(zhì),然后對(duì)圖像的ix:系數(shù)做逐點(diǎn)變換,改變符號(hào),完成4次加密,得到加密圖像。
三、混沌序列的生成和加密算法實(shí)現(xiàn)
設(shè)讀人圖像I,大小為MxN。
1、迭代次數(shù)和系數(shù)矩陣的產(chǎn)生
輸入密鑰(x1,n1,n2),利用一維無限折疊映射產(chǎn)生序列值{Xk}。為了獲得均勻性和隨機(jī)性能更好的序列,去掉前(n1-1)次迭代結(jié)果,取Xn1,迭代次數(shù)step=round(xn1*10)。我們定義:

做移位置換,由于I與S是一一對(duì)應(yīng)的,經(jīng)過step步移位置換,隨著S變換為S1,I也變換為I1。去掉前(N2-1)次迭代結(jié)果,用xn2作為初始值,生成混沌序列,對(duì)序列值進(jìn)行熏俳,使其與原圖像大小匹配,作為系數(shù)矩陣y,Y=MxN。
2、貓映射矩陣
輸入密鑰(xo,yo,zo),作為Lorenz映射的初始值,利用四階龍格一庫塔法求解,積分區(qū)間為[-60,60],積分步長為0.3,得到序列值{xk},{yk},{zk},任意選取其中一序列生成貓映射矩陣的系數(shù)值,如取{xk}。為了減少計(jì)算置,我們作必要調(diào)整,對(duì)數(shù)值取整后再做模3運(yùn)算,使ax,ay,az,bx,by,bz?∈{0,1,2},即:

得到貓映射矩陣A。
3、加密算法實(shí)現(xiàn)
(1)讀入圖像IM*N。
(2)輸入密鑰(x1,n1,n2,x2,n3,xo,yo,zo)。計(jì)算移位序列的迭代步數(shù)step,符號(hào)矩陣S,系數(shù)矩陣y,貓變換矩陣A。
(3)對(duì)讀人像素灰度值矩陣進(jìn)行移位變換l1=lxstep。
(4)對(duì)圖像I進(jìn)行DCT變換ID=DCT(II)。
(5)改變DCer變換系數(shù)IDD=ID *Y。
(6)做3-D貓映射I=xIDD。
(7)改變系數(shù)符號(hào),點(diǎn)成符號(hào)矩陣Ifnd =IC.*sign。
(8)輸出加密圖像。
4、解密算法實(shí)現(xiàn)
解密時(shí),按照上述圖像文件加密過程求逆操作即可。
四、實(shí)驗(yàn)仿真結(jié)果
實(shí)驗(yàn)時(shí),我們選取以下密鑰對(duì)該加密算法進(jìn)行仿真,即選取n1=1 000,x1=0.207 764,x2=0.607 764,n2=500。n3=500,xo=0.678,y0=0.276.2,z0=0.789。

實(shí)驗(yàn)結(jié)果如圖1-圖3所示。從圖中可以看到該加密算法可以很好的懈密原圖像。此外,我們還繪出圖像的灰度直方圖,如圖4—圖6所示。從圖中可以看到加密后的圖像,其灰度值分布和原圖像有很大差別,因而很難從加密圖像中獲取原圖像信息。

圖7—圖9分別表示在錯(cuò)誤密鑰下,懈密的圖像。圖7為采用錯(cuò)誤密鑰x:=0.207 764 000 000 1(即對(duì)應(yīng)只有系數(shù)矩陣改變);圖8為采用錯(cuò)誤密鑰X2=0.607 764 000 000 1(即對(duì)應(yīng)只有符號(hào)矩陣改變)。圖9為采用錯(cuò)誤密鑰xo=0.678 000 000 000 1(即對(duì)應(yīng)只有貓映射矩陣改變)錯(cuò)誤解密后圖像。三種情況下,未指明的密鑰均保持不變,三種情況密鑰誤差都很小,達(dá)10-13個(gè)數(shù)量級(jí),從圖中可以看到,三種情況均不能正確解密原圖像,原圖像信息完全丟失,因而該加密算法時(shí)非常安全的。

在信息高速流通的時(shí)代,不僅要求大量存儲(chǔ)和傳輸圖像,而且往往要求在保證質(zhì)量和安全性的前提下,以較小的空間存儲(chǔ)圖像和較少的比特率傳輸圖像,即采用圖像壓縮編碼技術(shù)。該算法加、解密是在DCT域中進(jìn)行,因而對(duì)于一定的有損壓縮圖像也可以較好的恢復(fù)解密原圖像。實(shí)驗(yàn)結(jié)果如圖10—圖14所示,采用256x256的灰度圖像,壓縮比分別為2:1、4:1、8:1時(shí),加密、解密圖像,從圖中看到該算法可以很好的解密被壓縮的圖像。

小知識(shí)之白噪聲
白噪聲是指功率譜密度在整個(gè)頻域內(nèi)均勻分布的噪聲。 所有頻率具有相同能量密度的隨機(jī)噪聲稱為白噪聲。從我們耳朵的頻率響應(yīng)聽起來它是非常明亮的“咝”聲(每高一個(gè)八度,頻率就升高一倍。因此高頻率區(qū)的能量也顯著增強(qiáng))。









