基于位平面變換的數(shù)字圖像加密算法
已有數(shù)字圖像加密算法存在算法運行時間成本高及加密圖像抗攻擊性弱等問題。為此,提出一種基于位平面變換的數(shù)字圖像加密算法。該算法將圖像分解為若干位平面,通過定義一種混沌序列的新變換對圖像位平面進行換位加密,從而置亂像素點位置,在位平面間增加密鑰進行亂序處理實現(xiàn)阿像像素點灰度值的變化。
一、位平面分解及序列變換
1、二進制位平面分解
由于數(shù)字圖像每一個像素點的灰度值均可以表示成二進制數(shù),這樣從二進制每一位的微觀角度出發(fā),能夠?qū)D片分解為若干個位平面。如圖1所示為利用二進制分解法將圖像分解為8個位平面。從圖1中可以看出,圖像的重要信息主要包含在高位位平面中,從低位位平面的顯示效果中不可識別原始圖像信息,因此,利用此位平面的分解特點可以實現(xiàn)局部的圖像加密。

2、序列變換
混沌運動由于具有非周期且不收斂、運動軌跡中的點能夠遍歷整個區(qū)域以及對初始值極為敏感等特征,因此,可以產(chǎn)生數(shù)量眾多、非相關(guān)而又確定可再生的混沌序列。此類序列常用于對數(shù)字圖像進行混亂加密,本文利用的Logistic映射就是一種被廣泛應用的混沌系統(tǒng)映射,其定義模型如式(1)所示:
![]()
其中,O<μ0≤4;O<xo<1;n∈N,μ0又叫做分岔參數(shù);Xn在區(qū)間[0,1]上遍歷。
由于數(shù)字圖像可以被看做一個二維矩陣,因此本文將提出一種新變換,該變換能夠?qū)⑺玫幕煦鐢?shù)列轉(zhuǎn)換成二維矩陣,從而實現(xiàn)對二維圖像像素點的位置混亂。如要對mxn的二維數(shù)字圖像進行混亂加密時,分別需要對其每一行和每一列進行位置置換,矩陣轉(zhuǎn)換法則如式(2)、式(3)所示,設Cr和Cc是所需要的行列變換矩陣:

其中,m和n為所形成行列變換的位置下標。
如若要對8x12的圖像構(gòu)造置換行列矩陣,求得結(jié)果如圖2和圖3所示,此變換應用的數(shù)列是由初值x0為4、μ0為0.68的logistic映射所生成的,利用式(2)、式(3)產(chǎn)生大小對應的8x8的行矩陣和12x12的列矩陣。


二、加密算法
該算法的加密步驟如下:
(1)對圖像含有重要信息的高位平面進行像素位置置換加密。在該步驟中,本文實驗選擇對圖像第7位和第8位進行加密。設原始圖像4尺寸為mxn,行列變換矩陣為Cr和Cc,則Cr和Cc的大小分別為mxm和nxn,四代表此步驟加密后的圖像,Et代表原始圖像中需要加密的位平面構(gòu)成的矩陣,位置置換加密如式(4)所示:
![]()
這樣,所得的二維矩陣E即為加密完成的位平面。
(2)有位平面亂序處理,從而實現(xiàn)整體圖像灰度值統(tǒng)計的變化。由于本文實驗的位平面分解采用二進制分解,因此進行亂序的密鑰需要一個8個元素的置換映射,該密鑰的增加擴大了該算法的密鑰空間,增加了算法的安全性。
此算法的解密是上述方法的逆運算,分為2步:
1)將加密圖像的位平面恢復到原始順序;
2)根據(jù)行列式的性質(zhì)特征以及矩陣乘法之間存在可逆性。
通過式(5)對第7位和第8位位平面進行解密處理,矩陣Et'中各元素的位置即為原始位平面元素位置。
最后合并所有位平面即可得到解密圖像,算法的加密及解密流程如圖4所示。

三、仿真實驗結(jié)果
1、實驗結(jié)果
為了驗證算法的可行性,應用Matlab軟件作為開發(fā)工具,通過編程實現(xiàn)基于位平面變換的數(shù)字圖像加密算法。本文分別針對不同形狀的圖像進行實驗,如圖5、圖6分別列出對256x256像素的Lenna圖像及255x181像素的長方形Lenna圖像所進行的加解密算法實驗結(jié)果。本文實驗在步驟1中,分別自定義μ0和x來生成logistic混沌序列,并根據(jù)式(2)~式(4)將序列轉(zhuǎn)換成相應的行列矩陣進行加密。在圖5、圖6中,(a)表示原始圖像,(b)表示加密后的圖像,(c)表示解密圖像,從所給的實驗結(jié)果可以看出,此算法對于不同尺寸的圖像均適用,并且加密效果良好,不能從加密圖像中辨識出原始圖像。從(c)圖解密圖像可以看出,該算法的逆運算能夠?qū)⒃紙D像成功還原,解密圖像可辨識。另外,本文引入了SSIM標準,它是一種衡量2幅圖像相似度的新指標,該標準常用于衡量原始圖像和解密圖像之間 的相似度,其值越大越好,當測得值為1時說明2幅圖像相同。


