趙亞慧,楊 有,翟 浩
(重慶師范大學計算機與信息科學學院, 重慶 沙坪壩 401331)
?
一種基于超混沌系統的圖像加密算法
趙亞慧,楊有,翟浩
(重慶師范大學計算機與信息科學學院, 重慶沙坪壩401331)
[摘要]文章針對目前混沌圖像加密算法密鑰空間小的問題,提出一種基于超混沌系統的圖像加密算法.該算法的主要思想是利用兩組不同的初始值產生兩組不同的隨機序列,然后對數字圖像進行加密.加密算法主要分為兩部分:首先利用隨機序列對圖像像素進行置亂,其次將置亂后的矩陣利用隨機序列進行像素值替代.實驗結果以及安全性分析表明:該算法具有較大的密鑰空間,較低的相鄰像素相關性,并且能夠有效抵御窮舉攻擊和統計攻擊.
[關鍵詞]超混沌系統;圖像加密;像素置亂;像素值替代
信息安全越來越引起人們的注意.目前已經有數字水印、信息加密、信息隱藏[1]等,密碼學中圖像加密領域也逐漸被人們關注并得到深入研究.自1989年Robert A. J. Matthews首次提出將混沌應用于密碼學以來,由于混沌系統其自身對初值和系統參數的敏感性以及偽隨機性而廣泛應用到圖像加密中.此后,低維混沌系統得到了廣泛使用[2,3].雖然這些低維混沌系統具有形式簡單、運行效率高的優點,但密鑰空間太小,使用窮舉攻擊破解難度不大[4].高維混沌系統有更大的密鑰空間,實現簡單,隨機性更好,能夠更有效地抵御相空間重構、窮舉攻擊等破譯方法[5].同時,高維混沌中的四維混沌系統也就是超混沌系統,擁有兩個以上正的Lyapunov指數,正的Lyapunov指數越多,系統的運動軌跡越復雜、越難以預測,對初始條件也越敏感,在加密中使用超混沌系統,更能提高系統的安全性.
隨著現代計算機系統性能的提高,研究超混沌圖像加密越來越重要.盧輝斌[6]等人提出了一種基于新型超混沌系統的加密算法.該算法在總體上沿用像素位置置亂和像素值替代的基本結構,但只有一輪加密替代操作,復雜度不高.文獻[7]和文獻[8]發現缺陷并分別進行改進.文獻[9]提出一種圖像置亂與置換的方案,方案中使用與明文圖像信息相關的序列進行置亂替換,并使加密公式的密文和密鑰、明文之間的關系更復雜.但是,由于計算機的精度有限,影響了混沌隨機序列的隨機特性,使得產生的混沌序列的初值敏感性降低,存在一定的周期,并且混沌密碼的安全性很大程度上依賴于混沌序列的分布特性、復雜性和隨機性.因此,在本文的加密方案中采用兩組不同的初值,使用同一混沌系統以及系統參數來進行迭代,將得到的兩組隨機序列交叉使用,并將像素的置亂與明文信息相關聯,增強了明文對密鑰的敏感性.理論分析以及實驗仿真證明:通過該算法加密后的密文、明文和密鑰之間的關聯度非常低,擁有較大的密鑰空間,使算法能夠抵抗選擇明文和選擇密文的攻擊,具有良好的安全性,同時算法實現簡單,也具有較高的執行效率.
1 超混沌系統加密算法
1.1超混沌系統
本文采用的超混沌系統的動力學方程為[10]:
(1)

