擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法首先由Logistic系統(tǒng)構(gòu)造的二維非線性動力系統(tǒng)產(chǎn)生的混沌序列形成擴散矩陣和Arnold映射矩陣,然后在基色上對彩色圖像進行擴散,并在不同的位平面對彩色圖像進行置亂,最后用Chen系統(tǒng)產(chǎn)生的混沌序列對置亂后的圖像文件加密。該加密算法實現(xiàn)簡單,能夠抵御多種攻擊,且容易用硬件實現(xiàn)。

一、圖像置亂

在圖像文件加密系統(tǒng)中,采用非線性函數(shù)映射置亂和線性變換進行擴散,可以有效抵御對加密系統(tǒng)進行的統(tǒng)計分析攻擊。為此,擴散算法和映射算法被引進對圖像進行置亂。

1、 擴散置亂

所謂擴散置亂,是指把圖像中像素的灰度值用某種算法擴散到相鄰的若干個像素上的圖像置亂操作。對于一幅大小為N×N的彩色圖像G,采用兩鄰點相互擴散的線性變換算法:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

對圖像像素的灰度值進行擴散。其中擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法稱為2×2擴散矩陣,gij和gij+1分別為原圖像點(i,j)和(i,j+1)處的三基色值,gij’和gij+1’分別為擴散后的三基色值,K為圖像的
基色級,mod為模運算(下同)。為簡化逆擴散運算,通常取|D|=1,且令d11=1、d12=as、d21=bs,則d22=asbs+1,稱它們?yōu)閿U散加權(quán)系數(shù),取整數(shù),由參數(shù)序列{(as,bs)}(s=1,2,…,r)決定,其中r為擴散置亂次數(shù)。那么其逆擴散為:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

其中m和n為能使得0≤gij<K和0≤gij+1<K的最小整數(shù)值。如果采用三鄰點擴散,則D為3×3擴散矩陣,大于三鄰點擴散時D構(gòu)造比較復(fù)雜,一般不用。

應(yīng)用式(1)多次對圖像自(0,0)開始逐行擴散,得到擴散后的圖像。通常取d12≥2,這樣圖像中每個像素的灰度值將被放大擴散到整幅圖像中,算法對被加密圖像敏感a逆擴散則應(yīng)用式(2)從(N-1,N-1)開始對擴散后的圖像逐行反方向擴散,進行圖像還原。

2、映射置亂

所謂映射置亂是把原始圖像中的像素從一個位置映射到另一個位置的置亂操作。在圖像文件加密置亂中的映射置亂要求可逆,如映射過程為map(x,y):(ij)→(k,l),即在參數(shù)x和y的作用下,把原處于(i,j)的像素移動到位置(k,l)。以達到對圖像置亂的目的:為保證被置亂的圖像正確還原,要求映射過程是保面積的,且映射map(x,y)必須存在相應(yīng)的逆過程map'(x,y):(ij)→(k,l)。廣義Amold映射:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

可以滿足上述要求。為敘述方便,稱擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法為映射矩陣。在廣義Amold映射中,要求|M|=1。為簡化映射矩陣構(gòu)建,通常假設(shè)k11 =1、k12=d和k21=e,則J22=de+1。

到目前為止,所有采用Amold映射的置亂算法都是在圖像級進行置亂。所謂圖像級置亂,就是直接把圖像的像素從一點映射到另一點以達到圖像被置亂的目的,其置亂前后像素灰度值的統(tǒng)計特征沒有被改變,這樣在已知圖像的情況下很容易受到攻擊。其安全性不佳,為此,本加密算法采取基于位平面置亂。所謂基于位平面置亂,是把一幅原始圖像G視作由若干個位平面組成(如256級的灰色圖像有8個位平面),在每個位平面上用Amold映射對圖像中各像素的比特位進行置亂操作。為了到達像素級置亂效果,在不同的位平面上采用不同的映射矩陣。其映射過程:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

其中P為圖像的位平面數(shù),{ 1,dp,eP,dpep+1}為第p個位平面上所采用的映射矩陣的元素值,由參數(shù)序列{(dp,e,)}決定。由于采用不同映射矩陣,同一像素中的各個比特位將被映射到不同的位置上,從而達到像素級置亂的目的,也就是說,映射過程除了像素被置亂,同時各像素的灰度值也被置亂,原始圖像的統(tǒng)計特征完全被破壞。

一般情況下,Arnold逆映射要計算映射周期后才能確定逆映射次數(shù),而且該映射周期與被處理圖像的大小并不成正比關(guān)系,為提高Arnold逆映射的速度和效率,有資料提出一種Arnold逆映射的新算法,但該算法不適用于廣義Arnold的逆映射,且效率不高。觀察式(3)不難發(fā)現(xiàn),Arnold映射過程是把原圖像位置(i,j)上的像素映射到(k.l)位置上,那么其
逆映射即為把(k,l)的像素映射到(i,j)位置上。因此,可以用式(3)的映射過程由(i,j)求得(k,l)后,把位置(k,l)上的像素移動到(i,j)上即實現(xiàn)廣義Amold的逆映射過程。該逆映射方法簡單,不需要進行判斷,不僅可以適用于經(jīng)典的Arnold映射,也適用于廣義Arnold映射,無論是二維或三維均適用,而且計算時間大大縮短。

