數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

我們通過(guò)構(gòu)造保實(shí)分?jǐn)?shù)階Fourier變換,提出了一種不同于上述方法的實(shí)值數(shù)字圖像文件加密方法。該加密算子是一個(gè)實(shí)數(shù)域到實(shí)數(shù)域的映射。本算法利用該變換的保實(shí)特性將原始圖像映射到由密鑰決定的保實(shí)分?jǐn)?shù)階Fourier變換域中,得到實(shí)值的密文圖像。明文和密文分別處于空域和保實(shí)分?jǐn)?shù)階域上,具有較強(qiáng)的抗統(tǒng)計(jì)破譯能力。該方法為數(shù)字圖像文件(尤其是實(shí)值圖像)加密提供了一個(gè)新的解決方案。

一、分?jǐn)?shù)階Fourier變換

首先簡(jiǎn)要介紹分?jǐn)?shù)階Fourier變換,它是一種線性算子,信號(hào)的分?jǐn)?shù)階Fourier變換被定義為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

其中分?jǐn)?shù)階Fourier變換核Ka(t,u)為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

式中:α為分?jǐn)?shù)階Fourier變換的角度;n為整數(shù)。為討論方便起見(jiàn),文中使用變換階數(shù)來(lái)描述分?jǐn)?shù)階Fourier變換域,即α=aπ/2,a可以取[0,4]區(qū)間內(nèi)的任意實(shí)數(shù)。當(dāng)a= O(α=O)時(shí),變換對(duì)應(yīng)信號(hào)本身;當(dāng)a= 1(α=π/2)時(shí),退化為傳統(tǒng)的Fourier變換??赏ㄟ^(guò)階數(shù)為-a的分?jǐn)?shù)階Fourier變換來(lái)實(shí)現(xiàn)逆變換。分?jǐn)?shù)階Fourier變換算子P的變換階數(shù)具有連續(xù)可加性:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

分?jǐn)?shù)階Fourier變換的快速算法有很多種,在處理數(shù)字圖像時(shí),需要使用二維離散算法。二維離散分?jǐn)?shù)階Fourier變換核具有可分離性,因此可分解成為二次一維分?jǐn)?shù)階Fourier變換,即分別沿列方向和行方向進(jìn)行一維分?jǐn)?shù)階Fourier變換。其張量積的形式為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

式中:Ma為a階離散分?jǐn)?shù)階Fourier變換矩陣;為數(shù)字圖像矩陣。其逆變換為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

這種快速算法的計(jì)算復(fù)雜度與傳統(tǒng)Fourier變換相同,為O(Nlg(N))。

二、基于保實(shí)分?jǐn)?shù)階Fourier變換的數(shù)字圖像文件加密和解密算法

1、保實(shí)分?jǐn)?shù)階Fourier變換的構(gòu)造

I Venturini等人提出了一種將任意分?jǐn)?shù)階變換進(jìn)行保實(shí)化處理的方法,使得構(gòu)造出毒的保實(shí)變換前后數(shù)據(jù)均為實(shí)數(shù),恰好為實(shí)值加密問(wèn)題提供了一個(gè)解決途徑。本文在此基礎(chǔ)上構(gòu)造了一種保實(shí)的分?jǐn)?shù)階Founier變換。其過(guò)程如下:

(1)若x={x1,x2,x3,…,xN}T是長(zhǎng)度為N的一維實(shí)信號(hào)(N為偶數(shù)),首先將其構(gòu)造為一個(gè)長(zhǎng)度為N/2的復(fù)向量x:

(2)求y=Ma,N/2 gX,其中Ma,N/2是大小為(N/2)×(N/2)的a階離散分?jǐn)?shù)階Fourier變換矩陣(下文簡(jiǎn)寫(xiě)為Ma)。

(3)令y'=(Rey,Imy)T,y'即為對(duì)x做a階保實(shí)離散分?jǐn)?shù)階Fourier變換的結(jié)果。

若用實(shí)部虛部的計(jì)算來(lái)描述整個(gè)構(gòu)造過(guò)程,有:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

所以:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

其中:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

因此本文構(gòu)造的a階保實(shí)離散分?jǐn)?shù)階Fourier變換可表示為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

