基于Arnold變換的雙置亂圖像加密算法

為提升圖像的置亂效果和置亂性能,提出了一種基于Arnold變換的雙置亂圖像加密算法。

一、Arnold變換

1、Arnold像素位置變換

Arnold變換矩陣為:

雙置亂圖像加密算法

二維Arnold位置變換表達(dá)式為:

1

式中,x,y,x’y’∈{1,2,…,N-1},N為圖像矩陣階數(shù),x,y)為原始圖像像素位置,x’,y’)為置亂后圖像像素位置,在數(shù)字圖像中,Arnold變換是將原來點(diǎn)(x,y)處像素值移動到變換之后的(x’,y’)點(diǎn)位置,通過變換圖像會由清晰變模糊,當(dāng)遍歷了原始圖像的所有點(diǎn)后,便產(chǎn)生了一幅相對原始圖像混亂的新圖。

對圖像進(jìn)行一次Arnold變換,相當(dāng)于對該圖進(jìn)行一次置亂,通常這個變換過程需要反復(fù)進(jìn)行多次才能達(dá)到滿意效果,則對圖像做n次Arnold位置變換的表達(dá)式為:

1

利用Arnold變換對原始圖像置亂,使其變成像白噪聲一樣的毫無意義圖像,實(shí)現(xiàn)了圖像信息的隱藏,置亂次數(shù)可以做為密鑰,從而增強(qiáng)了系統(tǒng)的保密性與安全性。

2、Arnold像素值變換

用辦表示任意像素值十六進(jìn)制形式,對其進(jìn)行一次變換的表達(dá)式為:

1

式中,h=(h1,h2,)H,h’=(hi’,h2’)H是像素值h置亂后得至0的值,hl,h2,hi’,h2’∈(1,2,…,n)。

同樣,為了達(dá)到滿意的置亂效果,也需要迭代多次Arnold像素值變換,則對像素值h進(jìn)行n次變換的表達(dá)式為:

1

3、Arnold逆變換

通常,求解Arnold反變換是通過計(jì)算其周期,表1給出了不同階數(shù)N下數(shù)字圖像的Arnold變換周期TN。

1

現(xiàn)有研究表明:若對一幅進(jìn)行過n次Arnold變換的Ⅳ×Ⅳ數(shù)字圖像(n>1)進(jìn)行恢復(fù),需要對其繼續(xù)進(jìn)行(TN-n mod TN)次Arnold變換即可得到原圖像,這種恢復(fù)圖像的方法要先檢測圖像大小和置亂周期,在處理較大圖像時會花費(fèi)較長時間,而在實(shí)際中應(yīng)盡量減少其時間和空間復(fù)雜度。給出并證明了一種改進(jìn)的Arnold反變換,無須計(jì)算圖像周期,在置亂狀態(tài)下迭代相J司步數(shù)即可恢復(fù)原圖,節(jié)省了開銷,稱其為Arnold逆變換,即:

1

式(2)與式(6)有相同的周期.當(dāng)一幅原圖經(jīng)過n步Amold變換得到置亂圖像時,可以對置亂圖像進(jìn)行n步Arnold逆變換后恢復(fù)出原圖,從而不必計(jì)算圖像大小和變換周期,在本文算法中對密文圖像解密時采用的就是Arnold逆變換。

二、雙置亂加密算法

1、圖像分塊算法

圖像置亂是為了降低圖像鄰域像素相關(guān)性,使圖像的像素由最大確定性變?yōu)椴淮_定性。為達(dá)到理想的置亂效果,可以采用的圖像均勻分塊算法,對于一幅原始圖像,假設(shè)將其分成nxn個圖像塊,每塊中有mxm個像素點(diǎn),則置亂后的圖像應(yīng)分成mxm個圖像塊,其中每塊中含有nxn個像素點(diǎn),并且將原始圖像每個圖像塊的mxm個像素點(diǎn)均勻分到置亂后圖像的mxm個圖像塊中,保證每塊圖像中各含一個像素點(diǎn),實(shí)現(xiàn)均勻置亂。

2、加密解密過程