1.2像素位置置亂
數字圖像是一個由灰度值組成的二維矩陣,通過對原圖像矩陣進行一系列的非線性變換,使得圖像中的像素點重新隨機排列,得到一幅雜亂無章的圖像.雖然從統計直方圖來看,原圖像和新圖像的統計規律完全相同,但從視覺效果來看完全不同,從而起到圖像加密的作用.
設數字圖像為PM×N,圖像大小為M×N,P(i,j)(i=1,2,…,M;j=1,2,…,N)表示圖像像素的灰度值.像素矩陣可以表示為:
(2)
Step1:算法中將給出兩組初始值(x10,x20,x30,x40),(y10,y20,y30,y40)作為密鑰,分別使用四階五級龍格-庫塔函數迭代n0次,n0與初始條件及系統參數有關.得到兩組混沌序列,分別設為{xi(j)},{yi(j)}(i=1,2,3,4;j=1,2,…,n0).為消除暫態過程帶來的有害效應,增強算法對初始密鑰的敏感性,將兩組序列分別保留后M個和N個值作為混沌序列,得到兩組序列{ai(j) , i=1,2,3,4; j=1,2,…,M},{bi(j) , i=1,2,3,4; j=1,2,…,N}.
Step2: 計算原圖像所有像素灰度值的和,得到sumP,并計算如下值:
s=sumP?16
(3)




(a)在(x1,x2)平面的投影;(b)在(x1,x3)平面的投影;
為了選取兩個序列分別進行行置亂和列置亂,我們設對應關系如下:若s=0,選取序列{a1(j)}, {b1(j)};若s=1,選取序列{a1(j)}, {b2(j)};若s=2,選取序列{a1(j)}, {b3(j)};若s=4,選取序列{a1(j)}, {b4(j)}等.s∈[0,5],因此共16個對應關系.最后,將得到的兩個序列分別進行升序排序,將排序后新的向量中值的位置組成位置編號序列,并使用這兩個位置編號序列分別對原圖像矩陣P進行行的置亂和列的置亂,最終得到置亂后的矩陣Q.
原圖像矩陣經過以上算法的像素置亂,不僅降低了相鄰像素之間的相關性,并且將圖像像素的置亂與原圖像信息緊密相關,提高了密文對明文的敏感性.但為了進一步加強算法的安全性,改變圖像的灰度直方圖,使算法更能抵抗統計攻擊,還需要進行圖像像素值替代.
1.3圖像像素擴散
圖像像素值的擴散是將冗余度高、相關性強的明文信息作用到密文中,以便隱藏明文的統計信息.為了達到擴散替代的效果,本文使用置亂后的圖像Q,進行以下算法來提高安全性.
Step1:將置亂后的圖像矩陣Q按逐行掃描順序得到的像素序列為{Q(i),i=1,2,…,L},其中L=M×N.將系統迭代得到的兩組序列{xi(j)},{yi(j)}分別取后L/4個,假設L為4的倍數,得到序列
{mi(j),i=1,2,3,4;j=1,2,…,L/4 },
{ni(j),i=1,2,3,4;j=1,2,…,L/4}.
Step2:將序列{mi(j)},{ni(j)}組合成四組序列:{m1(j),n3(j),m2(j),n4(j)},{n1(j),m3(j),n2(j),m4(j)},{m1(j),n1(j),m2(j),n2(j)},{n3(j),m3(j),n4(j),m4(j)}.選定一組序列作為密鑰,將選定序列的組數設為k.若k=3,則首先選定第三組,并將該組序列的第一組狀態值加入序列L1中,此時L1={m1(0),n1(0),m2(0),n2(0)},并繼續計算如下k的值:
k=(m1(0)+n1(0)+m2(0)+n2(0))mod4
(4)
若計算得到k=0,則選取第一組序列中的第2組狀態值加入序列L1,即L1={L1,m1(1),n3(1),m2(1),n4(1)},以此類推,通過計算i的值來決定下一組要加入序列L1的狀態值.最終直至L1的長度為L.
Step3:將四組序列中沒有加入L1的狀態值,按照組數依次組成序列L2,序列L2的長度也為L.
Step4:由于超混沌系統迭代得到實值序列的數值類型與數字圖像的像素值類型不匹配,不能直接用于圖像的加密.因此,算法中將使用(5)式對序列L1,L2中的狀態值進行改造:
Li(j)=mod(fix(abs(Li(j)-floor(Li(j)))
*10^15),256)
(5)
其中:i= 1,2 ;j= 1,2,…,L.函數abs(Li(j))表示取Li(j)的絕對值,函數floor(Li(j))表示取小于或等于Li(j)的最大整數,函數fix()表示將得到的結果向零靠攏取整,最終Li(j)將得到[0,255]之間的整數.
Step5:將改造后的序列L1,L2對圖像像素值進行異或操作.已知原圖像像素序列{D(i),i=1,…,L},加密后的像素序列為{C(i),i=0,…,L},首先將C(0)設定一個[0,255]的值作為密鑰,并由下面公式計算得到q的值:
(6)
若q=0,則使用公式(7)對像素D(i)進行替代操作,得到加密后的像素值C(i).
C(i)=D(i)?L1(i)?C(i-1)
(7)
若q=1,則使用公式(8)對像素D(i)進行替代操作,得到加密后的像素值C(i).
C(i)=D(i)?L2(i)?C(i-1)
(8)
Step6:重復以上步驟,直到所有像素都加密完成,最終將得到的序列{C(i)}轉化為M×N的矩陣,便得到加密后的圖像.
在以上的像素替代中,首先對兩組隨機序列值進行處理,使序列值的數值類型不僅能夠用于圖像像素的加密,并且將兩組由不同初始值產生的隨機序列按照一定規則重新進行交叉組合,使最終得到兩組新的序列增加了對密鑰的敏感性,有效地增強了算法的安全性.
圖像的加密一定對應圖像的解密,解密過程就是加密的逆過程.加密過程先對原圖像進行像素置亂,然后進行像素的擴散和替代,而解密是先對密文進行反替代,再將反替代后的密文進行反置亂.首先已知本算法在進行加密時所需的加密密鑰,并將密鑰中的兩組初始值使用本算法中的超混沌系統進行迭代得到兩組序列,然后將密文進行(9)式和(10)式的反替代
D(i)=C(i)?L1(i)?D(i-1)
(9)
D(i)=C(i)?L2(i)?D(i-1)
(10)
將反替代后的矩陣再分別進行列的反置亂和行的反置亂,最終得到原圖像.
2實驗結果及分析
在實驗仿真中,采用經典的大小為256×256的8位圖像“cameraman”,如圖2(a)所示.