該保實(shí)分?jǐn)?shù)階Fourier變換是構(gòu)造出來(lái)的,為了獲取保實(shí)的特性,變換矩陣Ba并沒(méi)有繼承分?jǐn)?shù)階Fourier變換算子的所有性質(zhì),不過(guò)還是保持了酉性和變換階數(shù)的連續(xù)可加性,同樣可以通過(guò)負(fù)階數(shù)變換來(lái)完成逆變換,即Ba-1=B-a。當(dāng)a從0變到1時(shí),該變換有連續(xù)增長(zhǎng)的去相關(guān)能力。

2、加密算子的定義和具體加密方法

為了將本加密算法用于數(shù)字圖像文件加密,以便取得更好的安全性,進(jìn)一步構(gòu)造了一個(gè)N×N的置換矩陣Pkev,它是一個(gè)每行每列有且僅有一個(gè)非零元素1的方陣,在本加密算法中它由種子key生成。

由此,本文提出的數(shù)字圖像加密算法的算子定義如下:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

式中:Ba的定義與式(6)相同;x是一個(gè)長(zhǎng)度為N(N為偶數(shù))的實(shí)向量。

R(a,key)稱為基于保實(shí)分?jǐn)?shù)階Fourier變換的加密算子,并且在置換矩陣種子相同的情況下具有階數(shù)可加性和交換性:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

將上述算法推廣到二維,利用張量積的形式R(a,key)gXgRTb,key2)來(lái)進(jìn)行二維加密變換,用來(lái)處理數(shù)字圖像。其中a,b是二維變換的兩個(gè)階數(shù),key1和key2分別是在兩個(gè)方向上生成的置換矩陣所用的種子。對(duì)數(shù)字圖像X進(jìn)行基于分?jǐn)?shù)階Fourier變換的實(shí)值加密方法可表示為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

將算法中用到的四個(gè)參數(shù)(a,b,key1,key2)看作是廣義的密鑰,用來(lái)控制密文的生成。由算子R(a,key)的交換性和變換階數(shù)可加性可推知,解密過(guò)程可使用密鑰(-a,-b,key1,key2),可通過(guò)與加密過(guò)程相同的流程完成。

綜上所述,本算法的實(shí)現(xiàn)具體包括如下的步驟(圖1):

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

(1)對(duì)一幅大小為m×n的灰度圖像(其灰度值矩陣為X)設(shè)置密鑰參數(shù)為(a,b,key1,key2)。

(2)由密鑰中兩個(gè)變換階數(shù)a和b計(jì)算出相應(yīng)的m/2點(diǎn)和n/2點(diǎn)離散分?jǐn)?shù)階Fourier變換矩陣Ma,m/2和Mb,n/2。

(3)根據(jù)式(6)計(jì)算相應(yīng)的Ba矩陣和Bb矩陣。

(4)由密鑰中兩個(gè)置換矩陣種子keyl和key2分別產(chǎn)生大小為m×m和n×n的隨機(jī)矩陣,然后分別對(duì)這兩個(gè)隨機(jī)矩陣進(jìn)行LU三角分解,得到所構(gòu)造的兩個(gè)置換矩陣P1和P20。

(5)按照式(8)計(jì)算相應(yīng)的加密算子R(a,key1)和R(b,key2)。

(6)按照式(9)對(duì)待加密圖像矩陣X進(jìn)行實(shí)值加密變換,得到密文圖像Y。

(7)解密過(guò)程可使用密鑰(-a, -b,key1,key2),通過(guò)與加密過(guò)程相同的流程完成解密。

3、算法可行性和安全性討論

下面討論本算法用于圖像加密的可行性。為了信息的保密性,抵抗密碼分析,一個(gè)保密系統(tǒng)應(yīng)當(dāng)滿足下述要求。

(1)系統(tǒng)即使達(dá)不到理論上是不可破的,也應(yīng)當(dāng)是實(shí)際上不可破的。也就是說(shuō),從截獲的密文或某些已知的明文密文對(duì),要決定密鑰或任意明文在計(jì)算上是不可行的。

(2)系統(tǒng)的保密性不依賴于對(duì)加密體制或者算法的保密,而是依賴于密鑰的保密。這是著名的Kerchhoff準(zhǔn)則。

(3)加密和解密算法適用于密鑰空間中的所有元素。

(4)系統(tǒng)便于實(shí)現(xiàn)和使用。

