馬 聰 李國東
(新疆財經(jīng)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院 新疆 烏魯木齊 830012)
密碼學(xué)是研究信息安全、通信安全的重要工具,圖像加密在互聯(lián)網(wǎng)的傳播安全中起到了重要作用。由于混沌是一種運動軌跡有界、無規(guī)律可循的非線性動力學(xué)系統(tǒng),其具有很強(qiáng)的初值敏感性、遍歷性、隨機(jī)性以及難以預(yù)測等特點,近幾年成為信息保密領(lǐng)域上的重點研究內(nèi)容[1-3]。季諾然等[4]提出用QR碼與混沌序列結(jié)合的方法加密圖像,將密文圖像嵌入到二級Contourlet變換的子帶中,能夠很好地保護(hù)數(shù)字圖像信息。謝國波等[5]提出了一種基于像素置亂和比特替換的混沌圖像加密算法,提高了算法的加密速度,但是算法簡單安全性不高。柴秀麗等[6]提出了一種自適應(yīng)在位級進(jìn)行操作的加密算法,采用自適應(yīng)方法加密,提高了算法的安全性。盛蘇英等[7]利用耦合映象格子與位級圖像相結(jié)合并進(jìn)行逐位擴(kuò)散,加密算法性能較強(qiáng),但是不能抵御暴力窮舉攻擊。Zhang等[8]使用比特級置換的基于混沌的對稱圖像加密方案,加密安全性高。Zhou等[9]設(shè)計了一種利用量子交叉操作和5D超混沌系統(tǒng)的比特級量子彩色圖像加密方案。
針對傳統(tǒng)加密算法精度有限、安全性不高、加密空間小等不足,本文提出了通過雙混沌系統(tǒng),先對位級進(jìn)行一次加密,再聯(lián)合像素級進(jìn)行二次加密。通過仿真實驗表明該算法克服了精度有限、結(jié)構(gòu)單一、加密空間小等問題,具有很高的安全性、抗統(tǒng)計攻擊性等優(yōu)點。
Liu混沌系統(tǒng)是一類含有平方非線性項的混沌系統(tǒng)[10],其動力學(xué)方程如下所示:
(1)
式中:a、b、c為系統(tǒng)參數(shù),h、k為控制參數(shù)。當(dāng)滿足條件a=10、b=40、c=2.5,k=1、h=4時系統(tǒng)表現(xiàn)出混沌行為。為了增加密鑰空間的復(fù)雜性,消除混沌序列的隨機(jī)性,Liu混沌映射初值采用隨機(jī)選取的方法,將一維Logistic映射迭代1 000次,在1 000次以內(nèi)隨機(jī)選取三個值作為Liu混沌映射的初值,選取結(jié)果為x0=0.797 6、y0=0.311 4、z0=0.488 3。一個混沌系統(tǒng)的奇異吸引子在相空間是整體有界的,Liu混沌系統(tǒng)的奇異吸引子是一類具有無窮嵌套層次的自相似幾何結(jié)構(gòu)。經(jīng)過20 000次迭代后的奇異吸引子和相位圖如圖1所示。
(a) 奇異吸引子
(b) x-y平面
(c) x-z平面
(d) y-z平面圖1 Liu混沌奇異吸引子及相位圖
超混沌系統(tǒng)的動力學(xué)具有更加隨機(jī)、相空間更大等優(yōu)勢,將混沌運用在加密體統(tǒng)中能有效地提高加密性能。Kawakami超混沌是1979年由Kawakami和Kobayashi提出的首個研究自同態(tài)的模型,Kawakami映射的動力學(xué)表達(dá)式如下:
(2)
式中:c、d為控制參數(shù)。c=0.1、d=1.6時系統(tǒng)處于超混沌狀態(tài),Kawakami超混沌的初值選取一維Chebyshev迭代1 000次以內(nèi)的兩個隨機(jī)數(shù),x1=0.401 3,y1=0.100 7,Kawakami超混沌迭代1 500次的奇異吸引子如圖2所示。
圖2 Kawakami超混沌奇異吸引子
加密算法流程如圖3所示。
圖3 加密算法流程圖
加密算法采用置亂-擴(kuò)散-置亂-擴(kuò)散的結(jié)構(gòu),首先將明文圖像轉(zhuǎn)換為R、G、B三個通道,將三通道中每個像素值分別進(jìn)行二進(jìn)制轉(zhuǎn)換,這時每一個通道可以看作是由8個m×n的0和1序列組成的矩陣,即R(x,y)={R1(x,y),R2(x,y),…,R8(x,y)},不同位平面包含的信息量不同[11],如表1所示。
表1 不同位平面信息量
由表1可以看出,高三位包含了主要的圖像信息,位數(shù)越低,所包含的信息量越少,因此將高三位的每一位單獨作為一個加密圖像,將低五位的位平面向左移位異或構(gòu)成一個加密圖像,采用低五位和高三位分別置亂、交融擴(kuò)散的方式進(jìn)行第一輪加密。同時為了消除不同層之間的相關(guān)性,進(jìn)行了第二輪置亂-擴(kuò)散操作。
1) 一次置亂-擴(kuò)散算法。
按照浮點算法將3×m×n的彩色圖像分為大小m×n的R層、G層、B層圖像。
以R層的加密過程為例,將R層分解為8個位平面,鑒于高三位包含了主要的圖像信息,因此將高三位分別單獨作為一個平面,從高到低記為pic1、pic2、pic3,將低五位如式(3)所示方式向左移位異或合成一個位平面,記為pic4。
pic4(i,j)=P5(i,j)⊕P4(i,j)⊕P3(i,j)⊕
P2(i,j)⊕P1(i,j)
(3)
向左移位異或程序如下:
Bit4=WW(:,:,4);
%WW是Matlab讀取的圖像信息
Bit5=WW(:,:,5);
P1=bitxor(Bit5,Bit4);
P2=bitxor(P1,Bit3);
P3=bitxor(P2,Bit2);
P4=bitxor(P3,Bit1)。
步驟1將初值為k1的Logistic模型迭代k2次選取三個值作為Liu混沌系統(tǒng)的初值,并設(shè)置Liu混沌系統(tǒng)的參數(shù)。為了消除暫態(tài)效應(yīng),迭代S+1 000(S>m×n)次選取中間S個不重復(fù)的值,在S中截取三段m×n的混沌序列,得到序列xi、yi、zi。
步驟2采用Arnold置亂[12]k3次實現(xiàn)pic1-pic3的像素值位置變換,Arnold置亂思想是在矩陣中先做x軸方向的錯切變換,再做y軸方向的錯切變換,反復(fù)拉伸折疊;接著采用光柵掃描的方式將pic4變換成一維向量,對pic4位級采用索引位置置亂混淆的像素值位置,在S中任意截取m×n個的混沌序列構(gòu)成一維向量,按降序排序,得到的序列為si={sm×n,sm×n-1,…,s1} ,并記錄原序列在si中的位置為Tsi={Ts1,Ts2,…,Tsm×n},按此位置對原序列進(jìn)行變換,此時得到一個新的一維向量,轉(zhuǎn)換成m×n矩陣即完成位級置亂。
步驟3將已經(jīng)加密的高三位Pici(i=1,2,3)分別進(jìn)行像素值求和得到sumIi,采用低五位pic4加密高三位的混淆擴(kuò)散方式,對混沌序列按照式(4)進(jìn)行標(biāo)準(zhǔn)化處理,迭代m次,得到m個混沌序列。
xi=floor(mod(xi×1014),256)yi=floor(mod(yi×1014),256)zi=floor(mod(zi×1014),256)
(4)
按照式(5)進(jìn)行自適應(yīng)擴(kuò)散操作,Pic′(3)、Pic′(2)、Pic′(1)分別是xi,yi,zi的高三位。
(5)
然后,計算三個異或矩陣分別按位相加的結(jié)果,按照式(6)得到R層密文圖像。
R′=(min+middle+max)mod 2
(6)
步驟4G層、B層采用相同的方法分別加密,再按循環(huán)異或得到最終密文圖像,循環(huán)異或的函數(shù)為BitCircShift(A,k,m)。
C=R′⊕G′⊕B′
(7)
2) 二次置亂-擴(kuò)散算法。
第一輪加密過程是基于位級層面進(jìn)行像素值替代和擴(kuò)散,為了消除層之間的相關(guān)性,增強(qiáng)加密算法的安全性,改進(jìn)第一輪密文產(chǎn)生的像素值,在灰度圖像上進(jìn)行第二輪加密。
C1=mod(ceil(abs(x1i+y2i)×105)+C,256)
(8)
步驟2對所生成的超混沌序列進(jìn)行取余操作,新的混沌序列結(jié)合密文圖像像素值信息,使超混沌序列更具有隨機(jī)性,改進(jìn)方法如式(9)所示,
xi=mod(floor((sum(C1)/abs(xi))×106),256)yi=mod(floor((sum(C1)/abs(yi))×106),256)
(9)
步驟3采用Hilbert曲線對第一輪加密的密文圖像進(jìn)行置亂,Hilbert曲線的思想是把一個方陣矩陣分成4個小方陣,依次從左下角的中心出發(fā)向上移動到左上角的中心,再向右掃描到右上角的中心,向下到右下角的中心,按此順序不斷迭代掃描,直到遍歷整個方陣,置亂示意圖如圖4所示。
圖4 Hilbert置亂示意圖
步驟4將Hilbert置亂后的圖像記為Q,在擴(kuò)散加密操作中,將圖像縱向分為兩半Q1、Q2,兩半同時展開加密,最后合并得到完全擴(kuò)散的密文圖像。
(10)
3) 為了達(dá)到加密圖像充分混淆的目的,重復(fù)步驟1)-步驟2)T次,T作為密鑰保存,至此完成加密過程。
實驗選用加密的經(jīng)典圖像Lena為對象,Lena圖像的分辨率為256×256,大小為192 KB。采用Win10系統(tǒng)在MATLAB 2018b的環(huán)境下對該算法進(jìn)行仿真,其中,Liu混沌的系統(tǒng)參數(shù)設(shè)置為a=10、b=40、c=2.5、k=1、h=4,Liu混沌映射的初始值為x0=0.797 6、y0=0.311 4、z0=0.488 3,Kawakami超混沌的系統(tǒng)參數(shù)設(shè)置為c=0.1、d=1.6,初值為x1=0.401 3、y1=0.100 7。除了上述密鑰之外,本文算法的其余密鑰為S=92 463、k1=0.3、k2=1 000、k3=99、k4=0.75、k5=999、T=5,仿真實驗結(jié)果如圖5所示。為了說明本文算法加密的實用性,使用分辨率為512×512,大小為1 MB的電子發(fā)票為例,在同樣的操作環(huán)境下,使用相同的系統(tǒng)參數(shù)和系統(tǒng)初值進(jìn)行加密,結(jié)果如圖6所示。
(a) 明文圖像 (b) 密文圖像 (c) 解密圖像圖5 仿真實驗結(jié)果
(a) 明文圖像 (b) 密文圖像 (c) 解密圖像圖6 電子發(fā)票加密
置亂度是衡量像素值位置變化雜亂程度的重要指標(biāo),置亂度越大,說明圖像混淆的越亂,攻擊者不能識別真實內(nèi)容,因此圖像更加不易被破解,置亂度的取值范圍為SM∈(0,1),置亂度的數(shù)學(xué)表達(dá)如下:
(11)
X={xij}m×n表示明文圖像,Y={yij}m×n表示密文圖像,R={rij}m×n表示與明文圖像大小相同的隨機(jī)分布圖像,選取最終密文圖像進(jìn)行置亂度分析,用本文算法得到的置亂度為0.992 8,接近1,說明本文算法的置亂效果很好,圖像信息的安全性更高。
直方圖分析結(jié)果如圖7所示,可以看出,明文圖像像素值分布參差不齊,而密文圖像像素值頻率分布比較均勻,難以找出原始圖像的規(guī)律,說明加密后的密文圖像對窮舉攻擊有很好的抵抗作用。
(a) 明文圖像直方圖 (b) 密文圖像直方圖圖7 明文和密文圖像直方圖
彩色圖像信息包含的數(shù)據(jù)信息量大,若密鑰選取的較少,則無法滿足安全性,密鑰空間越大,密鑰長度就越長,密文圖像更能有效地抵御窮舉攻擊,密鑰是傳遞者和接受者的媒介,將加密算法中的密鑰傳送給信息接受者,接受者就能根據(jù)密鑰還原出原始信息。本文算法的密鑰空間為1016×19=10304,密鑰長度為log2(10304),遠(yuǎn)大于128 bit,可見密鑰空間很大,足以抵御窮舉攻擊。
本文的加密算法對密鑰的依賴性非常強(qiáng),在解密過程中,密鑰微小的變化都不能得到正確的解密圖像,對Liu混沌系統(tǒng)和Kawakami超混沌系統(tǒng)的初值進(jìn)行2×10-14的微小變動時,即x0=0.797 6+2×10-14,x1=0.401 3+2×10-14,所得解密結(jié)果如圖8所示。
(a) 錯誤解密(b) 錯誤解密 (c) 正確解密圖8 敏感性測試
像素變化比率(簡稱:NPCR)顯示的是不同像素點個數(shù)占全部像素點的比例,表明當(dāng)明文中有一個像素值發(fā)生變化時密文圖像中像素值變化的比率,NPCR越接近100%,說明明文像素值的微小變動都會大幅改變密文信息。D1表示密文,D2表示明文,公式如下:
(12)
歸一化平均改變強(qiáng)度(簡稱:UACI)顯示的是兩幅圖像全部相應(yīng)位置像素點的差值和最大差值的比值的平均值。UACI的理想值是接近 33.463 5%,這時對明文的細(xì)微改變敏感性強(qiáng)烈,計算公式如下:
(13)
對明文圖像中任意一點像素值(100,101)進(jìn)行微小變動為(101,101),此時NPCR和UACI分別為99.78%和33.37%,均非常接近理想值,對比文獻(xiàn)[13]和文獻(xiàn)[14],結(jié)果如表2所示。
表2 NPCR和UACI值
在一幅圖像中,其像素值之間存在一定的相關(guān)性,根據(jù)式(14),截取1 000對像素點(x,y)進(jìn)行分析,計算結(jié)果如表3和圖9所示。可以看出,明文圖像相鄰像素的相關(guān)性比較高,呈現(xiàn)出明顯的線性相關(guān)性,相關(guān)系數(shù)接近1,而密文圖像各方向像素之間相關(guān)系數(shù)均在0左右,說明本文加密算法達(dá)到了理想效果。
(14)
式中:
表3 明文和密文圖像相鄰像素間相關(guān)系數(shù)
圖9 明文和密文圖像相鄰像素相關(guān)性
根據(jù)Shannon定理[15-16]信息熵的理論,信息熵反應(yīng)了一個序列的隨機(jī)性,信息熵越大,隨機(jī)性越強(qiáng),灰度值分布越均勻。當(dāng)圖像中各灰度值出現(xiàn)的概率相等時,圖像的信息熵最大,256個灰度級的灰度圖像信息熵的理想值為8。為了體現(xiàn)本文算法的優(yōu)越性,對Lena圖像與電子發(fā)票的明文與密文信息熵進(jìn)行對比,根據(jù)式(15)計算信息熵的結(jié)果見表4??梢钥闯?,經(jīng)過本文算法加密的圖像信息熵都非常接近理想值,表明本文算法能夠有效地抵御窮舉攻擊,加密效果很好。
(15)
本文將混沌理論用于圖像加密領(lǐng)域,該算法主要特點是:先將Liu混沌系統(tǒng)用于位級圖像,所得到的加密圖像作為下一輪加密的載體,第二輪改進(jìn)密文圖像為像素級,并將Kawakami超混沌系統(tǒng)用于像素級加密,采用置亂-擴(kuò)散-置亂-擴(kuò)散的結(jié)構(gòu),分別在位級平面和像素級平面進(jìn)行加密。實驗結(jié)果表明,該算法能很好地抵御各種暴力攻擊,密鑰空間大,加密算法的安全性高,并且該算法解決了混沌加密的單一性,提高了加密的實時性,加密效果較好,在網(wǎng)絡(luò)安全、信息傳輸、移動支付等方面具有廣闊應(yīng)用前景。