2、安全性及時間分析
(1)切割攻擊
圖像信息在傳遞的過程中,當受到切割攻擊后,恢復的圖像由于缺失原始圖像部分信息往往不能被識別,下文進行的實驗就是對所得到加密后的圖像進行切割處理,然后再從受到破壞的圖像中恢復出原始圖像,如圖7所示,圖7(a)、圖7(b)、圖7(e)、圖7(f)為分別對兩幅加密圖像的邊緣和中部進行切割的效果圖,圖7(c)、圖7(d)、圖7(g)、圖7(h)顯示的是對破壞后的圖像進行恢復所得圖像,從圖7中可以看出,雖然恢復的圖像有一些瑕疵,但是仍然可以清楚地辨析出原始圖像的主要內(nèi)容。

(2)噪聲攻擊
在數(shù)字圖像加密中,圖像在傳播過程中最容易受到的干擾就是被加入噪聲,噪聲是一種典型的無意攻擊,它會對加密圖像產(chǎn)生影響從而導致圖像質(zhì)量下降。本文實驗以常見的椒鹽噪聲為例,實驗結(jié)果如圖8所示,圖8(a)~圖8(c)是對256x256像素的圖像進行加入椒鹽噪聲處理及恢復;圖8(d)~圖8(f)是對255x181像素的圖像進行加入噪聲處理及恢復。從實驗結(jié)果可以看出,雖然圖像有不同程度的干擾,但仍然可以看出原始圖像的重要信息。

(3)濾波攻擊
圖像在傳遞過程中也容易受到濾波器影響導致圖像降質(zhì),本文所用的是最常見的3x3模板的高斯低通濾波攻擊,高斯低通濾波實際上是一種信號的濾波器,共用途是信號的平滑處理。如圖9即為對高斯低通濾波處理后的圖像及其恢復情況,圖9(a)~圖9(c)是對256x256像素的圖像進行濾波處理及恢復;圖9(d)~圖9(f)是對255x181像素的圖像進行濾波處理及恢復。可見,恢復的圖像完全可以辨識原始圖像的信息特點,此算法可以適應濾波器的攻擊。

(4)統(tǒng)計分析
抗統(tǒng)計分析攻擊能力的強弱也是評判圖像加密算法優(yōu)劣的重要標準之一,上文提到的對于圖像位平面排列順序置亂目的是為了防止進行灰度統(tǒng)計攻擊,實驗結(jié)果如圖10所示,該算法的加密圖像與原始圖像的灰度值統(tǒng)計分布發(fā)生了明顯變化,圖10中顯示運用此算法后,圖像的灰度分布均勻,從而使得處理后的圖像能夠抵御灰度統(tǒng)計攻擊。

(5)密鑰空間及相關(guān)性分析
該算法的密鑰空間很大,大體分為加密位平面的選取、對位平面加密的方法以及置亂位平面順序的置換映射三部分。就本文算法而言,第一部分選取位平面的密鑰量為C82;加密位平面密鑰取決于μ0和x的選擇,2個參數(shù)只要取要求范圍內(nèi)的實數(shù)即可密鑰量極大;最后置亂置亂部分,本文的密鑰量為A88的全排列。由此可見,該算法大范圍擴展了密鑰空間,使得攻擊者不可通過枚舉等方法對加密圖像進行破譯。

為進一步證明該算法具有很強的抗攻擊性,相關(guān)性分析也是一個重要衡量指標。相關(guān)性分析是指對2個或多個具備相關(guān)性的變量元素進行分析,從而衡量2個變量因素的相關(guān)密切程度,對于數(shù)字圖像的像素點來說即是對2個水平的、垂直的和對角鄰近的像素點的強度變化進行分析。式(6)是相關(guān)系數(shù)的計算方法,x,y是2個相鄰像素的強度值,N是像素點總數(shù)。相關(guān)性系數(shù)的值在-1和1之間變化,Yxy接近1說明相鄰2點具有很強的相關(guān)性,而接近0意味著2個相鄰點具有非線性關(guān)系。從表1中的第1列和第2列列出的加密前后相關(guān)性系數(shù)可以得出加密后的圖像相鄰像素點具有非線性關(guān)系。

算法的運行時間能夠反映出加密算法的效率,反映設計特點是否能夠符合對應用時間的要求,表1的第3列和第4列顯示的是該算法對于不同圖像的加解密運算時間。表格給出的運行時間應用在Window7的系統(tǒng)上,采用較低的電腦配置如下:InteI(R) core(TM)2 Duo CPU T5750@2.00 GH,內(nèi)存為2 GB。從表1的內(nèi)容可知,對于普通的圖像來說,此算法加密時間快、運行效率高,能夠滿足正常操作的需要。
小知識之二進制
二進制是計算技術(shù)中廣泛采用的一種數(shù)制。二進制數(shù)據(jù)是用0和1兩個數(shù)碼來表示的數(shù)。它的基數(shù)為2,進位規(guī)則是“逢二進一”,借位規(guī)則是“借一當二”,由18世紀德國數(shù)理哲學大師萊布尼茲發(fā)現(xiàn)。當前的計算機系統(tǒng)使用的基本上是二進制系統(tǒng),數(shù)據(jù)在計算機中主要是以補碼的形式存儲的。









