彩色圖像文件置亂加密之三維混沌映射

在圖像文件加密的過(guò)程中,圖像置亂是一個(gè)非常重要的方法,為此,我們提出了一種利用分塊置亂與RGB分量置亂相結(jié)合的方法對(duì)彩色圖像進(jìn)行位置置亂,并用密鑰產(chǎn)生的混沌序列值與像素值進(jìn)行異或達(dá)到置亂灰度值的效果,然后該算法較好的完成了彩色圖像文件加密的方法。

一、混沌映射

混沌是復(fù)雜的系統(tǒng),目前我們只是混沌系統(tǒng)已有的性質(zhì)加以利用。經(jīng)過(guò)對(duì)各種混沌系統(tǒng)產(chǎn)生序列的比較,Logistic映射生成的實(shí)值混沌序列和二值序列均有較好的初值敏感性和隨機(jī)性。本文采用Logistic和Chen映射相結(jié)合的方法產(chǎn)生圖像置亂所需要的混沌序列,有效的提高了敏感性和安全性。

1、Logistic映射

混沌現(xiàn)象是在非線性動(dòng)力系統(tǒng)中出現(xiàn)的確定性的、類似隨機(jī)的過(guò)程,這種過(guò)程既非周期又不收斂,并且對(duì)切始值有極其敏感的依賴性。

在一維混沌映射中,Logistic映射具有偽隨機(jī)性的特點(diǎn),其表達(dá)式如下所示:

當(dāng)3.569946≤μ≤4。x0=(0,1)時(shí),系統(tǒng)處于混沌狀態(tài)。Logistic映射可以定義在(0,1)上,相應(yīng)地得到定義在(0,1)范圍內(nèi)的隨機(jī)序列{xn,n= 0,1,2……}。

2、Chen映射

Chen映射是一種普通的三維混沌映射?;煦缦到y(tǒng)表述如下式所示:

其中a=35,b=3,c=28,此系統(tǒng)處于混沌狀態(tài)。

二、圖像文件加密與解密算法

圖像文件加密算法種類繁多,總體上可以分為圖像位置置亂和改變圖像像素值。如今,運(yùn)用兩種方法相結(jié)合,可以有效地提高圖像置亂效果與抗攻擊能力。本文中用控制混沌系統(tǒng)參數(shù)與明文相結(jié)合的方法產(chǎn)生混沌序列,并用其對(duì)圖像進(jìn)行分塊處理與三基色像泰值置亂的方法來(lái)改變像素的位置與數(shù)值,以改變圖像各像素的位置。同時(shí),用Chen混沌系統(tǒng)產(chǎn)生的三維序列與置亂后的像素值進(jìn)行異或,獲得分布均勻的類噪聲的密文。

1、密鑰設(shè)計(jì)

現(xiàn)有研究成果在圖像加密算法方面并未考慮對(duì)明文變化的敏感性。而彩色圖像是由三基色構(gòu)成,三個(gè)分量之間的相關(guān)性未被破換,所以單獨(dú)對(duì)一個(gè)基色進(jìn)行加密,并不能有效抵抗攻擊,所以提出以下的密鑰設(shè)計(jì)方式:

(1)分別對(duì)R、G、B三個(gè)基色求平均值,并取其小數(shù)部分作為產(chǎn)生Logistic序列初始值p和禹的條件,如下式所示:

其中,tr、tg、tb為RGB三基色相對(duì)應(yīng)的平均值,Mod[.]表示取模處理。

(2)對(duì)Chen系統(tǒng)產(chǎn)生的xi,yi,zi和Logistic產(chǎn)生的μi序列進(jìn)行修改,使兩個(gè)混沌系統(tǒng)和彩色圖像各分量的像素值充分聯(lián)系,增大密鑰空間,如下式:

由此產(chǎn)生的x1,y1,z1序列用于圖像分塊置亂和RGB分量置亂。

2、加密與解密步驟

我們采用分塊置亂的方法,但單獨(dú)使用分塊處理會(huì)引起塊狀效應(yīng)。同時(shí),彩色圖像像素各分量像素值之間存在相關(guān)性,采用交叉RGB各分量之間的像素值,達(dá)到置亂整個(gè)彩色圖像像素值和加密的作用。同時(shí)采用大小為256x256,灰度級(jí)為256的彩色圖像baboonRGB進(jìn)行實(shí)驗(yàn)。

(1)分塊置亂

