基于Logistic混沌序列的灰度圖像加密算法
隨著Internet技術(shù)與多媒體技術(shù)的飛速發(fā)展,多媒體通信逐漸成為人們進(jìn)行信息交流的重要手段。與此同時(shí),圖像數(shù)據(jù)的安全性變得越來越重要。在各種不同的圖像加密技術(shù)中,基于混沌理論的加密技術(shù),正成為圖像加密研究的熱點(diǎn)。那么我們以Logistic混沌系統(tǒng)為基礎(chǔ),提出了一種新的圖像加密算法,通過實(shí)驗(yàn)分析表明,該算法具有良好的加密性能。
一、Logistic混沌系統(tǒng)
混沌是一種非線性動(dòng)力學(xué)規(guī)律控制的行為,表現(xiàn)為對(duì)初始值和系統(tǒng)參數(shù)的敏感性、白噪聲的統(tǒng)計(jì)特性和區(qū)間遍歷特性,具有很好的密碼學(xué)特性。
一個(gè)一維離散時(shí)間非線性動(dòng)力系統(tǒng)定義如下:
![]()
其中,xk∈V(k=0,1,2,…),稱為狀態(tài);而τ:V→V是一個(gè)映射,將當(dāng)前狀態(tài)xk映射到下一個(gè)狀態(tài)xk+1。如果從一個(gè)初始值x0開始,反復(fù)應(yīng)用τ就得到一個(gè)序列{xk},k=0,1,2,…,這一序列稱為該離散時(shí)間動(dòng)力系統(tǒng)的一條軌跡。
一類非常簡(jiǎn)單卻被廣泛研究的動(dòng)力系統(tǒng)是Logistic映射,其定義如下:
![]()
其中,0≤μ≤4稱為分枝參數(shù),xk∈(0,1),定義同上。混沌動(dòng)力系統(tǒng)的研究工作指出,當(dāng)3.5699456…<μ≤4時(shí),Logistic映射工作于混沌態(tài)。也就是說,由初始條件x0在Logistic映射的作用下所產(chǎn)生的序列{xk},k=0,1,2,…是非周期的、不收斂的并對(duì)初始值非常敏感。對(duì)于一般的混沌映射xk+1=f(xk),概率密度ρ(x)可由Perron-Froenious方程得到,即:
![]()
當(dāng)μ=4,則Logistic映射所生成的序列的概率分布函數(shù)為:

Logistic映射所產(chǎn)生的混沌序列軌跡點(diǎn)的均值是:
![]()
對(duì)于相關(guān)性,獨(dú)立選取兩個(gè)初始值x0和y0,則相應(yīng)序列的互相關(guān)函數(shù)為:

而序列的自相關(guān)函數(shù)值趨向于0,類似于δ函數(shù),接近白噪聲的特征。
Logistic序列的以上特性表明,盡管混沌動(dòng)力系統(tǒng)具有確定性,但其遍歷統(tǒng)計(jì)特性接近于白噪聲,并具有形式簡(jiǎn)單,對(duì)初始條件敏感等諸多特性。
二、基于混沌序列的異或矩陣
1、異或矩陣的構(gòu)造
由于灰度圖像一般為256級(jí),其值在0~255之間,為此,要將混沌序列做一些適當(dāng)?shù)男拚?,把?,1)區(qū)間上的值映射到集{0,1,2,…,255},這可由MATLAB7.0中的floor()函數(shù)來完成,即:
![]()
其中xi是由式(1)通過迭代所得到的混沌序列,floor()函數(shù)為向負(fù)方向舍入取整函數(shù)。這樣,由混沌實(shí)數(shù)列和floor()函數(shù)可得到整數(shù)序列x′1,x′2,x′3…其中xi′∈{0,1,2,…,255},i=1,2,…。
對(duì)于給定異或矩陣的大小m1×n1(m1、n1為大于1的整數(shù))和給定的正整數(shù)k,在所得的整數(shù)列x′1,x′2,x′3…中依次選取x′k+1,x′k+2,…,x′k+m1×n1,并將它們按長(zhǎng)度n1逐段截取,排成加密矩陣Pkm1×n1,其中pi,j∈{0,1,2,…,255},i=1,2,…,m1;j=1,2,…,n1。
2、利用異或矩陣對(duì)圖像加密/解密
異或加密算法可看作如下函數(shù):
![]()
其中,Cm1×n1為待加密矩陣,Pkm1×n1為異或矩陣,“+”為兩個(gè)矩陣中對(duì)應(yīng)像素值的逐比特異或運(yùn)算。異或解密算法可看作如下函數(shù):
![]()
三、基于混沌序列的置換矩陣
1、置換矩陣的構(gòu)造
對(duì)于給定置換矩陣的大小m2×n2(m2、n2為大于1的整數(shù))和給定的正整數(shù)k,在整數(shù)列x′1,x′2,x′3…中依次選取x′k+1,x′k+2,…,x′k+m2×n2,組成一個(gè)長(zhǎng)度為m2×n2的序列,對(duì)此序列按從小到大的順序進(jìn)行排序,由各個(gè)元素位置的變化可以得到一個(gè)排序置換,此置換可以在MATLAB7.0中利用排序函數(shù)“sort()”直接得到,其長(zhǎng)度為m2×n2,將此置換序列按長(zhǎng)度n2逐段截取,并排成置換矩陣Zkm2×n2,其中zi,j∈{1,2,3,…,m2×n2},i=1,2,…,m2;j=1,2,…,n2。
2、置換方法置換算法
可簡(jiǎn)單地看作如下函數(shù):
![]()
其中,Am2×n2為待加密矩陣,Zkm2×n2為置換矩陣,在Zkm2×n2中,若zi,j=r,且r=p×n2+q,則將Ap,q的值賦給Bi,j,其中i=1,2,…,m2;j=1,2,…,n2;p∈{0,1,…,m2-1},q∈{1,2,…,n2},r∈{0,1,2,…,m2×n2}。
四、基于混沌序列的圖像加密/解密算法
1、加密算法算法步驟如下
(1)選取密鑰K=(x0,μ0,k1,k2,m1,n1,m2,n2),其中,x0∈(0,1),3.5699456…<μ0≤4;k1、k2、m1、n1、m2、n2均為正整數(shù),且m1與m2不能互相整除,n1與n2不能互相整除,令k=k1;
(2)對(duì)于一個(gè)圖像的像素矩陣F,令M=mul(m1,m2),N=mul(n1,n2)(其中mul(x,y)表示x與y的最小公倍數(shù)),在圖像矩陣的邊界填充像素值255(白色),增加F的行數(shù)和列數(shù),使它們分別是M和N的整數(shù)倍,設(shè)生成的圖像像素矩陣為F1;
(3)利用密鑰和Logistic映射分別產(chǎn)生異或矩陣Pkm1×n1和置換矩陣Zkm2×n2;
(4)將像素矩陣F1按m1×n1的大小進(jìn)行分塊,并利用異或矩陣Pkm1×n1進(jìn)行逐塊加密,將得到的加密分塊再組合成像素圖像,設(shè)其為F2;
(5)將像素矩陣F2按m2×n2的大小進(jìn)行分塊,并利用置換矩陣Zkm2×n2進(jìn)行逐塊置換,將得到的加密分塊再組合成加密圖像,設(shè)其為G;
(6)令k=k2,重復(fù)步驟(3)~(5)。
2、解密算法
解密算法是加密算法的逆運(yùn)算,在解密算法中,首先令k=k2,異或矩陣與加密中的異或矩陣相同,置換矩陣是加密算法中置換矩陣的逆置換,在解密圖像的過程中,先進(jìn)行置換運(yùn)算,再進(jìn)行異或運(yùn)算。
五、仿真實(shí)驗(yàn)及算法分析
1、仿真實(shí)驗(yàn)
利用MATLAB7.0軟件,結(jié)合上述算法,對(duì)“l(fā)ena.jpg”圖像進(jìn)行了加/解密的仿真實(shí)驗(yàn),密鑰選取為:K=(0.78354,4,10000,20000,50,50,8,8),結(jié)果如圖1所示。

圖1中,圖像“jiamihou.jpg”為圖像“l(fā)ena.jpg”的加密結(jié)果,顯然已看不出圖像“l(fā)ena.jpg”的任何信息,加密取得了較好的效果;圖像“jiemihou.jpg”為對(duì)圖像“jiamihou.jpg”的解密結(jié)果,通過比較得知,兩個(gè)圖像的像素值完全相同,說明文中提出的加密算法沒有任何信息丟失;圖像“cuomiyao.jpg”為x0=0.78355時(shí)的解密結(jié)果,顯然,對(duì)于x0僅僅相差0.00001時(shí),由解密結(jié)果得不到圖像“l(fā)ena.jpg”的任何信息,說明該算法對(duì)x0具有高度的敏感性。
2、算法分析
(1)該算法的密鑰為K=(x0,μ0,k1,k2,m1,n1,m2,n2),x0可以取值于(0,1)之間的任何值,其密鑰空間無窮大,μ0、k1、k2、m1、n1、m2、n2的不確定,更極大地增加了密鑰空間,從而,對(duì)密鑰K的窮舉攻擊變得不可行。
(2)算法中異或矩陣的使用,較好地增強(qiáng)了圖像加密效果,但是異或矩陣的安全性很低,經(jīng)不起唯密文攻擊,更經(jīng)不起已知或選擇明文攻擊;然而,置換矩陣對(duì)攻擊者來說是未知的,故它具有較強(qiáng)的抗差分攻擊和抗線性攻擊的能力,從而較好地增強(qiáng)了整個(gè)算法的安全性;異或矩陣和置換矩陣的先后使用,使得整個(gè)加密算法既有較好的加密效果,又有較強(qiáng)的安全性。
(3)k1、k2的不同,使得兩個(gè)異或矩陣各不相同,進(jìn)一步增強(qiáng)了對(duì)圖像文件加密的效果;而它們的不同也使得兩個(gè)置換矩陣各不相同,從而極大地提高了整個(gè)算法的安全性。
以混沌理論為基礎(chǔ),文章利用Logistic混沌映射給出了一種灰度圖像加密算法,通過仿真實(shí)驗(yàn)和分析表明,該算法具有較好的加密效果和較強(qiáng)的安全性。
小知識(shí)之灰度圖像
灰度圖像通常是在單個(gè)電磁波頻譜(如可見光)內(nèi)測(cè)量每個(gè)像素的亮度得到的。用于顯示的灰度圖像通常用每個(gè)采樣像素8位的非線性尺度來保存,這樣可以有256級(jí)灰度。這種精度剛剛能夠避免可見的條帶失真,并且非常易于編程。










