基于復(fù)合混沌序列的圖像加密算法

利用由三維Lorenz系統(tǒng),Chen系統(tǒng),Lü系統(tǒng)和一維Logistic混沌映射生成的混沌序列復(fù)合成一系列的新序列,通過這些新序列設(shè)計(jì)一個(gè)既對(duì)圖像像素位置進(jìn)行置亂又對(duì)圖像像素值進(jìn)行擾亂的圖像加密系統(tǒng)。

一、混沌系統(tǒng)

本文中運(yùn)用了四個(gè)混沌系統(tǒng),分別是:

Logistic系統(tǒng):xn+1=uxn(1-xn+1)(1),其中3.5699456…<u≤4時(shí),系統(tǒng)處于混沌狀態(tài)。

三個(gè)三維混沌系統(tǒng)Lorenz系統(tǒng),Chen系統(tǒng),Lü系統(tǒng):

基于復(fù)合混沌序列的圖像加密算法

本文中Lorenz系統(tǒng)(2)取a=10,b=8/3,c=28,此時(shí)該系統(tǒng)存在混沌吸引子;Chen系統(tǒng)(3)取a=35,b=8,c=28,此時(shí)該系統(tǒng)存在混沌吸引子;Lü系統(tǒng)(4)取a=36,b=3,c=28,此時(shí)該系統(tǒng)存在混沌吸引子。

二、基于復(fù)合混沌序列的圖像加密算法描述

一幅大小為M3N二維圖像I,其灰度值范圍是[0,255],對(duì)這個(gè)圖像進(jìn)行加密。將二維圖像矩陣I拉成M3N長的一維向量I′。

(1)利用Logistic映射產(chǎn)生內(nèi)部密鑰u1,v1,w1,u2,v2,w2,u3,v3,w3及其它用于圖像文件加密的

復(fù)合混沌序列

。

基于復(fù)合混沌序列的圖像加密算法

其中u1,u2,u3,u4及X10,X20,X30,X40,為外部密鑰。

在計(jì)算機(jī)的實(shí)踐過程中存在精度的問題,因此在計(jì)算過程中我們使用雙精度數(shù)可以極大地降低出現(xiàn)循環(huán)數(shù)據(jù)的可能性。利用已生成的四個(gè)混沌序列分別生成chen系統(tǒng),Lorenz系統(tǒng),Lü系統(tǒng)的初始條件。

M4=mod(fix(X43M3100000),M);每次的分組加密的像素?cái)?shù)。

基于復(fù)合混沌序列的圖像加密算法

其中D1,D2…,D8,D9∈[40,100]的整數(shù),它們作為外部密鑰,E1,E2,E3用作加密序列,M4為每次的分組加密組數(shù)的序列。

將(u1,v1,w1),(u2,v2,w2),(u3,v3,w3)作為初始條件,用四階龍格庫塔法分別代人Chen系統(tǒng),Lorenz系統(tǒng),Lü系統(tǒng)進(jìn)行替代,得到三維混沌序列Y1,Y2,Y3.應(yīng)用這三個(gè)混沌序列得到用于加密的復(fù)合混沌序列,按如下方式復(fù)合:

基于復(fù)合混沌序列的圖像加密算法

其中J1,J2,J3,E1,E2,E3為加密序列,R為對(duì)分組加密時(shí)所使用的復(fù)合混沌序列的順序的選擇序列,r為每組加密時(shí)進(jìn)行異或操作次數(shù)的序列。在加密時(shí)我們不取混沌序列的初始部分,這里我們從這些混沌序列(X1,X2,X3,M4,)的第1001位開始取。Y11,Y12,Y13,Y21,Y22,Y23,Y31,Y32,Y33為用于產(chǎn)生位置置換序列。

(2)生成位置置換序列Position1,Position2。利用Position1完成對(duì)圖像的第一次位置置換。得圖像矩陣B1。

