郭祖華,徐立新,張 曉
(1.河南機電高等??茖W(xué)校 計算機科學(xué)與技術(shù)系,河南 新鄉(xiāng)453003;2.西北工業(yè)大學(xué) 計算機學(xué)院,陜西 西安710072)
數(shù)字圖像加密的基本方法有像素置亂和像素替換兩大類,實際應(yīng)用中,通常將以上兩種方式結(jié)合進(jìn)行加密處理,研究人員在該領(lǐng)域已經(jīng)取得了許多成果[1-4]。近年來,超混沌系統(tǒng)作為數(shù)字信息加密中的一種新的加密技術(shù),為數(shù)字信息加密提供了一種全新、有效的保護手段,在信息安全領(lǐng)域中得到了極其廣泛的應(yīng)用。
超混沌系統(tǒng)具有以下優(yōu)點:有兩個或兩個以上正的Lyapunov指數(shù)、更加復(fù)雜的動力學(xué)行為、較大的密鑰空間以及較強的密鑰敏感性等,其產(chǎn)生的混沌序列具有較好的偽隨機性能及不可預(yù)測性,因此被其加密的圖像具有很強的抗各種攻擊能力,非常適合加密系統(tǒng)的要求。
許多研究提出了將超混沌系統(tǒng)運用到數(shù)字圖像的加密中,以提高信息的安全性[5-7]。其中,孫勁光等提出了一種改進(jìn)的基于混沌分塊圖像加密算法[8],該算法通過對外部密鑰分組生成Logistic映射初始條件迭代生成混沌序列,并用矩形灰度圖像進(jìn)行加密,有效地增強了密鑰的敏感性能,該算法較二維混沌圖像加密具有更高的置亂度,并且能夠有效地抵抗各種攻擊;周霖等利用混沌映射的隨機性和敏感性以及優(yōu)秀的混疊特性提出一種基于雙重混沌映射的圖像加密算法[9],用貓映射對圖像進(jìn)行置亂,用Henon映射來進(jìn)行圖像的擴散處理,該方法具有較大的密鑰空間、加密速度快以及較強的抗攻擊性能等特點;張豐博等利用三角混沌映射產(chǎn)生混沌序列,并將其量化為離散二值序列,然后將三角混沌作為密鑰,用于改進(jìn)的擬Feistel結(jié)構(gòu)加密算法[10],該算法加密后圖像相鄰像素具有良好的空間隨機特性。
但當(dāng)前利用超混沌系統(tǒng)對圖像進(jìn)行加密算法的研究中,都只是利用混沌系統(tǒng)做簡單的置亂和擴散處理,加密系統(tǒng)的復(fù)雜性相對較低,密鑰空間相對較小,無法保證圖像在存儲與傳輸過程中不被攻擊,因此,有待進(jìn)一步改進(jìn)思路和方法以提高加密圖像的安全性。
為此,本文提出一種基于并行子圖像和超混沌系統(tǒng)相結(jié)合的圖像加密算法來克服上述不足,仿真實驗結(jié)果表明,該算法具有安全性高、密鑰空間大、密鑰敏感性強、抗攻擊能力好等顯著優(yōu)點。
為了提高加密系統(tǒng)的復(fù)雜性和抵抗攻擊能力,本文首先將原始圖像分離成9個子圖像,然后將9個子圖像進(jìn)行置亂,重新排列成新的圖像。其加密步驟如下:
步驟1 假定原始圖像的大小為M×N ,并將圖像分割成9個等大的塊狀子圖像。
步驟2 根據(jù)Logistic映射模型,迭代計算得到的偽隨機序列置亂這9個子圖像,重復(fù)對Logistic映射進(jìn)行迭代和執(zhí)行式 (2)操作,來獲得9個介于 [1,9]的不同整數(shù)值序列rand (xi)。
logistic映射模型如下
給定初始值x0,迭代N0次,獲得一個新的值xn;將xn代入式 (2)中,來獲得一個介于 [1,9]的整數(shù)值。式(2)如下
式中:rand——偽隨機值,mod x,( )y ——x對y取余。步驟3 然后將這一隨機序列用來對9個子圖像進(jìn)行置亂重排處理。原始圖像的分離和置亂的過程如圖1所示。
圖1 原始圖像的分離和置亂過程
為了混亂圖像像素值的位置,以便消除明文圖像中相鄰像素值之間的自相關(guān)性,本文采用行、列替換來對圖像進(jìn)行位置置亂處理。其步驟如下:
步驟1 假定圖像P 的大小為M ×N ,像素位置矩陣為
其中,pi,j(i=0,1,2...,M-1,j=0,1,2,...,N-1 )表示像素灰度值的位置。
步驟2 給定初始值x0,迭代Logistic映射模型N 次,獲得新的值xn;之后令
顯然l∈[0,M-1],然后重復(fù)對Logistic映射進(jìn)行迭代和執(zhí)行式 (4)操作,來獲得M 個介于 [0,M-1]的不同整數(shù)值序列random Xr=(z1,z2,...zM),其中當(dāng)i≠j時,zi≠zj。
步驟3 利用序列random Xr對圖像P 做矩陣行變換,變換方式為:將Z1行移動到第1行,Z2行移動到第2行,Z3行移動到第3 行,以此類推,最終將得到一個新的矩陣Pr
同理,再計算出對矩陣Pr進(jìn)行列變換的序列random Xc=(w1,w2,...wN)
同樣,l′∈[0,N-1],利用random Xc對矩陣Pr做列變換,變換后的矩陣為Prc
因此,本文通過像素矩陣的行、列替換來加密,并且算法的復(fù)雜性較高,在一定程度上能提高抗攻擊能力。
本文采用了混沌Lorenz系統(tǒng)和Chen系統(tǒng)來對圖像進(jìn)行加密,下面將分別介紹這兩種系統(tǒng)。
Lorenz系統(tǒng)是經(jīng)典的三維混沌系統(tǒng)[11],和低維混沌系統(tǒng)相比,其產(chǎn)生的加密混沌序列具有很多優(yōu)點:其結(jié)構(gòu)比低維混沌系統(tǒng)更為復(fù)雜,其產(chǎn)生的密鑰空間遠(yuǎn)遠(yuǎn)大于低維混沌系統(tǒng),它可采用單變量或多變量組合的加密混沌序列來對圖像進(jìn)行加密。因此,相對于低維混沌系統(tǒng),Lorenz系統(tǒng)更適合對數(shù)字信息進(jìn)行有效的加密。本文采用的Lorenz系統(tǒng)的動力學(xué)方程式為
式中:x1、x2、x3——狀態(tài)參量;a、b、c——系統(tǒng)參數(shù),典型的值為a=8/3,b=10,c=28,當(dāng)a,b 不變,c>24.74時,Lorenz系統(tǒng)處于混沌狀態(tài)。
Chen系統(tǒng)和Lorenz系統(tǒng)很相似,但是Chen系統(tǒng)具有更為復(fù)雜的拓?fù)浣Y(jié)構(gòu)和動力學(xué)行為[11]。Chen系統(tǒng)的動力學(xué)方程式為
式中:x4、x5、x6——狀態(tài)參量;α,β,γ——系統(tǒng)參數(shù),當(dāng)α=35,β=3,γ=28時,Chen系統(tǒng)處于混沌狀態(tài)。Chen混沌系統(tǒng)由于具有大的Lyapunov指數(shù),使它的動力學(xué)行為以及相空間變得更加復(fù)雜,系統(tǒng)變量多樣化,其圖像加密系統(tǒng)擁有較大的密鑰空間和較強的不可分析性與預(yù)測性,有利于對圖像進(jìn)行加密。
本文提出的加密算法的圖像分離、置亂以及擴散框架,如圖2所示。
圖2 圖像加密算法流程
該算法的思路和主要步驟如下:
步驟1 原始圖像的分離和置亂處理。
(1)假定圖像的大小為M×N ,像素位置矩陣為P。
(2)將原始圖像分離成9個等大的子圖像,利用隨機序列random X 對子圖像進(jìn)行置亂重排處理,獲得混亂的子圖像Pi(i=1,2,...,9)。
(3)分別對子圖像Pi進(jìn)行行、列變換的位置置亂操作,獲得置亂后的子圖像(i=1,2,...9)。
(1)分別利用Lorenz 系統(tǒng)和Chen 系統(tǒng)進(jìn)行迭代,Lorenz系統(tǒng)M0次,Chen系統(tǒng)迭代N0(其中M0≠N0)以消除不利的過渡程序?qū)用芟到y(tǒng)的影響。
(2)將Lorenz系統(tǒng)和Chen系統(tǒng)結(jié)合起來,同時對這兩種混沌系統(tǒng)進(jìn)行迭代,來獲得6組混沌序列x1,x2,x3,x4,x5,x6,并將這些序列按式 (10)進(jìn)行處理
(3)為了使兩種混沌系統(tǒng)是互相關(guān)的,進(jìn)行如下操作
其中,式 (11)中符合⊕表示異或計算。
(4)將處理得到的序列 (x1,x2,x3,x4,x5,x6)進(jìn)行排列組合,產(chǎn)生的不同組合狀態(tài),見表1。
表1 Lorenz混沌序列和Chen混沌序列的不同組合狀態(tài)
(5)計算組合狀態(tài)函數(shù)值
式中:Z——組合狀態(tài)函數(shù)值。顯然,z∈[1,15],當(dāng)z 等于表1中的序列號時,將選擇相應(yīng)的組合狀態(tài)來對圖像進(jìn)行異或操作。例如當(dāng)z=3 時,則選擇 (x1,x2,x4,x6)來對圖像進(jìn)行異或操作。
(6)根據(jù)步驟 (5)中得到的組合狀態(tài)值來對每個子圖像的灰度值進(jìn)行異或操作處理。擴散機制如下
式 (13)中,Vi,j表示加密后的灰度值,K 表示為兩種混沌系統(tǒng)的第K-1次迭代,⊕表示異或計算,Pxi表示z對應(yīng)序列號下的組合狀態(tài)值,V0i,j=128。
(7)執(zhí)行加密后,回到步驟 (6),重復(fù)執(zhí)行該步驟,直到全部子圖像的灰度值完全被加密。再組合所有子密文,輸出密文圖像。
圖像的解密過程是圖像加密的逆過程,由于本文篇幅有限,不作詳述。
某水利樞紐正常運行期近壩區(qū)域流場數(shù)值模擬…………………………………………………王靜靜,王金磊(1.66)
下面,借助仿真實驗對本文提出的加密算法的安全性能及有效性進(jìn)行驗證與分析。輸入一個大小為256×256的明文圖像,迭代次數(shù)為N0次,在MTLAB 軟件平臺上進(jìn)行仿真實驗。分別給出了原始圖像及相應(yīng)的直方圖和加密后得到的密文圖像及相應(yīng)直方圖。仿真結(jié)果如圖3 所示。從圖中可以看到,經(jīng)過對子圖像進(jìn)行分離和置亂處理后,圖像信息得到了充分?jǐn)_亂,很難從圖中得到原始信息,如圖3 (b)所示,但其灰度直方圖分布和原始圖像一樣,并沒有發(fā)生任何變化,其隨機性以及冗余性較低,很容易被攻擊者獲取圖像相關(guān)信息。而經(jīng)過擴散加密后,圖像灰度直方圖產(chǎn)生了顯著地變化,如圖3 (c)所示,與前面的灰度直方圖相比,其灰度表現(xiàn)出均勻狀態(tài),擁有較高的圖像冗余性與偽隨機性。因此,這一結(jié)果表明本文提出的圖像加密算法具有較好加密效果,擴散和混亂特性好,安全性較高。
圖3 本文加密算法的仿真結(jié)果
足夠大的密鑰空間是每個高度安全的加密系統(tǒng)應(yīng)該具備的。由本文算法描述可知,該算法的密鑰空間包括了初始值x0,x10,x20,x30,x40,x50,x60,以 及 參 數(shù)a,b,c,α,β,γ。本加密算法由3部分進(jìn)行:Logistic映射對圖像分離,Logistic映射對子圖像進(jìn)行位置置亂及子圖像的擴散加密。若計算精度為10-15,則3 個密鑰空間依次為:1015、(1015)9=10135、(1015)12=10180,因此密鑰總空間為1015×10135×10180=10330。另外,加之每次循環(huán)過程中的初始值不一樣,使得加密算法的密鑰空間更大,因此,如此巨大的密鑰空間足以抵抗窮舉強力攻擊。
加密后圖像的兩個相鄰像素點的相關(guān)性越低,則其安全性越高。本文任意擇取加密前與加密后的圖像中的2000對相鄰像素點。用相關(guān)系數(shù)rxy來表征,其計算模型如下
式中:xi和yi——圖像中相鄰的兩個像素點的灰度值,n——選取的相鄰點數(shù)量,E (xi)和E (yi)——數(shù)學(xué)期望。
圖4為加密前與加密后圖像的任意兩個相鄰像素點在X 軸方向的相關(guān)性測試結(jié)果。從圖4 (a)可知,明文圖像的相鄰像素值變?yōu)橐粭l對角線,表明其具有較強的相關(guān)性;而經(jīng)過本文提出的圖像加密系統(tǒng)加密后,像素值均勻地布滿了整個灰度平面,如圖4 (b)所示,其相關(guān)性顯著降低。
圖4 明文圖像與密文圖像中相鄰像素點的相關(guān)性仿真結(jié)果
表2是加密前后圖像在對角線、水平、垂直方向的相關(guān)性實驗結(jié)果。從表2 可以看出,明文圖像具有較高的相關(guān)性,水平方向達(dá)到0.9428,其值很接近1,因此容易受到統(tǒng)計攻擊,而經(jīng)過本文提出的加密方法之后的密文圖像的水平方向相關(guān)性約為0.0022,幾乎接近于零,說明任意兩個相鄰的像素點幾乎不相關(guān),加密效果好。
表2 加密前后的圖像相鄰像素點的相關(guān)性
這些數(shù)據(jù)顯示了本文加密算法能夠有效地消除圖像的相關(guān)性,使密文具有良好的擴散性及較強的抗統(tǒng)計攻擊能力。
由于圖像像素值有28種可能,因此信息熵達(dá)到最大理想值為8。信息熵的計算公式如下
式中:L——像素值,p m( )i ——mi出現(xiàn)的概率。經(jīng)過本文加 密 后,通 過 式 (18)計 算 得 到 圖 像 的 ( )H m =7.9987,該值非常接近8,由此表明本文算法在加密過程中基本沒有丟失信息,具有較強的抗熵攻擊性能。
高效的加密系統(tǒng)應(yīng)該具有敏銳的密鑰敏感性。本文測試密鑰參數(shù)x0的敏感性能,將x0增加和減去一個極其微小干擾值δ(10-15)后,變?yōu)椋▁0+δ)、(x0-δ),其它參數(shù)不變。
圖5是圖像該性能的仿真測試狀況,圖5 (a)是正確解密的密文圖像S;圖5 (b)是 (x0+δ)密鑰的解密圖S′;圖5 (c)是 (x0-δ)密鑰的解密圖S″。從圖中可以看到,哪怕初值x0發(fā)生極其微小的擾動,所得到的密文是截然不同的。為了使不同密鑰得到的密文之間的差異度數(shù)值化,本文采用密文像素變化率Psx( )0 來計算x0的敏感系數(shù),計算模型如下
式 中:W × H ——圖 像 大 小。S i,( )j 、S′i,( )j 與S″i,( )j ——密文S、S′與S″在坐標(biāo) i,( )j 處的灰度。如果x 不等于y,則Ns(x ,y) =1;反之則為0。通過計算得到Ps(X0)=99.85%,如圖6所示。
為了增強圖像加密系統(tǒng)的復(fù)雜性以及密文圖像混亂程度,以提高加密圖像的抵抗攻擊能力,本文提出了將并行子圖像與超混沌系統(tǒng)相結(jié)合的加密算法來對圖像進(jìn)行有效的加密。將Logistic映射用來對圖像進(jìn)行分離,以及對子圖像實施位置置亂和像素置亂;然后利用Lorenz系統(tǒng)和Chen系統(tǒng)同時迭代來獲得不同序列組合狀態(tài),并將其用來對每個子圖像進(jìn)行擴散加密操作。這一加密過程顯著提高了加密系統(tǒng)的復(fù)雜程度,兩混沌系統(tǒng)的同時結(jié)合,使其產(chǎn)生的混沌序列具有較好的偽隨機性能及不可預(yù)測性。對本文算法進(jìn)行仿真實驗,結(jié)果表明本算法的加密質(zhì)量好,擴散機制高度安全,且擁有較大的密鑰空間。
圖5 密鑰敏感性仿真實驗測試結(jié)果
圖6 加密圖像之間的差異度仿真結(jié)果
[1]PENG Chuan,LI Yuanxiang.Chaos and cellular automata based image encryption algorithm [J].Computer Engineering and Design,2012,33 (7):2526-2529 (in Chinese).[彭川,李元香.基于混沌和細(xì)胞自動機的圖像加密算法 [J].計算機工程與設(shè)計,2012,33 (7):2526-2529.]
[2]LIU Lepeng,ZHANG Xuefeng.Image encryption algorithm based on chaos and bit operations [J].Journal of Computer Applications,2013,33 (4):1070-1073 (in Chinese).[劉樂鵬,張雪鋒.基于混沌和位運算的圖像加密算法 [J].計算機應(yīng)用,2013,33 (4):1070-1073.]
[3]Sun Fuyan,LüZongwang.Digital image encryption with chaotic map lattices [J].Chinese Physics B,2011,20 (4):040506-1-040506-7.
[4]CHEN Zaiping,CAI Pengfei,DONG Enzeng.AES image encryption algorithm based on hyper-chaos [J].Journal of Jilin University (Information Science Edition),2013,31 (2):158-164 (in Chinese).[陳在平,蔡鵬飛,董恩增.基于超混沌AES圖像加密算法 [J].吉林大學(xué)學(xué)報 (信息科學(xué)版),2013,31 (2):158-164.]
[5]WANG Yaqing,ZHOU Shangbo.Image encryption algorithm based on fractional-order Chen chaotic system [J].Journal of Computer Applications,2013,33 (4):1043-1046 (in Chinese).[王雅慶,周尚波.基于分?jǐn)?shù)階陳氏混沌系統(tǒng)的圖像加密算法 [J].計算機應(yīng)用,2013,33 (4):1043-1046.]
[6]ZHAO Fanglin,MA Wentao.Simulation research on a kind of image hybrid encryption algorithm [J].Computer Simulation,2012,29 (5):278-282 (in Chinese). [趙芳玲,馬文濤.一種圖像混合加密算法仿真研究 [J].計算機仿真,2012,29(5):278-282.]
[7]Lu HB,Sun Y.Image encryption scheme based on novel hyperchaotic system [J].Computer Science,2011,38(6):49-52.
[8]SUN Jinguang,WANG Jie,JIANG Wentao,et al.Application of improved blocking algorithm in rectangle image encryption [J].Application Research of Computers,2013,30 (1):282-284 (in Chinese).[孫勁光,汪潔,姜文濤,等.改進(jìn)的分塊算法在矩形圖像加密中的應(yīng)用 [J].計算機應(yīng)用研究,2013,30 (1):282-284.]
[9]ZHOU Lin,XU Jinchao.Image encryption algorithm based on dual chaotic maps[J].Industrial Control Computer,2013,26 (8):23-25(in Chinese).[周霖,徐錦超.基于雙重混沌映射的圖像加密方法[J].工業(yè)控制計算機,2013,26 (8):23-25.]
[10]ZHANG Fengbo,F(xiàn)ANG Pengfei,WU Chengmao,et al.A packet encryption algorithm based on chaotic mapping [J].Journal of Xi’an University of Posts and Telecommunications,2013,18 (2):26-32 (in Chinese).[張豐博,方鵬飛,吳成茂,等.一種基于混沌映射的圖像分組加密算法 [J].西安郵電大學(xué)學(xué)報,2013,18 (2):26-32.]
[11]Wang Xingyuan,Chen Feng,Wang Tian.A new compound mode of confusion and diffusion for block encryption of image based on chaos[J].Communications in Nonlinear Science and Numerical Simulation,2010,15 (9):2479-2485.