經(jīng)過(guò)本文前幾部分的敘述可以看出,由密鑰確定的保實(shí)分?jǐn)?shù)階Fourier變換圖像加密算法可以充分實(shí)現(xiàn)明文與密鑰的擴(kuò)散和混淆,它們之間沒(méi)有簡(jiǎn)單的關(guān)系可循,加之利用變換階數(shù)控制復(fù)雜的變換,在已知種子(即密鑰的一部分)的情況下從截獲的密文反推密鑰中的變換階數(shù)是很困難的,只能依靠窮舉搜索,這是因?yàn)榉謹(jǐn)?shù)階Fourier變換可看作是一個(gè)單向陷門(mén)函數(shù),在已知明文密文對(duì)的情況下推出所使用的置換矩陣種子和變換階數(shù)也是不可行的,這使得密碼分析人員只能使用窮舉法進(jìn)行破譯,在本
文下一節(jié)的仿真中將會(huì)詳細(xì)說(shuō)明本文算法的加密效果和安全性,并滿足Kerchhoff準(zhǔn)則。

此外,本加密算法和解密算法的差別僅僅在于二維分?jǐn)?shù)階Fourier變換的兩個(gè)變換階數(shù)a和b的符號(hào),因此可以用同一模塊完成加密和解密。分?jǐn)?shù)階Fourier變換可通過(guò)FFT實(shí)現(xiàn)快速計(jì)算,因而使得本算法易于實(shí)現(xiàn),具有與FFT相比擬的運(yùn)算速度。由于使用了保實(shí)的分?jǐn)?shù)階Fourier變換,因而加密過(guò)程不會(huì)產(chǎn)生數(shù)據(jù)膨脹,密鑰簡(jiǎn)單,可控性強(qiáng),便于使用??梢?jiàn),本文提出的基于保實(shí)分?jǐn)?shù)階Fourier變換的圖像加密算法是可以作為一個(gè)加密系統(tǒng)的。

需要迸一步說(shuō)明的是,進(jìn)一步定義的兩個(gè)參數(shù)key1和key2,即構(gòu)造R(a,key1)和R(b,key2)中置換矩陣的種子,可使得算法具有更加安全的加密效果,置換矩陣P能夠隱藏所使用的Ba和Bt,矩陣,因而間接隱藏了變換階數(shù)a和b(圖1),并能提供更好的擾亂效果。由不同的種子生成的置換矩陣P不同,得到的密文信息也不同(通過(guò)仿真可知同一圖像由不同密鑰生成的密圖是互不相關(guān)的),增大了破譯的難度,進(jìn)一步提高了安全性。

通過(guò)本文提出的算法對(duì)數(shù)字圖像進(jìn)行實(shí)值加密,密文是在由密鑰確定的保實(shí)分?jǐn)?shù)階Fourier域,即明文與密文在不同的變換空間,具有不同的統(tǒng)計(jì)特征。仿真發(fā)現(xiàn),密文具有類(lèi)似白噪聲的自相關(guān)性,可以抗統(tǒng)計(jì)破譯。

三、仿真與分析

使用MATLAB軟件對(duì)本文提出的圖像實(shí)值加密方法進(jìn)行仿真,明文選用圖2(a)所示的標(biāo)準(zhǔn)測(cè)試灰度圖像Lena(圖像尺寸為256×256),對(duì)其進(jìn)行基于分?jǐn)?shù)階Fourier變換的密鑰參數(shù)為a=0.25,b=0.64,keyl=1043,key2;1021,得到的密文圖像如圖2(c)所示。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

1、加密效果和統(tǒng)計(jì)特性分析

可見(jiàn)明文圖像的直方圖(圖2(b))與相應(yīng)密文圖像的直方圖(圖2(d))具有明顯的差別,這是因?yàn)樵诶帽疚臉?gòu)造的保實(shí)分?jǐn)?shù)階Fourier變換進(jìn)行實(shí)值加密變換后,明文與其相應(yīng)的密文圖像分別屬于空域和變換域上,而不是在一個(gè)空間上的單純置亂,因此它們的直方圖具有明顯的不同分布,也可以將這一現(xiàn)象理解為經(jīng)典密碼理論中的擴(kuò)散,即將明文的統(tǒng)計(jì)特性擴(kuò)散到整個(gè)空間,密文中的每一位均受明文多位的影響。在進(jìn)行大量實(shí)驗(yàn)后還發(fā)現(xiàn),不同的明文圖像加密后的密文具有相似的直方圖分布,與所使用的密鑰是獨(dú)立的,即完成了混淆,密碼分析人員難以通過(guò)統(tǒng)計(jì)特性獲得密鑰信息,利用這一特點(diǎn)可以抵抗統(tǒng)計(jì)分析破澤,從而獲得很好的安全性。

