圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

基于數(shù)字圖像加密設(shè)計的兩個基本原則是置亂和擴(kuò)散,一般的加密算法針對于圖像分別單獨進(jìn)行置亂和擴(kuò)散,而我們提出一種兩者相結(jié)合同步實現(xiàn)加密的算法,即基于置亂擴(kuò)散同步實現(xiàn)的圖像加密算法。

一、混沌序列的控制和產(chǎn)生

1、一維混沌系統(tǒng)Ulam-von Neuman映射

混沌系統(tǒng)是確定性的非線性系統(tǒng)在一定條件下的一種不可預(yù)測的類似隨機(jī)運動的行為.Ulamvon Neuman映射就是一類常見的具有混沌運動特性的映射,它表示為:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

在此映射中沒有可變的系統(tǒng)參數(shù),可改變的只是系統(tǒng)演化的初值。

2、二維混沌系統(tǒng)Logistic映射

Logistic映射是一個非常簡單且被廣泛研究的一維離散時間非線性動力系統(tǒng),定義如下:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

善乓中Xn∈(0,1)。當(dāng)3.569 9456...<μ≤4時,Logistic映射處于混沌狀態(tài)。

一維混沌系統(tǒng)雖然有著形式簡單、產(chǎn)生混沌時序時間短等優(yōu)點,但其缺陷是密鑰空間太小,有時候安全性難以保障.而高維混沌系統(tǒng)不僅具有一維混沌系統(tǒng)的特性,同時具有更大的密鑰空間,因此能提高加密系統(tǒng)的抗破譯強(qiáng)度,且圖像數(shù)據(jù)在處理時大多是存放于二維矩陣中,因此采用二維混沌系統(tǒng)來加密圖像數(shù)據(jù)更有利于提高加密速度。如可采用具有一次耦合項形式的二維Logistic映射:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

其動力學(xué)行為由控制參數(shù)μ1,μ2,γ決定,當(dāng)其工作于混沌狀態(tài)時,生成的迭代序列與一維Logistic映射類似,且具有更高的偽隨機(jī)性。

3、一維控制二維產(chǎn)生混沌序列

混沌序列的產(chǎn)生來源于計算機(jī)的實現(xiàn),但是計算機(jī)的截斷誤差會一定程度上降低原有混沌的特殊性質(zhì),對一般的混沌序列分析發(fā)現(xiàn)其均勻性并不是很好,因此隨機(jī)性會降低。為了增強(qiáng)混沌序列的隨機(jī)性,本文設(shè)計了兩個混沌系統(tǒng),用UlamvonNeuman映射控制二維Logistic映射產(chǎn)生混沌序列,這樣在一定程度上增強(qiáng)了隨機(jī)性,而且會擴(kuò)大密鑰空間,參見圖1上半部分。(1)式產(chǎn)生的序列,在大于0和小于0兩個區(qū)間上,概率大概各為1/2,所以(2)式中兩個方程迭代次數(shù)概率大概也各為1/2。

二、置亂和擴(kuò)散同步實現(xiàn)的圖像加密算法

首先針對于一個m行n列的圖像矩陣Mm×n,按照某種掃描方式確定對圖像加密的順序,常用的有光柵掃描NW→SE(SE→NW),之字形Zig-Zag掃描等。設(shè)圖像某處像素值的坐標(biāo)為(x,y),先對其置亂,再對其擴(kuò)散。

置亂過程:一維控制二維產(chǎn)生的兩個混沌序列,變?yōu)榇笮閙×n的兩個二維矩陣z1和z2。在(x,y)處,計算:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

其中fix()為向0方向取整。然后將M(x,y)和M(a,b)互換。

擴(kuò)散過程采用下式:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

其中Vi為從抽取混沌系統(tǒng)(1)產(chǎn)生的迭代序列中處理得到Ⅵ= fix(wiL),己為像素灰度級數(shù),Ii為擴(kuò)散前的像素值,G為擴(kuò)散后的像素值,C為一密鑰。加密算法流程圖如圖1。

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密
加密算法步驟如下:

