數(shù)字圖像加密算法之抗剪切變換攻擊加密

為了能對經(jīng)過剪切變換攻擊的加密圖像文件進(jìn)行有效恢復(fù),我們給出了一種基于混沌序列的數(shù)字圖像加密算法,該方法在預(yù)處理的基礎(chǔ)上,基于文字圖像文件灰度矩陣位平面進(jìn)行置亂加密,在恢復(fù)過程中通過像素鄰域灰度信息進(jìn)行恢復(fù),能夠有效抵御針對加密圖像文件的剪切變換攻擊,下面我就給大家詳細(xì)的介紹一下這種圖像加密算法。

一、抗剪切變換攻擊數(shù)字圖像加密算法原理及其改進(jìn)

數(shù)字圖像文件(Image) 一般由相應(yīng)的灰度直方圖表示,無論是利用位置置亂還是灰度變換的方法加密圖像文件,都是要改變圖像像素(Pixel)的灰度值?,F(xiàn)在常用的基于混沌系統(tǒng)的圖像加密算法均是將像素位置置亂與灰度變換相結(jié)合來實(shí)現(xiàn)對灰度圖像文件加密。本文在此基礎(chǔ)上,將圖像加密算法表示如下:

Step1、輸入待加密圖像Image,對應(yīng)的灰度矩陣記為I,將灰度矩陣中的像素灰度值表示成二進(jìn)制序列,相應(yīng)的三維二值矩陣記為B。

Step2、利用混沌系統(tǒng)生成混沌序列,將其轉(zhuǎn)換成與B相同大小的二值矩陣A。

Step3、對圖像進(jìn)行預(yù)處理,計(jì)算AXORB,結(jié)果記為C,將C的8個(gè)位平面分別記為C1,C2,…,C8。

Step4、利用混沌系統(tǒng)生成8個(gè)魔方變換矩陣,分別對C1,C2,…,C8進(jìn)行魔方變換,得到的結(jié)果分別記為E1,E2,…,E8。將其對應(yīng)的三維二值矩陣記為E。

Step5、將矩陣E進(jìn)行十進(jìn)制轉(zhuǎn)換,得到加密圖像的灰度矩陣E1,所對應(yīng)圖像即為加密圖像Eimage。

解密過程是上述加密的逆過程。對于遭受到剪切攻擊的圖像,在恢復(fù)過程中,由于待解密圖像的灰度矩陣不完整,為此,我們在恢復(fù)過程中對待解密圖像的三維二值矩陣的缺省部分給出標(biāo)記,在利用逆魔方變換矩陣進(jìn)行計(jì)算后,每一個(gè)位平面將有部分位置上的0,1值缺省,而且根據(jù)混沌序列的偽隨機(jī)性可知,缺省位置將均勻分布于每一個(gè)位平面上,基于以上分析,我們對每一個(gè)位平面均應(yīng)用以下方法進(jìn)行處理:如果當(dāng)前位置恢復(fù)出了0.1值,則將其保留作為當(dāng)前位置的值:如果當(dāng)前位置沒有恢復(fù)出0,1的值,則考慮其周圍4——鄰域相鄰位置的0,1值,取當(dāng)前位置的值與鄰域值中0,1分布的概率較大的值相同.當(dāng)出現(xiàn)當(dāng)前位置與周圍4——鄰域位置均沒有恢復(fù)出0,1值時(shí),我們再取當(dāng)前位置的8鄰域范圍繼續(xù)以上過程,以此類推,直到當(dāng)前位置取到值為止。根據(jù)該方法,可以恢復(fù)出圖像三維二值矩陣所有位置上的0,1值,從而得到解密圖像。

以下是直接應(yīng)用以上加密方法進(jìn)行圖像文件加密和剪切交換攻擊的實(shí)驗(yàn)結(jié)果。

數(shù)字圖像加密算法之抗剪切變換攻擊加密

通過實(shí)驗(yàn)結(jié)果可以看出,該方法對于剪切變換攻擊基本能夠恢復(fù)出原圖像的信息,但是恢復(fù)的效果較差,恢復(fù)圖像中含有類似于噪音的不連續(xù)的像素,從而影響了圖像的恢復(fù)效果。為此,我們對恢復(fù)圖像應(yīng)用3x3模板的中值(Mtdian)濾波器進(jìn)行去噪處理,然后應(yīng)用線性銳化濾波器對圖像進(jìn)行銳化處理,得到的結(jié)果圖像即作為最終的解密恢復(fù)圖像。

二、混沌二值序列生成方法

以上圖像加密算法中,我們以一維的Logistic混沌系統(tǒng)為例,來具體說明二值混沌序列的生成方法,Logistic混沌系統(tǒng)表述為:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

其中當(dāng)3.571448<μ<4時(shí),該混沌映射處于混沌狀態(tài),把3.571448q<4稱為混沌區(qū)域,a0∈(0,1),這樣Logistic映射可以定義在(0.1)上,相應(yīng)得到定義在(0,1)上的偽隨機(jī)序列{ak}k∞=o。

