呂 翔, 楊劉洋,, 劉夢夢, 樓夢佳, 羅云秀, 吳仁紅
(1.浙江師范大學 數理與信息工程學院,浙江 金華 321004;2.重慶市潼南中學,重慶 402660;3.浙江師范大學 經濟與管理學院,浙江 金華 321004)
在世界經濟加速發展的當今,網絡為經濟建設提供了平臺和技術支持.雖然網絡通信可提供一些優質服務,但也會面臨安全問題,比如:信息被修改、被攔截、被復制、被偽造、被惡意擴散等.針對這些問題,各國政府提出了多項保護性法律法規,并要求相關部門和運營商提供安全性更高的網絡環境和技術支持.研究者為解決此類問題設計了多種信息隱藏、保護方面的應對方案.對數據量較大的圖像類信息如何進行保護?各國學者也進行了大量的探索研究,已提出了多種各具優點的加密和保護方案.
比如,數字水印技術[1-6]就是一種應用于圖像類信息的最典型、最常用的保護技術.該技術已在文藝領域、工業應用、國防科技等方面得到了大量的運用,起到了一定范圍的防盜、維護版權作用.同時為了滿足“絕密”的需要,也出現了只對特定對象才成“可視圖像”的加密方案,比如文獻[7-18]等.雖然近幾十年來已經出現了大量的圖像加密方案,但是總會存在一些缺點或漏洞.這就迫使人們需要不斷努力地提出安全性更高、種類更多的圖像加密方案,為網絡通信提供保障.
很多以光學為手段的圖像加密方案[7-9]對光學器件、物理環境要求較高;以混沌系統或超混沌系統為基礎的圖像加密方案[15-18],雖然在安全性方面有很大程度的提高(比如,可以抵抗統計和差分攻擊),但是增加了計算的復雜性、計算量;以正交拉丁方為基礎的圖像置亂加密方案[10-11],雖然原理較簡單,但是安全性不夠高,尤其是對差分攻擊的抵御能力非常弱.
為簡化圖像加密算法的復雜程度和提高算法抗攻擊的能力,本文設計了一種基于嵌入冗余信息方式的圖像加密方案,并進行了一定次數的加/解密仿真實驗、抗攻擊仿真實驗及參數計算.
從所得仿真結果看,該算法不僅加/解密效果理想,而且還可以抵抗統計分析、差分分析、剪切攻擊等多種外界攻擊,表明本文提出的圖像加密方法比文獻[10-14]等的方法更加實用和有效.
定義1[12-14]若一個大小為n×n的數字矩陣A(n)=(aij)滿足下列2個條件:
1)元素aij∈Sn=0,1,2,…,n-1(i,j∈Sn);
2)同行、同列元素互異;
則稱該矩陣A(n)為一個n階拉丁方.
定義2[12,14]若一個n階拉丁方A(n)滿足條件:相鄰行、相鄰列各元素組成的元素數對互異,則稱該拉丁方A(n)為一個n階完備拉丁方.
定義3[14]若一個n階拉丁方A(n)滿足條件:每行元素都是上一行元素依次向左循環移動k位而得,并且(n,k)=1(1≤k≤n-1),則稱該拉丁方A(n)為一個n階k循環拉丁方,記為Ak(n).
引理1[12,14]設n=2m為一個大于2的正偶數,若一個n階拉丁方A(n)滿足首行元素為0,1,2m-1,2m-2,3,2m-3,…,m-1,m+1,m,且其余各行均為前一行對應元素+1(modn)而得,并按照首行順序進行換序,使得首列順序與首行相同,則可得到一個n階完備拉丁方B(n).
引理2[14]若設n階不同拉丁方所具有的總數為L(n),則有L(n)≥(n!)2n/(nn)n.
由定義3可知,可以隨意構造出一個A3(5)和一個A4(5),如下所示:

在預處理加密階段,為了滿足不同大小圖像的需要和像素在[0,255]之內取值,即可按照如下2種情況分別進行預處理.設有一個大小為n×n的256級原始灰度圖O(n),則有[13]:
1)針對n≤256的情況:隨意構造一個拉丁方A(n),并將其與圖像O(n)按位進行異或運算實現預處理加密,即得加密圖像M(n);
2)針對n>256的情況:先隨意構造一個拉丁方A(n),再對其中大于等于256的元素進行連續取模直到所有元素均小于256為止,得到對應矩陣B(n),如
B(n)=A(n) (mod 256)
(1)
所示.最后將B(n)與圖像O(n)按位進行異或運算實現預處理加密,即得加密圖像M(n).由引理2和參考文獻[14]可知,所有n階不同拉丁方的總數量會隨著階數n的不同而具有指數級增長趨勢,當階數超過11時已經無法統計.因此,該方案可以有效抵抗枚舉攻擊.
為了進一步提高圖像的安全性,常常需要對預處理后的圖像作進一步深度變換加密處理.為了減少外界攻擊干擾,設法將預處理圖像隨機地嵌入到一幅較大的噪聲圖像中,再利用完備拉丁方進行一定次數的空間坐標變換加密.嵌入后的圖像對于預處理圖像來說相當于增添了大量的冗余信息,經空間坐標變換后,一方面起到了隱藏有效信息的作用;另一方面還可以抵抗很多種外界攻擊(比如差分攻擊、剪切攻擊等),從而為破解圖像增加了難度.
深度變換處理步驟如下:
第1步,添加標記.
對預處理加密圖像M(n)添加全“0”標記,分布在M(n)的首行和首列之前,使M(n)成為大小為(n+1)×(n+1)的標記圖像C(n+1).
第2步,構造隨機噪聲圖像.
隨機構造一個大小為r×r的噪聲圖像D(r),要求r≥2n.
第3步,嵌入噪聲圖像.
將標記圖像C(n+1)隨機地嵌入到噪聲圖像D(r)中,替換D(r)中原來某一區域的噪聲信息,即得冗余圖像E(r).
第4步,空間坐標變換.
對冗余圖像E(r)按照完備拉丁方變換矩陣H(r)的規律進行x次(x≥1)的空間坐標變換加密,即得最終加密圖像F(r).
為滿足不同大小圖像加密的需要,下面分2種情況介紹完備拉丁方變換矩陣的生成方法[12].
1)r為偶數:
首先根據引理1的方法構造出一個r階完備拉丁方W(r),然后將其擴展成具有r×r個互異數對的變換矩陣H(r).擴展規則:將前一列元素與后一列元素合并作為新的列數對,而最后一列元素重復合并后作為最后一列數對.例如:


2)r為奇數:
首先根據引理1的方法構造出一個(r-1)階完備拉丁方W(r-1),然后加上一個相同階數的全“1”矩陣,再擴展成具有r×r個互異數對的變換矩陣H(r).擴展規則:將前一列元素與后一列元素合并作為新的列數對,最后一列元素重復合并后作為最后一列數對,第一列元素s(1≤s≤r)擴展成首列數對(0,s),最后一行元素t(1≤t≤r)擴展成最后一行數對(t,0).例如:


基于以上思想,筆者設計了如下加密算法:
第1步:讀取原始灰度圖像O(n);
第2步:計算O(n)的階數n;
第3步:構造一個拉丁方A(n)或對應矩陣B(n),并將A(n)定為1級密鑰;
第4步:將O(n)與A(n)或B(n)按位進行異或運算,得預處理加密圖像M(n);
第5步:對M(n)的首行和首列進行添加全“0”標記,得標記圖像C(n+1);
第6步:生成隨機噪聲圖像D(r)(r≥2n)和隨機整數y,z(0≤y,z≤r-n-1);
第7步:將C(n+1)按照y和z規定的坐標依次替換D(r)中對應的坐標像素,得冗余圖像E(r),實現隨機嵌入;
第8步:由r和引理1生成一個完備拉丁方W(r)或W(r-1),生成對應的變換矩陣H(r),并將W(r)或W(r-1)定為2級密鑰;
第9步:對E(r)按照H(r)的規律進行x次(x≥1)的空間坐標變換,即得最終加密圖像F(r),并將x定為3級密鑰;
第10步:判斷變換任務是否完成,若完成,則直接輸出F(r),并終止程序,否則跳轉至第9步繼續進行.
而其解密操作步驟如下:
第1步:根據2、3級密鑰,針對加密圖像F(r)進行x次空間坐標逆變換,即得冗余圖像E(r);第2步:讀取E(r),并判斷全“0”標記的坐標位置,然后根據坐標挖取預處理加密圖像M(n);第3步:根據1級密鑰,將M(n)與A(n)或B(n)按位進行異或運算,得原始圖像O(n),并輸出O(n).

圖1 基于嵌入冗余信息方式的圖像加/解密算法流程圖
設計基于以上加/解密算法的程序,在個人PC機上通過仿真軟件MATLAB 7.11對一幅256×256的原始灰度Lena圖進行多項仿真實驗和參數計算.由于預處理階段中第1級密鑰A(n)的構造方法、類型均不固定,因此,以下仿真實驗中可采用定義3的方法構造一個A11(256)作為第1級密鑰.
程序對大小為256×256的原始灰度Lena圖O(256)進行預處理加密仿真,得其加密前、后的效果圖和像素分布直方圖,如圖2、圖3所示.

圖2 原始Lena圖及其直方圖

圖3 預處理加密圖及其直方圖
由圖2和圖3可得,預處理加密后的圖像M(256)比原始圖像O(256)的安全性更高,除少部分輪廓信息外,大部分信息都已被很好地隱藏起來了.將兩者的直方圖進行對比可得,后者的統計特性比前者更好,像素值分布相當均勻.由此說明基于拉丁方的圖像預處理加密可降低圖中各像素之間的相關性,達到了隱藏圖像信息的目的,從而產生抵抗統計分析攻擊的作用.
先對預處理后的M(256)添加全“0”標記,得到標記圖C(257),如圖4所示.然后生成一個隨機噪聲圖像D(512),并將C(257)隨機地嵌入其中,得到如圖5所示的冗余圖像E(512).再對此冗余圖E(512)進行x=1和x=10次空間坐標變換加密,可得兩者的最終加密效果圖F(512),如圖6所示.

圖4 預處理加密圖及其標記圖

圖5 隨機噪聲圖及冗余圖

圖6 進行1次和10次空間坐標變換后的效果圖
基于以上解密算法思路設計解密程序,先對以上加密x=10次后的圖像進行10次逆變換解密,得其解密效果,如同7所示.然后根據圖中的全“0”標記挖取出預處理圖像,并進一步解密,得其解密效果,如圖8所示.

圖7 進行10次逆變換前、后效果圖