3、參數(shù)生成

在擴散置亂和映射置亂操作中,其置亂效果分別由參數(shù)序列{(as,bs)}和{ (dp,ep)}決定,為簡化用戶操作,同時也使得擴散和映射操作完全依賴于若干個密鑰,加密算法中利用一維Logistic系統(tǒng)定義一個二維非線性動力系統(tǒng):

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

來生成這些參數(shù)序列。其中為加大系統(tǒng)的復(fù)雜性,在二維非線性動力系統(tǒng)中增加了二次偶合項x2i-1,y2i-1和xi-1,yi-1。當2. 75<μ1≤3.40,2.7<μ2≤3.45,0.15<γ1≤0.21以及
0.13<γ2≤0.15時,該系統(tǒng)進入混沌狀態(tài),生成(0.1.0)的混沌序列。那么:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

其中K的大小取決于擴散操作或映射操作。一般在擴散操作時取較小值,而在映射操作時取較大值。把生成的若干組整數(shù)類隨機參數(shù){(CxP,CyP)}作為{(as,bs)}和{(dp,eP)}參數(shù)
序列。該序列對初始值(xo,yo)十分敏感,不同的(xo,yo)將產(chǎn)生完全不同的隨機參數(shù)序列{(as,bs)}和l(dp,eP)},從而到達圖像置亂之目的。

二、圖像文件加密

1、加密混沌系統(tǒng)

圖形圖像加密算法比較多采用超混沌加密算法,常見的有Lorenz系統(tǒng)、Chua系統(tǒng)、Henon系統(tǒng)和Chen系統(tǒng),其中Chen系統(tǒng)具備比其他三者更優(yōu)越的動力特性,且容易用電路實現(xiàn),因此,本加密算法采用Chen系統(tǒng):

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

其中當a= 35,b=28,c=3時,系統(tǒng)進入混沌狀態(tài),其相空間具有非常優(yōu)越的三維動力特性。

2、離散混沌序列

離散混沌序列產(chǎn)生采用如下步驟:

1)應(yīng)用四階Runge-Kutta法,取初始值為(xo,yo,zo)和分步步長為0.01對Chen系統(tǒng)進行數(shù)值積分,每個步長得到一組實數(shù)數(shù)值,該組數(shù)據(jù)類隨機的實數(shù)型數(shù)值序列(xi;yi,zi)(i=1,2,…,M),作為初始的混沌信號序列。

2)對該混沌信號進行放大、量化和模運算:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

得到一組取值范圍為O~(K-1)的(nxi,nyi,nzi)(i=1,2,…,m)整數(shù)混沌序列,K為圖像各基色的灰度級。因為該序列是經(jīng)過放大后模運算得到的,因此它對初始值(粕,Yo,zo)非
常敏感;而且由于空間非常大,使得攻擊者無法從(nxi,nyi,nzi)推出(nxi+1,nyi+1,nzi+1)或(nxi-1,nyi-1,nzi-1)。

3、加密操作

為保證序列更具隨機性,在整數(shù)混沌序列(nxi,nyi,nzi)中去掉迭代過程的前4000個點,?。╪xi,nyi,nzi)(i=4001,4002,…,M)的整數(shù)混沌序列,組成N×N的矩陣形式(kxij,kyij,kzij),然后用該序列與置亂后圖像G'中各個像素的紅、綠、蘭三基色進行異或操作:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

得到加密后的彩色圖像G’(Credij,Cgreerij,Cblueij)(i,j=1,2,…,N),其中0為異或運算符。由于Chen系統(tǒng)對初始點(X0,Y0,Z0)十分敏感,初始點有微小變化將產(chǎn)生不同序列。用不同的初始點(X0P,Y0P,Z0P)(P =1,2,…,m),經(jīng)過上述處理將產(chǎn)生完全不同的離散混沌序列(kxijp,kyijp,kzijp)(P=1,2,…,m),用這些混沌序列對原始圖像進行多次異或運算:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

得到最終的加密后圖像G'。

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

圖像置亂加密過程如圖1所示a整個加密過程包括置亂和加密兩部分。首先在密鑰(xo,yo)作用下通過二維構(gòu)造系統(tǒng)(如式(5)所示)產(chǎn)生的離散混沌序列,應(yīng)用式(1)對原圖像的基色值進行擴散,應(yīng)用式(3)在位平面上進行廣義Arnold映射,擴散與映射交替進行r次,r值取決于圖像要求的安全級別,一般r=3已經(jīng)足夠。然后在另一組密鑰(xo,yo,zo)作用下通過Chen系統(tǒng)(如式(6)所示)和式(7)生成的混沌序列應(yīng)用式(9)對置亂后的圖像進行多次異或運算,以實現(xiàn)對圖像文件加密。