(a)原圖像 (b)置亂后圖像

(c)加密后圖像 (d)解密后圖像
作為測試圖像,使用Matlab7.1作為仿真實驗平臺.在本算法中,對超混沌系統進行迭代所需的兩組狀態初始值分別設為(x10,x20,x30,x40) =(2.5,5.2,3.0,7.3),(y10,y20,y30,y40) =(3.0,6.0,3.5,6.8).為了使系統處于超混沌狀態,將系統參數設為:a=27.5,b=3,c=19.3,d=2.9,e=3,并將在計算過程中使用的四階五級龍格-庫塔函數的步長,也就是函數的迭代次數,設置為0.001,其它參數C(0)=86,k=2.
2.1加密效果分析
通過設置以上參數,將算法運行在Matlab中得到以下實驗結果,如圖2所示.其中圖2(a)為原圖像“cameraman”, 圖2(b)為圖像像素置亂后的圖像,圖2(c)為最終加密后的圖像,圖2(d)為解密后的圖像.通過對圖2(a)、圖2(b)和圖2(c)進行對比,發現圖像在進行像素置亂后成為與原圖像完全不同的圖像,并且在進行像素混亂后加密的效果更加明顯,直觀上來說,無法從加密后的圖像中獲取原圖像的任何信息.
2.2統計分析
圖像的灰度直方圖描述了圖像中像素值的分布情況,是圖像的重要統計特性.圖3(a)為原圖像的灰度直方圖.可以看出,圖像像素分布極不均勻,而一個好的加密方案應該消除圖像的這種統計特性,使加密后的圖像能夠抵御統計方法的攻擊.經過本算法加密后圖像的灰度直方圖如圖3(b).可以看出,加密后圖像的像素分布非常均勻,因而本算法能有效地抵抗統計攻擊.

