廖雪峰
(溫州大學(xué)甌江學(xué)院,浙江溫州 325035)
基于混沌映射組合的高效圖像加密新算法
廖雪峰
(溫州大學(xué)甌江學(xué)院,浙江溫州 325035)
提出了一種結(jié)合Logistic映射和標(biāo)準混沌映射的混沌圖像加密算法.由Logistic映射和標(biāo)準混沌映射產(chǎn)生的混沌序列生成中間密鑰,利用像素密文輸出控制后繼明文的加密密鑰生成,使密文對明文具有敏感性.仿真結(jié)果表明,該密碼系統(tǒng)的時間開銷很??;密鑰空間足以抵抗強力攻擊;密文對明文或初始密鑰的任何微小變化均有強烈敏感性;密文分布均勻,相鄰像素滿足零相關(guān)性.故該密碼系統(tǒng)具有高安全性.
圖像加密;Logistic映射;標(biāo)準混沌映射
隨著計算機網(wǎng)絡(luò)通訊技術(shù)的飛速發(fā)展,越來越多的信息將通過互聯(lián)網(wǎng)傳播,安全高效的保密通信方式已成為研究熱點.混沌系統(tǒng)具有許多優(yōu)良特性,如敏感依賴于初始條件和系統(tǒng)參數(shù),各態(tài)歷經(jīng)的遍歷性及混合擴散(伸展和折疊)特性等.這些特性正好符合密碼系統(tǒng)對混亂和散布特性的要求,因此混沌系統(tǒng)成為構(gòu)造密碼系統(tǒng)的理想選擇.
近年來,許多基于離散混沌系統(tǒng)的密碼算法被相繼提出[1-3].一些一維混沌映射系統(tǒng)如Logistic映射[3]和分段線性映射[4]常被用于構(gòu)造離散混沌密碼系統(tǒng).然而,這些離散混沌密碼系統(tǒng)多數(shù)只采用一個混沌映射,存在如下缺點:一是密鑰空間小,使得抗窮舉攻擊的功能弱;二是容易遭到相空間辨識的攻擊[5].此外,許多現(xiàn)有混沌密碼系統(tǒng)所加密的密文不具備對明文的敏感性.為了提高一維混沌映射密碼系統(tǒng)的安全性,文獻[6]專門針對彩色圖像提出了一種基于Logistic映射和標(biāo)準混沌映射相結(jié)合的加密方法.
本文提出一種結(jié)合Logistic映射和標(biāo)準混沌映射雙混沌系統(tǒng)的新型圖像加密方法.與文獻[6]的密鑰產(chǎn)生方法不同,本文使用兩個混沌系統(tǒng)的序列值生成中間密鑰,將標(biāo)準混沌映射的分量{zn}序列作為控制序列,將控制隨機選擇Logistic映射的{xn}或標(biāo)準混沌映射的{yn}作為中間密鑰,使混淆性能增強.混淆特性越強的密碼系統(tǒng)具有越高的安全性[7].此外,在加密過程中,還引入了一種新的密文輸出反饋機制,從而提高了密文對明文的敏感性.
Logistic映射是一種性能良好的動力系統(tǒng),定義為:
式中,0 ≤μ≤ 4稱為分岔參數(shù).當(dāng)xn∈(0, 1)且3.569 945 <μ≤ 4時,Logistic映射工作于混沌狀態(tài).也就是說,由兩個不同初始狀態(tài)x01和x02,式(1)迭代生成的兩個序列是非周期、不收斂、不相關(guān)的.
標(biāo)準混沌映射模型的迭代方程為:
其中K為系統(tǒng)參數(shù).隨著參數(shù)K的變化,當(dāng)K足夠大時,系統(tǒng)將從固定點失穩(wěn),經(jīng)倍周期分岔進入混沌.給定方程的初值(y0,z0)進行迭代運算,將生成兩組偽隨機序列{yn,zn,n= 1, 2,}.
算法的設(shè)計既要充分考慮最終密鑰對初始密鑰各種細微變化的敏感性,也要考慮密文對明文各種細小變化的敏感性,還要考慮密文擴散分布的均勻性,以及初始密鑰空間的廣闊性.本文將兩個混沌系統(tǒng)的初始狀態(tài)參量x0、y0、z0以及系統(tǒng)參數(shù)μ、K和預(yù)迭代次數(shù)N作為初始密鑰,隨機選擇迭代生成的混沌實數(shù)序列{xn}和{yn}作為密鑰序列源,將經(jīng)過處理后得到的一字節(jié)的整數(shù)密鑰序列,作為對圖像像素加密的中間密鑰.分別采用下面式(3)或式(4)所表示的算法,可由混沌序列實數(shù)得到整數(shù)中間密鑰,其中,式(3)或式(4)隨機交替被采用,具體控制策略由{zn}決定.
其中,floor(x)為取小于或等于x的最大整數(shù)的函數(shù),mod(x, y)是求x對y的模運算.
利用混沌實數(shù)序列{zn}作為控制序列,控制隨機選擇{xn}和{yn}中的實數(shù)來構(gòu)造整數(shù)中間密鑰序列IntKey1;加密一個像素的最終密鑰為IntKey(n),IntKey(n)由中間密鑰序列IntKey1(n)與前一像素點加密后輸出的密文Cn–1經(jīng)異或而成;然后用當(dāng)前的最終密鑰IntKey(n)對當(dāng)前像素點明文Pn加密,得到當(dāng)前的密文像素Cn.由中間密鑰生成最終密鑰的公式如式(5)所示,加密采用的算法如式(6)所示.
其中,Pn和Cn分別代表明文像素值和相應(yīng)的密文像素值,IntKey1和IntKey分別代表中間密鑰和最終密鑰.這里,為了使加密密文敏感依賴于被加密對象,引入了由前一點密文輸出控制后一點加密密鑰生成的機制.對整個圖像進行兩輪加密,對第一輪的第一點加密時使用的C0則預(yù)先指定,對第二輪的第一點加密時使用前一輪最后一點輸出的密文進行控制,這樣就使得不管明文的變化發(fā)生在任何位置,都有可能引起整個圖像全部像素的變化,使得生成的密鑰序列{IntKey}敏感地依賴于任意明文點的變化.為了提高密文對密鑰的敏感性,混沌映射首先經(jīng)過N次預(yù)迭代,以后繼續(xù)迭代生成的序列才被采用作為生成中間密鑰的序列.
設(shè)待加密的圖像為M×M的256級灰度圖象,先將圖像降維成一維序列形式,用H(n) (n= 1, 2,,M×M)表示,加密算法利用文字結(jié)合Matlab偽代碼的形式可詳細描述如下:
Step 1 給定初始化參數(shù)μ、x0、y0、z0、K、N、C0;以此作為密鑰參數(shù).
Step 2 混沌映射式(1)和式(2)都作N次預(yù)迭代,以提高混沌序列對初值的敏感性.
Step 3 兩個混沌映射各迭代2 ×M×M次,得到3個實數(shù)序列{x(n),y(n),z(n),n= 1, 2,, 2 ×M×M}.并根據(jù)如下規(guī)則生成混沌中間密鑰序列{IntKey1(n),n=1, 2,, 2 ×M×M}:
Step 6 對圖像中第n點加密,得到第n點的密文H1(n):
Step 7 若n 經(jīng)第一輪加密后得到的圖像像素序列用H1表示,接著對H1再重復(fù)第二輪與上述Step 4 – Step 5類似的操作,將得到最后的加密圖像H2.第二輪操作算法的主要步驟和偽代碼如下: Step 1n取值為第一輪結(jié)束時的值(即n=M×M),令n1= 1. Step 2 單獨對圖像中第1點采用如下公式加密,得到密文H2(1): Step 3 修改n1的值:n1=n1+ 1. Step 4 對圖像中第n1點加密,得到第n1點的密文H2(n1): Step 5 重復(fù)Step 3 – Step 4的操作,直到H1中所有像素點處理完畢(即n1=M×M),即完成全部加密操作.加密完成后,將H2轉(zhuǎn)化為二維矩陣形式就得到加密圖像矩陣. 解密算法與加密算法類似,是加密的對稱逆過程.這里值得指出的是,解密操作的順序應(yīng)該是先對第二輪加密操作進行逆操作,像素的循環(huán)則是從最后一點到第一點逆向循環(huán).然后對第一輪加密操作進行逆操作,像素的循環(huán)也是從最后一點到第一點進行逆向循環(huán).特別地,每一輪對圖像第一個像素要單獨處理.假設(shè)由密文圖像Hk解密得到圖像Bk(k= 1, 2),其中的最終解密圖像版本為B1.解密過程的關(guān)鍵步驟和偽代碼可描述如下: 第一輪解密 Step 1 初始化n1值:n1=M×M,其它參數(shù)同加密過程. Step 2 按序取H2中的一個像素點H2(n1),對該像素作如下解密操作: 1)由混沌中間密鑰Intkey1生成當(dāng)前點的最終解密密鑰: 2)解密當(dāng)前點的像素,得到解密后的值B2(n1): Step 3 修改n1的值:n1=n1– 1. Step 4 若n1> 1,則重復(fù)Step 2 – Step 3的操作;若n1= 1,則轉(zhuǎn)Step 5. Step 5 單獨處理圖像中第一個像素點.此時應(yīng)根據(jù)下列公式計算密鑰: 1)由第一輪加密后所得的最后一點的密文值,即解密版本B2中最后那一點的值B2(M*M),結(jié)合混沌中間密鑰序列中第(M*M+1)點的值IntKey1(M*M+1);得到最后密鑰IntKey: 第二輪解密 解密的步驟和算法與第一輪解密幾乎相同,關(guān)鍵步驟描述如下: Step 1 初始化n值:n=M×M. Step 2 按序取B2中的一個像素點B2(n),對該像素作如下解密操作: Step 3 修改n的值:n=n– 1. Step 4 若n> 1,則重復(fù)Step 2 – Step 3的操作;若n= 1,則轉(zhuǎn)Step 5. Step 5 單獨處理圖像中第一個像素點.此時應(yīng)根據(jù)下列公式計算密鑰: 以上步驟完成后,得到的B1就是最終解密圖像的像素序列,將此像素序列B1轉(zhuǎn)換為M×M的矩陣形式就得到了最終解密圖像矩陣. 實驗采用256 × 256的8位Lena灰度圖像,給定參數(shù)為:π= 3.141 59,μ= 4.000 0,x0= 0.7,y0= 2.71,z0= 1.379 1,N= 1 000,C0= 50,K= 108.543 6.原始圖像和加密圖像分別如圖1所示. 圖1 原始圖像和加密圖像Fig 1 Original Image and Encrypted Image 2.1.1 密文對密鑰的敏感性 對同一明文圖像,采用兩個略有差異的密鑰進行兩次加密,兩次加密時僅Logistic映射的初始值x0略有差異(分別取0.700 0和0.700 1),然后得到兩個加密圖像加以對比.經(jīng)過這樣的兩個不同密鑰加密后得到的密文圖像的差別可以由實驗結(jié)果反映出來.圖2是取兩個密圖前100個密文像素的差值得到的分布圖.由圖2結(jié)果可見,相同的明文在密鑰發(fā)生細微變化時,密文會有顯著變化,這反映了密文對密鑰的敏感性.多次實驗表明,任何密鑰細小的改變都會引起任何位置段的密文發(fā)生顯著的變化. 2.1.2 密文對明文的敏感性 用相同初始密鑰對略有差別的明文圖像加密,設(shè)兩明文圖像僅僅第1行第10列的那個像素的值相差5,圖3是加密后兩密圖前100個密文像素的差值分布圖.可見在相同密鑰下明文1個點的細微變化也會導(dǎo)致密文的明顯變化,反映了密文對明文的敏感性. 圖2 密文對密鑰的敏感性Fig 2 Sensitivity of Ciphertext to Secret Key 圖3 密文對明文的敏感性Fig 3 Sensitivity of Ciphertext to Plaintext 2.2.1 直方圖分析 直方圖描繪的是一幅圖像在每一種灰度值上的像素數(shù)目,它反映出一幅圖像中像素的分布情況.圖4是本文實驗所采用的明文Lena圖像的直方圖,圖5是用本文算法加密后得到的相應(yīng)密文圖像的直方圖.對比圖4和圖5可見,原始圖像的像素在各種灰度級上的分布很明顯是不均勻的,但經(jīng)過混沌系統(tǒng)加密調(diào)制后的密文像素在各種灰度級上的分布趨于均勻(像素值在0 ? 255的范圍內(nèi)取值概率接近相等),可見本文加密算法產(chǎn)生的密文擴散性好. 2.2.2 相鄰像素的相關(guān)性 為了檢驗明文圖像和密文圖像相鄰像素的相關(guān)性,從圖像中選取65 280對相鄰像素(水平、垂直或?qū)堑模?,然后使用以下公式定量計算相鄰像素的相關(guān)系數(shù)[8]: 其中,x和y分別表示圖像中兩個相鄰像素的灰度值,γxy即為兩個相鄰像素的相關(guān)系數(shù). 圖4 明文圖像的直方圖圖Fig 4 Histogram of Plaintext Image 圖5 密文圖像的直方圖Fig 5 Histogram of Ciphertext Image 圖6和圖7分別描述了明文和密文水平方向相鄰像素的相關(guān)性.表1列出了按3種方向計算所得的相關(guān)系數(shù)結(jié)果.由結(jié)果可知,原始明文圖像的相鄰像素是高度相關(guān)的,相關(guān)系數(shù)接近于1.而加密圖像的相鄰像素相關(guān)系數(shù)接近于0,相鄰像素已基本不相關(guān),說明明文的統(tǒng)計特征已被很好地擴散到隨機的密文中. 圖6 明文圖像水平方向相鄰像素的相關(guān)性Fig 6 Correlation of Horizontal Direction Adjacent Pixels in Plaintext Image 圖7 密文圖像水平方向相鄰像素的相關(guān)性Fig 7 Correlation of Horizontal Direction Adjacent Pixels in Ciphertext Image 表1 明文和密文相鄰像素的相關(guān)系數(shù)Table 1 The Correlation Coefficients of Adjacent Pixels in Plaintext Image and Ciphertext Image 表1同時還列出了文獻[6]對于彩色Lena圖像R、G、B等3個基色密文平面的相鄰像素相關(guān)系數(shù)的平均值(參見文獻[6]表5).對比可見,本文加密算法所得的水平方向密文相鄰像素的相關(guān)系數(shù)值比文獻[6]的平均值要好一個數(shù)量級;垂直方向密文相鄰像素的相關(guān)系數(shù)值與文獻[6]的數(shù)量級相當(dāng);關(guān)于對角方向密文相鄰像素的相關(guān)系數(shù)值文獻[6]未報道,故未能比較.因此從總體上可以判斷本文的這個指標(biāo)與文獻[6]的是相當(dāng)?shù)? 如果以混沌系統(tǒng)初值x0、y0、z0及系統(tǒng)參數(shù)μ、K為最初密鑰,采用精確到小數(shù)點后15位的雙精度實數(shù)表示,則密鑰空間為1015× 1015× 1015× 1015× 1015= 1075≈ 2249,相當(dāng)于249比特長的密鑰空間,是單個一維Logistic混沌系統(tǒng)密鑰空間(1015× 1015)的1045倍;如果將混沌系統(tǒng)預(yù)迭代次數(shù)N和參數(shù)C0也作為密鑰,則密鑰空間更大.故該密碼系統(tǒng)足以抵抗現(xiàn)有硬件條件下的強力攻擊. 下面分析本文算法與文獻[6]算法的時間復(fù)雜度.首先從理論上做一個初步分析,因為本文算法只有兩輪加密,因此對圖像所有點的遍歷次數(shù)為2輪.若圖像的像素數(shù)為M×N,則本文加密算法的時間復(fù)雜度為2 × O(M×N)量級.文獻[6]的算法包含1輪異或運算混淆操作,2輪(水平、垂直方向)擴散操作,1輪產(chǎn)生混沌密鑰圖像的操作,1輪利用混沌密鑰圖像進行混淆的操作.共計要遍歷M×N個像素點5輪,因此其算法時間復(fù)雜度為5 × O(M×N)量級.從數(shù)量級來看,兩者的時間復(fù)雜度在同一個數(shù)量級.為了進行實質(zhì)性的算法速度對比,在同樣的計算機系統(tǒng)平臺與相同的編程語言下對兩種算法都進行了實現(xiàn)(2.13GHz CPU、1GB內(nèi)存的筆記本電腦以及Windos Xp操作系統(tǒng),編程語言為Matlab7).按照文獻[6]的思想,其混沌密鑰圖像可以預(yù)先生成保存下來供加密解密調(diào)用,因此生成混沌密鑰圖像的過程可以不計入加密時間開銷.相應(yīng)地,本文的混沌中間密鑰也可預(yù)先生成,同樣可不計入加密過程的時間開銷中.取同樣兩種大小不同的圖像進行實驗,對圖像加密過程的時間開銷都取 10次實驗的平均值,所得結(jié)果如表2所示.結(jié)果表明,本文算法加密過程的時間開銷小于文獻[6]的加密過程時間開銷. 表2 加密過程的時間開銷對比Table 2 Comparison of Time Expenditure in Encryption Process 本文提出了一種結(jié)合Logistic映射和標(biāo)準混沌映射的圖像混沌加密算法.該算法具有的優(yōu)點是:1)像素的替代基于雙一維混沌系統(tǒng)組合加密,克服了單一的一維混沌系統(tǒng)密鑰空間不足和不能抵御相空間重構(gòu)攻擊的缺點;2)引入了密文輸出反饋控制策略,使密文對任意位置明文的變化具有強烈敏感性;3)混沌系統(tǒng)每次隨機產(chǎn)生的密鑰不同,具有一次一密的特性;4)密文具有在整個取值空間均勻分布的特性;相鄰像素具有近似于零的相關(guān)性;5)算法的時間開銷小,比較適用于網(wǎng)絡(luò)通信的實時圖像加密. [1]Wong K W. A Fast Chaotic Cryptography Scheme with Dynamic Look-up Table [J]. Physics Letters A, 2002, 298(4): 238-242. [2]Wong K W, Ho S W, Yung C K. A Chaotic Cryptography Scheme for Generating Short Ciphertext [J]. Physics Letters A, 2003, 310(1): 67-73. [3]Pareek N K, Patidar V, Sud K K. Discrete Chaotic Cryptography Using External Key [J]. Physics Letters A, 2003, 309(1-2): 75-82. [4]Huang F, Guan Z H. A Modified Method of a Class of Recently Presented Cryptosystems [J]. Chaos, Solitons and Fractals, 2005, 23(5): 1893-1899. [5]Jakimoski G, Kocarev L. Analysis of Some Recently Proposed Chaos-based Encryption Algorithms [J]. Physics Letters A, 2001, 291(6): 381-384. [6]Patidar V, Pareek N K, Sud K K. A New Substitution-diffusion Based Image Cipher Using Chaotic Standard and Logistic Maps [J]. Communication in Nonlinear Science and Numerical Simulation, 2009, 14(7): 3056-3075. [7]Schneier B. Applied Cryptography: Protocols, Algorithms and Source Code in C [M]. 2nd. New York: John Wiley and Sons, 1996: 330-340. [8]Chen G, Mao Y, Chui C K. A Symmetric Image Encryption Scheme Based on 3D Chaotic Cat Maps [J]. Chaos, Solitons and Fractals, 2004, 21(3): 749-761. New Efficient Algorithm of Image Encryption Based on Combined Chaotic Maps LIAO Xuefeng A new chaotic encryption algorithm based on combined Logistic map and standard chaotic map was proposed. The chaotic sequences randomly generated by the Logistic map and standard chaotic map were adopted to generate intermediate key. Then the generated ciphertext of encrypted pixels was used to control the generation of encryption key of successor plaintext to make the ciphertext sensitive to the plaintext. Simulation results showed that the proposed cryptosystem requires very little time to encrypt the plaintext. The key space is large enough to resist the brute-force attack. The ciphertext varies sensitively with any minimal changes of the initial secret key and the plaintext. For the encrypted image, the distribution of pixel-values has a random-like behavior and the values of adjacent pixels satisfy zero correlation, showing that the proposed scheme is of high reliability. Image Encryption; Logistic Map; Standard Chaotic Map (編輯:王一芳) TP309.7 A 1674-3563(2010)01-0033-08 10.3875/j.issn.1674-3563.2010.01.006 本文的PDF文件可以從xuebao.wzu.edu.cn獲得 2009-03-20 廖雪峰(1980- ),女,湖南新化人,助教,碩士,研究方向:混沌密碼學(xué),數(shù)字水印技術(shù)2 實驗結(jié)果與分析
2.1 密文敏感性分析
2.2 統(tǒng)計特性分析
2.3 密鑰空間和加密速度分析
3 結(jié) 論
(Oujiang College, Wenzhou University, Wenzhou, China 325035)
溫州大學(xué)學(xué)報(自然科學(xué)版)2010年1期