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

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

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

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

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

連接以上三個方程式,則:

其中:

其中:

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

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

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

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

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

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

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









