景運(yùn)革,王彩霞
(運(yùn)城學(xué)院 公共計(jì)算機(jī)教學(xué)部,山西 運(yùn)城 044000)
目前混沌加密己成為密碼學(xué)研究的熱點(diǎn)之一,但已有的大部分混沌加密算法都是基于單個(gè)混沌系統(tǒng)的。事實(shí)表明,一些混沌映射可通過相空間重構(gòu)的方法精確預(yù)測(cè)出來(lái)[1]。另外,由于計(jì)算機(jī)精度的限制,單混沌系統(tǒng)輸出的時(shí)間序列并不能達(dá)到理論上的完全隨機(jī),而可通過多個(gè)混沌系統(tǒng)的級(jí)聯(lián)使這一缺陷得到改善[2]。為此,本文提出了一種基于多混沌系統(tǒng)級(jí)聯(lián)的圖像加密算法,理論分析與數(shù)值實(shí)驗(yàn)均表明本算法能夠達(dá)到密碼學(xué)要求的混淆和擴(kuò)散的目的,并能有效地預(yù)防差分攻擊。
Logistic映射由數(shù)學(xué)生態(tài)學(xué)家May于1976年提出,是非線性迭代方程和研究最廣泛的動(dòng)力系統(tǒng)。Logistic映射的定義為:
當(dāng)3.569 945 6<μ≤4時(shí),Logistic映射工作處于混沌狀態(tài),即由初始條件x0在Logistic映射的作用下所產(chǎn)生的序列{xk}是非周期、不收斂的,并對(duì)初始值非常敏感;當(dāng)μ=4時(shí),該映射是滿射,產(chǎn)生的混沌序列在區(qū)間(0,1)上具有遍歷性。由于Logistic映射具有與白噪聲相似的特性、簡(jiǎn)單和初始值敏感性的特點(diǎn),因此很多混沌圖像加密算法都是基于Logistic映射的。
時(shí)空混沌系統(tǒng)是一個(gè)空間上的擴(kuò)展系統(tǒng)[3],它展現(xiàn)了時(shí)間和空間上的混沌性。耦合映射格子(CML)通常被作為時(shí)空混沌系統(tǒng)使用,這種系統(tǒng)是具有離散時(shí)間、離散空間和連續(xù)狀態(tài)的動(dòng)力系統(tǒng)。它由位于格子站點(diǎn)上的稱為局部映射的非線性映射組成,每個(gè)局部映射與其他局部映射以一定規(guī)則進(jìn)行耦合連接。由于每個(gè)局部映射所固有的非線性動(dòng)力特性及相互間耦合所產(chǎn)生的發(fā)散性,CML可以展現(xiàn)時(shí)空混沌性。所以采用不同的局部映射和耦合方法便可以構(gòu)造出不同形式的CML[4]。本算法構(gòu)造的二維CML為:
本算法選用的混沌系統(tǒng)為時(shí)空混沌系統(tǒng)與一維Logistic映射。首先利用式(2)時(shí)空混沌系統(tǒng)產(chǎn)生隨機(jī)序列,然后將這個(gè)序列值分別作為式(1)的Logistic映射初始值,經(jīng)過特定次數(shù)的迭代以后得到最后所需的混沌序列。這個(gè)特定次數(shù)是由上一個(gè)圖像像素加密后的結(jié)果決定的。
假設(shè)待加密的數(shù)字圖像為z(M×N)。首先,將圖像 z中的像素值從左到右、從上到下進(jìn)行橫向掃描,將掃描得到的像素值存儲(chǔ)到f(n)中。加密過程如下:
(2)對(duì)第i和i+1個(gè)像素加密時(shí),首先將si作為式(1)的初值進(jìn)行特定次數(shù)的迭代得到k。假設(shè)前兩個(gè)已加密的像素值分別為c(i-2)和c(i-1),則求 k所需要的迭代次數(shù)為:
n=(c(i-2)+c(i-1))mod 25,其中當(dāng) n=0時(shí),迭代 25次。K的二進(jìn)制形式表示為∶
k=0b1(k)b2(k)……bi(k)……k∈(0,1)bi(k)∈{0,1}。第i個(gè)比特bi(x)可由下式得到:
經(jīng)計(jì)算可得到一個(gè)16位的比特序列,取前8位作為key1與第i個(gè)像素值進(jìn)行“異或”操作得到密文c1(i),取后8位作為key2與第i+1個(gè)像素值進(jìn)行“異或”操作得到密文 c1(i+1)。
(3)對(duì)第1個(gè)和第2個(gè)像素值加密時(shí),首先用由時(shí)空混沌系統(tǒng)式(2)產(chǎn)生的隨機(jī)序列s(1)作為初值進(jìn)行迭代25次,將由步驟(2)得到的 key1、key2分別與對(duì)應(yīng)的像素值進(jìn)行“異或”操作得到密文c1(1)和c1(2),然后按步驟(2)依次對(duì)圖像中的每個(gè)像素進(jìn)行操作,最后可以得到圖像c1。
(4)對(duì)圖像c1按相反的方向從最后兩個(gè)像素開始按步驟(3)對(duì)像素值進(jìn)行操作得到圖像c,即為加密后的密文圖像。
解密過程與加密過程相反,即:將步驟(2)中提到的迭代的次數(shù)改為由密文圖像的前兩個(gè)像素值決定,再將步驟(3)與步驟(4)的順序顛倒過來(lái),即可完成密文圖像的解密。
利用本文提出的算法,令Logistic映射的參數(shù)μ=4,ξ=0.99,時(shí)空混沌映射的初始值x=0.421 52、x=0.639 42、x=0.533 46、q1=0.327 54、q2=0.525 12 和 q3=0.832 14,對(duì)256×256的圖1(a)進(jìn)行加密。圖1(c)即為加密后的結(jié)果。圖1(b)和圖1(d)分別是待加密圖像和已加密圖像的直方圖。
本算法有很高的安全性,具有更大的密鑰空間,且能夠抵御大部分常見的攻擊。
圖2給出了密鑰敏感性的測(cè)試結(jié)果。其中圖2(a)是用正確密鑰 x=0.421 52、x=0.639 42、x=0.533 46、q1=0.327 54、q2=0.525 12和 q3=0.832 14進(jìn)行解密后所得到的圖像;圖2(b)和圖2(c)分別是將密鑰中 x和 x改為0.421 53與0.639 42時(shí)解密后所得到的圖像。將圖2(b)和圖2(c)與圖2(a)進(jìn)行比較,可見雖然密鑰僅發(fā)生了非常微小的改動(dòng),但是解密后的結(jié)果卻完全不同,這表明本算法對(duì)密鑰是敏感的。
圖像中相鄰像素的相關(guān)性非常大,在加密過程中為了防御統(tǒng)計(jì)攻擊,必須使得相鄰像素間的相關(guān)性降低[5]。本文在待加密圖像和加密后的圖像中各隨機(jī)地選取了2 008對(duì)像素對(duì),測(cè)試其水平方向、垂直方向、對(duì)角方向的像素相關(guān)性,并利用式(8)計(jì)算其相關(guān)系數(shù):
表1 相鄰像素值的相關(guān)系數(shù)rxy
通過對(duì)待加密圖像做微小的改變,然后觀察該改變帶來(lái)的結(jié)果的方法,攻擊者可以獲得加密后圖像與原圖像之間的關(guān)聯(lián)。若某加密算法可使原圖像發(fā)生微小變化,使前后加密的結(jié)果變化很大,則該算法即可很好地預(yù)防差分攻擊。
像素?cái)?shù)目改變率(NPCR)是指當(dāng)待加密圖像改變一個(gè)像素時(shí),加密后圖像像素?cái)?shù)目的改變率。NPCR越大,表明加密算法對(duì)于待加密圖像變化越敏感,則該加密算法抵抗明文攻擊能力越強(qiáng);平均強(qiáng)度變化率(UACI)是指待加密圖像和加密后圖像相應(yīng)像素的平均強(qiáng)度的變化率,該指標(biāo)越大,表示加密后圖像與待加密圖像比平均強(qiáng)度變化越大,則該加密算法抵抗差分攻擊能力越強(qiáng)。設(shè)兩幅加密后的圖像分別為c1和c2,則:
式 中,c1(i,j)、c2(i,j)分 別 表 示(i,j)處 的 像 素 灰 度 值,W 為圖像的寬度,H為圖像的高度。定義矩陣D(i,j):若c1(i,j)=c2(i,j),則 D(i,j)=0;否則 D(i,j)=1。
選取Lena原圖像圖1(a)作為測(cè)試對(duì)象,隨機(jī)選取其中某個(gè)像素點(diǎn)并改變它的像素值,然后用本算法對(duì)這兩幅差別微小的圖像加密,分析加密后圖像相同像素的比率。 經(jīng)計(jì)算得到 NPCR=99.653 7%,UACI=37.682 5%,表明了即使將待加密的圖像做微小的改動(dòng),通過本算法加密后,也會(huì)得到明顯的差異。
信息論是研究信息傳輸與信息壓縮的數(shù)學(xué)理論,最早由香農(nóng)在1949年提出[6]。信息論中一個(gè)非常重要的概念就是信息熵,一個(gè)信息源m的信息熵:
式中,P(mi)表示信號(hào)mi出現(xiàn)的概率。對(duì)于給定的一個(gè)實(shí)際信息源很少能夠產(chǎn)生隨機(jī)的信息,所以通常它的熵值小于理想值。在對(duì)信息加密后,一般希望它的熵H(m)=8。若加密后的信息熵值小于8,則會(huì)威脅到所加密圖像的安全性。
利用本算法對(duì)圖2(a)進(jìn)行加密得到圖2(c),記錄圖2(c)中每一個(gè)不同像素值,并計(jì)算其出現(xiàn)的概率,最后可求出:
本文提出一種基于級(jí)聯(lián)混沌系統(tǒng)的圖像加密算法,采用由Logistic映射構(gòu)成的一維CML作為時(shí)空混沌系統(tǒng),然后將它的輸出序列作為L(zhǎng)ogistic由某一初始值經(jīng)過特定次數(shù)的迭代后得到最終的密鑰序列。安全性分析表明,本算法的密鑰空間足夠大,使得暴力攻擊不可能。仿真實(shí)驗(yàn)結(jié)果也表明,本算法具有較高的性能,在圖像加密和圖像傳輸中具有一定的潛在應(yīng)用價(jià)值。
[1]ZHANG S, XIAO X C.Prediction of chaotic time series by using adaptive higherorder nonlinear fourier infrared filter[J].Acta Physica Sinica, 2000,49(7)∶1221-1227.
[2]KACHRIS C, BOURBAKIS N, DOLLAS A.A reconfig-urablelogic-based processorfortheSCAN imageand video encryption algorithm[J].International Journal of Parallel Programming, 2003,31(6)∶489-506.
[3]XIANG T, LIAO X F, TANG G P.A novel block cryptosystem based on iterating a chaoticmap[J].Physics Letters A, 2006,349(1)∶109-115.
[4]LI P, LI Z, WOLFGANG A.A stream based on a spatiotemporal chaotic system[J].Chaos,Solitons and Fractals,2007,32(5)∶1867-1786.
[5]孫偉.關(guān)于Arn01d變換的周期性 [J].北方工業(yè)大學(xué)學(xué)報(bào),1999,11(1):29-32.
[6]SHANNON C E.Communication theory of secrecy systems[J].Bell Syst Tech J, 1949,28:656-715.