圖8 挖取圖及其解密效果圖
從圖4~圖6可得,將預處理后的加密圖嵌入較大的隨機噪聲圖中后經過一定次數的空間坐標變換,使得圖像中所有信息都得到了很好的隱藏,在視覺效果上,根本無法識別出原始圖像的任何信息.由圖7~圖8可得,不但能夠解密出所需圖像,而且還與原始圖像吻合得非常好.由此說明該加密方案確實有效,得到的加/解密效果好,并可大幅度地提高圖像的安全性.
從前面的算法步驟可以看出,加密密鑰由3級密鑰構成.由引理2和參考文獻[14]可知,第1級密鑰的密鑰空間隨拉丁方階數n急劇增加,當n=11時,就已超過1050.若階數再大,則其密鑰空間將無法估計.由文獻[12]可知,第2級密鑰的密鑰空間至少為n(n-1)/2,還有可能隨著完備拉丁方階數的增加而增加.第3級密鑰x的密鑰空間就更大了,因為x的取值范圍一般為:x≥10.當對嵌入的圖像進行再次加密時,密鑰空間主要由第2級密鑰和第3級密鑰的密鑰空間所決定.由于第3級密鑰的密鑰空間幾乎是無限大,因此,由以上3級密鑰構成的密鑰空間將大到無法計算,若他人想通過枚舉方式進行破解加密圖像,則是不可能成功的.在解密時,即使有微小的一部分密鑰出錯,也不能解密出正確的圖像,只有使用正確的3級密鑰才能解密出正確的圖像.若使用不同的原始圖像、不同的密鑰,則可得到不同的加密效果,說明加密圖像對原始圖像和密鑰充分敏感.
目前,學界對不同的圖像加密算法提出多種評定方法[19-22]. 本文根據各法之優點,主要從不動點比、信息熵、相鄰像素的相關性、擴散性與抗差分攻擊這樣4個方面進行相關的計算和分析.抗攻擊實驗的分析,則從統計分析攻擊、差分攻擊、剪切攻擊、椒鹽噪聲攻擊、JPEG壓縮攻擊、Gaussian低通濾波攻擊等角度進行仿真及分析.
2.4.1 不動點比
由表1可得,相比于原始圖像O(256)而言,預處理圖像M(256)的不動點比已經非常低,然而經過冗余信息嵌入后的10次深度變換加密得到的圖像F(512)的不動點明顯更低.從統計分析角度看,若不動點比越低,則像素變化得越多,圖像的像素分布就會更加均勻.

表1 目標圖與加密圖的不動點比
2.4.2 信息熵
由表2可知,原始圖像O(256)經過預處理得到的圖像M(256)的信息熵7.997 1已經非常接近理想值8,而嵌入冗余信息后經過10次深度變換得到的加密圖F(512)的信息熵7.997 7卻更加接近最大值8.此結果可說明該算法能夠有效地打亂圖像中各像素的分布,提高圖像的安全性.

表2 目標圖與加密圖的信息熵
2.4.3 相鄰像素的相關性
對加密圖像而言,若圖像中各像素相關性越小,則說明加密效果越好,反之效果越差.先從原始圖像和最終加密圖(x=10次的加密結果)中分別在水平相鄰、垂直相鄰、對角線相鄰這3個方向上隨機選取3 000對像素,然后根據式(2)~式(5)計算各像素對的相關性,并得到了數據,具體見表3.加密前、后在水平方向上的相關性比較見圖9和圖10(以下各式中,x,y均為相鄰像素的灰度值).
(2)

(3)

(5)

表3 3個不同方向上相鄰像素的相關性比較

圖9 原始圖的水平相關性圖示
由表3和圖9、圖10可得,原始圖像無論在哪個方向上各像素的相關性都比較大,并且在0.94以上,而本文的加密圖像在水平、垂直、對角線這3個方向上的相關性都比較低,且對角線上都已低到0.000 6.與文獻[16-17]中的值對比,更能說明本文算法得到的加密圖像中各像素的相關性較低.

圖10 加密圖的水平相關性圖示
綜合圖2、圖3的直方圖,表1、表2、表3中數據,以及對圖9、圖10等的分析可得,本文提出的加密方案確實有效地抵抗了統計分析攻擊.
2.4.4 擴散性與抗差分攻擊
在擴散性分析中有2個重要參數:像素改變率(number of pixels change rate,NPCR)和一致平均改變強度(unified average changing intensity,UACI)[23],常被用來作為評價圖像加密算法抗差分攻擊的主要指標.
設有2幅加密圖像X1和X2,兩者加密前的原始圖像只有1個像素不同,且兩者在相同坐標處的像素為X1(i,j)和X2(i,j),則有:
(6)

(7)
(8)
選2幅僅相差一個像素的256×256階Lena圖,經過相同加密算法、相同密鑰加密得到了2幅完全不同的加密效果圖.由式(6)~式(8)計算在不同加密次數時的NPCR和UACI值,如圖11、圖12所示.

