劉海峰, 周雪飛, 梁星亮, 汪麗華
(陜西科技大學 文理學院, 陜西 西安 710021)
隨著計算機技術的迅猛發(fā)展,數(shù)字圖像是一種被廣泛采用的數(shù)據(jù)格式,因具有快捷方便、信息量大等特點,其在各個領域都具有廣泛的應用;同時對數(shù)字圖像的安全保護變得越來越重要[1].針對圖像加密有許多學者對其進行研究,主要方法包括置亂與擴散兩個方面.
常規(guī)的Arnold變換具有周期性,其加密安全性不高,有學者對該變換進行了適當?shù)母倪M.其次,將混沌系統(tǒng)應用到圖像加密中成為一個研究熱點.混沌系統(tǒng)具有良好的混沌特性,將其應用于圖像加密中可以很好地提高加密效果.而超混沌系統(tǒng)具有更高的混沌特性,其偽隨機性強和密鑰空間巨大,非線性動力學行為更加復雜和難以預測,在加密過程中無疑會提高算法的復雜度,增強安全性[2,3].因此,基于混沌系統(tǒng)的圖像加密算法得到了廣大學者的研究[4-8].
韓雪娟等[9]為解決Arnold變換的弊端,運用分塊置亂和動態(tài)Arnold變換進行置亂,消除了該變換的周期性,然后借助Tent映射、Sine映射對圖像加密,但低維的混沌系統(tǒng)對圖像進行加密的安全性已經(jīng)不夠.陳寶文等[10]對每幅二進制圖像用Arnold變換進行置亂,再利用混沌序列進行線性擴散完成加密,該算法沒有消除置亂的周期性且擴散算法相對簡單.林青等[11]用混沌序列生成與明文圖像相關的動態(tài)可選序列,并產(chǎn)生與該序列相關的密鑰去加密圖像,該算法中只運用到單一的混沌系統(tǒng),這對圖像加密的安全性有待提高.李付鵬等[12]將Tent映射用于圖像加密,用混沌序列對圖像置亂,該算法僅對圖像進行置亂的操作,并沒有進行擴散處理,安全性相對不高.
針對圖像加密中容易出現(xiàn)的問題,本文首先提出一個新的改進超Chen混沌系統(tǒng),進而設計一種基于多個混沌系統(tǒng)的圖像加密方法,運用Arnold變換置亂后,將改進的超Chen混沌系統(tǒng)應用于圖像的擴散處理,再應用二維Chebyshev-Sine混沌系統(tǒng)產(chǎn)生的混沌序列對圖像進一步分塊擴散與置亂完成圖像的加密,使得圖像的安全性得到提高.
經(jīng)典Chen混沌系統(tǒng)[13]的狀態(tài)方程如下:
(1)
當a=35,b=3,c=28時,該系統(tǒng)的Lyapunov指數(shù)為λ1=2.012 2,λ2=0,λ3=-12.010 4,該系統(tǒng)為混沌系統(tǒng).
(2)
式(2)中:a,b,c,d,e,f為該系統(tǒng)的參數(shù).
相較于傳統(tǒng)Chen混沌系統(tǒng)中的3個系統(tǒng)參數(shù),改進的超混沌系統(tǒng)含有6個參數(shù),且每項變量的參數(shù)都是獨立的、互不依賴的,參數(shù)的增多也使得系統(tǒng)更加復雜;且新系統(tǒng)是一個四維的超混沌系統(tǒng),而傳統(tǒng)的Chen混沌系統(tǒng)是一個三維的混沌系統(tǒng).新系統(tǒng)增加了系統(tǒng)參數(shù)個數(shù),加大了系統(tǒng)的維度,相應的系統(tǒng)復雜度得以提升.
(1)相圖
當a=35,b=30,c=7,d=9,e=0.4,f=0.6時,選擇系統(tǒng)初值為(1,1,1,1) ,圖1是新的混沌系統(tǒng)x-y、x-z、x-w、y-w、y-z、z-w、x-y-z、x-y-w的吸引子相圖,相圖可以直觀反映出混沌系統(tǒng)的動力學行為特征的復雜程度.由圖1可以直觀地看出,該系統(tǒng)產(chǎn)生的序列有很強的隨機性,不穩(wěn)定性.
(a)超混沌系統(tǒng)x-y相圖 (b)超混沌系統(tǒng)x-z相圖
(c)超混沌系統(tǒng)x-w相圖 (d)超混沌系統(tǒng)y-w相圖
(e)超混沌系統(tǒng)y-z相圖 (f)超混沌系統(tǒng)z-w相圖
(g)超混沌系統(tǒng)x-y-z相圖 (h)超混沌系統(tǒng)x-y-w相圖圖1 超混沌系統(tǒng)的吸引子相圖
(2)Lyapunov指數(shù)(譜)與Lyapunov維數(shù)
當初值為(1,1,1,1)時,系統(tǒng)的Lyapunov指數(shù)為λ1=24.324 0,λ2=0.660 0,λ3=-9.252 3,λ4=-52.348 5.當參數(shù)a∈(30,50),繪制該系統(tǒng)的Lyapunov指數(shù)譜,如圖2所示.
圖2 參數(shù)a變化的Lyapunov指數(shù)譜
當參數(shù)e∈(0,2)時,繪制該系統(tǒng)的Lyapunov指數(shù)譜,如圖3所示.
圖3 參數(shù)e變化的Lyapunov指數(shù)譜
由圖2與圖3可知,在改變系統(tǒng)參數(shù)的大小時,該系統(tǒng)的Lyapunov指數(shù)也隨之不斷變化,系統(tǒng)對于參數(shù)極為敏感.
計算該系統(tǒng)的Lyapunov維數(shù):
3.300 5
(3)
新混沌系統(tǒng)的四個Lyapunov指數(shù)中有兩個大于0,其次,Lyapunov維數(shù)為3.300 5,不是整數(shù).因此,這個改進的新系統(tǒng)是超混沌的.
相較于原始Chen混沌系統(tǒng)的最大Lyapunov指數(shù)(λ1=2.012 2),改進Chen混沌系統(tǒng)的最大Lyapunov指數(shù)(λ1=24.324 0)更大,這表明新系統(tǒng)的混沌特性更強.根據(jù)計算所得新系統(tǒng)的Lyapunov指數(shù)中有兩個大于0的,該系統(tǒng)具有超混沌特性,超混沌系統(tǒng)的非線性動力學特性復雜,運動軌跡多變,密鑰空間更大,混沌序列的隨機性更強[14].其次,改進的Chen混沌系統(tǒng)為四維混沌系統(tǒng),維數(shù)較高的混沌系統(tǒng)所呈現(xiàn)的混沌特性相較于低維混沌系統(tǒng)的混沌特性更強,因此,將所提出的新系統(tǒng)應用到圖像加密中,能夠有效提高加密算法安全性和圖像信息的保密性.
(3)耗散性與吸引子的存在性分析
對該系統(tǒng)的耗散性與吸引子的存在性進行分析,對于改進的超Chen混沌系統(tǒng),
-a+c-d+e=-36.6<0
(4)
因此,該系統(tǒng)具有耗散性,且其以e-36.6不斷收斂為0,整個系統(tǒng)的運動軌跡的空間不斷縮小到一個極限集,這也能夠反映出該系統(tǒng)存在吸引子.
(4)平衡點及穩(wěn)定性分析
計算改進的超混沌系統(tǒng)的平衡點,根據(jù)平衡點判斷該系統(tǒng)的穩(wěn)定性.
令系統(tǒng)(2)中式子的左邊為0,得到
(5)
通過計算得出該系統(tǒng)的平衡點為O(0,0,0,0),在該點處的Jacobi矩陣為
(6)
計算在平衡點O處該矩陣的特征值,分別為-52.613 5、24.613 5、-9.000 0、0.400 0,在該系統(tǒng)平衡點處矩陣的四個特征值中有兩個正實部的特征值,因此在該平衡點是不穩(wěn)定的.
將一維映射Chebyshev映射和Sine映射進行結合,可以構造出一種新的二維混沌映射,稱為2D Chebyshev-Sine映射[15],其表達式如式(7)所示:
(7)
式(7)中:u和k為系統(tǒng)參數(shù),且u∈[0,4],k∈[0,1],當k=0.162,u=1.5時,該系統(tǒng)呈現(xiàn)混沌狀態(tài).
經(jīng)過對明文圖像進行置亂、擴散、分塊擴散與置亂的方法進行加密,使得加密效果更好,安全性更高.首先,運用Arnold變換對圖像像素坐標位置進行置亂,其次,運用超混沌序列對圖像再進行擴散,從而提高圖像數(shù)據(jù)信息的保密性,最后,運用2D Chebyshev-Sine混沌系統(tǒng)分別對圖像分塊擴散并置亂,從而得到最終密文圖像,具體的加密流程圖如圖4所示.
圖4 圖像加密流程圖
2.2.1 基于Arnold變換的首次置亂
選擇一個大小為m×n的圖像A作為明文圖像,運用二維Arnold變換對像素點位置坐標進行首次置亂.
二維Arnold變換可表示為:
(8)
式(8)中:d,c是控制參數(shù),xn,yn是圖像加密前的像素位置坐標,xn+1,yn+1是置亂后圖像像素位置坐標.
考慮對Arnold變換后圖像信息的還原,對公式(8)求出其逆變換,具體表達式如式(9)所示:
(9)
運用二維Arnold變換對圖像A進行Arnold變換后,圖像的像素坐標混亂,明文圖像失去原有的視覺效果,變?yōu)殡s亂無章的圖像,該操作對明文圖像進行了簡單的置亂效果,使得明文圖像達到首次加密,將經(jīng)過首次加密后的圖像記為A1.
2.2.2 基于改進超Chen混沌系統(tǒng)的擴散算法
(1)四維混沌序列的產(chǎn)生
選取超混沌系統(tǒng)的參數(shù)值a=35,b=30,c=7,d=9,e=0.4,f=0.6,運用超Chen混沌系統(tǒng)進行混沌映射,經(jīng)過1 000+m×n次迭代產(chǎn)生四組超混沌序列,為了保證混沌序列具有良好的隨機性,將前1 000次迭代序列值去除,對剩余的序列值其進行數(shù)據(jù)處理,處理后的四組混沌序列分別記為X,Y,Z,W,具體的處理步驟如下:
(10)
式(10)中:?x」表示小于等于x的最大整數(shù).
經(jīng)過量化處理后的混沌序列值都在[0,255]范圍內,以便應用于后續(xù)圖像像素值的擴散加密.
(2)擴散算法
在對圖像進行首次置亂后圖像像素坐標發(fā)生變化,再對圖像進行擴散處理改變圖像原有的像素值,使得圖像信息完全發(fā)生變化,增強圖像信息的保密性.
經(jīng)過1.1節(jié)中的四維超混沌映射得出四組長度為m×n的混沌序列X,Y,Z,W將圖像A1的像素值按列優(yōu)先轉化成長度為m×n的一維序列,記為P=(p1,p2,…,pm×n) ,運用混沌序列X,Y,Z,W對像素值進行擴散,擴散后的像素值序列記為C=(c1,c2,…,cm×n) ,具體擴散方法如下:
(11)
式(11)中:i=1,2,3,…,m×n,且p0為[0,255]內的任意一個整數(shù).
對首次擴散后P′運用序列Z和W再進行一次擴散,得到最終擴散序列C,經(jīng)過此次擴散使得圖像加密效果更好,擴散方式如式(12)所示:
(12)
經(jīng)過以上方法對圖像A1進行兩次擴散,這兩次擴散包括了雙向擴散,即向前擴散和向后擴散,這種擴散方式對任意一個像素位置的像素值進行很小的改變,也會使得其他所有位置像素值的加密效果變得不同,提高了明文與密文之間的相關性,使得加密效果更好.
經(jīng)過對圖像進行擴散處理后,將所得的一維序列C按列優(yōu)先轉化為m×n的矩陣,此時該矩陣中的數(shù)值為加密后的像素值,將矩陣轉化為灰度圖像得到新的加密圖像記為A2.
2.2.3 基于2D Chebyshev-Sine混沌系統(tǒng)的擴散與置亂
(1)二維混沌序列的產(chǎn)生
針對二維Chebyshev-Sine混沌系統(tǒng),選擇參數(shù)u=1.5,k=0.162,對初值x(1)=1,y(1)=1迭代i次得到兩組長度為i(i>max{m,n})的混沌序列,將這兩組混沌序列進行數(shù)據(jù)處理并截取需要的長度,處理后的兩組長度為m×n的序列記作M,N,具體處理方式如下式:
(13)
式(13)中:t>m×n.
(2)基于Chebyshev-Sine混沌系統(tǒng)的擴散與置亂
將首次擴散后圖像A2進行分塊,將分塊后的圖像分別按列優(yōu)先轉化為一維數(shù)組記為A2i,對每組數(shù)組選擇不同的混沌序列進行擴散,擴散方式如下:
Si=(Mi+Ni+A2i)mod 256
(14)
將分塊擴散后的數(shù)組進行合并,再轉化為m×n的矩陣,得到二次擴散后的圖像,對該圖像再進行置亂處理.
經(jīng)過Chebyshev-Sine混沌映射后得到序列M,圖像A2共有m行,對像素矩陣每一行的像素值進行行移位,第1行右移M1位,第2行右移M2位,…,以此類推,第m行右移Mm位.
經(jīng)過對圖像像素坐標的行移位處理后,運用混沌序列 再對其進行列移位,第1列下移N1位,第2列下移N2位,…,以此類推,第n列下移Nn位.
對圖像A2分別進行分塊擴散與行列移位置亂后得到最終加密圖像A3.
本文選擇256×256的Lena圖像作為明文圖像,在MATLAB2016的環(huán)境下進行實驗仿真,選擇超混沌系統(tǒng)(2)的參數(shù)為a=35,b=30,c=7,d=9,e=0.4,f=0.6,初值為(1,1,1,1),Chebyshev-Sine混沌系統(tǒng)的參數(shù)為k=0.162,u=1.5,初值為(1.001,1),運用2.2節(jié)中的加解密算法得到的加解密圖像如圖5所示.
(a)明文圖像 (b)加密圖像
(c)解密圖像圖5 加解密圖像
3.1.1 密鑰空間分析
密鑰空間是衡量一個算法是否可以抵抗窮舉攻擊的重要特征,加密過程中應用到兩個混沌系統(tǒng),其中改進的超Chen混沌系統(tǒng)具有6個參數(shù),二維Chebyshev-Sine混沌系統(tǒng)有2個參數(shù),每個系統(tǒng)的參數(shù)與初值的精度均可以達到10-14,則本文包含的8個系統(tǒng)參數(shù)的密鑰空間就可以達到1014×8=10112,其次,這兩個混沌系統(tǒng)的初值共有6個數(shù),其空間達到1014×1014×1014×1014×1014×1014=1084,因此,該算法的密鑰空間遠超過了安全密鑰空間2100,說明該算法完全可以抵抗暴力攻擊.
3.1.2 密鑰敏感性分析
密鑰敏感性是指對密鑰進行非常微小的改變,也能使加解密結果產(chǎn)生巨大的差異.為了驗證該算法的密鑰敏感性,分別采用正確密鑰和差異微小的錯誤密鑰對密文圖像進行解密,在這里對混沌系統(tǒng)的某個初值減小1010作為差異密鑰,用兩種密鑰對密文圖像的解密結果如圖6所示,正確密鑰解密能夠得到原始圖像,而錯誤密鑰解密則無法還原出原本的明文圖像.
(a)正確密鑰解密圖像 (b)錯誤密鑰解密圖像圖6 不同密鑰解密圖像
3.2.1 直方圖分析
圖像的像素值直方圖能夠精確地、直觀地反映出圖像整體像素值的分布情況.繪制原始Lean圖與加密圖像的像素值直方圖如圖7所示,加密前圖像像素分布特征明顯,相反地,加密后圖像像素值基本沒有明顯的頻率波動,改變了灰度值的統(tǒng)計特性,說明加密后的圖像信息更加隱秘,具有一定的安全性.
(a)Lena明文圖像直方圖 (b)Lena密文圖像直方圖圖7 直方圖分析
圖像相鄰像素值相關系數(shù)的大小能夠很好地反映算法的加密效果是否良好,相關性越低說明運用加密算法得到的密文圖像加密效果越好.分別計算加密前后圖像在水平、垂直和對角三個方向的相關系數(shù),計算方法如下:
(15)
(16)
(17)
(18)
式(15)~(18)中:xi,yi代表圖像相鄰像素值,E(x)代表像素均值,D(x)為方差,Cov(x,y)為協(xié)方差,rxy為相關性系數(shù),rxy的值越大說明相關性越強.
通過上述式子計算分別得到明密文Lena 圖像的相關系數(shù),具體數(shù)據(jù)見表1.表中數(shù)據(jù)顯示明文圖像的相鄰像素的相關性計算結果都基本接近1,說明相鄰像素對之間的關聯(lián)度很高,相反地,密文圖像相鄰像素之間的相關性計算結果近似于0,即密文圖像相鄰像素之間基本沒有關聯(lián),這也說明了運用該算法對圖像加密后大大地破壞了原圖相鄰像素之間的相關性,算法具有良好的加密效果,從而達到了抵抗統(tǒng)計攻擊這一目的.將該算法與文獻[10,11,16]中加密算法加密所得的相關系數(shù)進行比較如表1所示.
經(jīng)過比較得出,對明文圖像運用該算法加密后的圖像計算結果更接近0,說明密文圖像已經(jīng)成為毫無規(guī)律的、混亂的圖像,原本的圖像信息已經(jīng)被很好地掩蓋,具有更高的保密性.
表1 明密文圖像不同方向的相關系數(shù)
分別繪制在垂直方向上明密文圖像相鄰像素值之間的相關性分布圖,如圖8所示,可以直觀地觀察到明文圖像在垂直方向的鄰域像素值基本集中在像素區(qū)域的對角線上,意味著其相鄰像素值之間息息相關,而密文圖像相鄰像素對在整個像素值的區(qū)域內均勻地分散,其相關性非常小.
(a)明文圖像分布圖 (b)密文圖像分布圖圖8 垂直方向鄰域像素值分布圖
3.2.3 信息熵分析
信息熵可用來表示狀態(tài)的混亂程度,信息熵越大說明混亂程度越高,其計算方式如下:
(19)
式(19)中:P(xi)表示xi出現(xiàn)的概率,L是圖像灰度等級數(shù).
計算加密后圖像的信息熵為7.997 3,而理論值為8,對比文獻[11,12,16,17]中的信息熵,結果如表2所示.經(jīng)過對比得出本文算法加密后圖像的信息熵值相較其他四種算法加密后圖像的信息熵更接近8,說明該算法加密后的圖像更無規(guī)律可循,且可以抵抗統(tǒng)計分析攻擊,從而說明該算法的安全性較高.
表2 信息熵對比
對一幅明文圖像任意一個位置的像素值進行很小的改變,攻擊者運用相同的算法加密兩幅明文圖像,獲得相應的密文圖像,再對其分析得出明密文圖像的關系,即為差分攻擊.通常運用像素改變率(Number of Changing Pixel Rate,NPCR)和歸一化改變強度(Unified Averaged Changed Intensity ,UACI)反映圖像的抗差分能力,通過下式進行計算:
(20)
(21)
式(20)、(21)中:m=n=256,P1(i,j)為原始明文加密后的像素值,P2(i,j)為改變明文對應位置的像素后密文圖像像素值,NPCR的理論值為99.609 4%,UACI的理論值為33.463 5%.
將明文圖像原始(1,1)位置的像素135變?yōu)?36,計算得出NPCR=99.65%,UACI=33.49%.通過與文獻[10,11,12,18]中的算法進行對比,結果如表3 所示,本文算法加密后圖像的NPCR和UACI的值更加理想,也能夠進一步說明本文所提加密算法能夠有效地抵御選擇明文攻擊.
表3 NPCR和UACI對比
通常對于已知明文攻擊,攻擊者主要是選擇一些具有特殊性質的圖像進行加密,嘗試從中找到規(guī)律,從而獲取密鑰.文中選用尺寸為256×256的純黑和純白圖像進行加密,加密圖像和密文圖像直方圖如圖9所示.
(a)純黑圖像 (b)純白圖像
(c)純黑圖像加密圖 (d)純白圖像加密圖
(e)純黑密文直方圖 (f)純白密文直方圖圖9 特殊圖像加密圖像及其密文直方圖
從圖中看出兩幅圖像加密后,其特殊的像素特征被很好地隱藏起來,經(jīng)過計算得到純黑圖像經(jīng)過加密后的密文圖像在水平、垂直、對角三個方向的相鄰像素相關性分別為0.026 2、-0.106 5、-0.003 4,純白圖像經(jīng)過加密后的密文圖像在三個方向的相鄰像素相關性分別為0.029 4、-0.059 6、0.001 1,其相關性都接近于0.因此,若想通過在兩幅特殊圖像及其密文圖像中嘗試獲取密鑰是困難的,該算法可以有效地抵抗已知明文攻擊.
3.5.1 抗噪聲分析
在圖像傳輸中經(jīng)常受椒鹽噪聲與高斯噪聲的影響,其中椒鹽噪聲也稱為脈沖噪聲,它的呈現(xiàn)方式為在亮的區(qū)域有黑色像素或是在暗的區(qū)域有白色像素,也可兩者皆有.高斯噪聲即噪聲的概率密度函數(shù)服從高斯分布.為了驗證該算法抗噪聲攻擊的能力,分別給密文圖像添加強度為1%的椒鹽噪聲與均值為0,方差為0.001的高斯噪聲再對其進行解密,圖10是對算法抗噪聲攻擊的測試結果.可以得出,雖然對添加噪聲后的密文圖像進行解密不能得到原始的明文圖像,但是還是可以清楚地得到圖像的基本特征,因此該算法能夠抵抗噪聲攻擊.
(a)椒鹽噪聲 (b)解密圖像
(c)高斯噪聲 (d)解密圖像圖10 抗噪聲攻擊測試結果
3.5.2 抗剪切分析
在圖像傳輸過程中,圖像信息可能會丟失部分數(shù)據(jù).本文通過檢驗該算法的抗剪切攻擊能力驗證算法的安全性.圖11(a)是對密文圖像中某個位置的50×50個像素點進行剪切后的圖像,圖11(b)是對剪切密文圖像進行解密后的圖像.從圖11中可以看出,部分數(shù)據(jù)丟失的密文圖像經(jīng)過解密仍然能夠還原出大致的明文圖像,盡管不是原始的明文圖像,但仍然可以觀察到圖像的基本信息特征.
(a)剪切圖像 (b)解密圖像圖11 抗剪切攻擊測試結果
對于算法計算復雜度的分析文中主要從時間復雜度的角度去進行測試,在保證加密安全性的前提下,能夠盡可能地提高加密速度對于圖像加密非常重要.本文分別選取分辨率為256×256、512×512、1 024×1 024的圖像運用該算法進行加密,加密環(huán)境在處理器為Intel Core(TM) 1.60GHz,內存為8.00 GB的設備上,運用MATLAB2016實現(xiàn)該算法程序,統(tǒng)計加密時間如表4所示,從表中數(shù)據(jù)可以得出圖像的時間隨著圖像分辨率的增大而增大,兩者基本成線性關系.
表4 不同分辨率圖像加密時間
本文提出了一個改進的四維超Chen 混沌系統(tǒng),并且將其與2D Chebyshev-Sine混沌系統(tǒng)應用到圖像加密中,加密過程主要采用Arnold變換、改進超Chen 混沌系統(tǒng)以及2D Chebyshev-Sine混沌系統(tǒng)對圖像進行置亂、整體擴散、分塊擴散與置亂四個步驟的加密算法,獲得最終加密圖像.該算法充分利用混沌序列所具有的良好的混沌特性,大大地提高了加密效果與安全性.經(jīng)過實驗仿真與分析得出該算法能夠很好地抵抗幾種常見的攻擊,將該圖像加密方案應用到實際通信過程中具有很高的安全性與保密性.