圖3 加密前后圖像直方圖
2.3相關性分析
由于圖像本身固有的特性,使得圖像中相鄰像素之間存在很大的相關性,包括水平像素相關性、垂直像素相關性和對角像素相關性,而攻擊者常常利用這種特性進行統計攻擊,好的加密算法應該打破這種相關性,借助概率論的相關系數來衡量相鄰像素的相關性,相關系數rxy的定義如下:
(11)
(12)
(13)
(14)


圖4 圖像垂直相關性

方向原始圖像密文圖像Lena密文文獻[6]Lena密文水平0.9291-0.0021 0.00230.0064垂直0.9599-0.00400.00330.0084對角0.90600.0108-0.00200.0107
2.4密鑰敏感性測試
一個好的加密方案應該對密鑰有很高的敏感性,當輸入一個錯誤的密鑰,不論與正確密鑰值的誤差有多小,得到解密后的圖像都應該與明文有很大的差別,并且不能從錯誤密鑰解密后的圖像中得到原圖像的任何信息.錯誤解密后的圖像與原圖像差別大小可以通過像素變化率NPCR來進行計算:

(15)
其中,M×N為圖像大小,D(i,j)為一個二值矩陣.假如C1和C2為兩個大小為M×N的圖像矩陣,當C1(i,j) = C2(i,j),則D(i,j)=0;當C1(i,j) ≠ C2(i,j),則D(i,j)=1.對于本系統的密鑰敏感度將進行多輪測試,其中每一輪都將微小改變正確密鑰組中的一個參數.例如:將x10設置為x10=2.500 000 000 000 01,與x10相差1014倍,進行解密后的圖像如圖5.