圖11 不同加密次數時的NPCR值
由圖11、圖12可得,雖然加密次數x不同,但NPCR和UACI值均相對穩定,并且NPCR值保持在99.60%~99.61%.已知256級灰度圖其理想NPCR=99.609 4%,而本文得到的NPCR值與之符合得很好,說明該加密算法對明文(原始圖像)非常敏感.即使2幅原始圖像僅相差一個像素,但加密后的圖像卻完全不同,說明該加密方案的擴散性非常好,擴散速度很快,具有很強的抵抗差分攻擊能力.

圖12 不同加密次數時的UACI值
2.4.5 抗攻擊仿真及其結果分析

圖13 抗1/16剪切攻擊及解密恢復圖

圖14 抗1/4剪切攻擊及解密恢復圖

圖15 抗1/2剪切攻擊及解密恢復圖

圖16 抗3/4剪切攻擊及解密恢復圖

圖18 抗JPEG壓縮攻擊及解密恢復圖

圖19 抗Gaussian低通濾波攻擊及解密恢復圖
圖13~圖19均是采用256階Lena圖進行x=10次坐標深度變換加密后,再進行抗剪切攻擊、抗椒鹽噪聲攻擊、抗JPEG壓縮攻擊和抗Gaussian低通濾波攻擊的仿真實驗.從以上受到不同攻擊后得到的解密效果圖看,雖然解密圖像沒有原始圖像那樣完整,但是仍然保留了很多原始圖像信息.由此可得,如果通信過程中密鑰保管安全,那么本文的圖像加密算法能較好地抵抗外界的攻擊.
從抗剪切攻擊仿真實驗可得,當加密圖像受到剪切攻擊時,部分圖像信息雖然會丟失,但仍可較大程度地恢復出原圖像的基本信息.圖像受到剪切攻擊還能夠恢復的原因,是因為坐標深度變換加密可使原圖中所有信息都比較均勻地隱藏在一幅較大的噪聲圖像中,在剪切時就不至于丟失所有信息,在解密時只要在剪切圖像中能找出原來存留的部分原圖信息(比如“全0”標記),就可最大限度地進行恢復.若被剪切的信息量占總信息量的比例太大,則不能有效地恢復出原圖. 只要被剪切的信息量不太大,就不必擔心找不到“全0”標記,因為“全0”標記也會被均勻地分散到噪聲圖像中,在剪切時總會存留一部分.
由此可得,該圖像加密算法可對外公開,只需保管好加密密鑰,通過安全的專用信道進行傳輸密鑰,就可保證圖像通信的安全性,并能較好地抵抗外界攻擊.
網絡通信不但需要良好的網絡環境,而且還需要更高的通信技術保障.在網絡通信中,有很多關鍵性技術問題倍受關注,而圖像通信的安全性問題更是重點.設計性能優良的圖像加密算法可以有效地增強圖像的安全性、提高圖像通信的質量.本文在研究完備拉丁方的擴展性質后,提出了基于嵌入冗余信息方式的圖像加密方案,并設計了相應的加/解密算法步驟,進行了一定量的相關仿真實驗和參數計算.從加密算法步驟和流程圖角度看,該算法簡單、計算量少、易于實現.從加/解密效果看,其效果都非常理想,不少性能都接近理論最好值.從參數計算和抗攻擊仿真實驗結果看,該加密算法可抵抗多種外界攻擊,比如統計分析攻擊、差分攻擊、剪切攻擊、壓縮攻擊、濾波分析等.從以上角度可以說明,該圖像加密方案比文獻[10-13]中的方案適用性更強.由于拉丁方的計算模式多、類型多、數量龐大、密鑰空間非常大,所以基于拉丁方的圖像加密方案有很大的安全性.本文所提圖像加密方案比基于光學方法的圖像加密方案更加簡單、硬件要求低.和基于混沌系統或者超混沌系統的加密方案相比,總體效果相當,在相鄰像素相關性指標上要略好,而且方案簡單,密鑰空間更大.和傳統的基于拉丁方的方案相比,則具有很強的抗差分攻擊能力,一些性能指標幾乎達到理論極限,其他各項指標也更加好.因此,本文所設計的圖像加密方案具有較大的實用價值.
[1]Hui Y Q,Dong Z,Ji Y Z.Human visual system based adaptive digital image watermarking[J].Signal Processing,2007,88(1):174-188.
[2]徐光憲,李玉華,張鑫.基于幻方變換的抗剪切擴頻水印算法研究[J].清華大學學報:自然科學版,2013,53(8):1087-1090.
[3]Chen C H,Tang Y L,Wang C P,et al.A robust watermarking algorithm based on salient image features[J].Optik International Journal for Light and Electron Optics,2014,125(3):1134-1140.
[4]王金偉,周春飛,王水平,等.基于分數階四元數傅里葉變換的彩色圖像自適應水印算法[J].電子與信息學報,2016,38(11):2832-2839.
[5]項世軍,羅欣榮,石書協.一種同態加密域圖像可逆水印算法[J].計算機學報,2016,39(3):571-581.
[6]湯永利,高玉龍,于金霞,等.基于DCT域的增益不變量化的數字圖像水印算法[J].重慶郵電大學學報:自然科學版,2017,29(2):223-231.
[7]Lu D,Jin W M.Fully phase color image encryption based on joint fractional Fourier transform correlator and phase retrieval algorithm[J].Chinese Optics Letters,2011,9(2):34-36.
[8]Cai J J,Shen X J,Lin C.Images encryption based on joint transform correlator and vector decomposition[J].Journal of Optoelectronics Laser,2015,26(5):1005-1009.
[9]曾大奎,馬利紅,劉健,等.基于兩步正交相移干涉的振幅圖像光學加密技術[J].光子學報,2012,41(1):72-76.
[10]李國富.基于正交拉丁方的數字圖像置亂方法[J].北方工業大學學報,2001,13(1):14-16.
[11]巨亞榮,劉小兵.一種基于Logistic模型和正交拉丁方變換的圖像加密方法[J].重慶科技學院學報:自然科學版,2008,8(10):143-146.
[12]楊劉洋,呂翔.一種基于完備拉丁方的圖像加密算法[J].計算機應用研究,2015,32(11):3433-3442.
[13]呂翔,楊劉洋,劉中帥.一種無損傷的圖像加密算法與實現[J].浙江師范大學學報:自然科學版,2017,40(2):153-160.
[14]楊劉洋.拉丁方在二維光正交碼和圖像加密中的應用研究[D].金華:浙江師范大學,2015.
[15]Wang X Y,Teng L,Qin X.A novel colour image encryption algorithm based on chaos[J].Signal Processing,2011,92(4):1101-1108.
[16]廖雪峰,鄒華勝.超混沌圖像加密方案的分析與改進[J].計算機工程與應用,2012,48(33):105-111.
[17]陳在平,蔡鵬飛,董恩增.基于超混沌AES圖像加密算法[J].吉林大學學報:信息科學版,2013,31(2):158-164.
[18]胡春杰,陳曉,郭銀.基于多混沌映射的光學圖像加密算法[J].激光雜志,2017,38(1):110-114.
[19]徐江峰,楊有.加密圖像置亂性能分析[J].計算機科學,2006,3(33):110-113.
[20]王迤冉,王春霞,詹新生.一種圖像加密算法的性能評價方法[J].微計算機信息,2006,22(10-3):313-314.
[21]黃建,柏森.一種有效的圖像置亂程度衡量方法[J].計算機工程與應用,2009,45(30):200-203.
[22]盧振泰,黎羅羅.一種新的衡量圖像置亂程度的方法[J].中山大學學報:自然科學版,2005,44(6):126-129.
[23]張同峰.基于一維復合混沌映射的數字圖像加密算法研究[D].蘭州:蘭州大學,2016.