韓 嘯 熊禮治 蔣鵬程 宋婷婷
(南京信息工程大學計算機與軟件學院 江蘇 南京 210044)
圖像加密技術是目前為止主要的兩種圖像保護的方法之一,許多圖像加密方案已被提出[1]。本文主要討論的圖像加密技術是根據圖像的空間性、時間性、冗余度高、視覺可感知性等特性來設計加密算法[2]。但是密文圖像仍存在著被破譯的風險,這個時候就要減少被破解的可能性,所以需要提高算法的安全性[3]。由于圖像加密算法種類越來越多,在選擇使用哪種加密算法時,人們需要知道哪個算法相對其他算法的安全性更好,為此圖像加密算法的安全性評價方法就被提出了。而目前對于加密算法安全性的評價,大多數都是對算法的單一指標參數進行比對,由于不同指標參數所針對的密文圖像安全特性不同,單一的指標參數對于圖像加密算法的安全性評價很有可能是片面的,不能全面地展示出密文圖像的安全性能和適用場景。
為了能夠綜合比較不同加密算法的指標參數,本文提出一種基于多種指標參數橫向比較的密文圖像安全性評價方案,并設計和實現系統。本文先介紹采用的5種圖像加密算法及其加解密步驟。然后介紹所采用算法的指標參數,如像素數量改變率、密鑰空間大小、信息熵、相鄰像素相關系數等,并對各個指標參數的可靠性進行分析比較。接著介紹通過MATLAB來實現本系統,并對文件照片和衛星地圖照片這兩類常用的“類圖像”進行具體安全性分析。最后對全文進行總結。
仿射變換是一種幾何中常見的變換,該變換的公式如下:

(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 加密算法是最常見的對稱加密算法,同時屬于分組加密算法,它將明文分成長度相同的幾組數據。且根據AES 加密的標準規范,分組長度只能是128 位。而和分組長度不同,AES 加密算法的密鑰長度有3 中選擇,根據AES 密鑰長度的不同,加密輪數也不同[7],如表1所示。

表1 密鑰長度與加密輪數
基于AES的圖像加密需要將圖像的灰度值轉換為矩陣形式來計算:以字節為單位對每一個4×4 的矩陣按照從左上角至右上角的順序,依次進行AES加密;加密結束后再將分塊按照加密時的順序連接起來。得到的矩陣結果與原矩陣不同,即圖像的灰度值產生了改變,得到置亂[8-9]。如果圖像的灰度值不能正好轉換成4×4 矩陣的形式,就需要在缺少的矩陣的右下方補零,使圖像的灰度值能夠轉換成4×4 矩陣的形式[10]。
Yoshida等分析研究了Tent 映射在其不變密度和功率譜的混沌區間中的混沌行為(具有唯一最大值的分段線性連續映射)。他們發現隨著最大高度的降低,在混沌區域中發生連續的波段分離過渡,并積累到過渡點進入非混沌區域,而且非周期性軌跡的時間相關函數及其功率譜在波段分離點處及其附近進行精確計算。由于Tent映射是拓撲共軛的,因此映射的行為在這個意義上是相同的。Tent 混沌映射計算公式如下:
xi+1=f(xi,μ)
(2)
(3)
混沌雙重圖像加密算法的整體原理如圖1所示。

圖1 混沌雙重圖像加密算法的整體原理
本文的混沌雙重置亂加密選取是性能優良的Kent映射,其表達式為:
(4)
當x∈(0,1)、S∈(0,1)時。通過李雅普諾夫(Lyapunov)指數可以判斷一個系統是否為混沌,若Lyapunov指數大于零,那就說明系統是混沌的。而Kent映射公式中就包含了一個正指數。其中初始x0可以產生的任意序列,而S為控制參數。
混沌雙重置換加密[11]的過程都是可逆的,那么說明其加密的逆操作即為解密。混沌雙重置換加密是先進行全局置亂,然后對每個像素值進行替代加密[12]。而其解密就是先對密文進行反替代操作,然后根據混沌數組來計算中間密文。
頻域加密是通過將圖像空域和頻域進行轉換來實現加密的,而它們之間的轉換則是利用離散余弦變換(DCT)、快速傅里葉變換(FFT)以及小波變換(WaVelet)等實現[13]。其中相較于其他變換,離散余弦變換更好。因為它能夠實現圖像實時壓縮、抗干擾能力強,且其算法比較簡單,因此它的算法復雜度較低。所以通常優先選擇離散余弦變換DCT的頻域加密。
加密步驟如下:首先圖像轉化為灰度圖像,將其轉換成矩陣形式;然后將這個較大的矩陣劃分成 8×8 的小矩陣方塊,對每個小矩陣方塊都進行DCT變換;最后量化非高頻系數,以此減少需要計算的數據量,再將變換后的小矩陣方塊拼起來就得到了密文圖像。解密時,首先將密文圖像的矩陣形式劃分成小矩陣方塊,然后對每個小矩陣方塊進行 DCT 逆變換,最后將逆變換后的小矩陣方塊拼起來就得到了原始圖像。
像素數量的改變率NPCR和歸一化平均改變強度UACI都是衡量加密算法對明文敏感度的一個指標參數。由文獻[14]可知,當 NPCR接近100%、UACI接近33%時,算法對明文更加敏感,算法的抵抗差分攻擊性更好。
在Shanon的信息論中,提出了信息熵的概念,它是用來反映一個信息的不確定性,并且該指標參數也可以用來反映圖像信息中的不確定性,即圖像的信息熵。它可以反映出圖像中灰度值的分布。經分析得出:算法的信息熵的值越大,那么經過加密后得到的密文圖像的灰度值分布的就越均勻,圖像像素之間的關系越無法看出來,而圖像信息也就不會被輕易破譯。
若已加密圖像任意方向的相鄰像素對的值之間都十分分散,且無關系可尋,那么它的相關系數就越接近 0,則密文圖像就越難破解。
加密所消耗的時間長短決定了算法的時間復雜度的大小,而時間復雜度越小,那么算法的加密所需要的時間就越短,加密過程中需要承擔的風險也就更小了,則該算法的安全性較好。而時間復雜度是通過一個函數公式精確地計算出算法進行加密時所需的時間。在本文中加密時間是通過記錄原始圖像從開始加密到生成密文圖像的時間。
密鑰空間的大小的單位是位,且密鑰的位越長,其空間就越大[15-16]。一個好的加密算法,密鑰空間應該足夠大以抵抗窮舉攻擊。選取混沌迭代的初始值x0和第二階段所需的混沌系統的參數S2作為計算密鑰的參數。那么在32 bit計算機中雙精度數據為64 bit,則密鑰空間為264×264=2 128。即便破譯者一秒之內用數以億計的密鑰進行破譯[17],也需要耗時一千多年才可以把整個密鑰空間破譯出來。
密鑰敏感性意味著如果加密密鑰不同,則會產生完全不同的密文圖像;類似地,如果解密密鑰不同,則基于相同密文的解密結果也將不同[18]。一個好的加密算法對密鑰的敏感性是十分重要的,密鑰敏感性表明算法的抗選擇明文/密文攻擊能力。密鑰敏感性值越小,則算法的抗選擇明文/密文攻擊能力越好。
本文提出的基于多種指標參數橫向比較的密文圖像安全性評價方案,首先需要將選取的圖像內容,按照5種不同的圖像加密算法進行加密,然后由得到的密文圖像計算各指標參數,并將各個指標參數與期望值對比,根據各指標參數的可靠性,判斷該算法安全性。實驗選取的圖像內容為目前加密應用中常使用的兩類“類圖像”——文件照片和衛星地圖照片。由于這兩種圖像的圖像特征(顏色特征、紋理特征、形狀特征和空間關系特征)和安全特性具有代表性,對其進行安全性分析得出的結論更能體現出本文方案的實用性。
實現了Tent混沌映射加密、AES 加密、混沌雙重置亂加密、仿射變換加密和頻域加密這5種圖像加密算法以及它們各自的解密功能。
實現計算像素數改變率(NPCR)、歸一化平均變化強度(UACI)、信息熵、加密時間、相鄰像素之間相關系數、密鑰空間大小和密鑰敏感性。下面介紹部分指標參數計算方法,并由此分析各指標參數在該方案中的可靠性。
(1) NPCR與UACI:假設兩個原始圖像僅存在一個像素不同時,設它們的密文圖像中第(i,j)點的像素值分別為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的計算公式分別為:
(5)

(6)
式中:M和N是原始圖像像素轉換的矩陣的行數與列數。
由于NPCR與UACI是衡量加密算法對明文敏感度的一個指標參數,對于加密算法的安全性評判是可靠的,因此將其作為主要參數進行分析。

(7)
信息熵反映圖像信息的不確定性,即灰度值分布的不確定性。該參數能夠直接反映密文圖像的安全性,是可靠的。若某加密算法的信息熵過小,則可以判斷該方法是不安全的。
(3) 相鄰像素之間的相關系數:首先選擇N組任意圖像中任意方向(水平或垂直或對角方向)的相鄰像素,再通過以下公式計算相鄰像素之間的相關系數:

(8)
(9)
(10)
(11)
(4) 加密耗時:在本文中加密時間是指原始圖像從開始加密到生成密文圖像的時間。該參數主要用于判斷加密過程的速度,而不直接反映安全性,因此優先級較低。
(5) 密鑰空間大小:這里以本文的混沌雙重置亂加密為例,當密鑰長度為r時,密鑰空間有2r個元素。密鑰空間足夠大時可以抵抗窮舉攻擊,因此是可靠的。
(6) 密鑰敏感性:為了更加清晰明確地反映其中密文圖像的不同,通過計算不同密鑰對應的密文圖像與原始圖像的NPCR和UACI來比較。密鑰敏感性表明算法的抗選擇明文/密文攻擊能力,最能體現方法安全性。
綜上所述,得到指標參數優先級排序。為了讓評判更加全面,本文將主要參數設為:密鑰敏感性、信息熵、NPCR與UACI。其余參數在使用的加密方法滿足主要參數評判的安全性后,作為參考進一步比較方法的安全性。
圖2為一張衛星地圖照片,灰度化處理后,對其依次進行Tent混沌映射加密、AES加密、混沌雙重置亂加密、仿射變換加密和頻域加密,得到如圖3-圖7所示的加密效果。

圖2 原圖1 圖3 Tent混沌映射加密1

圖4 AES加密1 圖5 混沌雙重置亂加密1

圖6 仿射變換加密1 圖7 頻域加密1
通過對比,可以看出Tent混沌映射加密和AES加密的效果較好,混沌雙重置亂其次。而由此得到的指標參數如表2、表3所示。由指標參數綜合分析得到的結論與上文是一致的。

表2 信息熵等指標參數分析1

表3 密鑰敏感性等指標參數分析1
通過對指標參數的分析,我們已知的結論有:
(1) 像素的改變率期望值為100%,為了方便,本文使用的是1-NPCR,所以該值越接近0,算法安全性越高。
(2) 歸一化平均改變強度的期望值為33%,所以算法的歸一化平均改變強度越接近33%,該算法安全性越高。
(3) 信息熵反映加密后圖像復雜程度即圖像的灰度分布情況,算法的信息熵越接近8,該算法安全性越高。
(4) 相鄰像素之間的相關系數越接近0,算法安全性越高。
(5) 算法加密耗時越短,安全性越高。
(6) 密鑰空間大小反映系統抗窮舉攻擊能力,其值越大,算法越安全。
(7) 密鑰敏感性表明系統抗選擇明文/密文攻擊能力,其值越小,算法越安全。
以上述為前提,選取相應樣本,五種加密算法的指標參數的橫向比較結論如下:
加密耗時:仿射變換最快,其次是Tent混沌異或加密、頻域加密、混沌雙重置亂,AES最慢。
信息熵:Tent最好,其次是AES、混沌雙重置亂、仿射變換加密,頻域加密最差。
密鑰空間大小:仿射變換加密最好,其次是AES和混沌雙重置亂、Tent、頻域加密。
密鑰敏感性:AES最好,其次是Tent、混沌雙重置亂和仿射變換、頻域加密。
1-像素數改變率:頻域加密較好、其次是Tent、AES、混沌雙重置亂、仿射。
歸一化平均改變強度:AES最好,其次是Tent、頻域加密、混沌雙重置亂、仿射。
相鄰像素的相關系數:AES最好,其次是頻域、混沌雙重置亂、Tent、仿射。
綜上所述,根據主要指標參數和參考其他參數可以得出,衛星地圖照片加密中,不考慮加密耗時的情況下,AES最好;綜合情況下Tent和AES都具有較高的安全性。
圖8為一張文件照片,步驟同4.1,得到如圖9-圖13所示的加密效果。

圖8 原圖2 圖9 Tent混沌映射加密2

圖10 AES加密2 圖11 混沌雙重置亂加密2

圖12 仿射變換加密2 圖13 頻域加密2
可以看出Tent、AES、混沌雙重置亂的加密效果相近。而由此得到的指標參數如表4、表5所示。

表4 信息熵等指標參數分析2

表5 密鑰敏感性等指標參數分析2
由主要指標參數的橫向比較得出的結論如下:
信息熵:Tent最好,其次是AES、混沌雙重置亂、仿射變換加密,頻域加密最差。
密鑰敏感性:AES最好,其次是Tent、混沌雙重置亂和仿射變換、頻域加密。
1-像素數改變率:頻域加密較好、其次是AES、Tent、混沌雙重置亂、仿射。
歸一化平均改變強度:AES最好,其次是Tent、混沌雙重置亂、頻域加密、仿射。
綜上所述,根據主要指標參數和參考其他參數可以得出,文件照片加密中,AES具有安全性最高,Tent其次。
本文對五種密文圖像進行基于多種指標參數的安全性評價,并由選取的兩種圖像樣本得出相應結論:雖然兩次實驗結果相近(即Tent綜合情況下安全性高,AES加密耗時長而安全性最高),但具有不同圖像特征和安全特性的圖像,根據各指標參數分析而得到的安全性評價是不同的。本文提出的密文圖像安全性評價方案,在根據需求選取不同種類的樣本時,能夠得出特定情況下安全性最高的圖像加密算法,從而使實際應用中,選取更安全的圖像加密算法,得到更好的密文圖像。
本文存在的不足是在對指標參數優先級劃分時,不夠客觀細致。下一步工作將用具體的權重劃分方法,更客觀全面地評判圖像加密方法安全性。