取x1序列中的任意一段序列,長(zhǎng)度為256(該長(zhǎng)度根據(jù)圖像分塊的個(gè)數(shù)來(lái)設(shè)置)。對(duì)RGB三個(gè)分量分別進(jìn)行分塊處理,用{R1,R2...R256},{G1,G2…G256},{B1,B2...B256)表示。對(duì)x1,x2,x3分別序列進(jìn)行排序,分別x1,x2,x3取其中任意兩數(shù)之和為257所對(duì)應(yīng)的位置,交換對(duì)應(yīng)位置上像素塊的值。以x1序列和R分量為例,xl(1)=237,xl(16)=20,則交換R1塊和R16塊的位置。然后,將像素大小為16x16的像素塊進(jìn)行第二次分塊,將其分成4x4小塊,分別為R11,R12,R13,R14。對(duì)其進(jìn)行對(duì)應(yīng)像素塊的取值處理,將R11,R12,R13,R14各塊中的第一個(gè)像素值集中放置在R‘11塊中,將R11,R12,R13,R14各塊中的第二個(gè)像素值集中放置在R'12塊中,以此類推,完成一塊像素值的位置置亂。以R1為列,將墨分為2x2的像素塊{R11,R12,R13,R14}R11中的像素原為{1,2,5,6),經(jīng)過(guò)置亂后R'11中的元素為{l,3,9,11}..…,其他分塊按同樣的方式進(jìn)行置亂。

(2)RGB分量置亂

按上述步驟對(duì)整個(gè)彩色圖像進(jìn)行分塊置亂,整個(gè)圖像的像素值位置發(fā)生變化,但是像素值并沒(méi)有發(fā)生變化且RGB三個(gè)分量之聞的相關(guān)性沒(méi)有破壞,容易遭受明文攻擊。把位置置亂后的RGB圖像轉(zhuǎn)換成3*65536的矩陣。利用Logistic,產(chǎn)生的長(zhǎng)度為256x256序列進(jìn)行處理,按式把其轉(zhuǎn)化成1-3的實(shí)數(shù)序列,如下式利用xx序列對(duì)每一列進(jìn)行上下翻轉(zhuǎn)。當(dāng)xx=l時(shí),則上移一位,xx=2時(shí)則上移2位,xx=3時(shí)相當(dāng)于保持不變。經(jīng)過(guò)此操作,彩色圖像的各個(gè)分量之間對(duì)應(yīng)位置的像素值進(jìn)行相應(yīng)的置亂,以此破壞RGB三個(gè)分量之間的相關(guān)性。

(3)像素值置亂

對(duì)修改后的序列進(jìn)行放大處理,取模并與像素值相異或,如下式所示。R'、G‘、B‘分別為像素值置亂后彩色圖像的三個(gè)分量,合并后則為加密后的彩色圖像RGB。

其中[]表示向下取整,HR、HG、HB為位置置亂后的彩色圖像各個(gè)分量。

解密算法與加密算法的密鑰相同,過(guò)程相反。

三、實(shí)驗(yàn)結(jié)果與安全性能分析

為了驗(yàn)證圖像加密算法的安全性,本文引入了密鑰空間、統(tǒng)計(jì)分析方法進(jìn)行論證,本文采用大小為256x256,灰度級(jí)為256的彩色圖像baboonRGB進(jìn)行實(shí)驗(yàn)。在windows7環(huán)境下,用matlab7.1實(shí)現(xiàn)整個(gè)算法。圖1為原始圖像與加密后的圖像。加密后的密圖變得雜亂章,無(wú)法從密圖中看出原始圖像。

1、密鑰空間分析

眾所周知,圖像加密的算法必須考慮對(duì)密鑰的敏感性問(wèn)題,如果密鑰空間足夠大,可以阻止攻擊者利用窮舉法進(jìn)行解密操作。

本文所提出的算法,采用的密鑰為K=(μ,xl,x,yz),其中μ,x1為明文控制的密鑰,其他為外部密鑰。一個(gè)原始圖像大小為MxN,當(dāng)計(jì)算機(jī)的精度為10-15時(shí),若只考慮μ,xl時(shí),密鑰空間為2xl03o。若再考慮其他的密鑰,則密鑰空間幾乎達(dá)到無(wú)窮大,足夠抵抗窮舉攻擊。

2、統(tǒng)計(jì)分析

統(tǒng)計(jì)分析的性能是用來(lái)表征采用加密算法中混迭和擴(kuò)散性能的強(qiáng)度是否可以抵抗統(tǒng)計(jì)攻擊。我們可以從加密圖像的直方圖和相鄰像素的相關(guān)性得出結(jié)論。

為了說(shuō)明本文提出的加密算法具備混迭和擴(kuò)散性能的強(qiáng)度,特別引入直方圖進(jìn)行分析。

圖2分別為RGB三個(gè)分量加密前和加密后的直方圖。比較兩幅直方圖,從結(jié)果可以看出,加密后的直方圖分布得較為均勻。

小知識(shí)之置亂

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