杜思克,張愛華
(南京郵電大學理學院,江蘇 南京 210023)
在如今以計算機技術為基礎的信息化社會,快速興起的信息網(wǎng)絡導致信息內(nèi)容大量增加,隨之而來,用戶的數(shù)據(jù)安全問題受到極大挑戰(zhàn),因此如何保護用戶的隱私成為一個關鍵問題[1]。圖像作為重要的信息傳輸渠道備受關注,置亂算法以其使用的靈活性及加解密的高效性,在圖像加密中得到重要應用,其中Arnold變換、幻方置亂及面包師變換等是比較常用的圖像置亂算法[2]。此外,混沌系統(tǒng),如Logistic映射等,以其極強的初始參數(shù)敏感性,亦在圖像加密中得到廣泛應用[3-4]。
近年來,研究者們提出了大量圖像加密的方法,文獻[5]提出了基于對合矩陣、矩陣分解和信息隱藏的復合加密算法,利用對合矩陣對原始圖像進行加密,將加密圖像分解成若干低像素值的圖像后分別隱藏到公開的信息中,但直接使用一次對合陣加密的效果不夠理想,如要取得較好的加密效果,其計算過程較為繁瑣。文獻[6]提出將Arnold變換結合到騎士巡游算法中,提高了安全性,然而時間復雜度較高且沒有進行相關的抗干擾性測試。文獻[7]提出了基于矩陣分解的圖像加密算法,采用了獨立成分分析(ICA)和非負矩陣分解(NMF)兩種分解技術,獲得了較低的相關性且計算復雜度不高,但該算法并未改變像素矩陣的像素值,像素分布特征未得到隱藏。文獻[8]引入量子混沌,設計了一種利用量子混沌實現(xiàn)比特置亂的方案,具有較好的抗攻擊性,但由于比特置亂算法本身較大的計算量,導致效率不高。文獻[9]將Arnold變換與混沌現(xiàn)象結合,利用混沌偽隨機序列動態(tài)選取Arnold變換的參數(shù),使其能利用多種Arnold變換矩陣,具有良好的加密性能,但多種變換矩陣的使用也一定程度上使加密過程復雜化。綜上所述,本文提出了一種基于Frobenius標準形的Arnold變換圖像加密算法。
矩陣相似特別是相似對角化在矩陣論中有著重要的作用,但對角化的要求較高,導致實際應用中的矩陣很難滿足條件,因此具有一定的局限性。而一些準對角陣形式上雖然不如對角形式簡潔,但條件要求較弱,在實際中有更大的應用前景,如Frobenius標準形。
Arnold變換又稱貓臉變換,是一種常用的圖像置亂技術,其特點是置亂可逆,具有周期性[11]。Arnold變換要求圖像為正方形以保證其周期性:經(jīng)過一定次數(shù)的變換后能還原原始圖像。Arnold變換分為狹義變換和廣義變換,其區(qū)別是狹義變換不設置初始參數(shù),變換形式固定,不靈活,因此圖像置亂常使用廣義Arnold變換
式中: (x,y)、(x′,y′) 分別為置亂前后的像素點坐標,(a,b)為初始參數(shù),N為正方形圖像的邊長。還原圖像利用其逆變換即式(6)變換相同次數(shù)即可。
分別對每一個二階方陣進行式(9)的變換
即完成了Frobenius標準形對像素矩陣加密的預處理,其次利用Arnold變換設置初始參數(shù)(a,b)對其進行置亂。
關于解密過程,Arnold變換解密即其逆運算,在此不再贅述。Frobenius標準形的解密形式,以加密后矩陣的一個二階方陣為例,有
最后對分塊后的所有二階方陣重復上述過程即完成解密。
為分析和驗證本文算法的有效性,選取了Lena、Aerial和Peppers三副圖像進行實驗,實驗環(huán)境為Windows8系統(tǒng),Core i5-3320M,4 GB內(nèi)存,用MATLAB進行仿真。
視覺效果是評價圖像加密算法好壞的直觀方法。圖1、圖2和圖3分別是3副圖像經(jīng)本文算法加密的效果。算法中使用的Arnold變換初始參數(shù)設置為a=3,b=3,置亂次數(shù)設置為100次。
圖1 Lena加解密視覺效果
圖2 Aerial加解密視覺效果
圖3 Peppers加解密視覺效果
可以看出3副圖像的視覺加密效果均良好。
相鄰像素間的相關系數(shù)可以反映圖像像素的相關程度,相關性越小表明加密效果越好,一個好的圖像加密算法應使加密圖像各個方向上的相關系數(shù)均接近于0[12]。相關系數(shù)的計算公式為
阿諾德變換的置亂次數(shù)均設置為100次,初始參數(shù)取兩次:a=1,b=2和a=500,b=1000,結果分別如表1和表2所示。
表1 a=1,b=2的相關系數(shù)計算結果
表2 a=500,b=1 000的相關系數(shù)計算結果
表1、表2的結果表明Arnold變換的加密圖像相關系數(shù)結果較不理想,大部分均在0.1以上,而本文算法顯著降低了加密圖像的相關性。與此同時,縱向?qū)Ρ瘸跏紖?shù)大小差異較大的Arnold變換,計算結果表明選取較大的初始參數(shù)可以一定程度緩解Arnold變換相關系數(shù)不理想的問題。
此外,表3是本文算法與一些其他常見圖像加密算法以及文獻[13]、文獻[14]算法的相關性計算結果對比,結果表明本文加密圖像的相關性更低,對加密圖像的相關性破壞更大。
表3 相關系數(shù)結果對比
加密過程的復雜化能提升加密效果,然而可能會以犧牲計算效率為代價,表4、表5是本文算法與原算法計算效率的對比結果。以Lena圖像為例,取3次計時數(shù)據(jù)及其平均值,其次選取大小差異較大的兩組Arnold變換初始參數(shù),驗證初始參數(shù)大小對計算效率的影響。
表4 加解密所需時間對比(a=1,b=2) s
表5 加解密所需時間對比(a=500,b=1 000) s
可以看到,本文算法在取得了較原算法更好加密效果的同時,幾乎沒有增加計算時間。其次,縱向?qū)Ρ缺?、表5的計算時間,可以發(fā)現(xiàn)較大的初始參數(shù)會明顯增加計算時間,其所需計算時間會成倍增加。
上述分析表明,Arnold變換能通過選取較大的初始參數(shù)來降低加密圖像的相關性,然而降低效果不明顯且會顯著增加計算時間。與之不同,本文算法在初始參數(shù)較小時即能取得良好的加密效果。
為測試加密圖像的抗干擾性,對加密圖像進行剪切攻擊,并與文獻[15]進行對比,剪切大小依照文獻[15]的操作定量對比,分別為左上角16×16、32×32及右上角 64×64,圖 4是文獻[15]的測試結果,圖5是本文算法測試結果。
圖4、圖5測試結果表明,文獻[15]算法具有一定的抗干擾能力,然而在增大剪切面積后效果不夠理想,本文算法在剪切面積增加后,雖然圖像上有噪點,然而整幅圖像人物依然清晰可見,表明本文算法具有更強的抗干擾能力。
圖4 文獻[15]抗干擾測試結果
圖5 本文算法抗干擾測試結果
直方圖可以很好地反映圖像的像素值分布特征。如圖6所示,Arnold變換的像素點置亂并未改變像素值,因此不能隱藏像素值分布特征[16]。而本文算法使原算法在像素分布特征上亦得到了一定程度的隱藏。
圖6 像素分布直方圖
圖6結果表明,Arnold變換的加密圖像像素分布直方圖與原圖像沒有區(qū)別,像素分布特征無法隱藏,而本文算法像素值分布比較均勻。
本文從Frobenius標準形出發(fā),首先推導以二階方陣為單位進行分塊的Frobenius圖像加密算法。與此同時,針對Arnold變換相關系數(shù)不理想的問題,通過Frobenius標準形對像素矩陣進行加密預處理,然后利用Arnold變換進行像素點置亂。實驗結果表明,本文算法直觀加密效果良好,與Arnold變換相比顯著降低了加密圖像的相關系數(shù);同時對比了改進算法與原算法的計算效率,結果表明本文算法在幾乎沒有犧牲計算效率的前提下,獲得了更好的加密效果;此外將加密圖像進行剪切,仍能解密出較清晰的圖像,表明本文算法具有良好的抗干擾性;最后分析了像素分布直方圖,結果表明本文算法一定程度上隱藏了像素值分布特征。未來將進一步優(yōu)化拓展Frobenius標準形的應用空間,如與其他圖像加密算法如幻方變換、騎士巡游等結合使用。此外,還將考慮與彩色圖像灰度化等方法結合以探究該算法加密彩色圖像的可能性[17]。