Arnold雙置亂圖像加密過程見圖1。

1

先采用均勻分塊算法對原始圖像進(jìn)行分塊操作,然后分別對置亂后的每個圖像塊按式(3)做Arnold位置置亂,最后再按式(5)對合并后的圖像做像素值置亂,從而得到雜亂無章的加密圖像。

圖像解密過程是圖像加密的逆過程,首先,利用已知密鑰(變換次數(shù))對加密圖像做Arnold逆變換,對圖像像素值置亂進(jìn)行恢復(fù),然后執(zhí)行圖像分塊算法,最后對圖像塊做Arnold逆變換恢復(fù)圖像像素位置,從而還原出原始圖像。

三、加密算法性能分析

下面通過實(shí)驗(yàn)對本文算法的性能進(jìn)行驗(yàn)證。

1、加密效果

從圖2可以看出,傳統(tǒng)Amold置亂算法是對圖像整體進(jìn)行位置置亂,需要置亂多次才能達(dá)到理想的加密效果(見圖2(b)),而且當(dāng)?shù)揭欢ú綌?shù)時會恢復(fù)原圖,加密系統(tǒng)安全性較低;而采用本文的雙置亂加密算法時只要在較少的置亂次數(shù)下就能夠達(dá)到理想的加密效果,而且采用雙密鑰決定置亂次數(shù)也提高了加密系統(tǒng)的安全性。

1

2、鄰域像素相關(guān)性

通常一幅圖像的相鄰像素之間具有很大相關(guān)性,統(tǒng)計(jì)攻擊方法常利用該性質(zhì)來分析圖像加密算法。置亂后圖像相關(guān)性越小說明圖像加密效果越好,用相關(guān)系數(shù)來衡量加密算法對鄰域像素相關(guān)性的破壞能力。本文對圖2 (a)圖像進(jìn)行測試,分別隨機(jī)選取1 000對相鄰像素點(diǎn)(水平方向、垂直方向、對角方向),記為(xi,Yi) (i=l,2,3,…,N),利用式(7)計(jì)算相關(guān)系數(shù),

1

式中:

1

和D(x)分別是xi的離散化均值和方差。

圖像加密前后鄰域像素相關(guān)系數(shù)見表2。從表2可以看出,原始圖像在水平、垂直和對角3個方向的像素相關(guān)性都非常高,而加密圖像的相關(guān)性非常?。ń咏?),故本文算法具有很強(qiáng)的抗統(tǒng)計(jì)分析攻擊能力。

1

3、抗剪切性能

利用Adobe photoshop軟件對已加密圖像圖2(d)進(jìn)行裁剪,裁剪方案見圖3(a),然后對裁剪后的加密圖像進(jìn)行恢復(fù),恢復(fù)效果見圖3 (b)。

1

由實(shí)驗(yàn)結(jié)果得知,對裁剪圖像進(jìn)行恢復(fù)后會存在一定程度失真,但還是會很容易辨認(rèn)出圖像所表達(dá)的信息.本文算法由于采用了均勻分塊和圖像塊置亂思想,使得每塊圖像中的像素都能夠均勻分布到其他各個圖像塊中,削弱了圖像鄰域像素相關(guān)性,從而能夠有效地抵抗局部隨機(jī)裁剪攻擊。

小知識之Arnold變換

Arnold變換是一種常用的圖像置亂技術(shù),Arnold變換的定義如下:
對任意N*N矩陣(所有元素都相同的矩陣除外),設(shè)i,j為矩陣元素原始下標(biāo),經(jīng)過Arnold變換后新下標(biāo)為i',j',且滿足下式:
i'=(i+j)mod N
j'=(i+2j)mod N
i,j:0,1,.........N-1
Arnold變換具有周期性,即經(jīng)過若干次變換后,矩陣回到最初狀態(tài),且周期T與N的大小有關(guān)。理論基礎(chǔ)沒找到,但可以用程序來進(jìn)行計(jì)算,可以設(shè)i,j從一個點(diǎn)出發(fā),不斷使用以上變換,再次回到這個起點(diǎn)時,經(jīng)歷的變換次數(shù)就是周期。