李伊林
(江西省水利科學(xué)研究院,江西 南昌 330029)
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,越來(lái)越多的信息在網(wǎng)絡(luò)通道中進(jìn)行交換,如何提高這些信息的安全性是當(dāng)前密碼學(xué)所面臨的一個(gè)重要問(wèn)題。對(duì)于數(shù)據(jù)量大的圖像信息,傳統(tǒng)意義上的加密會(huì)出現(xiàn)運(yùn)行效率慢的問(wèn)題,而借助混沌系統(tǒng)對(duì)圖像進(jìn)行加密顯然可提高效率。低維混沌系統(tǒng)由于結(jié)構(gòu)簡(jiǎn)單、易于實(shí)現(xiàn)等,在圖像加密中有較為廣泛的應(yīng)用,然而也正是其方程結(jié)構(gòu)上過(guò)于簡(jiǎn)單的特點(diǎn)導(dǎo)致算法易被破解[1-5]。對(duì)于高維的超混沌系統(tǒng),由于其密鑰空間巨大,且含有2個(gè)正的Lyapunov指數(shù),具有更高的復(fù)雜性及更好的不可預(yù)測(cè)性,顯然更適用于數(shù)字圖像加密。高鐵剛等[6]較早提出了一種超混沌圖像加密算法,但該算法密鑰與明文沒(méi)有關(guān)聯(lián)性,無(wú)法抵御已知明文攻擊[7-8]。盧輝斌等[9]提出的新型超混沌圖像加密方案與高鐵剛等在加密思想方面相接近,因此也存在安全性問(wèn)題。文獻(xiàn)[10]針對(duì)王靜等[8]的改良算法進(jìn)行分析和攻擊,發(fā)現(xiàn)其同樣可被破解。最近,鐘厚橋等[11]提出了一種基于超混沌序列的加密方案,該方案在加密過(guò)程中采取了圖像置亂與置換相結(jié)合的方式,安全性較高。本文基于超混沌系統(tǒng)介紹了一種自適應(yīng)圖像加密算法,其主要思想如下:一是將明文像素信息加入到密鑰序列的變換處理中,提高了密文、明文與密鑰之間的敏感性;二是采取自適應(yīng)加密策略,節(jié)省生成密鑰序列的時(shí)間開(kāi)銷(xiāo),提高算法加密效率;三是對(duì)前一密文像素進(jìn)行非線性模加法運(yùn)算產(chǎn)生中間密鑰,利用中間密鑰對(duì)當(dāng)前像素執(zhí)行異或加密運(yùn)算,該過(guò)程不可逆,其安全性取決于密鑰,符合克爾克霍夫原則。
本文借助文獻(xiàn)[12]提出的超混沌系統(tǒng):
根據(jù)四階龍格-庫(kù)塔離散化算法對(duì)系統(tǒng)(1)進(jìn)行迭代可得到原始超混沌序列。由于該原始超混沌序列的數(shù)值類(lèi)型和圖像像素類(lèi)型不匹配,因此該序列不可直接用于數(shù)字圖像加密,需要進(jìn)行預(yù)先處理。
假設(shè)產(chǎn)生的4組原始超混沌序列為:{xj(i)},(j=1,2,3,4;i=1,2,…,L/4)。對(duì)序列各元素按式(2)進(jìn)行變換處理,即取數(shù)值小數(shù)點(diǎn)后的第12、13、14位十進(jìn)制數(shù)字組成一個(gè)新的整數(shù)xj,再將xj按式(3)組合得到長(zhǎng)度為L(zhǎng)的密鑰序列K,式中abs()表示取絕對(duì)值,floor()表示向負(fù)方向取整,L表示算法所需密鑰的數(shù)目,L=M+N,M、N分別為像素高度與寬度。
對(duì)密鑰序列K進(jìn)行偽隨機(jī)性能檢驗(yàn),結(jié)果如圖1所示,為防止混沌迭代暫態(tài)效應(yīng)影響,測(cè)試中舍棄了前面部分初始迭代狀態(tài)值。圖1(a)、(b)分別是密鑰序列自相關(guān)與互相關(guān)系數(shù)曲線,圖1(c)是對(duì)密鑰序列K連續(xù)抽取長(zhǎng)度為10 000個(gè)數(shù)值時(shí)各值的概率分布情況,圖1(d)是初值x1(0)誤差為10-15時(shí)所得2組密鑰序列前200個(gè)元素差值情況。由檢驗(yàn)結(jié)果可知改造后密鑰序列能夠滿足理想偽隨機(jī)性條件。
為了使密鑰序列與明文圖像發(fā)生關(guān)聯(lián),再根據(jù)明文像素信息對(duì)密鑰序列各元素進(jìn)行如下取模運(yùn)算:K=mod(S,K),式中S為原始圖像像素值總和,mod()表示取余。將取模變換后的K劃分成長(zhǎng)度分別為M與N的2組密鑰KM與KN。
假設(shè)原始圖像為P,其像素大小為M×N,所有像素值總和為S,加密后的圖像為E。將系統(tǒng)狀態(tài)初值x=[x1(0),x2(0),x3(0),x4(0 )]載入系統(tǒng)(1)進(jìn)行迭代,舍棄前面λ次結(jié)果后再迭代(M+N)/4次,將所得超混沌序列按前述方法進(jìn)行改造處理,得到2組密鑰KM與KN。
加密算法步驟如下:
步驟2 根據(jù)中間密鑰G( 1,1)按照式(5)對(duì)第1行第1個(gè)像素執(zhí)行加密操作,E( 1,1)表示加密后的像素,bitxor()表示異或運(yùn)算。
步驟1 根據(jù)式(4)得到圖像P第1行第1個(gè)像素P( 1,1)的中間密鑰,S表示原始圖像像素值總和,KM(1)×KN(1)表示2組密鑰序列KM、KN首個(gè)數(shù)值的乘積。
步驟3 利用第1行第n-1個(gè)密文像素E(1 ,n-1)按照式(6)生成第 1行第 n個(gè)像素 P(1 ,n)的中間密鑰G( 1,n),n∈ (2 ,3,…,N)。
步驟4 根據(jù)中間密鑰G( 1,n)按照式(7)對(duì)第1行第n個(gè)像素執(zhí)行加密操作,n∈ (2 ,3,…,N)。
步驟5 當(dāng)?shù)?行所有像素完成加密后,以第1行密文像素E( 1,):為基礎(chǔ),依次生成后一行像素的中間密鑰序列,即按照式(8)得到中間密鑰序列G( m,:),E( m-1,:)表示上一行密文像素,m∈(2,3,…,M)。
步驟6 再根據(jù)中間密鑰G( m,):按照式(9)對(duì)第m行像素P( m,):執(zhí)行加密操作,m∈(2,3,…,M)。
當(dāng)加密操作遍歷所有像素后得到最終密文圖像。從加密公式可看出,每個(gè)像素均采用了不同的中間密鑰進(jìn)行加密操作,滿足“一次一密”的密碼原則,因而具有較高的安全性。
圖像解密為加密的逆序過(guò)程,本算法按如下方法進(jìn)行解密:
步驟1 對(duì)密文圖像第M至第2行像素按式(8)、(10)執(zhí)行逆序解密操
步驟2 對(duì)密文圖像第1行第N至第2個(gè)像素按式(6)、(11)執(zhí)行逆序解密操作,n∈(N,N -1,…,2);
步驟3 對(duì)密文圖像第1個(gè)像素按式(4)、(12)執(zhí)行解密操作。
態(tài)初值取 x=[1.72,3.26,2.74,1.85 ],預(yù)迭代次數(shù) λ=100,待加密圖像像素值總和為S,生成密鑰序列對(duì)圖像進(jìn)行加解密仿真。
3.1.1 直方圖分析
實(shí)驗(yàn)中選用大小為256×256、灰度為256級(jí)的Lena等經(jīng)典圖像進(jìn)行測(cè)試,采用Matlab 7.10作為仿真軟件,實(shí)驗(yàn)環(huán)境為2.4 GHz的32位PC機(jī)。系統(tǒng)狀
圖2 明文圖像及其直方圖
圖2、圖3分別是Lena圖像加密前與加密后的直觀圖像及對(duì)應(yīng)直方圖。從圖2可見(jiàn),原始圖像灰度分布不均勻,能反映出原始圖像灰度統(tǒng)計(jì)分布情況。而加密后圖像變得雜亂無(wú)章,如圖3所示,其像素值呈現(xiàn)平坦分布特性,各像素值取值概率趨于均等,隱藏了原始圖像灰度分布情況。
圖3 密文圖像及其直方圖
3.1.2 相關(guān)性分析
分別選取Lena明、密文圖像所有相鄰像素對(duì)進(jìn)行相關(guān)性統(tǒng)計(jì)測(cè)試,其中包括水平、垂直、對(duì)角3個(gè)方向,結(jié)果如表1所示。從表1中數(shù)據(jù)可看出,明文圖像相鄰像素之間存在較大的相關(guān)性,而使用本算法加密后這種相關(guān)性已基本被解除。與文獻(xiàn)[10]與文獻(xiàn)[13]同樣方法下的相關(guān)性系數(shù)結(jié)果相對(duì)比,本算法所得相關(guān)性系數(shù)更接近于0。水平方向隨機(jī)選取2000對(duì)相鄰像素對(duì)在灰度值區(qū)間[0,255]分布情況如圖4所示,由圖4可直觀地看到明文圖像相鄰像素點(diǎn)灰度值分布表現(xiàn)出連續(xù)性特征,加密后這種連續(xù)性被強(qiáng)制置亂,其相鄰像素的灰度值隨機(jī)雜亂出現(xiàn),且近乎均勻地布滿在整個(gè)灰度區(qū)域。
圖4 圖像相鄰像素水平相關(guān)分布
表1 相鄰像素相關(guān)系數(shù)
3.1.3 信息熵分析
圖像信息熵計(jì)算式如下所示[14]:
對(duì)于256級(jí)灰度圖像其理想信息熵值為:H(x)=N=8。根據(jù)式(13)計(jì)算本算法得到的Lena密文圖像信息熵可達(dá)到7.997,說(shuō)明算法對(duì)圖像置亂充分,加密算法對(duì)抵抗熵攻擊是安全的。
像素變化率(NPCR)和平均改變強(qiáng)度(UACI)是衡量一個(gè)圖像加密算法抵抗差分攻擊的重要指標(biāo)。設(shè)僅一個(gè)像素不同的2幅明文對(duì)應(yīng)的密文分別為C1和 C2,各個(gè)像素分別表示為 C1(i,j)和 C2(i,j),若 C1(i,j)=C2(i,j),定義 D(i,j)=0;若 C1(i,j)≠ C2(i,j),定義 D( i,j)=1。則 NPCR 與 UACI的計(jì)算公式如下:
圖5 密文圖像像素差值
對(duì)于一幅256級(jí)的灰度圖像,通過(guò)上述公式可計(jì)算得到其像素變化率與平均改變強(qiáng)度的理想值分別為99.6094%、33.4635%[10]。在此選取 100 組僅有一個(gè)像素值不同的Lena明文圖像進(jìn)行測(cè)試,且該像素點(diǎn)坐標(biāo)在明文圖像各區(qū)域隨機(jī)選擇。計(jì)算得到這100組密文圖像的 NPCR與 UACI平均值分別為,可見(jiàn)所得NPCR、UACI值均非常接近理想值。同時(shí)選取一組密文圖像,在不同坐標(biāo)位置隨機(jī)抽取200組像素對(duì),并繪制其灰度值差曲線如圖5所示。實(shí)驗(yàn)表明,如果明文發(fā)生微小改變,則密文會(huì)表現(xiàn)出極大不同,表明密文圖像對(duì)明文圖像高度敏感,算法可有效抵抗差分攻擊。表2同時(shí)給出了文獻(xiàn)[15-17]的相應(yīng)數(shù)據(jù)值,文獻(xiàn)[15]需要對(duì)圖像進(jìn)行2輪加密,文獻(xiàn)[17]需要對(duì)圖像進(jìn)行3輪加密,而本文進(jìn)行一輪加密后的NPCR、UACI值高于文獻(xiàn)[15-17]相應(yīng)值,說(shuō)明本算法抗差分攻擊能力更強(qiáng)。
表2 抗差分性能分析
測(cè)試時(shí)包括以下2方面,一是微小變化的2個(gè)密鑰加密同一明文圖像后應(yīng)得到2個(gè)不同的密文,二是微小變化的2個(gè)解密密鑰解密同一密文的結(jié)果也應(yīng)該截然不同[10]。
在測(cè)試前使用初值 x=[1.72,3.26,2.74,1.85]對(duì)Cameraman圖像進(jìn)行加密。
1)微小變化的2個(gè)密鑰加密同一明文圖像。
加密時(shí)選取初值密鑰x2(0)誤差10-15,其余參數(shù)值不變。當(dāng)密鑰x2(0)=3.26時(shí)隨機(jī)選取密文圖像100個(gè)像素繪制曲線,如圖6中實(shí)線所示,同時(shí)保存這100個(gè)像素坐標(biāo)位置;當(dāng)密鑰x2(0)=3.26+10-15時(shí),在相同坐標(biāo)位置選取100個(gè)像素繪制曲線,如圖6虛線所示。同時(shí)計(jì)算2幅加密圖像的NPCR、UACI值分別可達(dá)到99.6283%、33.4805%。由此可見(jiàn),當(dāng)微小變化的2個(gè)密鑰對(duì)同一幅圖像進(jìn)行加密所得密文相差巨大,這體現(xiàn)了算法對(duì)密鑰敏感。對(duì)密鑰x1(0)、x3(0)、x4(0)進(jìn)行同樣測(cè)驗(yàn),所得結(jié)果類(lèi)似。
圖6 密文圖像像素分布
2)微小變化的2個(gè)解密密鑰解密同一密文圖像。
圖7 錯(cuò)誤解密圖像及其直方圖
解密時(shí)選取初值密鑰x1(0)誤差10-15,其余參數(shù)值不變,結(jié)果如圖7、圖8所示。圖7為錯(cuò)誤解密圖像及直方圖,圖8為正確解密圖像及直方圖。可見(jiàn),加密圖像在密鑰誤差極其微小情況下解密仍是雜亂無(wú)章,圖像像素值分布也仍呈現(xiàn)均等分布特征,驗(yàn)證了密鑰敏感性。對(duì)密鑰x2(0)、x3(0)、x4(0)進(jìn)行同樣測(cè)驗(yàn),所得結(jié)果類(lèi)似。
圖8 正確解密圖像及其直方圖
本文仿真時(shí)采用的數(shù)據(jù)為雙精度浮點(diǎn)實(shí)數(shù),可精確到小數(shù)點(diǎn)后15位數(shù),則4個(gè)初值組成的密鑰空間可達(dá)到:1015×1015×1015×1015=1060≈2199,可見(jiàn)算法密鑰空間巨大。如果同時(shí)考慮預(yù)迭代次數(shù)λ和原始像素值總和S,則擁有更大的密鑰空間。
本算法加密一幅大小為256×256的8位灰度圖像平均時(shí)間開(kāi)銷(xiāo)為0.051 s,而文獻(xiàn)[9]時(shí)間開(kāi)銷(xiāo)為0.82 s,相比快了約16倍,可見(jiàn)在運(yùn)行效率方面更具優(yōu)勢(shì)。
本算法采用像素自適應(yīng)加密方法進(jìn)行加密,其復(fù)雜度主要體現(xiàn)在以下幾方面:
1)算法借助超混沌系統(tǒng)產(chǎn)生密鑰序列,使得針對(duì)低維混沌系統(tǒng)的相空間重構(gòu)攻擊技術(shù)難于發(fā)揮作用,密文不容易被破解。同時(shí)系統(tǒng)密鑰參數(shù)與控制參數(shù)增多,相比低維混沌系統(tǒng)大大擴(kuò)展了密鑰空間,達(dá)到了1060數(shù)量級(jí),因此算法表現(xiàn)出很強(qiáng)的抵抗窮舉攻擊的能力。
2)算法中所用密鑰序列與原始圖像像素信息相關(guān)聯(lián),因而不同圖像對(duì)應(yīng)的密鑰序列不同,也即若明文發(fā)生改變必然會(huì)影響密鑰序列的生成,最終會(huì)導(dǎo)致密文圖像的不同,這使得明文、密文與密鑰關(guān)系非常復(fù)雜。而且從加密過(guò)程來(lái)看,用于像素加密的中間密鑰均由前一個(gè)密文像素非線性運(yùn)算產(chǎn)生,該過(guò)程具有較高的復(fù)雜性和不可逆推性,因此密碼分析者要想進(jìn)行反推是困難的。
3)對(duì)于一幅大小為M×N的圖像,通常需要產(chǎn)生至少M(fèi)×N個(gè)混沌序列值作為密鑰,而本方案中僅需要M+N個(gè)混沌序列值即可完成加密,這大大節(jié)省了混沌迭代所需時(shí)間開(kāi)銷(xiāo)。在加密后期還采取整行方式進(jìn)行操作,無(wú)需逐個(gè)像素進(jìn)行加密,這很大地提高了算法加密速度,因此整個(gè)算法執(zhí)行效率較高。
本文介紹了一種基于超混沌的自適應(yīng)圖像加密算法。該算法先是根據(jù)原始像素信息對(duì)密鑰序列進(jìn)行改造處理,建立了密鑰與明文圖像的關(guān)聯(lián)性。然后通過(guò)前一密文像素與密鑰值進(jìn)行非線性變換產(chǎn)生中間密鑰,利用中間密鑰對(duì)各個(gè)像素采取自適應(yīng)加密策略進(jìn)行加密操作。這種方法不僅節(jié)省了密鑰長(zhǎng)度與加密時(shí)間開(kāi)銷(xiāo),而且具有更好的密鑰敏感性。實(shí)驗(yàn)結(jié)果表明,該算法安全高效,在軍事、信息存儲(chǔ)、信息傳輸?shù)葘?shí)際應(yīng)用中具有較大前景。
[1] Wei Jun,Liao Xiaofeng,Wong Kwok-wo,et al.Cryptanalysis of a cryptosystem using multiple one-dimensional chaotic maps[J].Communications in Nonlinear Science and Numerical Simulation,2007,12(5):814-822.
[2] Wang Xingyuan,Wang Xiaojuan,Zhao Jianfeng,et al.Chaotic encryption algorithm based on alternant of stream cipher and block cipher[J].Nonlinear Dynamics,2011,63(4):587-597.
[3] He Jun,Qian Haifeng,Zhou Yuan,et al.Cryptanalysis and improvement of a block cipher based on multiple chaotic systems[J].Mathematical Problems in Engineering,2010,2010:Article ID 590590.
[4] 王繼志,王英龍,王美琴.一類(lèi)基于混沌映射構(gòu)造Hash函數(shù)方法的碰撞缺陷[J].物理學(xué)報(bào),2006,55(10):5048-5054.
[5] Liu Shubo,Sun Jing,Xu Zhengquan,et al.Digital chaotic sequence generator based on coupled chaotic systems[J].Chinese Physics B,2009,18(12):5219-5227.
[6] Gao Tiegang,Chen Zengqiang.A new image encryption algorithm based on hyper-chaos[J].Physics Letters A,2008,372(4):394-400.
[7] Rhouma R,Belghith S.Cryptanalysis of a new image encryption algorithm based on hyper-chaos[J].Physics Letters A,2008,372(38):5973-5978.
[8] 王靜,蔣國(guó)平.一種超混沌圖像加密算法的安全性分析及其改進(jìn)[J].物理學(xué)報(bào),2011,60(6):83-93.
[9] 盧輝斌,孫艷.基于新的超混沌系統(tǒng)的圖像加密方案[J].計(jì)算機(jī)科學(xué),2011,38(6):149-152.
[10] 朱從旭,孫克輝.對(duì)一類(lèi)超混沌圖像加密算法的密碼分析與改進(jìn)[J].物理學(xué)報(bào),2012,61(12):76-87.
[11] 鐘厚橋,李建民,林振榮,等.基于超混沌序列的圖像加密方案[J].計(jì)算機(jī)應(yīng)用研究,2013,30(10):3110-3113.
[12] Wang Haoxiang,Cai Guoliang,Miao Sheng,et al.Nonlinear feedback control of a novel hyperchaotic system and its circuit implementation[J].Chinese Physics B,2010,19(3):154-161.
[13]李玲,王偉男,李津杰,等.基于Logistic映射和超混沌的自適應(yīng)圖像加密算法[J].微電子學(xué)與計(jì)算機(jī),2012,29(1):42-46.
[14] 柏森,胡中豫,吳樂(lè)華,等.通信信息隱匿技術(shù)[M].北京:國(guó)防工業(yè)出版社,2006.
[15] 朱從旭,胡玉平,孫克輝.基于超混沌系統(tǒng)和密文交錯(cuò)擴(kuò)散的圖像加密新算法[J].電子與信息學(xué)報(bào),2012,34(7):1735-1743.
[16] Teng Lin,Wang Xingyuan.A bit-level image encryption algorithm based on spatiotemporal chaotic system and selfadaptive[J].Optics Communications,2012,285(8):4048-4054.
[17] Zhu Zhiliang,Zhang Wei,Wong Kwok-wo,et al.A chaosbased symmetric image encryption scheme using a bit-level permutation[J].Information Sciences,2011,181(6):1171-1186.