基于混沌動態(tài)搜索的數(shù)字圖像加密算法

由于混沌密碼分析的不斷進(jìn)步,且已存在的混沌加密算法都或多或少的存在著安全方面的隱患,為此我們需進(jìn)一步提出新的混沌加密算法,使其可以避免在已有算法中存在的弱點(diǎn),并且可以抵抗可能性的攻擊?;诨煦鐒討B(tài)搜索的數(shù)字圖像加密算法應(yīng)運(yùn)而生,這種加密算法將兩個Logistic映射與動態(tài)查找表相結(jié)合,安全性高,加密速度更快。

一、Logistic混沌映射

本文選用Logistic映射產(chǎn)生偽隨機(jī)序列,其原因在于它對初值的敏感性,以及經(jīng)過若干次的迭代之后,它產(chǎn)生的數(shù)值序列變得毫不相關(guān),并且不可預(yù)測。

Logistic映射為:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

當(dāng)3.5699456....≤u≤4,Logistic映射進(jìn)入混沌態(tài)。即由初始值xo在Logistic映射的迭代下所產(chǎn)生的序列{xi}是非周期的,不收斂的并對初始值也非常敏感。當(dāng)u=4時,由式(1)所產(chǎn)生
的混沌序列其統(tǒng)計特性與白噪聲有許多相似之處,是理想的密碼流序列。由于單一的Logistic映射,在被蓋化處理之后,周期比較短。因此本文選取2個Logistic映射,一個作為加密序列,另一個作為干擾源,達(dá)到擾動,擴(kuò)大其周期,同時將上一個密文作為反饋放到密碼系統(tǒng)中去,以及不斷的調(diào)整查找表,有效的克服各種攻擊。

二、動態(tài)查找表

Baptista提出的查找表算法,主要的缺點(diǎn)就是密文分布不均勻,其中很重要的一個原因就是查找表是靜態(tài)的。本文提出了利用動態(tài)查找表的方法有效的克服上述缺點(diǎn)。所謂動態(tài)的查找表就是在加密過程中不斷的動態(tài)的改變表中項的內(nèi)容,具體形式如圖1所示。

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

例如,混沌系統(tǒng)輸出一個數(shù)值為16(經(jīng)過量化之后),序號16所對應(yīng)的表項為table[16],按照一個規(guī)則將表項中的ASCII碼值和另外一個表項交換。具體的交換規(guī)則如下:

Table [16]表項值為00001000,將表項值反向輸出為00010000,十進(jìn)制值為32,將table[16]和table[32]中的值進(jìn)行交換,同時將相鄰的4個表項table[14],table[15],table[17]和table[18]按照如上的規(guī)則進(jìn)行交換。若交換的時候發(fā)現(xiàn)交換項是本身,例如255(111111111),則反向輸出也是其本身,就將起各項取反,即00000000,也就是將table[255]和table[0]交換。

三、基于混沌動態(tài)搜索的數(shù)字圖像加密算法描述

圖2給出了本加密算法的加密流程,其具體步驟描述如下:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

(1)確定Logistic混沌映射1和2的控制參數(shù)u1和u2,以及系統(tǒng)初值x1和x2:取u1、u2∈[3.9999997,4],x1、x2∈(0,1),這樣映射1和2產(chǎn)生兩個混沌序列Xi1,Xi2。

(2)設(shè)定message的初值messagelnit,message作為反饋來使用,設(shè)置message的一個初值,以后就用密文來代替。

(3)加密時,首先將logistic映射1產(chǎn)生的序列值,按如下規(guī)則:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

轉(zhuǎn)化到0-255之間;然后將xi與message相異或得到xe,找到對應(yīng)的動態(tài)表項table[xc]。

(4)將logistic映射2產(chǎn)生的序列值,按如下規(guī)則:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

轉(zhuǎn)化到0-255之間;將明文字節(jié)org[i]、而xr、table[xc]相互異或得到密文encrypted[i]。特別當(dāng)Xn>0.5時,按照上述方法進(jìn)行查找表的動態(tài)交換;Xi1≤0.5時,查找表不變化,這樣有利于加快加密的速度。

(5)重復(fù)步驟(3)、(4),直到窮盡所有明文。

