張文宇,幸榮盈,李國東
(桂林電子科技大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,廣西 桂林 541004)
大數(shù)據(jù)時(shí)代的發(fā)展有利有弊,信息高速傳遞的時(shí)候也導(dǎo)致了大量的安全漏洞,越來越多的學(xué)者也將保護(hù)數(shù)據(jù)化的隱私問題當(dāng)成核心研究。與文字信息相比,數(shù)字圖像相鄰像素間的相關(guān)性較大、所含信息容量大并且數(shù)據(jù)冗余性強(qiáng),所以數(shù)字圖像加密不適合應(yīng)用傳統(tǒng)加密技術(shù)(如AES 和DES)。而混沌系統(tǒng)有偽隨機(jī)性和初始值很敏感等特性,很適合用來圖像加密,而應(yīng)用混沌系統(tǒng)對圖像加密也成為現(xiàn)代科研的熱點(diǎn)。趙洪祥等人[1]針對以往的Henon 映射存在的混沌空間小,在加密時(shí)安全性低的問題,對傳統(tǒng)的Henon 映射進(jìn)行了創(chuàng)新,并利用創(chuàng)新型Henon 映射對圖像進(jìn)行加密,其采用分塊的方式對圖像進(jìn)行加密處理,很大程度上減少了算法的運(yùn)行時(shí)間;馬開運(yùn)等人[2]針對明文圖像與加密密鑰無關(guān)引起的安全性問題,提出了將Logistic 映射所迭代的混沌序列和明文圖像相結(jié)合生成的密鑰當(dāng)作三維Chen 系統(tǒng)迭代的初始值,再運(yùn)用Fisher-Yates 算法對圖像進(jìn)行置亂操作,該算法可以抵御大多數(shù)攻擊;Wang 等人[3]針對低維混沌系統(tǒng)安全性不高,設(shè)計(jì)了一個(gè)新型的六維混沌系統(tǒng),結(jié)合比特置亂和DNA 編碼技術(shù)對圖像進(jìn)行加密;Xian 等人[4]提出一種基于螺旋變換的置亂方法,該方法在一次加密過程中可以引起所有像素點(diǎn)位置的變化,巧妙地簡化了圖像置亂過程。擴(kuò)散算法利用兩個(gè)混沌序列來提高擴(kuò)散過程的效率。
對圖像加密常用的操作主要有兩種:(1)置亂,即打亂圖像像素點(diǎn)的初始位置;(2)擴(kuò)散,即改變圖像像素值的大小。目前,針對應(yīng)用混沌系統(tǒng)進(jìn)行圖像加密算法設(shè)計(jì)研究中所存在的混沌系統(tǒng)低維、加密步驟過于簡單而使安全性低以及加密步驟過于繁瑣而導(dǎo)致的加密效率不高等問題,本文改進(jìn)了Clifford 系統(tǒng),并利用改進(jìn)的Clifford系統(tǒng)對圖像進(jìn)行加密。先將原圖的像素圖像轉(zhuǎn)化為二進(jìn)制,再分別對行和列進(jìn)行循環(huán)位移置亂,然后對所得圖像進(jìn)一步分塊置亂,最后利用混沌序列進(jìn)行擴(kuò)散。仿真實(shí)驗(yàn)所得結(jié)果表明該算法具有較高的安全性,可以抵抗各種典型攻擊。
目前,Lyapunov 指數(shù)可以用來鑒定一個(gè)系統(tǒng)是否混沌的。若該指數(shù)為正值,則說明這個(gè)系統(tǒng)為混沌系統(tǒng);若存在兩個(gè)及以上大于零的Lyapunov 指數(shù),那么可以說這個(gè)系統(tǒng)是超混沌的[5-7]。
Clifford 系統(tǒng)的表達(dá)式如下:
當(dāng)給出式(2)的初始值時(shí),系統(tǒng)(1)處于超混沌狀態(tài)。
此時(shí),使用雅克比矩陣乘積方法計(jì)算出系統(tǒng)的近似Lyapunov 指數(shù)分別為0.0836、0.2924 和0.4518[5]。因此,可以將Clifford 系統(tǒng)用于圖像加密。利用式(2)的參數(shù)和初始值,將Clifford 系統(tǒng)迭代1 000 次的混沌吸引子圖如圖1 和圖2 所示。
圖1 Clifford 系統(tǒng)
圖2 Clifford 系統(tǒng)X、Y 方向相圖
由圖1 可以看出混沌吸引子中間是空心的,有一塊空白區(qū)域;圖2 是Clifford 系統(tǒng)在X、Y 方向的分布,可以看出混沌系統(tǒng)的分布并不均勻。
由于Clifford 系統(tǒng)的控制參數(shù)有5個(gè),那么用其進(jìn)行混沌加密時(shí)所需設(shè)置的密鑰會比較多。所以針對Clifford系統(tǒng)混沌吸引子分布不均且初始參數(shù)較多這兩點(diǎn)問題,對Clifford 系統(tǒng)進(jìn)行改進(jìn),讓它的分布比較均勻并且減少控制系統(tǒng)的參數(shù)。改進(jìn)的Clifford 系統(tǒng)表達(dá)式如式(3)所示。
利用式(4)作為改進(jìn)Clifford 系統(tǒng)的迭代的初始值,圖3 是改進(jìn)Clifford 系統(tǒng)的混沌吸引子圖。
圖3 改進(jìn)Clifford 系統(tǒng)
由圖3 與圖4 可觀察到改進(jìn)的Clifford 系統(tǒng)在空間上的分布更加均勻、遍歷性更好。此時(shí),計(jì)算出的系統(tǒng)近似的Lyapunov 指數(shù)為0.2213、0.2187、0.1878,說明改進(jìn)的Clifford 系統(tǒng)是超混沌系統(tǒng),具有良好的混沌特性,適合用來進(jìn)行圖像加密。
圖4 改進(jìn)Clifford 系統(tǒng)X、Y 方向相圖
由圖1 可以看出混沌吸引子中間是空心的,有一塊空白區(qū)域,圖2 是Clifford 系統(tǒng)在X、Y 方向的分布,可以看出混沌系統(tǒng)的分布并不均勻。
為了增加密鑰敏感性,達(dá)到一圖一密的效果,將明文圖像和密鑰聯(lián)系起來,根據(jù)明文圖像得到混沌系統(tǒng)迭代的初始值。給定一個(gè)m×n 平面圖像A,計(jì)算A 中像素的均值m0,根據(jù)式(3)計(jì)算混沌系統(tǒng)(2)的初始值x1、x2、x3。
令混沌系統(tǒng)的初始控制參數(shù)為a=3.89,b=0.51,c=2.73,迭代混沌系統(tǒng)(3)200+m×n次,為了消除瞬態(tài)效應(yīng),拋棄前200 個(gè)值生成3 個(gè)混沌序列X、Y 和Z,其中,每個(gè)混沌序列所包含m×n 個(gè)元素。為了解決混沌序列所存在的局部連續(xù)性問題,對混沌序列X 和Y 做離散化處理如式(6)和式(7)所示,得到T1和T2兩個(gè)混沌序列。選擇混沌序列T1的奇數(shù)項(xiàng)元素和T2的偶數(shù)項(xiàng)元素構(gòu)成序列D1。
并對于序列D1做以下處理:
將混沌序列X 的每個(gè)元素與混沌序列Y 的每個(gè)元素對應(yīng)相乘構(gòu)成混沌序列D2,選取D2的后8 個(gè)數(shù)構(gòu)成序列D3并對序列D3做以下處理:
其中,abs(·)表示取絕對值,fix(·)表示向0 靠近取整,ceil(·)表示向上取整,mod(·)是取模運(yùn)算。
在混沌序列X 中選取前8 個(gè)偶數(shù)項(xiàng)元素組成一維向量XS=(xs1,xs2,xs3,xs4,xs5,xs6,xs7,xs8),并對序列XS進(jìn)行處理,如式(10)所示。
令d=max(B1(2i-1),B1(2i))+1,其中,max(·)是取最大值函數(shù),i=1,2,3,4,d 是一個(gè)1×4 的一維向量。
利用將圖像分為9 個(gè)尺寸不同的矩陣塊,具體分塊模型如圖5 所示。
圖5 分塊模型
在混沌序列Y 中選取前9 個(gè)奇數(shù)項(xiàng)元素組成一維向量YS=(ys1,ys2,ys3,ys4,ys5,ys6,ys7,ys8,ys9),然后對YS中的元素進(jìn)行升序排列,記其索引序列為S0,再將S0按照一列接一列的方式重構(gòu)成3×3 大小的索引矩陣S,使用索引矩陣S 對矩陣塊進(jìn)行置亂操作,具體塊置亂情況如圖6 所示。
圖6 塊間置亂
依次統(tǒng)計(jì)每一個(gè)矩陣塊中奇數(shù)像素的個(gè)數(shù)u1和偶數(shù)像素的個(gè)數(shù)u2,如果u1>u2,則對其矩陣塊中的元素按照列逆時(shí)針循環(huán)移動(dòng)一位;如果u1<u2,則對其矩陣塊中的元素按照行順時(shí)針循環(huán)移動(dòng)一位。把每一個(gè)矩陣塊內(nèi)部的像素點(diǎn)按照一列接一列的方式重構(gòu)成一維行向量。再將所有的行向量組合成一個(gè)大小為1×mn 的一維行向量,最后將這個(gè)一維向量重構(gòu)成大小為m×n 的矩陣Q,則Q 為置亂后的圖像。
(1)基于原圖像素矩陣A 計(jì)算混沌系統(tǒng)的初始值,并將A 轉(zhuǎn)化為一維向量P=(p1,p2,…,pm×n)。
(2)將P 轉(zhuǎn)為二進(jìn)制矩陣得到矩陣A1,A1第i 行行向量按照順時(shí)針循環(huán)移動(dòng)B1(i)個(gè)位置得到A2,再將A2第j 列列向量按照順時(shí)針循環(huán)移動(dòng)B2(j)個(gè)位置得到矩陣A3。
(3)把A3轉(zhuǎn)化為十進(jìn)制矩陣,并將按照一列接一列的方式將其重構(gòu)為大小為m×n 的矩陣A4,利用向量d將A4劃分為9 個(gè)大小不同的矩陣塊,用上述的隨機(jī)分塊置亂算法對A4進(jìn)行像素置亂得到A5。
(4)對混沌序列Z 進(jìn)行以下處理:
其中,floor(·)表示向下取整。將T3重構(gòu)成一個(gè)m×n 大小的混沌矩陣F 進(jìn)行擴(kuò)散變換,具體操作如下所示:
則H 為最終的密文圖像,其中⊕表示異或操作,圖7是本文加密算法的流程圖。
圖7 加密流程圖
解密算法是加密算法的逆過程,先由密文圖像像素矩陣H 與F 進(jìn)行異或運(yùn)算,然后對擴(kuò)散后的圖像進(jìn)行分塊置亂的逆運(yùn)算,再將所得矩陣轉(zhuǎn)成二進(jìn)制進(jìn)行循環(huán)位移逆操作,最后把二進(jìn)制矩陣轉(zhuǎn)成十進(jìn)制矩陣就是最終解出來的明文圖像。
為了驗(yàn)證本文加密算法的安全性,選擇256×256 的“Lena”“Cameraman”“Airplane”圖像,明文圖像如圖8(a)、(b)、(c)所示,密文圖像如圖8(d)、(e)、(f)所示。加密后的密文圖像呈現(xiàn)出雪花狀的噪聲信號形式,完全看不出原圖的特征。
圖8 仿真結(jié)果
本文中,明文圖像像素均值m0和混沌系統(tǒng)控制參數(shù)a、b、c 組成了算法的密鑰。若m0全部可取的值為m0′,并且使用精度1016來估計(jì),則密鑰空間可達(dá)1048×m0′。由此可見本文算法的密鑰空間足夠大。
5.2.1 直方圖
明文圖像像素灰度值的分布普遍都具有一定的特點(diǎn)。因此,若圖像像素灰度值分布得越勻稱表明算法越有效。圖9 是Lena 圖像明文和密文的直方圖。圖9(a)反映出像素值分布的平滑、均勻程度都很差;而圖9(b)密文圖像像素直方圖分布比較平緩,分布均勻。由此看出本文算法不會輕易被破解。
圖9 明密文圖像直方圖
5.2.2 相鄰像素相關(guān)性分析
若加密后圖像相鄰像素對的相關(guān)系數(shù)幾乎為0,那么說明算法的置亂功效不錯(cuò)。
圖10 是Lena 明文和密文圖像相鄰像素在水平方向上的分布情況。由圖10(a)可以看出明文圖像相鄰像素對基本分布在一條直線上,說明相鄰像素的相關(guān)性很強(qiáng);而圖10(b)密文圖像相鄰像素對均勻分布在矩形區(qū)域內(nèi),說明相鄰像素對間幾乎沒有相關(guān)性。
圖10 明密文圖像水平方向相關(guān)分布情況
表1 是本文算法加密后的Lena 圖像相鄰像素對之間的相關(guān)系數(shù),加密后圖像相鄰像素的相關(guān)系數(shù)基本接近于0,說明本文算法可以進(jìn)行有效的加密。
表1 相關(guān)系數(shù)
信息熵反映圖像信息的不確定性[6],計(jì)算公式為:
其中,p(i)表示像素灰度值為i 出現(xiàn)的概率。對于一幅8 bit的灰度圖像,信息熵理論值為8。表2 給出了應(yīng)用本文算法對Lena 和Airplane 進(jìn)行加密得到的信息熵,相較于其他文獻(xiàn)更接近于8。由此可見,本文算法加密的圖像能抵御熵攻擊。
表2 信息熵
差分攻擊是檢驗(yàn)算法對明文敏感性的重要分析法。一般用像素變化率(NPCR)來度量加密算法對明文圖像的敏感程度,NPCR 的計(jì)算公式如下:
其中,M 表示原始圖像的寬,N 表示原始圖像的長。對于有效加密算法,NPCR 值理論上接近0.996 1[7]。表3 是Lena 圖像加密不同次數(shù)所計(jì)算的NPCR 值。
由表3 可知本文算法的NPCR 平均值為99.5949%,本文算法對明文圖像敏感,能夠有效地抵抗差分攻擊。
表3 明文敏感性測試結(jié)果
本文提出了一種基于改進(jìn)Clifford 系統(tǒng)的圖像加密新算法,對Clifford 系統(tǒng)做出改進(jìn),從混沌吸引子圖和Lyapunov指數(shù)說明改進(jìn)的Clifford 系統(tǒng)的混沌特性。利用改進(jìn)的Clifford 系統(tǒng)所迭代的3 個(gè)混沌序列對圖像進(jìn)行加密。首先,將明文圖像轉(zhuǎn)化為二進(jìn)制,分別對行和列進(jìn)行循環(huán)位移操作;然后將圖像化分為9 個(gè)大小不同的矩陣塊,矩陣塊的大小是根據(jù)混沌序列的元素變化而變化的,并且結(jié)合混沌序列的索引序列進(jìn)行塊間置亂;再利用循環(huán)位移對每個(gè)塊內(nèi)的像素點(diǎn)進(jìn)行置亂,既保證了每個(gè)像素點(diǎn)發(fā)生變化,又提高了處理圖像的效率;最后,利用剩余的混沌序列與置亂后的圖像進(jìn)行異或運(yùn)算得到最終的密文圖像。仿真實(shí)驗(yàn)結(jié)果以及安全性分析表明,該算法具有以下特點(diǎn):(1)改進(jìn)的Clifford 系統(tǒng)具有良好的混沌特性,其生成的混沌序列可用于圖像加密領(lǐng)域;(2)可以抵抗各種攻擊,不會被攻擊者輕易破解,具有較高的安全性。