一種基于混沌序列控制的3D cat映射加密算法
Shannon密碼理論指出,通過統(tǒng)計(jì)分析可以破解多種密碼,但采用混亂擴(kuò)散的方法可以抵抗統(tǒng)計(jì)攻擊,Chen等將二維Arnold變換推廣到三維,提出了一種3D cat映射加密算法,雖然進(jìn)行多次置亂和混淆,但一旦密鑰確定了,對(duì)應(yīng)3D cat映射的矩,陣參數(shù)就固定不變,將混沌序列進(jìn)行量化,再用量化序列進(jìn)行置亂,量化過程是一個(gè)信息損失的過程,這使得解密者無法推測(cè)混沌系統(tǒng)的初值。而提出了一種復(fù)合混沌系統(tǒng)的思想,產(chǎn)生出4個(gè)混沌序列,經(jīng)異或運(yùn)算得到新的復(fù)合序列,使得解密者無法由破譯的加密模板來推測(cè)混沌系統(tǒng)。
本文提出了一種改進(jìn)的3D cat映射,使每次變換后矩陣的參數(shù)都發(fā)生變化,并綜合運(yùn)用Logistic映射、Chebyshev映射、Chen系統(tǒng)生成的符號(hào)控制序列,對(duì)圖像文件進(jìn)行加密。
一、混沌系統(tǒng)
1、Logistic和Chebyshev系統(tǒng)
一類非常簡(jiǎn)單而又應(yīng)用廣泛的混沌系統(tǒng)是Logistic系統(tǒng):
![]()
在0.569 945 6--μ≤4時(shí),Logistic呈混沌狀態(tài),μ∈(O,1),k∈N。另一類是Chebyshev映射:
![]()
其中Xk∈(-1,1),k∈N。
經(jīng)過簡(jiǎn)單的變量代換,式(1)等價(jià)于:
![]()
其中入∈[o,2],Xk∈(-1,1),入=2時(shí)為滿射。分析可知,Logistic和Chebyshev具有自噪聲、對(duì)初始值敏感等特性,這對(duì)圖像文件加密是有益的。
2、Chen系統(tǒng)
Chen系統(tǒng)表示為:

其中a,b,c是正實(shí)數(shù),當(dāng)a=35,b=3,c∈[20,28.4]時(shí),系統(tǒng)是混沌的。
3、3D cat映射變換
經(jīng)典Arnold變換是二維可逆混沌映射:

其離散形式為:

其中N為圖像的大小,n為自然數(shù)。首先將二維離散Arnold映射推廣為:

其中a,b為正整數(shù),其中的映射矩陣也是一個(gè)保面積的可逆變換。然后通過上述二維映射來構(gòu)造3個(gè)三維映射:

其中ax,ay,az,bx,by,bz均為正整數(shù).記上面3個(gè)矩陣分別為A1,A2, A3,可構(gòu)造A =A1xA2 xA3,則:

稱上述變換為3D cat映射,由于detA=1,故3D cat映射為保面積變換。取ax=ay=az=bx=by=bz=1,則:

對(duì)應(yīng)Lyapunov指數(shù)為σ1=--7.184 2,σ2=0.243 0,σ3=0,572 8。而Arnold變換對(duì)應(yīng)LyapunoV指數(shù)為σ1=2,618 0,σ2=0.382 0。Ly8punov指數(shù)越大,對(duì)應(yīng)系統(tǒng)的混沌性越強(qiáng),故3D cat映射(6)要比Arnold映射(5)混沌性強(qiáng),圖1是Amold與3D cat映射對(duì)256×256的lena圖像加密次數(shù)效果圖。

采用向德生等計(jì)算兩變換的置亂度算法,任一像素與四周相鄰像素的像素值之差為:

其中,I(x,y)為圖像I在(x,y)處的灰度值,(xi,yi)為(x,y)上下左右4個(gè)相鄰像素,除去圖像邊緣上的像素外,相加D(x,y)平均即得到整個(gè)圖像的平均相鄰灰度差為:

定義灰度值置亂度為:
![]()
其中M,N為圖像的行、列數(shù),ED,ED'為分別表示置亂前、后圖像的平均相鄰灰度差,這樣,ED∈(-1,1)值范圍.若置亂度小于O,表示置亂效果比原圖還差;若置亂度大于0,則表示灰度置亂效果比原圖要好,而且越趨近于1越好。
表1列出了兩變換對(duì)不同大小圖像的置亂度η(以256級(jí)灰度值,置亂一次為例),表2列出兩變換對(duì)不同大小圖像周期T的比較,表3列出了兩變換的加密次數(shù)與時(shí)間t的關(guān)系(以cpu:1.41GHz,內(nèi)存:5 12為例)。

