3D混沌映射圖像加密算法
針對當(dāng)前的3D混沌映射加密算法存在安全性不高,加密速度慢、密鑰空間小以及不具備抗多種攻擊能力等不足,設(shè)計(jì)了三個(gè)規(guī)則:置亂規(guī)則、混淆規(guī)則與掩蔽規(guī)則,我們提出了一種基于置亂、混淆與掩蔽三規(guī)則融合3D混沌映射的圖像加密算法來解決上述問題。
一、三維混沌CAT混沌映射
在二維混沌CAT映射基礎(chǔ)上,得到了一個(gè)3D混沌CAT映射。
式(l)中,xj∈[O,1],yj∈[O,1]。該映射是一個(gè)保面積模型,因?yàn)槟P褪?1)的矩陣A的行列式|A|= 1。該模型具有兩個(gè)Lyapunovz指數(shù)為矩陣A的兩個(gè)特征值,分別為β1\β2,經(jīng)計(jì)算得到:
該模型的正Lyapunovz指數(shù)較好地體現(xiàn)該模型處于混沌狀態(tài),使得其對初值有一定的敏感性能。
但是從上面可知,由于2D混沌映射只有一個(gè)正的Lyapunovz指數(shù),使其安全性比較低。
對此,現(xiàn)將該映射擴(kuò)展為3D混沌映射,將兩個(gè)新的參數(shù)a、b融人到模型式(1)中,
對模型式(2)進(jìn)行擴(kuò)展,得到3D混沌映射的一般形式:
式(3)中,B為保證模型式(3)處于混沌狀態(tài)的矩陣,矩陣B為:
模型式(4)中的ax、aY以及az均為正整數(shù)。
令ax=aY=az=2,bx=6y=bx=1,則模型(3)可變?yōu)椋?/p>
從模型(5)中可知,擴(kuò)展后的3D混沌映射具有更復(fù)雜的相空間以及保體積性,可顯著提高加密系統(tǒng)的安全性。
雖然3D混沌映射具有多個(gè)正的Lyapunovz指數(shù),其動(dòng)力學(xué)行為更加復(fù)雜,相對于2D混沌映射而言,其安全性有較大的提高,但是其加密速度以及算法安全性仍存在不足,密鑰空間小。因此,提出了三個(gè)規(guī)則(置亂規(guī)則、混淆規(guī)則以及掩蔽規(guī)則)來增強(qiáng)3D混沌映射加密算法的安全性,提高其加密速度,擴(kuò)大密鑰空間。
二、基于置亂、混淆與掩蔽規(guī)則融合3D混沌映射的圖像加密算法
提出的加密算法主要包括三個(gè)階段:(1)置亂規(guī)則下的置亂階段;(2)混淆規(guī)則下的雙向混淆密階段;(3)掩蔽規(guī)則下掩蔽階段,如圖1所示。第一階段主要是對像素塊進(jìn)行置亂操作,改變像素位置;第二階段主要是混淆像素,改變像素值;第三階段目標(biāo)是對加密后的像素塊進(jìn)行掩蔽處理,進(jìn)一步增強(qiáng)加密系統(tǒng)的安全性。
三個(gè)規(guī)則共同相互作用,與3D混沌映射融合生成的輸出結(jié)果可有效的置亂和混淆初始圖像與密文圖像之間的關(guān)系,使得該算法具有抗多種攻擊能力。
1、加密算法描述
(1)預(yù)置亂處理
假設(shè)初始圖像大小為MxNx30為了達(dá)到更好的置亂效果,對初始圖像的字節(jié)進(jìn)行預(yù)置亂處理。先對初始圖像的奇數(shù)行與列的順序進(jìn)行顛倒,隨后旋轉(zhuǎn)這些行與列的RGB值,通過復(fù)制每個(gè)相鄰像素的R值,G值以及B值將得到的3維數(shù)組變換成一個(gè)2維數(shù)組,得到一個(gè)大小為M×3N的預(yù)置亂位圖。
(2)階段1
置亂規(guī)則下的置亂階段
本階段將以隨機(jī)方式置亂預(yù)置亂位圖中所選擇的像素塊,這些像素塊是根據(jù)在置亂規(guī)則下迭代3D混沌映射模型所得到的數(shù)組來選擇的。
1)將預(yù)處理后的位圖分成E個(gè)像素塊,隨后迭代3D混沌映射模型式(3)T次,得到一個(gè)數(shù)組XT=(X1,X2,…,XT),其中Xi=(xi,Yi,zi),i∈[1,2,3,…,T],根據(jù)該數(shù)組以隨機(jī)方式選取rxl個(gè)像素塊,并對rxl個(gè)像素塊進(jìn)行匹配。
2)選擇r(l)最為M(3N)的最大除數(shù),且r≤16(/≤16)。
3)將像素坐標(biāo)為(αr+l,βi+i)的第r×l像素塊記為像素塊α,β,其中:
4)令其中Lα,Jβ均為[o,1]的子區(qū)間,從而保證了每個(gè)三元X=(x,y,z)只能對應(yīng)一個(gè)像素塊(α,β),其中x∈Lα,y∈Jβ。則:X=(x,y,z)中的j在置亂規(guī)則中使用。
(5)從j=0開始連續(xù)不斷迭代3D混沌映射模型(3)得到一個(gè)三元數(shù)組x1,X2,X3,…,每個(gè)xi中的所有元素都在區(qū)間[0,1]內(nèi)。
(6)令xj代表J時(shí)刻的混沌映射模型式(3)的狀態(tài):Xi=(xj,yj,zj),然后以隨機(jī)循環(huán)xj,xi+1,…,xj的方式進(jìn)行置亂,使得zj與zi都在子區(qū)間Ir[o,1]內(nèi),其中,0≤r<θ,θ為本規(guī)則所引入一個(gè)特殊參數(shù),該參數(shù)包含在密鑰S1中。
(7)通過步驟(l)一步驟(6),使得與再以及xi+l相關(guān)的像素塊互換。以上步驟都是在則置亂規(guī)則下進(jìn)行的。令Xj對應(yīng)的像素塊為Hj=(|mxj|,|n,j|),則置亂規(guī)則的定義如下:
①輸入模型(3)中的矩陣B,三元xo=(x0,Yo,zo)T,初始密鑰S=(sl,sz,S3)以及密鑰s1中的θ,令Co =0。
②將j>co作為最小引擎,使得像素塊Hi不被標(biāo)記,令r=|θzi|。
③將i>j作為最小引擎,使得r=|θzi|,且Hi,j不被標(biāo)記。
④互換像素塊Hj與Hi+1,對這兩互換像素塊進(jìn)行標(biāo)記。
⑤等到所有的被選擇的像素塊都被標(biāo)記,則結(jié)束該階段;否則,執(zhí)行步驟②,且令co=i+l。
在上述步驟②與步驟③中,一直保持迭代3D混沌映射模型(3)狀態(tài),直到獲得理想性能的三元置為止。但是由于步驟③在達(dá)到理想結(jié)果時(shí),很有可能不會(huì)終止,對此,本文引入一個(gè)覆蓋參數(shù)η來解決這個(gè)問題。則步驟③改為步驟⑥。
⑥令i∈|j+l,…j+η|作為最小引擎,使得r=|θzi|,且Hi+1不被標(biāo)記,如果這個(gè)f不存在,則直接進(jìn)入步驟⑤。
在這個(gè)階段完成后,有很多像素塊沒有被互換,特別是在這個(gè)覆蓋參數(shù)η很小時(shí)。因此有必要確定一個(gè)合適的迭代次數(shù)作為覆蓋參數(shù)田。為了確定這個(gè)較優(yōu)的覆蓋參數(shù),本文進(jìn)行兩組實(shí)驗(yàn),第一組實(shí)驗(yàn)是為丫確定整個(gè)子區(qū)間。被訪問的概率是夠相等;第二組實(shí)驗(yàn)是為了確定模型式(3)的迭代次數(shù),使其達(dá)到了一個(gè)具體穩(wěn)定的子區(qū)間。
階段2
混淆規(guī)則下的混淆階段
(1)將置亂后的圖像轉(zhuǎn)變成一維數(shù)組,其長度大小為3MN。
(2)根據(jù)密鑰S2設(shè)定兩個(gè)三元序列xo=(xo,Yo,zo)與Yo=(xo',Yo',zo'),對于圖像中任何一個(gè)三字節(jié)像素塊,根據(jù)3D混沌映射模型式(3)進(jìn)行迭代得到偽隨機(jī)序列x=(xo,x1,X2,…)與y=(Yo,y1,y2,…)。
(3)并對上述兩個(gè)偽隨機(jī)序列進(jìn)行修正,修正函數(shù)為:
(4)利用修正后的偽隨機(jī)序列xr'、yr'根據(jù)這些字節(jié)進(jìn)行按位異或操作進(jìn)行混淆三像素P、Pj+l以及Pj+2。完畢后,進(jìn)入下一個(gè)三字節(jié)像素塊的類似處理。最終根據(jù)這些混淆像素值得到αmin,迭代logistic映射得到一個(gè)偽隨機(jī)數(shù)|50w|。
混淆規(guī)則定義如下。
①輸入模型式(3)中的矩陣丑,以及阿個(gè)三元序列Xa=(xo,Yo,zo)與Y= (Yo,yl,Y2,…),從S2中輸出密鑰w=w0。以及w'=w0'。
⑦讓r:=a。h,i:=1。
③令:
三、仿真結(jié)果及分析
1、置亂規(guī)則下的覆蓋參數(shù)11的仿真結(jié)果分析
本次仿真根據(jù)3D混沌映射模型式(5)來進(jìn)行迭代計(jì)算。圖2左邊代表的是迭代模型式(5)10 000次后,[0,1]內(nèi)的每個(gè)θ子區(qū)間被訪問次數(shù),θ分別為128,256以及5120從圖中可知,對于三個(gè)不同的θ,訪問平均次數(shù)分別為8 521、4 478以及1 9920這表明θ子區(qū)間的訪問概率是相等的。
圖2右邊達(dá)到[O,1]內(nèi)的每個(gè)θ子區(qū)間所需迭代3D混沌映射模型式(5)的次數(shù),θ分別為128,256以及512。從圖中可知,對于三個(gè)不同的θ,所需迭代次數(shù)分別為342、421以及653,這表明θ子區(qū)間的訪問概率是相等的。從圖中也可看到,達(dá)到具體的子區(qū)間所需最大迭代次數(shù)大約為6θ。這個(gè)結(jié)果有助于選擇合適的覆蓋參數(shù)η。基于實(shí)驗(yàn)結(jié)果,本文確定較優(yōu)的覆蓋參數(shù)η:150θ,此時(shí)在置亂規(guī)則下進(jìn)行置亂,能夠得到理想的置亂結(jié)果。
2、加密算法性能的仿真
借助MATLAB仿真平臺(tái)對本文提出的新圖像加密算法的性能進(jìn)行驗(yàn)證,輸入一個(gè)大小為256×256x3的正方形明文圖像Horse,色灰度256。
(1)灰度直方圖
圖像像素灰度直方圖能夠直接反映出圖像像素的分布狀況。從圖4可知,初始圖像以及經(jīng)過位置索引置亂方法處理時(shí)間延遲超混沌序列所置亂后的圖像,二者的像素灰度直方圖相同,并沒有發(fā)生任何變化,二者的灰度分布很不均勻,波動(dòng)程度較大,表明它們的偽隨機(jī)性以及冗余性較低,很容易被攻擊者獲取圖像相關(guān)信息。
而經(jīng)過本文提出的算法加密后的圖像灰度直方圖產(chǎn)生了根本性的變化,如圖4(c)所示,與圖4(a)、圖4(b)相比,其像素值分布均勻,擁有較高的圖像冗余性與偽隨機(jī)性。
(2)密鑰空間
任何一個(gè)優(yōu)異的加密系統(tǒng)應(yīng)具備足夠大的密鑰空間以有效抵抗強(qiáng)力攻擊。根據(jù)上文可知,本文加密算法的密鑰空間由三部分構(gòu)成:(1)初始密鑰S= (S1,S2,S3);(2)在每個(gè)規(guī)則下迭代3D混沌映射的初始條件;(3)在每個(gè)規(guī)則下迭代3D混沌映射所使用的參數(shù)w、w‘與θ。其中,這些初始條件、參數(shù)以及初始密鑰都在區(qū)間[O,1]內(nèi),若它們的計(jì)算精度10 -16,則本文算法的密鑰空間為(1016)21=10336??梢?,本文算法密鑰空間是相當(dāng)巨大的。
(3)相鄰像素的相關(guān)性
所有的加密系統(tǒng)都希望密文圖像的相鄰像素是不相關(guān)的;另一方面,相鄰像素的相關(guān)性又是衡量本文算法的置亂規(guī)則下的置亂效果的一種方法。輸入初始圖像,像素塊大小為16 x16,p=256,R=4。運(yùn)行本算法。首先在加密前與加密后的圖像中任意擇取2 000對相鄰像素點(diǎn);然后根據(jù)以下模型得到相關(guān)系數(shù)rxy:
式(15)和式(16)中,x、y代表像素灰度值,E(xi)、E(Yi)分別為x與y的平均值。
表1是明文圖像、置亂圖像與密文圖像在X 軸、y軸以及對角線上的相鄰像素相關(guān)性仿真結(jié)果。
從表1可知,明文圖像的相關(guān)性很強(qiáng)烈;而經(jīng)過本文加密算法處理后,置亂圖像與密文圖像的相鄰像素審的相關(guān)性很低,幾乎是不相關(guān)的。
圖5是初始圖像與密文圖像在X軸方向上的相鄰像素分布測試結(jié)果。從圖5(a)可知,明文圖像的相鄰像素分布成一條對角線,說明它具有強(qiáng)烈的相關(guān)性,達(dá)到0.982104,很接近1;而經(jīng)過本文提出的圖像加密系統(tǒng)加密后,其像素均勻地布滿了整個(gè)灰度平面,其相關(guān)性得到了有效消除,約為-O.001652。
(3)運(yùn)行速度分析
運(yùn)行速度是優(yōu)異加密算法的一個(gè)重要體現(xiàn)。在置亂階段,像素塊大小為16 x16,θ=128;在混淆階段,選擇R=1;運(yùn)行環(huán)境為:酷睿3 GHz雙核CPU,4GB的內(nèi)存,個(gè)人電腦系統(tǒng)Windows XP。當(dāng)混淆階段循環(huán)R-1次時(shí),運(yùn)行速度達(dá)到2.87 MB/s;當(dāng)R=2時(shí),運(yùn)行速度達(dá)到2.53 MB/s;當(dāng)R=4時(shí),運(yùn)行速度達(dá)到1.97 MB/s??梢姳疚乃惴ǖ募用芩俣仁禽^快的。
小知識(shí)之MATLAB
MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。









