韓 嘯 熊禮治 蔣鵬程 宋婷婷
(南京信息工程大學(xué)計(jì)算機(jī)與軟件學(xué)院 江蘇 南京 210044)
圖像加密技術(shù)是目前為止主要的兩種圖像保護(hù)的方法之一,許多圖像加密方案已被提出[1]。本文主要討論的圖像加密技術(shù)是根據(jù)圖像的空間性、時(shí)間性、冗余度高、視覺(jué)可感知性等特性來(lái)設(shè)計(jì)加密算法[2]。但是密文圖像仍存在著被破譯的風(fēng)險(xiǎn),這個(gè)時(shí)候就要減少被破解的可能性,所以需要提高算法的安全性[3]。由于圖像加密算法種類越來(lái)越多,在選擇使用哪種加密算法時(shí),人們需要知道哪個(gè)算法相對(duì)其他算法的安全性更好,為此圖像加密算法的安全性評(píng)價(jià)方法就被提出了。而目前對(duì)于加密算法安全性的評(píng)價(jià),大多數(shù)都是對(duì)算法的單一指標(biāo)參數(shù)進(jìn)行比對(duì),由于不同指標(biāo)參數(shù)所針對(duì)的密文圖像安全特性不同,單一的指標(biāo)參數(shù)對(duì)于圖像加密算法的安全性評(píng)價(jià)很有可能是片面的,不能全面地展示出密文圖像的安全性能和適用場(chǎng)景。
為了能夠綜合比較不同加密算法的指標(biāo)參數(shù),本文提出一種基于多種指標(biāo)參數(shù)橫向比較的密文圖像安全性評(píng)價(jià)方案,并設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)。本文先介紹采用的5種圖像加密算法及其加解密步驟。然后介紹所采用算法的指標(biāo)參數(shù),如像素?cái)?shù)量改變率、密鑰空間大小、信息熵、相鄰像素相關(guān)系數(shù)等,并對(duì)各個(gè)指標(biāo)參數(shù)的可靠性進(jìn)行分析比較。接著介紹通過(guò)MATLAB來(lái)實(shí)現(xiàn)本系統(tǒng),并對(duì)文件照片和衛(wèi)星地圖照片這兩類常用的“類圖像”進(jìn)行具體安全性分析。最后對(duì)全文進(jìn)行總結(jié)。
仿射變換是一種幾何中常見(jiàn)的變換,該變換的公式如下:
(1)
在這里,本文選取的密鑰為:
a=9.484 911 376×102,b=1.332 291 989×104,
c=5.781 391 478×103,d=8.120 794 541×104,
e=1.615 675 500×102 ,f=2.275 588 209×103。
AES 加密算法是最常見(jiàn)的對(duì)稱加密算法,同時(shí)屬于分組加密算法,它將明文分成長(zhǎng)度相同的幾組數(shù)據(jù)。且根據(jù)AES 加密的標(biāo)準(zhǔn)規(guī)范,分組長(zhǎng)度只能是128 位。而和分組長(zhǎng)度不同,AES 加密算法的密鑰長(zhǎng)度有3 中選擇,根據(jù)AES 密鑰長(zhǎng)度的不同,加密輪數(shù)也不同[7],如表1所示。
表1 密鑰長(zhǎng)度與加密輪數(shù)
基于AES的圖像加密需要將圖像的灰度值轉(zhuǎn)換為矩陣形式來(lái)計(jì)算:以字節(jié)為單位對(duì)每一個(gè)4×4 的矩陣按照從左上角至右上角的順序,依次進(jìn)行AES加密;加密結(jié)束后再將分塊按照加密時(shí)的順序連接起來(lái)。得到的矩陣結(jié)果與原矩陣不同,即圖像的灰度值產(chǎn)生了改變,得到置亂[8-9]。如果圖像的灰度值不能正好轉(zhuǎn)換成4×4 矩陣的形式,就需要在缺少的矩陣的右下方補(bǔ)零,使圖像的灰度值能夠轉(zhuǎn)換成4×4 矩陣的形式[10]。
Yoshida等分析研究了Tent 映射在其不變密度和功率譜的混沌區(qū)間中的混沌行為(具有唯一最大值的分段線性連續(xù)映射)。他們發(fā)現(xiàn)隨著最大高度的降低,在混沌區(qū)域中發(fā)生連續(xù)的波段分離過(guò)渡,并積累到過(guò)渡點(diǎn)進(jìn)入非混沌區(qū)域,而且非周期性軌跡的時(shí)間相關(guān)函數(shù)及其功率譜在波段分離點(diǎn)處及其附近進(jìn)行精確計(jì)算。由于Tent映射是拓?fù)涔曹椀模虼擞成涞男袨樵谶@個(gè)意義上是相同的。Tent 混沌映射計(jì)算公式如下:
xi+1=f(xi,μ)
(2)
(3)
混沌雙重圖像加密算法的整體原理如圖1所示。
圖1 混沌雙重圖像加密算法的整體原理
本文的混沌雙重置亂加密選取是性能優(yōu)良的Kent映射,其表達(dá)式為:
(4)
當(dāng)x∈(0,1)、S∈(0,1)時(shí)。通過(guò)李雅普諾夫(Lyapunov)指數(shù)可以判斷一個(gè)系統(tǒng)是否為混沌,若Lyapunov指數(shù)大于零,那就說(shuō)明系統(tǒng)是混沌的。而Kent映射公式中就包含了一個(gè)正指數(shù)。其中初始x0可以產(chǎn)生的任意序列,而S為控制參數(shù)。
混沌雙重置換加密[11]的過(guò)程都是可逆的,那么說(shuō)明其加密的逆操作即為解密?;煦珉p重置換加密是先進(jìn)行全局置亂,然后對(duì)每個(gè)像素值進(jìn)行替代加密[12]。而其解密就是先對(duì)密文進(jìn)行反替代操作,然后根據(jù)混沌數(shù)組來(lái)計(jì)算中間密文。
頻域加密是通過(guò)將圖像空域和頻域進(jìn)行轉(zhuǎn)換來(lái)實(shí)現(xiàn)加密的,而它們之間的轉(zhuǎn)換則是利用離散余弦變換(DCT)、快速傅里葉變換(FFT)以及小波變換(WaVelet)等實(shí)現(xiàn)[13]。其中相較于其他變換,離散余弦變換更好。因?yàn)樗軌驅(qū)崿F(xiàn)圖像實(shí)時(shí)壓縮、抗干擾能力強(qiáng),且其算法比較簡(jiǎn)單,因此它的算法復(fù)雜度較低。所以通常優(yōu)先選擇離散余弦變換DCT的頻域加密。
加密步驟如下:首先圖像轉(zhuǎn)化為灰度圖像,將其轉(zhuǎn)換成矩陣形式;然后將這個(gè)較大的矩陣劃分成 8×8 的小矩陣方塊,對(duì)每個(gè)小矩陣方塊都進(jìn)行DCT變換;最后量化非高頻系數(shù),以此減少需要計(jì)算的數(shù)據(jù)量,再將變換后的小矩陣方塊拼起來(lái)就得到了密文圖像。解密時(shí),首先將密文圖像的矩陣形式劃分成小矩陣方塊,然后對(duì)每個(gè)小矩陣方塊進(jìn)行 DCT 逆變換,最后將逆變換后的小矩陣方塊拼起來(lái)就得到了原始圖像。
像素?cái)?shù)量的改變率NPCR和歸一化平均改變強(qiáng)度UACI都是衡量加密算法對(duì)明文敏感度的一個(gè)指標(biāo)參數(shù)。由文獻(xiàn)[14]可知,當(dāng) NPCR接近100%、UACI接近33%時(shí),算法對(duì)明文更加敏感,算法的抵抗差分攻擊性更好。
在Shanon的信息論中,提出了信息熵的概念,它是用來(lái)反映一個(gè)信息的不確定性,并且該指標(biāo)參數(shù)也可以用來(lái)反映圖像信息中的不確定性,即圖像的信息熵。它可以反映出圖像中灰度值的分布。經(jīng)分析得出:算法的信息熵的值越大,那么經(jīng)過(guò)加密后得到的密文圖像的灰度值分布的就越均勻,圖像像素之間的關(guān)系越無(wú)法看出來(lái),而圖像信息也就不會(huì)被輕易破譯。
若已加密圖像任意方向的相鄰像素對(duì)的值之間都十分分散,且無(wú)關(guān)系可尋,那么它的相關(guān)系數(shù)就越接近 0,則密文圖像就越難破解。
加密所消耗的時(shí)間長(zhǎng)短決定了算法的時(shí)間復(fù)雜度的大小,而時(shí)間復(fù)雜度越小,那么算法的加密所需要的時(shí)間就越短,加密過(guò)程中需要承擔(dān)的風(fēng)險(xiǎn)也就更小了,則該算法的安全性較好。而時(shí)間復(fù)雜度是通過(guò)一個(gè)函數(shù)公式精確地計(jì)算出算法進(jìn)行加密時(shí)所需的時(shí)間。在本文中加密時(shí)間是通過(guò)記錄原始圖像從開始加密到生成密文圖像的時(shí)間。
密鑰空間的大小的單位是位,且密鑰的位越長(zhǎng),其空間就越大[15-16]。一個(gè)好的加密算法,密鑰空間應(yīng)該足夠大以抵抗窮舉攻擊。選取混沌迭代的初始值x0和第二階段所需的混沌系統(tǒng)的參數(shù)S2作為計(jì)算密鑰的參數(shù)。那么在32 bit計(jì)算機(jī)中雙精度數(shù)據(jù)為64 bit,則密鑰空間為264×264=2 128。即便破譯者一秒之內(nèi)用數(shù)以億計(jì)的密鑰進(jìn)行破譯[17],也需要耗時(shí)一千多年才可以把整個(gè)密鑰空間破譯出來(lái)。
密鑰敏感性意味著如果加密密鑰不同,則會(huì)產(chǎn)生完全不同的密文圖像;類似地,如果解密密鑰不同,則基于相同密文的解密結(jié)果也將不同[18]。一個(gè)好的加密算法對(duì)密鑰的敏感性是十分重要的,密鑰敏感性表明算法的抗選擇明文/密文攻擊能力。密鑰敏感性值越小,則算法的抗選擇明文/密文攻擊能力越好。
本文提出的基于多種指標(biāo)參數(shù)橫向比較的密文圖像安全性評(píng)價(jià)方案,首先需要將選取的圖像內(nèi)容,按照5種不同的圖像加密算法進(jìn)行加密,然后由得到的密文圖像計(jì)算各指標(biāo)參數(shù),并將各個(gè)指標(biāo)參數(shù)與期望值對(duì)比,根據(jù)各指標(biāo)參數(shù)的可靠性,判斷該算法安全性。實(shí)驗(yàn)選取的圖像內(nèi)容為目前加密應(yīng)用中常使用的兩類“類圖像”——文件照片和衛(wèi)星地圖照片。由于這兩種圖像的圖像特征(顏色特征、紋理特征、形狀特征和空間關(guān)系特征)和安全特性具有代表性,對(duì)其進(jìn)行安全性分析得出的結(jié)論更能體現(xiàn)出本文方案的實(shí)用性。
實(shí)現(xiàn)了Tent混沌映射加密、AES 加密、混沌雙重置亂加密、仿射變換加密和頻域加密這5種圖像加密算法以及它們各自的解密功能。
實(shí)現(xiàn)計(jì)算像素?cái)?shù)改變率(NPCR)、歸一化平均變化強(qiáng)度(UACI)、信息熵、加密時(shí)間、相鄰像素之間相關(guān)系數(shù)、密鑰空間大小和密鑰敏感性。下面介紹部分指標(biāo)參數(shù)計(jì)算方法,并由此分析各指標(biāo)參數(shù)在該方案中的可靠性。
(1) NPCR與UACI:假設(shè)兩個(gè)原始圖像僅存在一個(gè)像素不同時(shí),設(shè)它們的密文圖像中第(i,j)點(diǎn)的像素值分別為C1(i,j)和C2(i,j)。若C1(i,j)=C2(i,j),定義D(i,j)=0;若C1(i,j)≠C2(i,j),定義D(i,j)=1。則NPCR與UACI的計(jì)算公式分別為:
(5)
(6)
式中:M和N是原始圖像像素轉(zhuǎn)換的矩陣的行數(shù)與列數(shù)。
由于NPCR與UACI是衡量加密算法對(duì)明文敏感度的一個(gè)指標(biāo)參數(shù),對(duì)于加密算法的安全性評(píng)判是可靠的,因此將其作為主要參數(shù)進(jìn)行分析。
(7)
信息熵反映圖像信息的不確定性,即灰度值分布的不確定性。該參數(shù)能夠直接反映密文圖像的安全性,是可靠的。若某加密算法的信息熵過(guò)小,則可以判斷該方法是不安全的。
(3) 相鄰像素之間的相關(guān)系數(shù):首先選擇N組任意圖像中任意方向(水平或垂直或?qū)欠较?的相鄰像素,再通過(guò)以下公式計(jì)算相鄰像素之間的相關(guān)系數(shù):
(8)
(9)
(10)
(11)
(4) 加密耗時(shí):在本文中加密時(shí)間是指原始圖像從開始加密到生成密文圖像的時(shí)間。該參數(shù)主要用于判斷加密過(guò)程的速度,而不直接反映安全性,因此優(yōu)先級(jí)較低。
(5) 密鑰空間大?。哼@里以本文的混沌雙重置亂加密為例,當(dāng)密鑰長(zhǎng)度為r時(shí),密鑰空間有2r個(gè)元素。密鑰空間足夠大時(shí)可以抵抗窮舉攻擊,因此是可靠的。
(6) 密鑰敏感性:為了更加清晰明確地反映其中密文圖像的不同,通過(guò)計(jì)算不同密鑰對(duì)應(yīng)的密文圖像與原始圖像的NPCR和UACI來(lái)比較。密鑰敏感性表明算法的抗選擇明文/密文攻擊能力,最能體現(xiàn)方法安全性。
綜上所述,得到指標(biāo)參數(shù)優(yōu)先級(jí)排序。為了讓評(píng)判更加全面,本文將主要參數(shù)設(shè)為:密鑰敏感性、信息熵、NPCR與UACI。其余參數(shù)在使用的加密方法滿足主要參數(shù)評(píng)判的安全性后,作為參考進(jìn)一步比較方法的安全性。
圖2為一張衛(wèi)星地圖照片,灰度化處理后,對(duì)其依次進(jìn)行Tent混沌映射加密、AES加密、混沌雙重置亂加密、仿射變換加密和頻域加密,得到如圖3-圖7所示的加密效果。
圖2 原圖1 圖3 Tent混沌映射加密1
圖4 AES加密1 圖5 混沌雙重置亂加密1
圖6 仿射變換加密1 圖7 頻域加密1
通過(guò)對(duì)比,可以看出Tent混沌映射加密和AES加密的效果較好,混沌雙重置亂其次。而由此得到的指標(biāo)參數(shù)如表2、表3所示。由指標(biāo)參數(shù)綜合分析得到的結(jié)論與上文是一致的。
表2 信息熵等指標(biāo)參數(shù)分析1
表3 密鑰敏感性等指標(biāo)參數(shù)分析1
通過(guò)對(duì)指標(biāo)參數(shù)的分析,我們已知的結(jié)論有:
(1) 像素的改變率期望值為100%,為了方便,本文使用的是1-NPCR,所以該值越接近0,算法安全性越高。
(2) 歸一化平均改變強(qiáng)度的期望值為33%,所以算法的歸一化平均改變強(qiáng)度越接近33%,該算法安全性越高。
(3) 信息熵反映加密后圖像復(fù)雜程度即圖像的灰度分布情況,算法的信息熵越接近8,該算法安全性越高。
(4) 相鄰像素之間的相關(guān)系數(shù)越接近0,算法安全性越高。
(5) 算法加密耗時(shí)越短,安全性越高。
(6) 密鑰空間大小反映系統(tǒng)抗窮舉攻擊能力,其值越大,算法越安全。
(7) 密鑰敏感性表明系統(tǒng)抗選擇明文/密文攻擊能力,其值越小,算法越安全。
以上述為前提,選取相應(yīng)樣本,五種加密算法的指標(biāo)參數(shù)的橫向比較結(jié)論如下:
加密耗時(shí):仿射變換最快,其次是Tent混沌異或加密、頻域加密、混沌雙重置亂,AES最慢。
信息熵:Tent最好,其次是AES、混沌雙重置亂、仿射變換加密,頻域加密最差。
密鑰空間大小:仿射變換加密最好,其次是AES和混沌雙重置亂、Tent、頻域加密。
密鑰敏感性:AES最好,其次是Tent、混沌雙重置亂和仿射變換、頻域加密。
1-像素?cái)?shù)改變率:頻域加密較好、其次是Tent、AES、混沌雙重置亂、仿射。
歸一化平均改變強(qiáng)度:AES最好,其次是Tent、頻域加密、混沌雙重置亂、仿射。
相鄰像素的相關(guān)系數(shù):AES最好,其次是頻域、混沌雙重置亂、Tent、仿射。
綜上所述,根據(jù)主要指標(biāo)參數(shù)和參考其他參數(shù)可以得出,衛(wèi)星地圖照片加密中,不考慮加密耗時(shí)的情況下,AES最好;綜合情況下Tent和AES都具有較高的安全性。
圖8為一張文件照片,步驟同4.1,得到如圖9-圖13所示的加密效果。
圖8 原圖2 圖9 Tent混沌映射加密2
圖10 AES加密2 圖11 混沌雙重置亂加密2
圖12 仿射變換加密2 圖13 頻域加密2
可以看出Tent、AES、混沌雙重置亂的加密效果相近。而由此得到的指標(biāo)參數(shù)如表4、表5所示。
表4 信息熵等指標(biāo)參數(shù)分析2
表5 密鑰敏感性等指標(biāo)參數(shù)分析2
由主要指標(biāo)參數(shù)的橫向比較得出的結(jié)論如下:
信息熵:Tent最好,其次是AES、混沌雙重置亂、仿射變換加密,頻域加密最差。
密鑰敏感性:AES最好,其次是Tent、混沌雙重置亂和仿射變換、頻域加密。
1-像素?cái)?shù)改變率:頻域加密較好、其次是AES、Tent、混沌雙重置亂、仿射。
歸一化平均改變強(qiáng)度:AES最好,其次是Tent、混沌雙重置亂、頻域加密、仿射。
綜上所述,根據(jù)主要指標(biāo)參數(shù)和參考其他參數(shù)可以得出,文件照片加密中,AES具有安全性最高,Tent其次。
本文對(duì)五種密文圖像進(jìn)行基于多種指標(biāo)參數(shù)的安全性評(píng)價(jià),并由選取的兩種圖像樣本得出相應(yīng)結(jié)論:雖然兩次實(shí)驗(yàn)結(jié)果相近(即Tent綜合情況下安全性高,AES加密耗時(shí)長(zhǎng)而安全性最高),但具有不同圖像特征和安全特性的圖像,根據(jù)各指標(biāo)參數(shù)分析而得到的安全性評(píng)價(jià)是不同的。本文提出的密文圖像安全性評(píng)價(jià)方案,在根據(jù)需求選取不同種類的樣本時(shí),能夠得出特定情況下安全性最高的圖像加密算法,從而使實(shí)際應(yīng)用中,選取更安全的圖像加密算法,得到更好的密文圖像。
本文存在的不足是在對(duì)指標(biāo)參數(shù)優(yōu)先級(jí)劃分時(shí),不夠客觀細(xì)致。下一步工作將用具體的權(quán)重劃分方法,更客觀全面地評(píng)判圖像加密方法安全性。