顯然,從上面各種角度比較兩種變換,3D cat映射比Arnold變換有更好的效果。
二、置亂算法
1、算法設(shè)計(jì)
本文密鑰為x0,Yo,n,這里xo,yo為混沌系統(tǒng)迭代初始值,n為加密次數(shù),首先由Chen系統(tǒng)(4)產(chǎn)生3D cat映射矩陣A的參數(shù),用該映射對(duì)圖像進(jìn)行位置置亂。Chen系統(tǒng)的初始值為:
![]()
其中1≤i≤n為置亂次數(shù).這樣每置亂一次,對(duì)應(yīng)矩陣A的參數(shù)也是變化的,與原來的3D cat映射參數(shù)固定相比,增加了矩陣的不確定性,提高了破譯難度。
其次由密鑰xo通過式(1)生成混沌序列,并轉(zhuǎn)化為符號(hào)控制序列:
![]()
再由密鑰yo通過式(2)或式(3)生成替換序列{yk},我們按以下規(guī)則生成{yk}:

由于此時(shí){yk}并不是均勻分布的,對(duì)其作一反余弦變換,即:
![]()
則{yk'}為均勻分布的,將其轉(zhuǎn)化為2k值序列,由此序列再與原圖像按位異或運(yùn)算,便得到加密圖像。由于式(8)并非是由一個(gè)混沌系統(tǒng)生成,而是兩個(gè)系統(tǒng)復(fù)合得到的,破譯者很難根據(jù)混沌序列的特點(diǎn)來估計(jì)該系統(tǒng)。
2、算法步驟
加密步驟如下:
1)輸入圖像,記圖像矩陣為I,由xo通過式(1)生成混沌,并轉(zhuǎn)化為符號(hào)控制序列{xK};
2)由Y0作初值,按式(8)規(guī)則生成置亂序列,并轉(zhuǎn)化為2K值序列{yk},本文取k=8;
3)由式(7)生成zo作為Chen系統(tǒng)(4)的初值,生成3D cat映射的矩陣系數(shù),進(jìn)而與圖像作置亂,得到II;
4)由II再與{yk}進(jìn)行按位異或運(yùn)算得到III;
5)重復(fù)步驟3)和4)n次,得到最終加密圖像。
解密過程為上述過程的逆過程,一般對(duì)于混沌序列我們不取它的初始部分,會(huì)得到更好的加密效果。
三、實(shí)驗(yàn)結(jié)果
采用本文方法對(duì)圖像進(jìn)行加密,圖1是對(duì)256×256的lena灰度圖像的加密結(jié)果,所取密鑰為雙精度xo=0.123 456 789 012 345 6,y0=0.123 456012 345 6789,n=5,加密及解密結(jié)果見圖2,其中,(a)為原圖,(b)為加密圖,(c)為正確密鑰的解密圖。(d)為錯(cuò)誤密鑰的解密圖,所取密鑰為xo= 0.1234567890123455,yo=0.123456012345 6789,n=5??梢?0-i6的差別便不能正確解密,密鑰空間為:1016×1016×28=2.560 0×1034。

圖3是與圖2相對(duì)應(yīng)圖像的灰度直方圖(橫軸為灰度值,縱軸為像素?cái)?shù)),加密圖像和錯(cuò)誤密鑰解密圖像的直方圖分布均勻,與原圖像沒有任何相似之處,有效地防止了統(tǒng)計(jì)攻擊。

表4列出Chen等m算法與本文算法所生成加密圖像與原圖相關(guān)系數(shù)P1,p2的比較,其中Po為原圖的自相關(guān)系數(shù),可見本文算法更能有效地破壞圖像像素間的相關(guān)性。

圖4是對(duì)加密圖像進(jìn)行的攻擊試驗(yàn),其中(a)是剪切密圖,(b)是對(duì)(a)的解密圖,(c),(d)分別是對(duì)添加20%的椒鹽噪聲、2%的高斯噪聲的解密圖,(e)是對(duì)加密圖進(jìn)行jpeg壓縮,壓縮因子為50%。由圖4可知,算法對(duì)有損壓縮和信道噪聲產(chǎn)生的失真具有良好的抵抗能力。

小知識(shí)之矩陣
矩陣是高等代數(shù)學(xué)中的常見工具,也常見于統(tǒng)計(jì)分析等應(yīng)用數(shù)學(xué)學(xué)科中。在物理學(xué)中,矩陣于電路學(xué)、力學(xué)、光學(xué)和量子物理中都有應(yīng)用;計(jì)算機(jī)科學(xué)中,三維動(dòng)畫制作也需要用到矩陣。 矩陣的運(yùn)算是數(shù)值分析領(lǐng)域的重要問題。將矩陣分解為簡(jiǎn)單矩陣的組合可以在理論和實(shí)際應(yīng)用上簡(jiǎn)化矩陣的運(yùn)算。對(duì)一些應(yīng)用廣泛而形式特殊的矩陣,例如稀疏矩陣和準(zhǔn)對(duì)角矩陣,有特定的快速運(yùn)算算法。










