黎椏娟,葉瑞松
(汕頭大學(xué)數(shù)學(xué)系,廣東 汕頭 515063)
隨著網(wǎng)絡(luò)技術(shù)和多媒體的快速發(fā)展,網(wǎng)絡(luò)傳輸和交流變得越來(lái)越重要,并且圖像在網(wǎng)絡(luò)中的分享與傳輸變得越來(lái)越流行.因此,信息安全問(wèn)題成了一個(gè)緊要的問(wèn)題,由于數(shù)據(jù)容量大、冗余度高、相鄰像素之間的相關(guān)性強(qiáng),傳統(tǒng)的加密算法如DES 和AES 已經(jīng)不適用于圖像加密[1-2],因此許多研究者開(kāi)始尋求一種既高效又安全的圖像加密算法,1989年,Matthews 首次提出基于混沌系統(tǒng)的加密方案[3].1997年,F(xiàn)ridrich 將混沌映射應(yīng)用到圖像加密系統(tǒng)[4].1998年,F(xiàn)ridrich 利用2D 混沌系統(tǒng)提出置亂-擴(kuò)散結(jié)構(gòu)的圖像加密方案[5],在這種結(jié)構(gòu)下,為了減少相鄰像素之間的強(qiáng)相關(guān)性,首先在置換過(guò)程中對(duì)像素位置進(jìn)行擾亂.之后,在擴(kuò)散過(guò)程中像素值逐一改變,后一個(gè)值與前一個(gè)值相關(guān),前后擴(kuò)散兩輪,類(lèi)似雪崩效應(yīng).現(xiàn)有的圖像加密算法中,此結(jié)構(gòu)占據(jù)很大部分[6-10].
為了提高圖像安全,研究者提出了許多有效的加密系統(tǒng),如DNA 加密[10-11],混合圖像加密[12],利用小波,卷積變換等加密算法[13-14]等等,在這些算法中,混沌序列的應(yīng)用最為廣泛[9-13,15-17],這歸功于混沌映射的一些固有性質(zhì)如對(duì)初始值敏感,不可預(yù)測(cè)性,以及周期性,這些性質(zhì)恰好能在圖像加密中得到較好的應(yīng)用[4].下面將介紹一些應(yīng)用混沌映射加密的算法.文獻(xiàn)[14],第一次提出將圖像濾波應(yīng)用在圖像加密算法中,它是基于圖像塊的置亂和圖像濾波擴(kuò)散的算法,最后的性能分析顯示其加密效果很好.文獻(xiàn)[15],基于級(jí)聯(lián)調(diào)制耦合(CMC)模型提出一種新的2D Logistic ICMIC 耦合映射(2D-LICM),比起參數(shù)較少,軌道相對(duì)而言較簡(jiǎn)單的一維混沌映射,它的效果會(huì)更加優(yōu)良[16].文獻(xiàn)[10],提出自適應(yīng)性DNA 隨機(jī)加密算法,一般而言傳統(tǒng)的DNA 加密算法,它的DNA 編碼規(guī)則是固定的,因此可能會(huì)泄露明文信息,讓攻擊者有機(jī)可乘,而本文采用的是動(dòng)態(tài)編碼規(guī)則,即DNA 編碼規(guī)則是由獨(dú)立的隨機(jī)序列控制.本文的性能分析顯示,算法具有較高的安全性.文獻(xiàn)[17],利用塊圖加密,首先將原圖切分成很多子塊,先對(duì)子塊分別加密,再組合,與之相似的有文獻(xiàn)[12],[12]的不同之處在于它是讀入很多個(gè)原圖,將這些原圖,均分成子塊,對(duì)這些子塊全部混合加密,輸出一系列密圖.文獻(xiàn)[18],提出在位平面上加密,將位平面分割成多個(gè)3D 小方塊,用Chua 系統(tǒng)產(chǎn)生置亂過(guò)程的密鑰,將密鑰應(yīng)用于3D 布朗運(yùn)動(dòng)中,然后對(duì)位平面的3D 小方塊進(jìn)行加密,復(fù)雜度比較高.
本文設(shè)計(jì)了一種新的二維混沌映射,通過(guò)對(duì)它的Lyapunov 指數(shù)曲線(xiàn)變化圖,分岔圖以及時(shí)間序列進(jìn)行分析,可以看出它表現(xiàn)出較好的混沌性能,然后將此二維映射應(yīng)用在自適應(yīng)性圖像加密算法中.在置亂階段,僅改變圖像像素的位置,并在此階段計(jì)算出圖像的特征,將此特征應(yīng)用在擴(kuò)散階段,因此,不同的原圖將為擴(kuò)散算法產(chǎn)生不同的特征,達(dá)到擁有更強(qiáng)的抵抗選擇明文或已知明文攻擊的能力.
余下的部分由以下幾個(gè)章節(jié)組成,第一節(jié),主要介紹了新混沌映射的構(gòu)造.第二節(jié),重點(diǎn)分析了新映射的動(dòng)力學(xué)性能,第三節(jié),介紹了基于新混沌映射的自適應(yīng)性圖像加密算法,第四節(jié),對(duì)本文提出的加密算法進(jìn)行了相關(guān)的性能分析,如密鑰分析、敏感性分析、統(tǒng)計(jì)分析等等,第五節(jié)給出全文的總結(jié),基于所有仿真實(shí)驗(yàn)分析,本文所提出的算法,在數(shù)字圖像加密中具有較好的性能.
考慮動(dòng)力系統(tǒng){R2;f},其中f:R2→R2定義為
該動(dòng)力系統(tǒng)與迭代函數(shù)系統(tǒng)IFS{R2;W1,W2,W3}有關(guān),其中
當(dāng)a=0.5,b=0.5 時(shí),此迭代函數(shù)系統(tǒng)的吸引子就是頂點(diǎn)在(0,0),(0,1),(1,0)的Sierspinski 三角形(如圖1),而這個(gè)動(dòng)力系統(tǒng){R2;f}和IFS 之間的聯(lián)系就是伴隨迭代函數(shù)系統(tǒng)IFS 的位移動(dòng)力系統(tǒng){Δ;f},其中Δ 表示Sierspinski 三角形,于是可將f(x,y)重寫(xiě)為
f(x,y)將Δ 映射到自身,{R2;f}是{Δ;f}的擴(kuò)展.再將f 離散化,拓展為:[0,1]2→[0,1]2,具體如公式(4)所示,其中a∈(0,1),b>0.
圖1 Sierspinski 三角形
本節(jié)將對(duì)新構(gòu)造的映射(4)進(jìn)行動(dòng)力學(xué)性質(zhì)分析,包括Lyapunov 指數(shù)曲線(xiàn)變化圖,它的分岔圖以及時(shí)間序列分析.
圖2 是f 的Lyapunov 指數(shù)變化曲線(xiàn)圖,通過(guò)取定初始值和參數(shù)b,控制a 的變化得到相應(yīng)的Lyapunov 指數(shù)圖,從圖中可以看出在a∈[0.45,1]時(shí),f 的Lyapunov 指數(shù)均大于0,從而可以說(shuō)明本文提出的f 的結(jié)構(gòu)在參數(shù)區(qū)間上是混沌的.
一個(gè)混沌系統(tǒng)的分岔圖可以直觀地觀察到其動(dòng)力學(xué)行為演化的過(guò)程,圖3 畫(huà)出了f 的分岔圖,可以看出它幾乎充滿(mǎn)整個(gè)相平面,從而說(shuō)明混沌性能優(yōu)良,產(chǎn)生的序列很難被預(yù)測(cè),這對(duì)于圖像加密算法而言,是比較有利的.
時(shí)間序列分析是對(duì)混沌系統(tǒng)產(chǎn)生的時(shí)間序列進(jìn)行統(tǒng)計(jì)分析,用統(tǒng)計(jì)的方法進(jìn)行研究分析,尋找其變化規(guī)律,從而判斷對(duì)未來(lái)的情況進(jìn)行預(yù)測(cè)、決策和控制的可能性大小.為了更進(jìn)一步說(shuō)明映射f 所產(chǎn)生的混沌序列具有較好的隨機(jī)性質(zhì)和不可預(yù)測(cè)性,本文測(cè)試了映射f 產(chǎn)生時(shí)間序列的相關(guān)性,其中自相關(guān)性系數(shù)和互相關(guān)系數(shù)是兩個(gè)主要的度量指數(shù)[11].對(duì)于兩個(gè)隨機(jī)時(shí)間序列x={x(0),x(1),x(2),…,x(N-1)},y={y(0),y(1),y(2),…,y(N-1)},它們延遲k 階的互相關(guān)性系數(shù)(crosscorr)和延遲k 階的自相關(guān)系數(shù)(autocorr)的數(shù)學(xué)公式定義分別如下:
mean(x)是序列x的算術(shù)平均值.圖4 是映射f 兩個(gè)變量的偽隨機(jī)序列變化圖,圖5是映射f 產(chǎn)生偽隨機(jī)序列的自相關(guān)性和互相關(guān)性測(cè)試結(jié)果.從測(cè)試結(jié)果可以看到,混沌序列的自相關(guān)和互相關(guān)性均在0 上下波動(dòng),這說(shuō)明映射f 產(chǎn)生的序列具有很強(qiáng)的隨機(jī)性,因而具有不可預(yù)測(cè)性等好的密碼特性,特別適合用于設(shè)計(jì)加密算法.
圖2 f的Lyapunov 指數(shù)變化圖
圖3 f的分岔圖
圖4 (a)-(b)分別是映射f的x,y 時(shí)間序列變化圖.
圖5 (a)-(c)分別為映射f 時(shí)間序列的自相關(guān)性和互相關(guān)性測(cè)試結(jié)果.
圖6 為整個(gè)系統(tǒng)的加密過(guò)程.首先,輸入明文p,混沌系統(tǒng)f的兩套參數(shù)a1=0.45,b1=0.8,a2=0.651,b2=0.78 和初始值x0=0.454 272 34,y0=0.625 128 33,然后計(jì)算明文p的特征:
并更新初始值和參數(shù)值:
再對(duì)混沌系統(tǒng)f 進(jìn)行迭代,迭代所產(chǎn)生的序列即與明文相關(guān),最后對(duì)圖像進(jìn)行置亂-擴(kuò)散操作,詳細(xì)的加密過(guò)程展現(xiàn)在算法1 中.
我們采用MatlabR2016a 對(duì)本文提出的圖像加密算法進(jìn)行仿真實(shí)驗(yàn),本文實(shí)驗(yàn)圖像均來(lái)自于文獻(xiàn)[13]提到的圖像數(shù)據(jù)庫(kù),我們分別對(duì)Boat,Man,Elaine 用本文提出的算法進(jìn)行加密,它們的圖像尺寸均為512×512,密鑰分別采用x0=0.454 272 34,y0=0.625 128 33,a1=0.45,b1=0.8,a2=0.651,b2=0.78,K=1 000.其實(shí)驗(yàn)結(jié)果如圖7,從解密加密圖中可以看出,所有密文呈現(xiàn)雜亂無(wú)章且無(wú)明顯紋理,直觀上說(shuō)明我們的算法加密效果可行.
算法1:圖像加密
輸入:明文P,混沌系統(tǒng)f 初始值x0=0.454 272 34,y0=0.625 128 33,和參數(shù)a1=0.45,b1=0.8;a2=0.651,b2=0.78,參數(shù)K,iter=100 000
輸出:密圖C
1.按(7)~(9)更新初始值,和參數(shù)a1,b1;
2.系統(tǒng)f 迭代iter 次,得到序列x1,iter,y1,iter,然后從x,y 分別取M,N 個(gè)值,為了避免瞬態(tài)效應(yīng),應(yīng)丟棄前K 個(gè)值,即x=x(K:K+M-1),y=y(tǒng)(K:K+N-1);
3.計(jì)算移位參數(shù)L=floor(sum(x)×105)mod 256,并將x,y 按升序排序,根據(jù)值在原始x,y 中的位置可以得到下標(biāo)向量X,Y;
4.初始化矩陣BM,N,DM,N,CM,N,M,N 表示矩陣的大小;
5.for i=1:M
6.for j=1:N
7.B(i,j)=P(X(i),Y(j));置亂圖像像素位置;
8.if j-L≥1
9.D(i,j-L)=B(i,j);移位
10.else
11.D(i,j-L+N)=B(i,j);
12.end
13.end
14.end
15.利用更新前的初始值x0,y0和a2,b2 再對(duì)系統(tǒng)f 迭代iter 次,得到序列x1,y1;
16.取x1=x1(K:K+M*N-1),y1=y(tǒng)1(K:K+M*N-1),并且得到X1:x1=reahspe(x1,M,N),X1=floor(x1×1014)mod 256,floor 表示向下取整,mod 表示取余,sum 表示求和;
17.擴(kuò)散算法:
18.C(i,j)=D(1,1)+X1(1,1)+sumx1+sumy1mod 256;
19.for j=2:N
20.C(1,j)=D(1,j)+X1(1,j)+C(1,j-1)mod 256;
21.end
22.for i=2:M;
23.C(i,1)=D(i,1)+X1(i,1)+C(i-1,1)mod 256;
24.end
25.for i=2: M
26.for j=2:N
27.C(i,j)=D(i,j)+X1(i,j)+C(i-1,j)+C(i,j-1)mod 256
28.end
29.end
本節(jié)將通過(guò)直方圖、相鄰像素之間的相關(guān)性和信息熵來(lái)評(píng)估算法抵抗統(tǒng)計(jì)攻擊的能力[19].
4.1.1 直方圖分析 圖像的直方圖反映了一副圖像像素值的分布情況,為了對(duì)抗統(tǒng)計(jì)分析的強(qiáng)力攻擊,圖像的直方圖最好是接近完全一致分布的,且與原圖的直方圖相比具有顯著差異[15],圖7 中的(d)~(f),(j)~(l)分別表示三幅原圖像的直方圖,和加密后的直方圖,直觀上可以看出,加密圖像的直方圖是接近完全一致分布的,且與原圖具有顯著差異,所以這個(gè)算法足夠?qū)菇y(tǒng)計(jì)分析的強(qiáng)力攻擊.
4.1.2 像素間的相關(guān)性分析 一般地,數(shù)字圖像具有異于文本的一些固有特性如數(shù)據(jù)的高度冗余、相鄰像素的相關(guān)性非常強(qiáng)等,攻擊者往往利用這些特性對(duì)密文圖像進(jìn)行攻擊,所以一個(gè)理想的圖像加密算法應(yīng)該產(chǎn)生在水平、垂直、正對(duì)角方向上的相鄰像素點(diǎn)間相關(guān)性都比較弱的密文圖像[20].
圖6 圖像密碼系統(tǒng)流程圖
設(shè)從需要考察的圖像中任取N 對(duì)相鄰的像素點(diǎn),記它們的灰度值(ui,vi)i=1,2,…,N,則向量u={ui}和v={vi}間的相鄰系數(shù)計(jì)算公式如下:
在實(shí)驗(yàn)分析中,我們將從明文Man 及其密圖中分別隨機(jī)選取5 000 對(duì)像素,分析它們?cè)谒?、垂直、?duì)角方向的相關(guān)性,結(jié)果顯示如圖8,由圖可知明文圖像在各個(gè)方向上的相鄰像素點(diǎn)對(duì)密集在y=x 直線(xiàn)上,而密文圖像在各個(gè)方向上的相鄰像素點(diǎn)對(duì)在矩陣為(255,255)區(qū)域內(nèi)均勻散布著,說(shuō)明明文圖像在各個(gè)方向上具有頗強(qiáng)的相關(guān)性,而密文圖像在各個(gè)方向上的相關(guān)性很弱.同時(shí)我們計(jì)算了Boat,Man,Elaine的相關(guān)性系數(shù),結(jié)果顯示在表1.
實(shí)驗(yàn)結(jié)果表明明文圖像相鄰像素點(diǎn)的相關(guān)性比較高,而密文圖像相鄰像素點(diǎn)的相關(guān)系數(shù)接近于0,近似無(wú)相關(guān)性(兩個(gè)獨(dú)立不相關(guān)的序列的相關(guān)系系數(shù)理論值為0).
圖7 (a)~(c)分別為Boat, Man, Elaine的原圖;(d)~(f)是(a)~(c)的直方圖;(g)~(i)是(a)~(c)的加密圖;(j)~(l)是(g)~(i)的直方圖;(m)~(o)是(g)~(i)的解密圖;
4.1.3 圖像信息熵分析 信息熵是反映一個(gè)信息源的隨機(jī)性和不可預(yù)測(cè)性的數(shù)學(xué)概念.對(duì)于數(shù)字圖像來(lái)說(shuō),信息熵反映了圖像信息的不確定性.一副圖像如果有L 種灰度值mi(i=0,1,2,…,L-1),且各灰度值出現(xiàn)的概率分別p(mi)(i=0,1,2,…,L-1),則根據(jù)Shannon 定理,圖像的信息量為:
稱(chēng)H為圖像的信息熵,當(dāng)圖像中各灰度值出現(xiàn)的概率相等時(shí),圖像的信息熵最大,信息熵表示一副圖像所包含信息的多少,信息熵可以度量灰度值的分布,對(duì)于理想的隨機(jī)圖像,其信息熵等于8[14],本文分別計(jì)算了Boat,Man,Elaine的信息熵,及其相應(yīng)密文的信息熵,實(shí)驗(yàn)結(jié)果如表2所示,由表2中數(shù)據(jù)可看出,各個(gè)密文圖像的信息熵接近于理論值8,而各個(gè)明文圖像與理論值有明顯差異.
根據(jù)文獻(xiàn)[21]提出的Local Shannon entropy(LocSE)從局部觀點(diǎn)測(cè)試一副圖像的隨機(jī)性.它對(duì)不同的尺寸的圖像有效且公平.從一副圖像中隨機(jī)選取k 個(gè)不重疊的圖像塊S1,S2,…,Sk,共有TB個(gè)像素,則LocSE的定義如下:
H(Si)可以利用(14)計(jì)算.根據(jù)參考文獻(xiàn)給出的參考值,本文中取k=30,TB=1 936,α=0.05,則Hleft=7.901 901 309,Hright=7.903 037 329,計(jì)算結(jié)果顯示在表3,計(jì)算得到的結(jié)果均在Hleft,Hright之間,這意味著本文提出的算法可以將各種不同的明文圖像加密成隨機(jī)密文圖像.
圖8 (a),(b),(c)分別為明文和密文在水平、垂直和對(duì)角方向像素的分布
表1 明文與其密文分別在水平、垂直和對(duì)角方向上的相關(guān)系數(shù)
密鑰空間是指所有合法密鑰構(gòu)成的集合,圖像密碼系統(tǒng)的密鑰空間應(yīng)該足夠大,從而可以有效地對(duì)抗窮舉攻擊,特別是加密解密速度非??斓拿艽a系統(tǒng),密碼長(zhǎng)度至少應(yīng)該為128b[14],本文所提出的加密算法有7 個(gè)密鑰:x0,y0,a1,b1,a2,b2,K,其中x0,y0,a1,b1,a2,b2 均在0 和1 之間,設(shè)計(jì)算機(jī)精度為10-14,圖像大小為512×512,K=103,則整個(gè)密鑰空間至少約為這個(gè)值遠(yuǎn)遠(yuǎn)大于128b,這意味著我們的算法能夠經(jīng)受得住暴力破解.
表2 信息熵實(shí)驗(yàn)結(jié)果
表3 不同圖像的LocSE 實(shí)驗(yàn)結(jié)果
為了保證系統(tǒng)的安全性,一個(gè)優(yōu)良的加密系統(tǒng)必須對(duì)密鑰極端敏感,即當(dāng)使用不同的密鑰對(duì)密碼圖像進(jìn)行解密時(shí),將得不到明文.在實(shí)驗(yàn)中,我們將用密鑰key 去加密Man,得到密圖,而用幾個(gè)與key 差別極其微小的密鑰去解密密圖,如果系統(tǒng)足夠敏感的話(huà),是無(wú)法得到明文的,圖9 展示了密鑰敏感性測(cè)試,同時(shí),表4 展示了用key1~key7 解密圖與用key 加密的密圖之間的NPCR 和UACI.
表4 用極小差別密鑰解密的圖片與密文的NPCR 和UACI
圖9 加密敏感性測(cè)試:(a)~(f)分別為用key 和key1~key7 去解密key 所產(chǎn)生密文得到的明文
在圖像加密系統(tǒng)中,差分分析指探究在相同加密密鑰的條件下,密文圖像會(huì)在多大程度上受明文圖像的影響,攻擊者通常通過(guò)選擇明文分析或選擇密文分析來(lái)實(shí)現(xiàn)差分攻擊,為了測(cè)試加密系統(tǒng)對(duì)明文的極端敏感性,采用兩個(gè)常用的度量:不同密文圖像之間的像素改變率(number of pixels change rate,NPCR)和不同密文圖像之間的一致改變強(qiáng)度(unified averagechanging intensity,UACI),NPCR 是用來(lái)比較兩幅圖像相應(yīng)位置的像素點(diǎn)的值,記錄不同的像素點(diǎn)個(gè)數(shù)占全部像素點(diǎn)的比例,而UACI 則是比較兩幅圖像相應(yīng)位置的像素點(diǎn)的值,記錄它們的差值,然后計(jì)算全部相應(yīng)位置像素點(diǎn)的差值與最大差值(即255)的比值的平均值.它們的數(shù)學(xué)定義如下:
這里W,H 分別是矩陣圖像的行數(shù)和列數(shù),c1(i,j),c2(i,j)分別是對(duì)應(yīng)于兩副微小差別圖像用同一個(gè)密鑰加密的密圖像素點(diǎn)的值.理論上來(lái)說(shuō)兩幅隨機(jī)圖像的NPCR,UACI 理論期望值分別約為99.609 4%,33.463 5%,本文將用Man 和Boat 來(lái)完成差分實(shí)驗(yàn),對(duì)于每一個(gè)實(shí)驗(yàn)圖片,將隨機(jī)選取1 000 個(gè)像素點(diǎn),每次改變一個(gè)像素值,得到一個(gè)新的圖像,然后用同樣的密鑰去加密兩個(gè)原圖,這兩個(gè)原圖之間只相差一個(gè)像素值,結(jié)果呈現(xiàn)在表5,6 以及圖10,實(shí)驗(yàn)結(jié)果表明,本文提出的算法所得的NPCR,UACI 值極其地接近期望值,這表明本文算法達(dá)到一個(gè)優(yōu)良的擴(kuò)散性能,它對(duì)原文非常敏感.所以它能夠抵抗差分攻擊.
表5 不同明文的NPCR
表6 不同明文的UACI
圖10 只改變一個(gè)像素值的1 000 張圖片的NPCR 和UICA.
本文提出基于一種新的二維混沌映射的自適應(yīng)性圖像加密算法.首先本文設(shè)計(jì)了一種新的二維混沌映射,對(duì)其混沌學(xué)性質(zhì)進(jìn)行了全方位的分析,其展現(xiàn)出較好的混沌學(xué)性質(zhì),將其應(yīng)用在加密算法中.然后,將本文加密算法分為置亂和擴(kuò)散兩部分,為了加強(qiáng)抵抗選擇明文或已知選擇明文攻擊,在置亂階段,計(jì)算出圖像特征,將此特征應(yīng)用在擴(kuò)散階段,從而不同的原圖將為擴(kuò)散算法產(chǎn)生不同的特征.最后有關(guān)本文提出算法的重要安全性能分析被提出,包括密鑰分析、敏感性分析和統(tǒng)計(jì)分析等,所有的實(shí)驗(yàn)結(jié)果均表明,本文提出算法具有較強(qiáng)的魯棒性,因而具有一定的應(yīng)用價(jià)值.