三、圖像文件的解密

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

整個解密過程如圖2所示。首先在密鑰的作用下通過Chen系統(tǒng)和式(7)產(chǎn)生混沌序列,應(yīng)用式(9)對加密后的圖像進行解密。由于對圖像的加密/解密采用的是異或運算,加密和解密過程完全一致,且在解密過程中只要密鑰輸入正確,與密鑰的輸入順序無關(guān)。

接著在位平面上進行廣義Amold的逆映射。如上所述,由于直接求Arnold的逆映射比較困難,在本加密算法中,直接應(yīng)用式(4)通過(i,j)求得(k,l),然后把位于像素(k,l)上對應(yīng)的比特位映射到(i,j)像家上對應(yīng)的比特位來實現(xiàn)廣義Amold的逆映射。在進行Amold逆映射過程中所使用的密鑰序列要求和置亂時使用的序列順序相反。

最后應(yīng)用式(2)對圖像的各個基色進行逆擴散操作。為了提高加密算法的安全性能,在加密過程中采用擴散和Amold映射操作交替進行,解密過程則要求Arnold逆映射和擴散交替進行。

四、實例與安全性分析

為了檢驗本加密算法的計算效果,在Pentium4 1.3 GHz CPU,內(nèi)存為384 MB,Windows XP操作系統(tǒng)下,用Visual C#實現(xiàn)上述過程,分別對彩色水果籃和灰色的Lena圖像(均為256 ×
256幅度)進行加密和解密操作,結(jié)果如圖3所示。

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

經(jīng)過擴散和位平面置亂后的圖像各個像素值已經(jīng)被完全破壞,加密后的圖像從直觀視覺效果上看幾乎一樣,且可以實現(xiàn)完全不失真解密還原,還原結(jié)果與原始圖像完全一致。同時,該加密算法具有如下特點:

1、密鑰空間巨大

因為Chen混沌系統(tǒng)和Logistlic系統(tǒng)對初始值(xo,yo,zo)和(x0,yo)非常敏感,只要取值得當,初始值一個非常小的變化都可以產(chǎn)生完全不同的混沌序列。在ViSU81 c#上,計算原始混沌序列中Chen系統(tǒng)的(xi,yi,zi)和Logistic系統(tǒng)的(xi,yi)均采用Decimal數(shù)值類型,當初始值誤差為10的-18次方時,便產(chǎn)生不同的混沌序列。也就是說,解密密鑰和加密密鑰只要有10的-18次方的差別就無法進行解密。同時每組密鑰有五個值(即二維構(gòu)造系統(tǒng)中的(xo,yo)和Chen系統(tǒng)中的(xo,yo,zo)),它們在實數(shù)域中的取值不受任何限制,同時允許多次加密,具有非常大的密鑰空間,可以抵御密鑰窮舉攻擊。

2、具有良好地抵御統(tǒng)計攻擊能力

對圖像文件加密的另一種攻擊方法就是對圖像進行直方圖分析。圖4所示為水果籃圖像文件加密前后的統(tǒng)計直方圖,圖像加密后其各個顏色值均勻分布,平均基色值在(127. 42-127. 53),像素較均勻分布在各個基色值上,最大像素個數(shù)為302個。由此可見,加密后的圖像的統(tǒng)計分布完全被破壞,具有很好地抵御統(tǒng)計分析的能力。

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

3、能夠有效抵御像素相關(guān)統(tǒng)計分析攻擊

為了說明加密后圖像的相關(guān)特征被完全破壞,隨機取一些點,以該點為中心,計算其相鄰各個點顏色值數(shù)學期望值、自相關(guān)和互相關(guān)以及協(xié)方差。每種顏色的自相關(guān)值為:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

顏色之間的互相關(guān)值為:

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

應(yīng)用上述計算公式,分別取像素(i,j)為中心的7×7點陣進行分析,分析結(jié)果如圖5所示。

擴散映射置亂與超混沌系統(tǒng)組合圖像加密算法

圖中給出彩色圖像文件加密前后隨機選取的6000個像素鄰域相關(guān)分析結(jié)果??梢钥闯?,原圖像的大部分像素的鄰域相關(guān)性在1.0附近,而加密后的圖像各個像素的顏色值相關(guān)性非常小,因此,該文件加密方法可以有效地抵御采用像素相關(guān)分析的攻擊。

小知識之置亂

所謂“置亂”,就是將圖像的信息次序打亂,將a像素移動到b像素的位置上,b像素移動到c像素的位置上……使其變換成雜亂無章難以辨認的圖像。