利用混沌序列X1,X2,X3產(chǎn)生長為fix(M3N/2)復(fù)合混沌序列XX,將序列XX排序后得到序列XX1,將XX1中元素在XX中的位置記為P1.按位置序列P1取出原圖像中的這些像素點(diǎn)。將它們做異或運(yùn)算,結(jié)果記為a1.對(duì)剩余的像素點(diǎn)做和運(yùn)算后減去a1,將得到的值與外部密鑰D1,D2…,D8,D9之和做模運(yùn)算,其結(jié)果為a2。a1,a2的作用是增大算法對(duì)明文的敏感性。利用a1、a2生成復(fù)合混沌序列Z1、Z2的選擇控制開關(guān)K1、K2。從Z1中選出M3N長的序列ZZ1,將其按從小到大的順序排序后得到的序列ZZ2,將ZZ2中的元素在ZZ1中的位置序列記為Position1。按照位置置換序列Position1完成對(duì)圖像的第一次位置置換,得圖像矩陣B1。在Matlab7.01中的主要程序步驟如下:

基于復(fù)合混沌序列的圖像加密算法

aa1,aa2解密時(shí)要用為解密密鑰。aa1,aa2的產(chǎn)生分別依賴于a1,a2,故它們也依賴于明文。

在解密時(shí)省略XX,a1,a2的生成過程,把a(bǔ)a1,aa2作為解密密鑰直接應(yīng)用。

基于復(fù)合混沌序列的圖像加密算法

(3)對(duì)圖像矩陣B1的像素值加密,得圖像矩陣B2。

對(duì)圖像矩陣B1中每一組待加密的像素,先根據(jù)序列R來判定應(yīng)采用哪種順序?qū)D像進(jìn)行加密,再根據(jù)序列r來判定每組的加密操作的次數(shù)。操作完畢后得圖像矩陣B2。在Matlab7.0.1中的程序步驟如下:

基于復(fù)合混沌序列的圖像加密算法

(4)利用a2生成復(fù)合混沌序列的選擇控制開關(guān)K2,按照第二步中的方法生成位置置換序列Position2,按此矩陣完成對(duì)圖像矩陣B2的第二次位置置換。得到圖像矩陣B3。

(5)對(duì)圖像矩陣B3的像素值加密。得到最終加密后的圖像矩陣Cipher。

利用由混沌序列X1,X2,X3變換得到的序列E1,E2,E3來對(duì)圖像矩陣B3的像素值加密。在Matlab7.0.1中的主要程序步驟如下:

基于復(fù)合混沌序列的圖像加密算法

加密過程結(jié)束。

解密過程是加密的逆過程。但解密時(shí)除了原有那些密鑰外要在加入aa1,aa2作為解密密鑰。

四、數(shù)值實(shí)驗(yàn)與安全性分析

1、密鑰空間

Key=(X10,X20,X30,X40,D1,D2,D3,D4,D5,D6,D7,D8,D9),Xi0∈(0,1)i=1,…,4,Di∈[40,100],i=1,…,9為加密密鑰;并且{Xi}精確到小數(shù)點(diǎn)后14位;.則密鑰空間約為10。而解密密鑰Key=(X10,X20,X30,X40,D1,D2,D3,D4,D5,D6,D7,D8,D9,aa1,aa2)這樣解密時(shí)的密鑰空間就更大了。足夠大的密鑰空間將有效地抵抗窮舉攻擊。

2、對(duì)密鑰的敏感性

對(duì)一幅大小為1353135的Lena圖像進(jìn)行加密,取密鑰Key=(0.5678,0.4216,0.8936,0.1263,100,100,100,100,100,100,51,65,47)。圖1(a)為原圖,圖1(b)為為加密后的圖像。

基于復(fù)合混沌序列的圖像加密算法以下對(duì)密鑰作如下微小變動(dòng):Key1=(0.56780000000001,0.4216,0.8936,0.1263,100,100,100,100,100,100,51,65,47),Key2=(0.5678,0.4216,0.8936,0.1263,99,100,100,100,100,100,51,65,47),用其加密后得圖1(c),圖1(d)。圖1(e)為用解密密鑰Keyd=(0.5678,0.4216,0.8936,0.1263,100,100,100,100,100,100,51,65,47,330,107)對(duì)圖1(b)解密后的圖像。圖1(f)為用與解密密鑰有微小差異的密鑰Key3j=(0.5678,0.42160000000001,0.8936,0.1263,100,100,100,100,100,100,51,65,47,330,107)對(duì)圖1(b)解密后的圖像。由NPCRab,及UACIab可以看出此算法對(duì)密鑰是很敏感的。