設(shè)由混沌系統(tǒng)生成的混沌侍:列記為:{a1,a2....an|,ai∈(o,1)i=1,2,…,n},現(xiàn)在要對其進(jìn)行二值化,設(shè)相應(yīng)得到的二值序列記為{b1,b2....bn|,bi∈(o,1)i=1,2,…,n}

基本的混沌序列二值化方法,該方法的基本思路是;根據(jù)混沌序列{a1,a2....an|,ai∈(o,1)i=1,2,…,n},定義相應(yīng)的二值序列{b1,b2....bn}為:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

則bi∈(o,1)i=1,2,…,n。利用方法得到的二值序列具有良好的偽隨機(jī)性,但是該方法是線性離散化的方法,安全性較差。

我們在此方法的基礎(chǔ)上,給出改進(jìn)的基于混沌序列的二值序列生成方法,該方法的基本思想是:根據(jù)混沌序列{a1,a2....an|,ai∈(o,1)i=1,2,…,n},定義相應(yīng)的二值序列{b1,b2....bn}為:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

其中1<P<n,則根據(jù)以上方法可以得到相應(yīng)的二值序列bi∈(o,1)i=1,2,…,n。與已有的混沌序列二值化方法比較,本文所給方法在比較過程中增加了步長參數(shù)P,擴(kuò)大了生成二值混沌序列的密鑰空間,同時(shí)這種錯(cuò)位比較的方法與前面所用方法的線性方法比較,能有效增加算法的安全性。

以下通過實(shí)驗(yàn)對以上兩種方法進(jìn)行比較。為了檢驗(yàn)本文所給的混沌序列非線性離散化方法生成的二值混沌序列的隨機(jī)性和對初始條件的敏感性,我們以典型的Logisric混沌系統(tǒng)為例,通過實(shí)驗(yàn)與已有的方法的實(shí)驗(yàn)結(jié)果進(jìn)行比較分析。

根據(jù)Golomb的隨機(jī)性公設(shè),為了保證偽隨機(jī)序列具有盡可能好的隨機(jī)性能,我們對生成的二值序列的隨機(jī)性進(jìn)行以下檢測:

1)頻數(shù)檢驗(yàn),保證序列中0和1的個(gè)數(shù)大致相等,這也是二值序列具有隨機(jī)性的最基本保證。計(jì)算:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

其中伽為二值序列中0的個(gè)數(shù),n1為二值序列中1的個(gè)數(shù),與l自由度的X12分布比較,對應(yīng)5%的顯著水平,X12的值為3.84,只要得到的值不大于3.84,則認(rèn)為序列具有較好的隨機(jī)性。

2)序列檢驗(yàn),我們對所得到的二值序列內(nèi)00、01、10、11(二維均勻性)出現(xiàn)次數(shù)進(jìn)行統(tǒng)計(jì),同時(shí)計(jì)算:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

其中nij,i,j∈(0,1)表示二值序列中“ij“的個(gè)數(shù),對2自由度的X22分布比較,對應(yīng)5%的顯著水平,X22的值為5.99,只要得到的值不大于5.99,則認(rèn)為序列具有較好的隨機(jī)性。

1、混沌二值序列的隨機(jī)性分析

為了保證偽隨機(jī)序列具有盡可能好的隨機(jī)性能,我們對生成的二值序列的隨機(jī)性進(jìn)行檢驗(yàn):

數(shù)字圖像加密算法之抗剪切變換攻擊加密

通過表l的實(shí)驗(yàn)結(jié)果可以看出,本文所給出的基于混沌序列的離散化方法得到的二值序列中0和1的個(gè)數(shù)、統(tǒng)計(jì)的二值序列內(nèi)00、01、10、11(二維均勻性)出現(xiàn)次數(shù)均基本相當(dāng),通過頻數(shù)檢驗(yàn)和序列檢驗(yàn),說明所得到的二值序列具有很好的隨機(jī)性。

2、混沌二值序列的初值敏感性分析

好的混沌序列應(yīng)該具備對初始條件的敏感性,這是所有混沌系統(tǒng)的內(nèi)在性質(zhì),在檢驗(yàn)過程中我們對混沌系統(tǒng)的初始條件進(jìn)行微小變化,通過統(tǒng)計(jì)所得到的二值序列中相應(yīng)位置上的0和1的值的變化情況,位變化率越接近50%,說明該系統(tǒng)對于初始條件越敏感。

通過表2的實(shí)驗(yàn)結(jié)果可知,該離散化方法具有對混沌系統(tǒng)初始條件的敏感性,因?yàn)楫?dāng)初始值發(fā)生微小的變化時(shí),所生成的二值序列中仍有近半數(shù)的位的0和1的值發(fā)生了變化,很接近理想的混沌系統(tǒng)對初始條件的敏感性要求。

數(shù)字圖像加密算法之抗剪切變換攻擊加密

三、魔方變換矩陣生成方法

