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