楊曉剛
(西安交通大學 西安 710061)
信號/數(shù)據(jù)處理
一種基于混沌映射的快速圖像加密算法
楊曉剛
(西安交通大學 西安 710061)
為了有效解決圖像加密算法存在的復雜度高、安全性差等問題,提出了一種基于混沌映射的快速圖像加密算法。該算法運用兩種不同的混沌映射,結合明文圖像本身特征,快速地實現(xiàn)了對明文圖像的安全加密。仿真實驗表明:無論是灰度圖像還是彩色圖像,文中提出的圖像加密算法,均能滿足速度快、效果好的加密要求,特別是大批量圖像的加密任務。對于一副256*256的Lena圖像來說,加密時間僅0.057s,解密時間0.060s。
混沌映射;圖像加密
近年來,隨著互聯(lián)網(wǎng)和多媒體技術的快速發(fā)展,數(shù)字圖像已成為主要的網(wǎng)絡交互對象之一[1]。今天,當成千上萬的數(shù)字圖像在網(wǎng)絡上進行傳輸時,就時刻面臨著被非法截獲、破譯、轉(zhuǎn)載等現(xiàn)實威脅。因此,圖像信息的安全性和保密性要求,就成為信息安全領域的一個重要研究方向[2]。
目前,科研人員已經(jīng)在該領域取得了許多成果[3-5],設計出眾多的圖像加密算法。其中,基于混沌映射的圖像加密算法有很多,如文獻[6]、文獻[7]中所提到的基于二維或三維的Logistic混沌映射圖像加密算法,文獻[8]、文獻[9]中提到的基于超混沌系統(tǒng)的數(shù)字圖像加密算法等,還有基于圖像壓縮、數(shù)字矩陣、頻域變換及DNA計算等技術的圖像加密算法,但大多存在一定的安全風險[10],且部分算法僅能對彩色或灰度圖像中的某一種進行加密,受圖像本身的尺寸特征影響較大,適用性和時效性上還有較大差距。算法種類雖多,但基于混沌系統(tǒng)的加密算法因混沌系統(tǒng)自身所具有的遍歷性、對初始值極端敏感性等特點而被廣泛應用于數(shù)字圖像加密領域,并逐漸成為圖像加密領域研究的熱點。
為了主動克服低維混沌系統(tǒng)存在的參數(shù)和初始值個數(shù)少,密鑰空間較小,算法的安全性較低及混沌序列隨機性較差[11]等困難,充分發(fā)揮低維混沌系統(tǒng)結構簡單、效率更高的優(yōu)勢,本文提出了一種基于混沌系統(tǒng)的快速圖像加密算法,該算法不受圖像類型、尺寸影響,均能實施安全、高效的加密操作,有很強的實際應用價值。實驗結果表明,該算法實現(xiàn)簡單,運行高效,能充分保證數(shù)字圖像的安全性。
為了提高數(shù)字圖像加密算法的安全性,本文采用了如下兩種混沌系統(tǒng):
(1)二維Logistic混沌映射
二維Logistic混沌映射定義如公式(1)所示,其中初值和參數(shù)的設置為μ=4,β=0.1,α1=α2∈[0.65,09],系統(tǒng)進入混沌狀態(tài) 。
(1)
(2)三維Lorenz混沌映射
Lorenz系統(tǒng)是經(jīng)典的三維混沌系統(tǒng),其具有系統(tǒng)復雜,混沌序列多維等優(yōu)點,便于算法設計,靈活處理。其定義如公式(2)所示。其中,β,δ,ρ為系統(tǒng)參數(shù),當β=8/3,δ=10,ρ=28,在保持β,δ不變,ρgt;24.74時Lorenz系統(tǒng)進入混沌狀態(tài)[12]。
(2)
假設原始圖像I的大小為m*n(M=m*n),則加密算法的具體步驟如下:
(1)根據(jù)加密密鑰,生成三維Lorenz混沌映射的初始值x10,y10,z10及ρ值。其中,密鑰是由64個十六進制數(shù)字組成的256位的字符流,具體情況如表1所示。
(2)根據(jù)三維Lorenz混沌映射的初始值x10,y10,z10、 系統(tǒng)參數(shù)ρ及迭代次數(shù)T產(chǎn)生三維混沌序列X、Y、Z。
(3)從混沌序列X中抽取長度為m的子序列X1。
(4)對長度為m的子序列按公式(3)進行重新賦值計算。
X2(i)=round(X1(T-m+i)/(m-1))+1
(3)
(5)從混沌序列Y中抽取長度為n的子序列Y1。
(6)對長度為n的子序列按公式(4)進行重新賦值計算。
Y2(i)=round(Y1(T-n+i)/(n-1))+1
(4)
(7)分別對第(4)步和第(6)步產(chǎn)生的子序列X2和Y2進行優(yōu)化處理,得到新的序列X2*和Y2*。具體方法:查找序列中是否有相同數(shù)值的元素,如有,則按其出現(xiàn)的位置和數(shù)值大小,對其進行替換操作,直至序列中沒有相同數(shù)值的元素,達到對序列進行優(yōu)化處理的目的。
(8)利用加密密鑰,生成二維Logistic混沌映射的初始值x20,y20及α1α2值。
(9)根據(jù)二維Logistic混沌映射的初始值x20,y20、系統(tǒng)參數(shù)α1,α2及迭代次數(shù)R產(chǎn)生二維混沌序列XX、YY。
(10)按公式(5)構建控制參數(shù)P,其中i∈(0,49),P(0)=0。
P(i+1)=P(i)+XX(R-i)
(5)
(11)按公式(6)構建控制參數(shù)S,其中i∈(t,R-c)。其中,t和c是可變參數(shù)。S(t)=0,YY(i)為二維混沌序列中的值。
S(i+1)=S(i)+YY(i)
(6)
(11)按公式(7)~(9)構建出控制參數(shù)Q、W和U。
Q=(S(R-c+1)+P(50))mod1
(7)
W=1+round(Q*253)
(8)
U=W/255
(9)
(12)根據(jù)公式(10)對三維Lorenz混沌映射所產(chǎn)生的Z序列進行賦值計算,得到序列Z1。其中,i∈(1,T)。
Z1(i)=((Z(i)/1000)+U)mod1
(10)
(13)根據(jù)公式(11)計算出E(i,j),并將其轉(zhuǎn)換為數(shù)字圖像,即為第一次加密。其中,i∈(1,m),j∈(1,n)。
E(i,j)=(I(X2*(i),Y2*(j))
+Z1((i*jmodT)+1)) mod 1
(11)
(14)根據(jù)公式(12)對(13)步的加密結果進行第二次加密。其中,H(1)=E(1)⊕c。
H(i+1)=H(i) ⊕Z⊕E(i+1)
(12)
(15)將(14)步所得結果轉(zhuǎn)換為M*N的圖像矩陣,即為加密結果。
加密算法的流程圖如圖1所示:
表1 密鑰定義
密鑰控制參數(shù)初始值64個十六進制數(shù)D1,D2,…D64D∈[0~9,A~F]參數(shù)計算A=(D1,D2,…D8)10/(264+1)B=(D9,D10,…D16)10/(264+1)C=(D17,D18,…D24)10/(264+1)D=(D25,D26,…D32)10/(264+1)E=(D33,D34,…D40)10/(264+1)F=(D41,D42,…D48)10/(264+1)G=(D49,D50,…D56)10/(264+1)H=(D57,D58,…D64)10/(264+1)Lorenz混沌β=24.86+((E+F+U)mod1)*0.001X10=(H+F+U)mod1y10=(F+G)mod1z10=(H+E+U)mod1Logistic混沌α1=α2=0.888+((A+C)mod1)*0.001X20=(A+B)mod1Y20=(C+D)mod1
算法的實現(xiàn)平臺:基于Matlab R2012a軟件平臺,硬件配置為Intel(R) Core(TM) i3-3220 CPU@3.30GHz,可用內(nèi)存3.88GB,64位windows 8.1中文版操作系統(tǒng)。
直方圖是描述圖像像素值空間分布規(guī)律的一種數(shù)據(jù)形式。圖2、圖3給出了明文圖像和密文圖像的統(tǒng)計直方圖。從圖2可以看出,明文圖像直方圖呈高低起伏態(tài)勢,分布極不均勻,反映出直方圖信息的分布與圖像本身內(nèi)容有著密切的聯(lián)系,且圖像本身的內(nèi)容主要集中在某一區(qū)域內(nèi)。而加密后的圖3明顯可以看出,直方圖信息空間分布比較均勻一致,反映不出與該圖像本身內(nèi)容之間的任何聯(lián)系,符合隨機噪音圖像的基本特性,很好地擾亂了原始圖像信息,起到了加密的效果,可以有效抵抗已知明文或選擇明文攻擊。
對于任意一幅明文圖像來說,相鄰像素點的灰度值往往比較接近,反映出它們之間存在著很大的相關性。這種相關性關系既可以用圖表現(xiàn)出來,也可以用數(shù)值來衡量,其值為-1到1之間的小數(shù),0
表示毫不相關。文中我們分別從原始圖像和加密圖像中隨機選取N(N=1000)對相鄰的像素點,分別測試其水平方向、垂直方向和對角線方向的像素相關性。運用Matlab平臺,繪出256*256的Lena圖像中所選各點的空間位置分布圖,如圖4所示。
從圖4中可以看出,明文圖像無論是水平方向,還是垂直方向或?qū)蔷€方向上相鄰像素幾乎分布在一條直線上。而密文圖像在3個方向上的相鄰像素點雜亂地分布于整個像素空間,無明顯規(guī)律可循。對于圖像相鄰像素之間的這種相關性我們也可能通過公式(12)~(15)來進行分析。計算相鄰像素點的相關系數(shù)公式如下:
(12)
(13)
(14)
(15)
表1 圖像加密前后相鄰像素相關性對比
類型水平方向垂直方向?qū)蔷€方向明文圖像0.92480.96060.9017密文圖像0.0013-0.0016-0.0083
在圖像處理領域用來反映圖像中所包含信息的不確定性,稱為圖像的信息熵。一個信源的信息熵計算公式如下:
(16)
式中,p(mi)為信號mi的概率,L為每個信號的比特數(shù)。從理論上講,理想情況下密文圖像的信息熵應該為8。經(jīng)實驗測試,圖像Lena的信息熵分別為7.9951,值非常接近理想值,反映出該算法可以很好地抵御外來熵攻擊。
敏感性分析主要考察的是對密鑰的敏感性和對明文圖像的敏感性。當密鑰或明文發(fā)生變化時,兩幅圖像之間的平均差異強度,即一致平均變化強度(UACI)。而CPCR是指當密鑰或明文發(fā)生變化時,兩次加密所得之間的像素變化率。其計算公式分別如下[5]:
(17)
(18)
(19)
表2 算法對密鑰的敏感性測試
算法NPCR/%UACI/%文中算法99.6133.36
接著,測試一下算法對明文的敏感性。結果如表3所示:
表3 算法對明文的敏感性測試
算法NPCR/%UACI/%文中算法99.5333.75
本文采用64個十六進制數(shù)構成的256位字符串,通過它們之間的混合運算,將其結果作為映射的狀態(tài)初值,至于迭代次數(shù)、計算步長及可變參數(shù)t和c均可作為控制參數(shù),使密鑰空間大大擴展,故文中算法具有抗窮舉攻擊的能力。
本文基于三維Lorenz系統(tǒng)和二維的Logistic系統(tǒng)提出了一種基于混沌系統(tǒng)的快速圖像加密算法,并從直方圖、相鄰像素相關性、信息熵等方面對算法進行了安全性分析。實驗表明:該算法具有密鑰空間大、加密對象靈活、速度快、抗攻擊能力強等多種優(yōu)勢,特別是對統(tǒng)計分析攻擊、已知或選擇明文攻擊均具有良好的安全性。
[1] 張曉強,王蒙蒙,朱貴良.圖像加密算法研究新進展[J].計算機工程與科學,2012,34(5):1-6.
[2] 任洪娥,戴琳琳,張健.基于混沌數(shù)列變換的圖像加密算法[J].計算機工程與設計,2013,34(5):1615-1619.
[3] 許艷.基于Logistic映射的BMP圖像加密算法[J].現(xiàn)代計算機,2009,26(2):80-82.
[4] 潘勃,馮金福,陶茜,等.基于超混沌映射和加法模運算的圖像保密通信方案[J].計算機科學: 2009,36(8):273-275.
[5] 李波.可變區(qū)間混沌映射在圖像加密中的應用研究[J].計算機工程及設計: 2010,31(24):5176-5178.
[6] 周蕊,于曉明,焦占亞.一種基于混沌序列的數(shù)字圖像加密算法[J].微電子學與計算機: 2010,27(12):62-68.
[7] 羅玉玲,杜明輝.基于量子Logistic映射的小波域圖像加密算法[J].華南理工大學學報:自然科學版,2013,41(6):0053-0062.
[8] 許慧雅,廖利.基于超級混沌系統(tǒng)的圖像加密算法[J].激光雜志:2015,36(4):79-81,85.
[9] 章秀君,吳志強,方正.一種基于四維超混沌系統(tǒng)的數(shù)字圖像加密算法[J].計算機工程: 2013,39(8):169-172.
[10] S.Zhou, Q.Zhang, X.Wei, etc. A summarization of image encryption, IETE Tech. Rev. 2010, 27(6):503-510.
[11] Sun Fuyan, Liu Shutang, Li Zhongqin, et al.A Novel Image Encryption Scheme Based on Spatial Chaos Map[J].Chaos,Solitons amp; Fractals,2008,38(3):631-640.
[12] 王東生,曹磊.混沌、分形及其應用[M].合肥:中國科學技術大學出版社,1995.
AFastImageEncryptionAlgorithmBasedonChaoticMapping
Yang Xiaogang
(Xi’an Jiaotong University, Xi’an 710061)
In order to effectively solve problem of image encryption algorithm, including high complexity and poor security, a fast image encryption algorithm based on chaotic mapping is presented. The algorithm can quickly implement plain image encryption by using two different chaotic mappings and combining with feature of plain image itself. Simulation experiments show that the proposed image encryption algorithm can meet high speed and good encryption requirement to both color or gray image, it is especially suitable for encryption of large quantity images. To a Lena image with size of 256*256, encryption time is only 0.057s, decryption time is 0.060s.
chaotic mapping; image encryption
2017-08-20
陜西省自然科學基金 (2015JM8322)
楊曉剛(1981-),男,碩士研究生。研究方向為信息安全技術。
TP309
A
1008-8652(2017)03-034-05