基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

混沌動力系統(tǒng)具有很好的初始敏感性、偽隨機性以及遍歷性,使得混沌動力系統(tǒng)廣泛應(yīng)用到信息的加密和隱藏的應(yīng)用上。作為重要信息媒體的數(shù)字圖像具有很大的信息量,使得傳統(tǒng)的加密方法不適合應(yīng)用到圖像文件加密上。那么,今天我就給大家介紹一種基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密方法:

一、基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密原理

一般在圖像加密過程中置亂度和密鑰空間越大,加密效果越好。利用二維和三維Arnold變換混沌軌道的遍歷性,我們提出了一個新的空間置亂方法。傳統(tǒng)的二維和三維Arnold變換是直接利用Ar2nold變換對像素位置進行變換,變換的初始值是全體像素位置,變換一次引起的置亂效果并不是很理想,變換的密鑰就是變換矩陣的整數(shù)系數(shù),范圍與圖像的大小一樣,因此密鑰空間不大。本文所提出的置亂方法,在(0,1)區(qū)間上隨機選取初始值并將變換矩陣系數(shù)擴大到正實數(shù)域,利用Arnold變換的軌道混沌遍歷性。使圖像像素位置與混沌軌道相近點相應(yīng)的軌跡序號對應(yīng),來進行位置的變換,達(dá)到圖像位置置亂的目的。與基于二維和三維Arnold變換傳統(tǒng)置亂方法比較,本算法具有更大的密鑰空間和更好的置亂度。

為了進一步增加圖像的加密效果,在利用Arnold變換進行空間置亂之后,運用耦合映向格子(CML)映射的混沌性質(zhì)生成混沌系列,經(jīng)過按位異或運算實現(xiàn)灰度值的擴散,有效抵御統(tǒng)計攻擊。數(shù)值實驗表明該算法加密效果良好,密鑰空間大,提高加密強度,符合密碼學(xué)的要求。

二、三維Arnold混沌變換

經(jīng)典二維Arnold混沌變換形式為:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

變換(1)是保面積變換,該變換矩陣的特征值基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密<1,對應(yīng)的最大Lyapunov指數(shù)為1nσ1=019624>0,所以二維Arnold變換是混沌的,引入兩個參量a,b得到更一般的形式:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

進一步地將(2)式擴展到三維空間,構(gòu)造三維Arnold混沌變換,過程如下:

在x-y-z三維空間中擴展變換(2)式,保持z方向值不變,在x-y平面上類似于二維Arnold變換得到如下變換(3):

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

類似地可以得到式(4)、(5):

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

級聯(lián)(3)、(4)、(5),得到下面一般的三維變換:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

其中:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

ax,bx,ay,by,az,bz都是正整數(shù),并且det(A)=1。

取ax=bx=ay=by=az=bz=1得基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密,矩陣A的特征值:σ1=711842>1,σ2=012430<1,σ3=015728<1,對應(yīng)最大Lyapunov指數(shù)為lnσ1=119719>1,與對應(yīng)二維Arnold變換最大Lyapunov指數(shù)比較,三維Arnold變換為混沌性更強的混沌系統(tǒng)。

三、加密算法

1、 基于三維Arnold變換的圖像置亂

(1)二維矩陣數(shù)據(jù)堆積為三維矩陣數(shù)據(jù):設(shè)數(shù)字圖像數(shù)據(jù)為二維矩陣A,記A=(amn)M×N,M,N為矩陣的行列數(shù),按矩陣的列(行)順序依次讀取矩陣A的元素amn并依次(從最底層開始,填滿每一層,在每一層中按列順序依次放置)放至三維矩陣B中,矩陣B的大小為I×J×K+R,滿足條件:M×N=I×J×K+R,其中當(dāng)M,N為素數(shù)時R為較小正整數(shù),否則取R=0,記B=(bijk)I×J×K+R。

(2)取初始點(x0,y0,z0),其中x0,y0,z0∈(0,1),由三維Arnold變換(6)可以得到(x0,y0,z0)迭代的軌道點(xn,yn,zn),n=1,2,…M×N;量化軌道點(xn,yn,zn),令sn=Lxn×I」, tn=Lyn×J」, un=Lzn×K」,其中Lx」表示不大于x的最大整數(shù)。