(a)正確解密圖像 (b)錯誤解密圖像
通過直觀對比正確解密后的圖像和錯誤解密后的圖像,可以發現差別很大,并且通過(15)式計算可知:錯誤解密后圖像與原圖像之間的NPCR值為99.6428﹪,而對于256級的灰度圖像,NPCR理想期望值為99.6049﹪[8].文獻[11]在密鑰誤差相同的情況下,正確解密圖像與錯誤解密圖像之間的NPCR為99.615﹪.通過對比可以看出,本文算法加密的圖像對密鑰初值更加敏感.最終我們通過分析發現,錯誤的密鑰是無法得到原圖像信息的.當對其他密鑰進行相應改變時,也得到同樣的結論,因而表明該加密方案可以抵抗基于敏感性的攻擊.
2.5密鑰空間和執行效率分析
窮舉攻擊是對加密系統進行攻擊的最基本的方法之一.它主要是通過對加密系統的密鑰空間進行大量的搜索,希望通過這種手段得到密鑰從而達到破解密碼系統的目的.為了能夠抵御這種攻擊方法,加密方案就要有足夠大的密鑰空間.本算法中的密鑰有:超混沌系統的4個初始值(a,b,c,d),共需要兩組,微分方程的步長n0,選定的序列值k,密文像素值C(0),其中k的取值范圍為[1,4],C(0)的取值范圍為[0,255].本系統設置的精度為10-15,則8個超混沌初始值的密鑰空間為(1015)8=10120≈2398,相當于二進制的398比特密鑰長度.若將系統預迭代的次數n0、正整數k和正整數C(0)也作為原始密鑰,則算法密鑰空間更大,足夠抵御窮舉攻擊.
本系統運行的硬件環境為IntelCorei7-2640M2.80GHz的CPU,4G內存,使用Matlab7.1作為仿真實驗平臺,操作系統為Windows7.將圖像大小為256×256的“cameraman”圖像運行在以上環境中,經過測試,圖像加密的平均時間為0.361s.將文獻[6]的算法運行在同樣的計算機環境下,并使用同樣的數據進行實驗,得到的加密平均時間為0.796s.可見,本文的加密算法具有較高的加密效率.文獻[6]算法中對像素置亂的過程中要首先對隨機序列進行預處理增加了算法的時間復雜度.
3結論
本文提出一種基于超混沌系統的加密方案,方案中使用兩組初始值產生兩組隨機序列,兩組初始值共有8個密鑰值,使系統有更大的密鑰空間,并且由混沌系統產生隨機、無周期的實數序列.由于計算機精度的影響,使單混沌序列會存在一定的周期,因此在像素置亂和像素替代中,采用一定的規則將迭代得到的雙混沌序列交叉使用,不僅緩解了由于計算機精度帶來的混沌序列的周期性問題,而且增加了密文對密鑰的敏感度.經過仿真實驗分析,該算法擁有足夠大的密鑰空間,對密鑰極其敏感,加密后的圖像相鄰像素之間相關性極低,能夠抵御來自窮舉方法的攻擊和統計方法的攻擊.因此,該算法不僅加密效果好,而且具有很高的安全性.
[參考文獻]
[1]楊有,翟浩,余平. 利用行列變換的無損信息隱藏算法[J]. 重慶大學學報,2014,37(9):40-46.
[2]YANGH,WONGKW,LIAOX,etal.Afastimageencryptionandauthenticationschemebasedonchaoticmaps[J].CommunicationsinNonlinearScienceandNumericalSimulation, 2010, 15(11):3507-3517.
[3]劉星沙,李敏,費耀平. 一種高安全性的數字圖像加密算法[J]. 微電子學與計算機,2007,24(2):21-23.
[4]WANGY,WONGKW,LIAOX,etal.Anewchaos-basedfastimageencryptionalgorithm[J].AppliedSoftComputing, 2011, 11(1):514-522.
[5]潘勃,馮金富,陶茜,等. 基于超混沌映射和加法模運算的圖像保密通信方案[J]. 計算機科學,2009,36(8):273-275.
[6]盧輝斌,孫艷. 基于新的超混沌系統的圖像加密方案[J]. 計算機科學,2011(6):149-152.
[7]廖雪峰,鄒華勝. 超混沌圖像加密方案的分析與改進[J]. 計算機工程與應用,2012(33):105-111.
[8]朱從旭,胡玉平,孫克輝. 基于超混沌系統和密文交錯擴散的圖像加密新算法[J]. 電子與信息學報,2012(7):1735-1743.
[9]鐘厚橋,李建民,林振榮,等. 基于超混沌序列的圖像加密方案[J]. 計算機應用研究,2013(10):3110-3113.
[10]WANGHX,CAIGL,MIAOS,etal.Nonlinearfeedbackcontrolofanovelhyperchaoticsystemanditscircuitimplementation[J].ChinesePhysicsB, 2010, 19(3):154-161.
[11]廖春成,廖春龍. 基于像素位置置亂和替代的超混沌圖像加密算法[J]. 北京建筑工程學院學報,2013(3):59-65.
(責任編輯穆剛)
Image encryption based on hyperchaotic system
ZHAO Yahui, YANG You,ZHAI Hao
(College of Computer and Information Sciences, Chongqing Normal University, Shapingba Chongqing 401331, China)
Abstract:For the current chaotic image encryption algorithm key problem of small space, proposed a image encryption algorithm based on hyperchaotic system. The main idea is to use two different groups of initial values produce two different random sequence, and encryption of digital image. Encryption algorithm is divided into two parts, first, use the random sequence to scrambled the image pixel, then use the random sequence to replace the pixel for the matrix scrambled. The experiment result indicates that the algorithm has a larger key space, a lower correlation of adjacent pixels, a strong resist ability of exhaustive attack and statistic attack.
Key words:hyperschaotic system; image encryption; pixel scrambling; pixel values substitution
[中圖分類號]TP312
[文獻標志碼]A
[文章編號]1673-8004(2016)02-0130-06
[作者簡介]趙亞慧(1990-),女,河南周口人,碩士,主要從事圖像加密方面的研究.
[基金項目]重慶市教育委員會科學技術研究項目(KJ130646);重慶師范大學橫向科研項目(60102-000232).
[收稿日期]2015-05-19