從圖3中也能夠看出擴(kuò)散和混淆的效果。圖3(a)是原始圖像的自相關(guān)網(wǎng)格圖,表明進(jìn)行加密處理前,原始圖像像素問(wèn)的相關(guān)性很強(qiáng);圖3(b)是密圖的自相關(guān)網(wǎng)格圖,表明對(duì)原始圖像進(jìn)行加密后相鄰像素間相關(guān)性很小,可見(jiàn)本算法具有很強(qiáng)的去相關(guān)能力,從而較好地完成了擴(kuò)散和混淆,能對(duì)抗統(tǒng)計(jì)分析破譯。圖3(b)在水平和垂直方向上出現(xiàn)較小的相關(guān)是由于密圖上的橫豎條紋,但這并不妨礙圖像的加密效果。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

兩幅圖像的歸一化互相關(guān)(Norrnalized Cross-Correlation) NC值被定義為:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

NC的取值區(qū)間為[0,1]。式中Y(i,j)和Y'(i,j)分別為兩幅圖像像素點(diǎn)的灰度值。為了說(shuō)明密文圖像具有類(lèi)似白噪聲的自相關(guān)性,這里使用本文提出的算法對(duì)Lena圖像分別進(jìn)行密鑰為(0.25,0.64,1043,1021)和(0.42,0.51,1031,1051)的實(shí)值加密,計(jì)算得到的兩份密圖之間的NC值為0.0022,并且它們分別與原始Lena圖像的值均為0.00240可見(jiàn),對(duì)同一明文來(lái)說(shuō),由不同密鑰產(chǎn)生的密文副本幾乎不相關(guān),每組明文密文對(duì)也是不相關(guān)的,驗(yàn)證了算法的加密效果。

2、算法的安全性測(cè)試和討論

為了考察本文提出的圖像實(shí)值加密算法的安全性,嘗試使用不同密鑰組合對(duì)同一個(gè)加密圖像進(jìn)行解密,圖4是一些解密結(jié)果。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

仿真中使用MSE(Mean Square Error)作為衡量解密圖像質(zhì)量的客觀指標(biāo),圖像態(tài)間的MSE可以定義成為式(10),它可以直接反映出兩幅圖像在品質(zhì)上的差異:

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

式中I(i,j)和H(i,j)分別表示原始圖像和解密圖像的像素點(diǎn)灰度值。當(dāng)單個(gè)解密變換階數(shù)密鑰與正確密鑰發(fā)生不同值的偏差時(shí),計(jì)算解密圖與原圖的MSE,畫(huà)出變換階數(shù)偏差MSE曲線(圖5)。正確解密密鑰參數(shù)為(-0.25,-0.64,1043,1021)。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

當(dāng)使用正確密鑰進(jìn)行解密時(shí),可無(wú)損地得到原始明文圖像,四個(gè)密鑰中的某一個(gè)稍有不匹配,將不能正確恢復(fù)明文圖像(圖4)。事實(shí)上,因?yàn)楸疚奶岢龅募用芩惴ㄗ銓?duì)稱的,當(dāng)密鑰出錯(cuò)時(shí),實(shí)際上是將密文圖像又進(jìn)行了一次全過(guò)程加密,變換到—個(gè)新的保實(shí)分?jǐn)?shù)階Fourier變換域上,因而使用了錯(cuò)誤的密鑰解密后,得到的還是雜亂的密文,而不會(huì)泄漏明文信息。