步驟1原灰度圖像以二維矩陣Mm×n存放;

步驟2輸入密鑰w0.迭代方程(1)迭代n次(n>1000),再次產(chǎn)生初始值;

步驟3將步驟2產(chǎn)生的初始值再次代入(1)式,得到Wi+1,并輸入密鑰zo,珈,判斷若Wi+1>0。

用(3)式中的第一個方程迭代,否則用第二個方程,共進(jìn)行2mn次迭代;

步驟4將得到的序列Zn變?yōu)閦1和z2,大小為m×n的二維矩陣;

步驟5按某種掃描方式,再依照上述置亂過程提到的方法,對坐標(biāo)為(x,y)的像素值,計算a和b,互換M(x,y)和M(a,b),同時再用(4)式對其擴(kuò)散;

步驟6完成全部置亂擴(kuò)散,輸出密文M'm×n。

文件解密過程為文件加密過程的逆過程。

三、仿真試驗分析

1、加密效果

使用MATLAB 7.8.O(R2009a)軟件,利用本文的加密算法對Lena灰度圖像文件加密,效果如圖2。

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密
從圖2中加密前后的直方圖可以看出,加密后直方圖分布非常均勻,掩蓋了加密前的分布規(guī)律,從而可以有效地抵抗統(tǒng)計分析和已知密文攻擊。

2、密鑰空間分析

在加密算法中使用到的密鑰參數(shù)包括w0,xo,yo,μ1,μ2,γ,C,其中C取值0~255之間,其余6個參數(shù)均為實數(shù),簡單的取8位有效數(shù)字,密鑰空間為256×(108)6= 256×1048。這還只是一輪加密,由此可見,用窮舉攻擊來解密圖像文件根本不可能。

3、雪崩效應(yīng)分析

常見的雪崩效應(yīng)分析有密文對密鑰的敏感性測試,密文對明文的敏感性測試,這里只列舉前者。從圖3看出即使一個參數(shù)發(fā)生微小變化,就導(dǎo)致密圖絕大部分發(fā)生改變,從而可以抵抗差分攻擊。

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

四、相關(guān)性測試

加密效果之一是盡可能地降低相鄰像素的相關(guān)性.用如下離散化公式計算相關(guān)系數(shù):

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

其中:

圖像加密算法之置亂擴(kuò)散同步實現(xiàn)的加密

原圖文件加密前水平方向和垂直方向的相關(guān)系數(shù)分別為0.872 9,0.9338,而利用本文的加密算法加密后得到的相關(guān)系數(shù)分別為0.0062,0.0059。如果單獨置亂擴(kuò)散加密后得到的相關(guān)系數(shù)分別為0.0172,0.0096,比較發(fā)現(xiàn),置亂擴(kuò)散同步的方法平均相關(guān)系數(shù)更小,對相關(guān)性的破壞程度更強(qiáng)。

以像素大小1000×1000的圖像文件為例,將置亂擴(kuò)散同步加密圖像文件的加密算法的加密速度與經(jīng)典算法的加密速度進(jìn)行比較,加密類型為Simple-DES,Triple-DES和AES的加密速度分別為5.42s,5.76s和0.44s,而本文圖像加密算法的加密速度為0.37 s,遠(yuǎn)優(yōu)于其他加密算法。

小知識之雪崩效應(yīng)

雪崩效應(yīng)就是一種不穩(wěn)定的平衡狀態(tài)也是加密算法的一種特征,它指明文或密鑰的少量變化會引起密文的很大變化,就像雪崩前,山上看上去很平靜,但是只要有一點問題,就會造成一片大崩潰。 可以用在很多場合對于Hash碼,雪崩效應(yīng)是指少量消息位的變化會引起信息摘要的許多位變化。