基于復(fù)合混沌序列的圖像加密算法

由表1可看出對(duì)密鑰Key進(jìn)行細(xì)微的變動(dòng)后將會(huì)得到差異很大的圖像。所以只有使用精確的解密密鑰才能正確解密。

基于復(fù)合混沌序列的圖像加密算法

3、對(duì)明文的敏感性

好的加密算法應(yīng)該對(duì)明文很敏感,這樣可以有效地抵抗差分攻擊。所謂敏感性就是原圖做一個(gè)微小的變動(dòng)后,密文會(huì)有顯著的改變。這樣攻擊者很難找到明文與密文之間的關(guān)系。隨機(jī)選定原圖像中的某個(gè)像素點(diǎn),不失一般性,如像素點(diǎn)I(71,25),對(duì)此點(diǎn)的灰度值做微小修改,修改幅度為±1,對(duì)修改后的圖像用密鑰key加密后得圖像1(g),圖像1(h)。從表2中的NPCRbg,NPCRbh可以看出,對(duì)明文作了微小變動(dòng)后,用相同的密鑰加密得到的密文會(huì)與原密文有很大差異。這說明算法對(duì)明文非常敏感。用唯明文攻擊將是徒勞的。

基于復(fù)合混沌序列的圖像加密算法

4、擴(kuò)散性和擾亂性

我們提出了密碼設(shè)計(jì)中的兩個(gè)基本原則:即擴(kuò)散和擾亂。對(duì)這兩個(gè)特性我們這里用統(tǒng)計(jì)方法對(duì)圖像進(jìn)行分析??疾靾D像加密前后的直方圖(圖2(a),圖2(b))和圖像相鄰像素的相關(guān)性系數(shù)。

基于復(fù)合混沌序列的圖像加密算法本文先通過計(jì)算圖像中所有相鄰列(相鄰行)的相關(guān)性系數(shù)的絕對(duì)值,在列出它們的最大值、最小值、及其平均值,見表3。

基于復(fù)合混沌序列的圖像加密算法相關(guān)系數(shù)定義如下:

rxy=cov(x,y)/D(x)D(y)其中cov(x,y)=E(x-E(x))(y-E(y))為協(xié)方差,D(x)為方差,x和y表示圖像的灰度值。

5、抗噪聲性

圖像數(shù)據(jù)在傳輸過程中難免會(huì)遇到各種噪聲,所以好的算法應(yīng)該有很強(qiáng)的抗噪聲能力。下面對(duì)密文圖像分別加入大約10%的椒鹽噪聲和均值為6、方差是40的高斯噪聲后得圖3(a),圖3(b),對(duì)它們解密后得到圖3(c)、圖3(d)。通過解密后的效果,能夠看出原圖大致的樣子。由此可見該算法有很好的抗噪聲能力。

本文提出一種基于新的復(fù)合混沌序列的加密算法,完成對(duì)圖像像素位置的置亂和像素值的改變。對(duì)該算法進(jìn)行安全性分析,實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)有密鑰空間大;對(duì)密鑰和明文敏感;良好的擴(kuò)散性和擾亂性等特點(diǎn);同時(shí)當(dāng)密文在傳輸過程中遇到噪聲污染后,其解密后的圖像效果的也不會(huì)有很大的影響。

小知識(shí)之圖像加密

數(shù)字圖像是目前最流行的多媒體形式之一,在政治、經(jīng)濟(jì)、國防、教育等方面均有廣泛應(yīng)用。對(duì)于某些特殊領(lǐng)域,如軍事、商業(yè)和醫(yī)療,數(shù)字圖像還有較高的保密要求。為了實(shí)現(xiàn)數(shù)字圖像保密,實(shí)際操作中一般先將二維圖像轉(zhuǎn)換成一維數(shù)據(jù),再采用傳統(tǒng)加密算法進(jìn)行加密。