我們?nèi)匀灰砸痪S的Logistic混沌系統(tǒng)為例,來具體說明魔方變換矩陣的生成方法。本文給出了一種基于一維混沌系統(tǒng)的魔方變換矩陣生成方法,具體過程如下:

設(shè)待加密的圖像文件為Image,大小為m×n,魔方矩陣通過一維Logistic混沌映射產(chǎn)生一維混沌序列,將生成的實(shí)數(shù)混沌序列映射到整數(shù)范圍Xn∈[1,m×n],具體方法是:

數(shù)字圖像加密算法之抗剪切變換攻擊加密

根據(jù)以上方法,給出混沌系統(tǒng)的初始條件x0和μ,可以得到相應(yīng)的整數(shù)序列,在該整數(shù)序列中選擇Xh,Xh+1,…,其中Xh表示序列中以前還未出現(xiàn)的整數(shù)值,同時(shí)刪除所選序列中重復(fù)出現(xiàn)的整數(shù),得到mxn個(gè)整數(shù),將這些整數(shù)按行排列得到相應(yīng)的魔方變換的矩陣Pmxn。

下面分析以上產(chǎn)生魔方變換矩陣的方法,要得到Pmxn,必須首先得到{1,2,…,mxn}上的一個(gè)完整的排列。

當(dāng)mxn的值較小時(shí),要得到{1,2,…,mxn}上的一個(gè)完整的排列,要求生成的混沌序列的長度越長越好,因?yàn)檩^小的小×幾使得鄰近的不同實(shí)數(shù)序列值對應(yīng)相同的整數(shù)的可能性增大。反之,如果mxn的值較大,則通過計(jì)算機(jī)實(shí)現(xiàn)時(shí),由于計(jì)算機(jī)的有限精度效應(yīng),混沌序列必然退化為周期序列,從而使得相應(yīng)生成的整數(shù)序列(X1,X2.…)必然也退化成周期序列,如果該整數(shù)序列的周期小于m×n,則通過以上方法不可能得到魔方變換矩陣。我們以使用的Logistic映射為例,通過實(shí)驗(yàn)分析來說明該問題。

數(shù)字圖像加密算法之抗剪切變換攻擊加密

通過實(shí)驗(yàn)分析可知,需要生成的序列長度遠(yuǎn)遠(yuǎn)小于要生成滿足需要的序列而實(shí)際生成的混沌序列的長度,使得圖像加密算法的效率大大降低。

針對以上分析,我們給出一種改進(jìn)的得到魔方變換矩陣的方法,根據(jù)圖像大小mxn生成相同大小的混沌序列X1,X2,…,Xm×n。xi∈(o.1),i=1,2.…,mxn,對生成的混沌序列按大
小進(jìn)行排序,將得到的結(jié)果序列記為{Xs1,Xs2,…,Xsm×n},其中s(i)∈(1,2.…,mxn),則新序列的下標(biāo)構(gòu)成序列{1,2.…,mxn}的一個(gè)排列,將該排列按行重排即可得到相應(yīng)的魔方交換矩陣Pmxn.該方法的優(yōu)點(diǎn)是根據(jù)待加密的圖像文件來生成相同大小的混沌序列,無需多余的計(jì)算,此外該方法也不需要考慮應(yīng)用計(jì)算機(jī)實(shí)現(xiàn)時(shí)存在的序列周期問題。以下是

對一維混沌系統(tǒng)的魔方變換矩陣和本文給出的改進(jìn)的魔方變換矩陣生成方法的實(shí)驗(yàn)比較,在相同的混沌系統(tǒng)和初始條件的基礎(chǔ)上,生成相同長度的魔方變換矩陣對應(yīng)的整數(shù)序列,通過比較兩種方法的運(yùn)行時(shí)間對效率進(jìn)行比較。

數(shù)字圖像加密算法之抗剪切變換攻擊加密

通過實(shí)驗(yàn)比較可知,改進(jìn)方法與原有算法比較,生成相同大小的魔方變換矩陣所需要的運(yùn)行時(shí)間大大降低了,從而實(shí)現(xiàn)了圖像加密算法效率的提高。

數(shù)字圖像加密算法之抗剪切變換攻擊加密

四、實(shí)驗(yàn)結(jié)果

圖2是應(yīng)用本文所給圖像加密算法的實(shí)驗(yàn)結(jié)果。

實(shí)驗(yàn)結(jié)果表明,該圖像文件加密方法能夠很好地抵御剪切變換攻擊,當(dāng)剪切面積小于50%時(shí),恢復(fù)出的圖像效果較好,當(dāng)剪切面積大于50%時(shí),圖像的細(xì)節(jié)信息很難恢復(fù),整體的恢復(fù)效果較差。

小知識之剪切變換

剪切變換——又稱“錯(cuò)切變換”,是仿射變換的一種原始變換,指的是類似于四邊形不穩(wěn)定性那種性質(zhì),方形變平行四邊形,任意一邊都可以被拉長的過程。