由階數(shù)偏差MSE圖(圖5和圖6)以及仿真試驗(yàn)可以看出,當(dāng)解密時(shí)的單個(gè)階數(shù)密鑰誤差達(dá)到0.02甚至更高的時(shí)候,將導(dǎo)致解密圖像和原始圖像有充分大的MSE,也就是說(shuō),當(dāng)分?jǐn)?shù)階變換階數(shù)被當(dāng)作密鑰的時(shí)候,其任意一個(gè)發(fā)生大于等于0.02的誤差時(shí)將不能夠正確解密,從而保護(hù)了數(shù)據(jù)的安全。在只有一個(gè)階數(shù)密鑰產(chǎn)生偏差的情況下,其誤差小于0.02并且其它三個(gè)密鑰都取正確值,只有這樣才可能泄漏明文信息,但必須在置換矩陣種子密鑰(key1,key2)已知的條件下才會(huì)發(fā)生,窮舉置換矩陣種子也是一件相當(dāng)困難的事情,這個(gè)特點(diǎn)使得窮舉分析破譯增加了難度。實(shí)際上:如果通過(guò)窮舉來(lái)猜測(cè)算法中用到的置換矩陣的種子,當(dāng)種子長(zhǎng)度取64位時(shí),以萬(wàn)億次計(jì)算機(jī)的處理能力來(lái)計(jì)算,則窮舉一個(gè)種子就需要58年,代價(jià)相當(dāng)大;若直接窮舉置換矩陣,所需要的計(jì)算量就更大。對(duì)于一幅256×256的明文圖像來(lái)說(shuō),窮舉一個(gè)置換矩陣需要256!8.6×10506次猜測(cè),使用萬(wàn)億次計(jì)算機(jī)需要8.6×10486年??梢?jiàn)本算法具有很好的安全性和抗窮舉破譯能力,在未經(jīng)授權(quán)的情況下,想要得到明文幾乎是不可能的。當(dāng)然也可以通過(guò)使用另一組密鑰進(jìn)行二次加密來(lái)進(jìn)一步提高抗窮舉分析能力,即擴(kuò)大密鑰空間對(duì)抗窮舉破譯,本文討論的是最簡(jiǎn)單的一次加密方法,未來(lái)工作將探討算法的改進(jìn)和結(jié)合。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

圖7提出的基于分?jǐn)?shù)階Fourier變換的雙相位編鴯加密方法與本文算法的階數(shù)偏差MSE圖,可見(jiàn)本算法對(duì)階數(shù)的變化更加敏感,隨著解密階數(shù)偏差的增大,其解密圖像與原圖的MSE更迅速的上升。圖7是一種利用分?jǐn)?shù)階Fourier變換和相位掩模進(jìn)行圖像加密的經(jīng)典算法,其思想為眾多基于分?jǐn)?shù)階Fourier變換的圖像加密算法所借鑒,圖中a1和b1分別是加密時(shí)x方向上第一次變換階數(shù)和第二次變換階數(shù),a是加密時(shí)y方向上第一次變換階數(shù)。此外需要再次強(qiáng)調(diào)的是,本文提出的算法得到的是一個(gè)實(shí)值密文圖像,相比之下本文算法更適于進(jìn)行數(shù)字圖像加密,并且對(duì)密鑰敏感度更高,更加安全。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

3、算法的魯棒性測(cè)試

首先對(duì)密文圖像進(jìn)行部分遮擋傅裁,然后再利用正確的密鑰解密,仍然可以恢復(fù)出明文圖像的大致信息(圖8),可利用圖像處理操作對(duì)這種情況下的解密圖像質(zhì)量進(jìn)行改善??梢?jiàn),算法對(duì)遮擋傅裁具有一定的魯棒性。這也從另一個(gè)角度證實(shí)了前面章節(jié)中提到的擴(kuò)散能力,在對(duì)圖像進(jìn)行網(wǎng)絡(luò)傳輸時(shí),在網(wǎng)絡(luò)故障或者擁塞只能獲得部分密文圖像的情況下,利用本算法使用正確的密鑰可以獲得原始圖像的大部分低頻分量,從而可知曉明文信息。

數(shù)字圖像實(shí)值加密方法之分?jǐn)?shù)階Fourier變換

小知識(shí)之Fourier變換

即傅立葉變換,能將滿足一定條件的某個(gè)函數(shù)表示成三角函數(shù)(正弦和/或余弦函數(shù))或者它們的積分的線性組合。在不同的研究領(lǐng)域,傅立葉變換具有多種不同的變體形式,如連續(xù)傅立葉變換和離散傅立葉變換。最初傅立葉分析是作為熱過(guò)程的解析分析的工具被提出的。