四、基于混沌動態(tài)搜索的數(shù)字圖像加密算法安全性分析

試驗環(huán)境為:CPU: PentiumIV l.4G;內(nèi)存:512M;操作系統(tǒng):Windows XP下,用CH編寫代碼。選取兩混沌映射初值分別為x1=0.245243和x2=0.9345242,系統(tǒng)控制參數(shù)分別為u1=4.0和u2=3.992923,messageinit值為50,對應(yīng)的二進(jìn)制數(shù)為00110010。圖3給出了對Lena圖像文件加密的效果,其中圖3(a)為Lena原圖,圖3(b)為對應(yīng)的密文圖像。

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

1、密鑰分析

(1)密鑰空間分析

兩個Logistic映射的初值可取0-1之間的任意實值,兩個系統(tǒng)的參數(shù)在3.999997-4之間,同時messageinit都可以作為該加密系統(tǒng)的密鑰,可見本加密算法的密鑰空間較大,不容易破解。

(2)敏感性測試

改變本算法中第2個Logistic映射的初值,如將其增加0.000000001,再對Lena原圖文件加密,結(jié)果如圖3(c)所示。計算圖3(b)和3(c)的像素變化率(NPCR)......,其
值為0.46%,這表明密文圖像3(b)和3(c)的相似度是非常小的。

2、統(tǒng)計分析

(1)直方圖分析

圖4為對Lena圖像文件加密前后的直方圖。圖4(a)和圖4(b)比較,可見使用本加密算法所得的Lena密圖的直方圖呈分布很均勻,完全掩蓋了變換前的分布規(guī)律,才能破譯難度進(jìn)一步增加。

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

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

加密前圖像中相鄰像素的相關(guān)性是明顯很大,降低相鄰兩個像素的相關(guān)性才能破壞統(tǒng)計攻擊.所以在原始圖像和加密圖像中各隨機(jī)選1000對像素對,測試其相關(guān)性(垂直方向、水平方向),并進(jìn)行相關(guān)系數(shù)計算。其中x,y表示像素灰度(兩個相鄰)。在測試中,使用如下3個離散化公式:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

圖5給出了利用本加密算法對Lena圖像文件加密前后圖像的相鄰像素水平相關(guān)性。表1列出了圖像加密前后相關(guān)系數(shù)(水平,垂直方向)。由表1和圖5可見,加密后圖像相鄰像素間的相關(guān)性要遠(yuǎn)小于Lena原圖像的,這表明本算法具有較強(qiáng)的抗統(tǒng)計分析能力。

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

基于混沌動態(tài)搜索的數(shù)字圖像加密算法
(3)差分攻擊

攻擊者通過圖像中很小的一點(diǎn)(例如一個像素)來觀察加密后圖像的變化,來破解加密圖像。這里作者以原始圖像一個像素的改變對加密圖像的影響為例測試了差分攻擊。先定義了兩個量:歸一化平均變化強(qiáng)度(UACD和像素變化率(NPCR)。令加密圖像(兩幅)分別為C1和C2,這些圖像只有一個像素的改變。像素在位置(i,j)的灰度值為C1(i,j)和C2(i,j)。定義一個二值矩陣D,它和C1與C2有相同的尺寸。若C1(i,j)=C2(i,j),則D(i,j)=1;否則D(i,j)=0。

NPCR定義為:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

UICI定義為:

基于混沌動態(tài)搜索的數(shù)字圖像加密算法

經(jīng)過計算可以得到NPCR=0.423%,UACI= 26.34%,由此可見本加密算法不僅僅對密鑰是敏感的,對要加密的圖像文件也是非常敏感的,可見可以有效的抵抗差分攻擊。

通過以上實驗結(jié)果表明本加密算法對密鑰具有敏感的依賴性、抗攻擊能力強(qiáng),加密速度更快等優(yōu)勢。

小知識之差分攻擊

差分攻擊是一種選擇明文攻擊,其基本思想是:通過分析特定明文差分對相對應(yīng)密文差分影響來獲得盡可能大的密鑰。它可以用來攻擊任何由迭代一個固定的輪函數(shù)的結(jié)構(gòu)的密碼以及很多分組密碼(包括DES),它是由Biham和Shamir于1991年提出的選擇明文攻擊。