摘 要:提出一種基于混沌序列的彩色圖像加密算法。該算法首先應用二維Logistic混沌系統產生2個混沌序列,利用對2個混沌序列進行排序產生的2個編號序列對彩色圖像進行位置的置亂,然后應用三維Lorenz混沌系統產生的混沌序列中各值進行大小排序,用以引導對置亂后的彩色圖像進行像素點的R,G,B值的置換操作,從而實現對顏色的加密。實驗結果表明,該算法具有密鑰空間大、安全性高和保密性好的特點。
關鍵詞: 混沌序列; 置亂; 彩色圖像; 像素置換
中圖分類號:TN309 文獻標識碼:A
文章編號:1004-373X(2010)14-0053-03
New Color Image Encryption Algorithm Based on Chaos Sequences
MU Xiu-chun, ZI Hong
(College of Electric and Information Engineering, Heilongjiang Institute of Science and Technology, Harbin 150027, China)
Abstract: A color image encryption algorithm based on the chaos sequences is proposed, which generates two chaos sequences by 2D Logistic chaos system, scrambles the position of color images by two coding sequences produced by ranking the two chaos sequences, and then carries out the scrambling operation in which the R,G,B values of pixel points of the scrambled color images are shuffled by the ranking of three chaos sequences produced by 3D Lorenz chaos system to realize the color encryption. The experimental results show that this algorithm has a large key space, high security and good conficentialty.
Keywords: chaos sequence; scrambling; color image; pixel replacement
隨著互聯網和多媒體技術的不斷發展,圖像加密技術越來越受到人們的重視。傳統的圖像加密技術是一種基于像素置亂的加密算法,一般密鑰和算法不能有效的分開,因此研究圖像加密技術有著廣闊的前景。近年來興起的新型混沌加密方式為圖像加密提供了一種新的有效的途徑,但在目前的研究中,許多圖像加密方法多數采用一維混沌系統[1-2],其安全性不高;有些研究直接使用高維混沌系統[3-4],其效率又太低;此外,加密方法也大都集中在灰度圖像的加密[5-7],涉及彩色圖像的加密方法有限。為此,本文提出了一種基于混沌序列的彩色圖像加密算法。該算法中首先對應用二維Logistic混沌系統產生兩個實值混沌序列,進行像素置亂預處理,然后根據三維Lorenz混沌序列隨機修改置亂后彩色圖像的像素點的R,G,B分量值。實驗表明,本文出的算法具有密鑰空間大、安全性高和保密性好的特點。
1 基于二維Logistic混沌序列的圖像置亂算法
Logistic混沌系統是一種常見的混沌動力系統,基于一維Logistic混沌序列進行加密是一種較簡單的混沌加密,其安全性難以保障,且可以證明二維Logistic混沌系統產生的混沌序列具有更安全的加密效果。二維Logistic混沌系統的動力學方程為:
xn+1=μ λ1xn(1-xn)+γyn
yn+1=μ λ2yn(1-yn)+γxn (1)
式中:x0,y0為系統初值,通常取值為x0=0.10,y0=0.11;μ,λ1,λ2,γ為系統的控制參數,通常取μ=4,其他參數的取值分4種情況進入混沌狀態。本文選取初值x0=0.10,y0=0.11,μ=4,λ1=λ2=0.89,γ=0.1作為密鑰產生的2個序列x,y來實現圖像像素位置的置亂,圖像置亂即對圖像中各像素點的位置進行改變。置亂算法的主要步驟如下:
步驟1 利用式(1)的Logistic系統產生的實值混沌序列x,選取序列的前M個元素構成序列{x1,x2,…,xM},將{x1,x2,…,xM}按由小到大排序生成新的有序序列{x1′,x2′,…,xM′},因為在一定長度范圍內,混沌序列值不重復,故實值序列{x1,x2,…,xM}中的M個值不重復,排序后原序列中的每一個xi在新的序列中都有惟一的一個位置編號,確定混沌實值序列{x1,x2,…,xM}中的每一個xi在新的有序序列{x1′,x2′,…,xM′}中的位置編號,生成一個新的編號序列{l1,l2,…,lM},其中li為集合{1,2,…,M}中的一個值;
步驟2 利用式(1)的Logistic系統產生的另一實值混沌序列y,選取序列的前N個元素構成序列{y1,y2,…,yN},將其與步驟1中混沌序列x進行類似的處理,得到其位置編號序列{k1,k2,…,kM},其中ki為集合{1,2,…,N}中的一個值;
步驟3 對圖像進行置亂。將原始圖像的(x,y)置亂到點(lx,ky);
步驟4 重復步驟3,直到原始圖像的每一點都被置亂,I1就是置亂后的圖像。
對圖像完成置亂設計后,破壞了原圖像相鄰像素點的相關性,但是各像素值并沒有改變,圖像的加密效果不太理想,需要對置亂后的圖像像素值的R,G,B分量進行改變,以提高圖像的加密效果。
2 基于三維Lorenz混沌序列的圖像像素值置換算法
Lorenz系統是一個經典的三維混沌系統,以Lorenz系統生成加密混沌序列具有結構復雜、系統變量的實數值序列不可預測的特點,系統的3個初值和3個參數都可以作為生成加密混沌序列的種子密鑰,加密算法的密鑰空間大大高于低維混沌系統。Lorenz系統的動力學方程為:
dx/dt=σ(y-x)
dy/dt=rx-zx-y
dz/dt=xy-bz (2)
式中:σ,r,b為系統參數,典型值分別為σ=10,r=28,b=8/3。在σ和b保持不變,r>24.74時,系統進入混沌狀態[8]。
算法中使用Lorenz混沌系統對經過置亂變換后的彩色圖像進行像素值置換加密。其中系統參數取值分別為σ=10,r=28,b=8/3;初值分別為x0=1.184 0,y0=1.362 7,z0=1.251 9,采用四階Runge-kutta算法解微分方程(2),積分步長為0.001。文獻[9]中提到了將彩色圖像分解成3個基色圖像的方法,在此對這種方法進行改進,采用一種新的方法來實現像素的置換。本文的方法主要是對每個像素點分解后的3個基色像素值之間進行交換,交換的方法是由三維Lorenz混沌系統所產生的3個混沌序列中的對應數字的大小比較來引導的。通過像素值間的交換,使合成后的像素值發生了改變,從而實現了加密后的圖像的顏色發生混亂,使加密圖像在視覺上發生了色彩的變化,達到了加密的效果。由混沌序列的隨機性和對初值的高度敏感性可知3個混沌序列中xi,yi,zi的大小關系也是隨機的,由它們的大小關系進行的3個基色像素值的交換順序也是隨機的,且像素值的交換完全依賴于混沌系統產生的混沌序列,這就很大地提高了加密的安全性。
置換算法的主要步驟如下:
步驟1 將經過置亂后的彩色圖像分成R,G,B三基色圖像,分別用矩陣 R 1,G 1,B 1表示。
步驟2 將 R 1中的元素進行重新連接,即將 R 1的第i+1行連接到第i行的后面i=2,3,…,M,形成長度為M×N的序列RL{r11,r12,…,r1n,r21,…,rM×N};將 G 1和 B 1中的元素也進行類似的連接,形成序列GL{g11,g12,…,g1n,g21,…,gM×N}和BL{b11,b12,…,b1n,b21,…,bM×N}。
步驟3 由式(1)的三維Lorenz混沌系統產生3個長度為M×N的實值混沌序列X{x1,x2,…,xM×N},Y{y1,y2,…,yM×N}和Z{z1,z2,…,zM×N},作為比較序列。
步驟4 將比較序列X,Y,Z中的每一個元素{xi,yi,zi}與RL,GL,BL中的每一個元素{ri,gi,bi}一一對應;比較xi,yi,zi的大小,排出xi,yi,zi的大小關系,以其大小順序為指導交換ri,gi,bi的值。其中ri中存放xi,yi,zi中最大者所對應的ri,gi,bi的值;gi中存放xi,yi,zi中次大者所對應的ri,gi,bi的值;bi中存放xi,yi,zi中最小者所對應的ri,gi,bi的值,這樣就使3個基色分量的值發生的變化。
步驟5 將交換后的RL,GL,BL序列還原回矩陣形式 R 2,G 2,B 2。以RL為例,R 2(i,j)=RL[ (i-1)M+j] 。
步驟6 將置換后的三基色圖像合成彩色圖像,此時圖像中各點的顏色成分均發生了變化,從而實現了圖像顏色上的加密。
圖像解密是加密的逆過程,只用利用相同的混沌系統生成相同的密鑰序列,先對密文圖像的像素值反置換,再對反置換后的圖像的像素值進行按位反置亂,即可得到解密圖像。
3 實驗結果與分析
3.1 加密效果
利用Matlab 7.0為平臺,對256×256的彩色Lenna圖像進行仿真實驗(M=256,N=256),得出的實驗結果如圖1所示。
由圖1(c)可知,加密圖像完全看不出原始明文圖像的輪廓,正確解密圖像與明文圖像沒有差別,算法不會造成圖像的失真,因此加密效果良好。
3.2 直方圖分析
原始圖像和密文圖像的像素值分布直方圖對比如圖2。可見原始圖像的像素值分布數目是不均勻的,而密文圖像的像素在R平面,G平面和B平面分布基本均勻,這表明密文的像素值在[0,255]范圍內取值概率均等,密文的統計特征完全不同于明文的統計特征,明文的統計特征被擴散到了密文的均勻分布中,大大降低了明文的相關性,說明該加密算法具有良好的抵抗統計分析攻擊的能力。
圖1 加密效果
圖2 加密前后R,G,B分量的直方圖
3.3 相關性分析
為了檢驗明文圖像和密文圖像相鄰像素的相關性,引入相鄰像素的相關系數[9],用如下公式定量計算相鄰像素的相關系數:
E(x)=1N∑Ni=1xi,D(x)=1N∑Ni=1[xi-E(x)]2
cov(x,y)=1N∑Ni=1[xi-E(x)][yi-E(y)]
γxy=cov(x,y)D(x)D(y)
式中:x和y分別表示圖像中相鄰2個像素的像素值;γxy為圖像相鄰2個像素的相關系數。圖3描述了水平方向明文圖像和密文圖像的R分量的相鄰像素的相關性。表1列出了按水平、垂直、對角3個方向的三基色圖像的相關系數。由結果可知,原始明文圖像的相鄰像素是高度相關的,相關系數接近于1,而密文圖像的相鄰像素的相關系數接近于0,相鄰像素基本不相關,明文的統計特征已擴散到隨機的密文中。
圖3 加密前后相鄰像素相關性分析
表1 明文和密文相鄰像素相關性
像素關系明文圖像密文圖像
R平面G平面B平面R平面G平面B平面
水平相關系數0.946 00.946 60.904 70.045 30.038 10.038 4
垂直相關系數0.972 00.972 90.946 30.186 00.180 00.179 0
對角相關系數0.921 20.923 60.867 70.007 4-0.016 9-0.019 6
4 結 語
本文利用2種混沌系統產生的混沌序列作為媒介,對彩色圖像進行基于混沌序列的置亂和置換操作,使圖像進行了雙重加密。該算法具有以下特點: (1) 安全性高。像素點的位置置亂和3個基色像素值的置換都是采用了混沌系統產生的混沌序列,構造混沌序列的共需5個初值,提高了算法的安全性,克服了一般混沌系統不能抵御相空間重構攻擊的特點。
(2) 保密性好。由于對圖像先后采用置亂和像素置換的雙重保密方法,使圖像的隱藏效果極佳。置亂打破了相鄰像素的相關性,使攻擊者在未知密鑰的情況下,難以進行破解。由于對三基色分別置亂,混淆了彩色圖像每一像素R,G,B三元素,使加密圖像在視覺上發生了色彩變化,圖像更難讀懂。
參考文獻
[1]YEN J C, GUO J I. A new chaotic key-based design for image encryption and decryption[J]. IEEE International Conference on Circuits and Systems, 2000(4): 49-52.
[2]BOCCALETTI S, GREBOGI C, LAI Y C, et al. The control of chaos: theory and applications[J]. Physics Report, 2000,329:103-197.
[3]李云,韓鳳英.基于高維混沌系統組合的圖像加密新算法[J].計算機工程與應用,2009,45(1):103-105.
[4]程東升,葉瑞松.基于四維混沌系統生成二值序列的方法及其加密應用[J].計算機應用,2008,28(3):677-679.
[5]李大勇,賈華丁,吳江.基于三維混沌序列的數字圖像加密算法[J].計算機應用,2006,26(7):1652-1654.
[6]李永華,王冰.基于混沌序列的圖像加密算法[J].計算機應用,2009,29(6):100-102,105.
[7]韓鳳英.一種基于統一混沌系統的圖像加密新算法[J].計算機工程與應用,2009,44(4):125-127.
[8]呂金虎,陸君安,陳士華.混沌時間序列分析與應用[M].武漢:武漢大學出版社,2002.
[9]CHEN G R, MAO Y B, CHUI C K. A symmetric image encryption scheme based on 3D chaotic cat maps[J]. Chaos, Solitons and Fractals, 2004, 21(3): 749-761.
[10]韓鳳英,朱從旭,胡玉平.一種基于高維混沌系統的彩色圖像加密新算法[J].計算機應用,2007,27(8):1888-1894.