(3)因為混沌動力系統(tǒng)具有遍歷性,混沌軌道的點可以任意接近區(qū)域中的任意點,因此通過該混沌軌道量化得到的地址可以遍歷三維矩陣B的任意位置,從而根據(jù)該位置遍歷的次序?qū)D像進行重新排序,便可以達(dá)到圖像置亂的目的。在上述對序列量化取整得到序號的過程中,一個序列值可能會出現(xiàn)多次,從而發(fā)生碰撞,破壞了置亂過程一一對應(yīng)的關(guān)系,故需索引矩陣Index。取大小為I×J×K+R索引矩陣Index=0,即未遍歷到的點位置標(biāo)志為零。遍歷過程中當(dāng)發(fā)生碰撞時,取第一次得到的序列的位置即可,即若Index(sn,tn,un)=0(表明位置(Sn,Tn,Un)的點未遍歷到),將矩陣B在(sn,tn,un)處的值B(sn,tn,un)依次放置在向量I(k)中,即I(k)=B(sn,tn,un),k=1,2,…,T,T≤M×N-R,并令I(lǐng)ndex(si,ti,ui)=1(表明位置(sn,tn,un)的點已遍歷到)。

(4)由于計算精度和量化處理的關(guān)系,點(x0,y0,z0)經(jīng)過M×N次迭代得到的軌道點經(jīng)過量化取整后仍會有少數(shù)像素點位置未能遍歷到,所以利用索引矩陣Index檢查混沌軌道未遍歷到的像素點所在位置,即若Index(i,j,k)=0(即表明該位置的像素點未遍歷到),i=0,1,…,I,j=0,1,…,J,k=0,1,…,K,此時將三維矩陣B在(i,j,k)處的值B(i,j,k)依次放置在向量I(k’)中,即I(k’)=B(i,j,k),k’=T+1,T+2,…,M×N-R;對于R≠0時,即位置(i,j,k)的點,其中0<i<I,0<j<J,k=K+1,也依次放置在向量I(k’),即I(k’)=B(i,j,k),k’=M×N-R,M×N-R+1,…,M×N,0<i<I,0<j<J,而k=K+1。

(5)將向量I(k)按行或按列存儲為二維矩陣C,完成一次置亂。

(6)重復(fù)步驟(2)、(3)、(4)進行多次置亂,提高置亂度。

為了檢驗本文置亂方法的效果,分別利用傳統(tǒng)的Arnold變換置亂和本文提出的置亂方法對256×256的Lena圖像進行置亂,采用盧振泰等提出的圖像置亂程度評價方法對置亂度評價。置亂度定義為:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

其中I為原始圖像,I’為加密后圖像,N1,N2,N3,N4分別為圖像的水平,垂直,主對角線,次對角線相鄰元素差值的平方和,即:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

實驗數(shù)據(jù)表1表明,本文提出的置亂算法比傳統(tǒng)的置亂算法更有效。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

圖1-圖3分別是運用傳統(tǒng)二維Arnold置亂和本文的二維與三維Arnold置亂方法進行3,26,64次置亂效果圖,其中二維Arnold變換系數(shù)矩陣A中參數(shù)取a=1,b=1,三維Arnold變換系數(shù)矩陣A中參數(shù)取ax=bx=ay=by=az=bz=1。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

從圖2,圖3與圖1比較可以看出本文的二維和三維Arnold變換的置亂算法置亂3次時,比傳統(tǒng)二維Arnold變換置亂效果好。同時注意到傳統(tǒng)的二維Arnold變換置亂具有周期性,但本文提出的置亂算法周期可以非常大,置亂效果可以很穩(wěn)定。

2、基于耦合映像格子(CML)映射的灰度值置亂擴散

Logistic映射為xn+1=axn(1-xn),xn∈(0,1)。當(dāng)參數(shù)a∈(315699456,4]時,Logistic映射處于混沌狀態(tài)。為了應(yīng)對統(tǒng)計分析和差分分析的攻擊,得到更好的擴散效果,通過Logistic映射構(gòu)造如下CML映射:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

其中f為Logistic映射,n=0,1,2…,y1,2(i)∈[-1,1],ε∈(0,1),并取ε=0199。用數(shù)值方法,將a作為參數(shù),a分別從21001到410和31601到410變化時的Lyapunov指數(shù)的圖形,見圖4。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

從圖4可見,CML系統(tǒng)最多可以有兩個正Lyapunov指數(shù),通過實驗得到當(dāng)a>318540,CML系統(tǒng)有兩個正Lyapunov指數(shù),所以CML系統(tǒng)是混沌的。取參數(shù)a=410,運用CML混沌系統(tǒng)對圖像灰度值擴散。擴散算法如下:

(1)取初始值y1(0),y2(0),由(7),(8),得到均勻分布的混沌系列y1(n),y2(n),y1(n),y2(n)∈(0,1),n=1…M×N。

(2)取Y1(n)=[y1(n)×256],Y2(n)=[y2(n)×256],將Y1,Y2按列分別構(gòu)成大小為M×N矩陣D1,D2,利用矩陣D1,D2與C按位異或運算即:D1⊕D2⊕C,從而改變C的灰度值,達(dá)到灰度值的擴散。

上述整個加密過程是可逆的,解密過程對算法反操作便可以實現(xiàn)。

四、加密安全分析

1、密鑰空間和密鑰敏感性分析

一個好的加密系統(tǒng)應(yīng)該具有對密鑰高度敏感性,應(yīng)具有足夠大的密碼空間可以抵抗非法攻擊。在加密過程中密鑰個數(shù)達(dá)11個,包括三維Arnold置亂過程9個密鑰和灰度值擴散過程的兩個密鑰。三維Arnold置亂過程9個密鑰為ax,bx,ay,by,az,bz,x0,y0,z0,密鑰空間大小至少為28×6×1016×1016×1016=218147×1062,同時還必須知道所堆積矩陣的大小,進一步擴大了密碼空間,加大了破解的難度;在灰度值擴散中需要2個密鑰,密鑰空間為1016×1016=1032??梢姳疚乃惴梢赃_(dá)到足夠大的密鑰空間。

密鑰敏感性測試:對256×256大小Lena圖像加密。假設(shè)兩組初值密鑰分別為:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

而兩組密鑰其他部分均為y1(0)=013,y2(0)=016,ax=bx=ay=by=az=bz=1,加密次數(shù)為5次。本文用以下方法測試密鑰敏感性:

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

其中I,I’為使用不同密鑰加密得到的密文,n(I-I’)為I,I’灰度值不同的數(shù)目,M×N為圖像的大小。通過實驗表明:雖然初始密鑰x0只差10-15,但Cdr=9913729%。

圖5(a)為原始Lena圖像;圖5(b)為x0=01123456789654321,y0=018,z0=015加密得到的加密圖像;圖5(c)為x0=01123456789654322,y0=018,z0=015加密得到的加密圖像;圖5(d)圖為圖5(b)與圖5(c)的差別圖像;圖5(e)為x0=01123456789654322,y0=018,z0=015對圖5(b)的解密結(jié)果;圖5(f)為x0=01123456789654321,y0=018,z0=015對(b)圖解密結(jié)果。

1c

2、統(tǒng)計分析

本文提出的灰度值置亂算法可以有效的對圖像灰度進行置亂,如圖7通過原圖像與加密圖像的灰度值直方圖比較后看出加密后的直方圖分布比較均勻。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

分別從原圖和加密圖隨機選取1000個相鄰(垂直、水平、對角)像素點判斷其相關(guān)性,將灰度值顯示如圖8;計算相關(guān)系數(shù);結(jié)果如表2。從數(shù)值結(jié)果可以看出,本文的加密算法可以有效去除相關(guān)性,有效抵御統(tǒng)計和差分等攻擊。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

為了檢驗本文的加密方案的魯棒性,我們對圖像進行剪切,壓縮等攻擊進行實驗,實驗結(jié)果如圖8,其中Jpeg壓縮的品質(zhì)因子為60。通過攻擊實驗表明,該加密算法有較好的魯棒性。

基于Arnold變換的混沌軌道遍歷性的數(shù)字圖像加密

數(shù)值實驗表明本文的加密算法具有更好的加密效果,更大的密鑰空間以及更高的安全性,可以有效地抵抗了統(tǒng)計分析以及剪切、壓縮等攻擊。

小知識之Arnold變換

Arnold變換是一種常用的圖像置亂技術(shù),Arnold變換的定義如下:
對任意N*N矩陣(所有元素都相同的矩陣除外),設(shè)i,j為矩陣元素原始下標(biāo),經(jīng)過Arnold變換后新下標(biāo)為i',j',且滿足下式:
i'=(i+j)mod N
j'=(i+2j)mod N
i,j:0,1,.........N-1
Arnold變換具有周期性,即經(jīng)過若干次變換后,矩陣回到最初狀態(tài),且周期T與N的大小有關(guān)。理論基礎(chǔ)沒找到,但可以用程序來進行計算,可以設(shè)i,j從一個點出發(fā),不斷使用以上變換,再次回到這個起點時,經(jīng)歷的變換次數(shù)就是周期。