黃林荃,劉 會,張 牧
1(漢口學院 計算機學院,武漢 430212)2(武漢大學 國家網絡安全學院,武漢 430079)3(荊楚理工學院 計算機工程學院,湖北 荊門 448000) E-mail:liuh824@whu.edu.cn
隨著互聯網和信息通信的高速發展,多媒體數據的傳輸在當今社會的地位與日俱增.圖像是對客觀對象的一種相似性、生動性的描述,是人類生活中重要的信息載體.圖像包含著豐富的數據信息,近年來因數字圖像信息泄露導致嚴重的后果時有發生.因此,數字圖像信息的安全傳輸顯得尤為重要.現階段文本加密技術相對成熟,其中,以分組密碼為代表的高級加密標準(Advanced Encryption Standard,AES)[1]、SM4算法[2]和以公鑰密碼體制為代表的RSA密碼[3]、橢圓曲線密碼[4]等的應用十分廣泛.但由于圖像信息數據量大、冗余度高、像素相關性高,因此文本加密技術不完全適用于圖像.離散Arnold變換[5-8]因其良好的置換效果被廣泛應用于圖像加密領域.但離散Arnold變換具有周期性,而周期性在密碼學中是不被允許的,因為任何加密信息通過有限次的迭代最終都能被破譯.量子混沌系統[9,10]因能產生高隨機性的偽隨機序列,近年來被廣泛運用于信息安全領域.本文使用量子混沌映射產生偽隨機序列,在置換過程中利用偽隨機序列改變像素值,不僅消除了周期性,同時提高了加密系統的隨機性和復雜性.Arnold變換的另一個缺點是密鑰空間小,只有足夠大的密鑰空間才能抵御暴力攻擊.本文采用密鑰空間更大的廣義Arnold變換,同時為廣義Arnold變換加入一對安全密鑰,進一步擴大密鑰空間.
哈希函數[11]又被稱為單向散列函數,它可以將任意長度的消息壓縮成某一固定長度的消息摘要.哈希函數生成的摘要具有不可逆性和不可預見性,且對同一個消息反復執行該函數總是得到相同的信息摘要.在文獻[12]中,作者利用明文圖像的256位哈希值作為安全秘鑰產生混沌序列的初始值,使該算法具備了抵御差分攻擊的能力.本文以哈希函數作為密鑰生成器,將明文圖像作為輸入,得到256位的摘要信息.一方面保證了加密系統抵御差分攻擊和暴力攻擊的能力.另一方面,在加密階段為了保證算法的擴散性,通常將前一個像素加密后的輸出作為后一個像素執行加密運算的輸入[9],這種方案的缺點是不能很好地支持并行計算.而由密鑰生成器保證加密系統的擴散性,可以有效地避免這種設計的缺陷.
混沌現象是在非線性動力系統中一定參數下表現為確定的、偽隨機的過程.混沌系統具有初始值敏感、非收斂性、遍歷性和偽隨機性等密碼學特性,因此被廣泛運用在數據加密的各個領域.Chai等人[13]利用三維自治混沌系統產生的偽隨機序列置亂三維DNA矩陣,利用置亂后的DAN矩陣對圖像進行編碼,實現圖像加密.在耗散量子系統中,Akhshani A等人[10]證明了最低次量子修正產生量子混沌映射,并首次將量子混沌映射運用于圖像加密領域,得到了良好的加密效果.Liu等人[5]受此啟發,將像素值從四個方向與量子混沌映射產生的偽隨機序列進行異或運算,實現圖像的灰度加密.
Arnold變換[5-8]是由俄國數學家Vladimir Igorevich Arnold提出并首次應用在遍歷理論研究中.經典Arnold變換是一個二維可逆映射,離散的Arnold變換可以實現像素值空間位置的變換,因此常常被作為一種置換方式運用在圖像加密領域.Farwa S[7]等人提出了基于Arnold變換與S盒子結合的圖像加密算法,其中Arnold變換實現置換,S盒子實現非線性替換.Kumar S等人[8]基于Arnold變換提出了一種新的基于塊的方案實現任意大小的圖像加密.離散的Arnold變換具有周期性,且密鑰空間大小由變換矩陣A決定.為了消除離散Arnold變換的周期性的影響,在置換過程中本文利用量子混沌映射產生的偽隨機數對像素值進行線性變換,實現灰度加密.一般來說,這種混合加密架構比僅置亂加密或僅灰度加密的方案在安全性方面更高.本文的主要貢獻包括以下兩點:
1)置換階段引入不具有周期性的線性變換,消除Arnold變換的周期性干擾;
2)設計了一種置亂與擴散融合的加密結構,使Arnold置換階段與擴散階段同步進行,提高加密系統的復雜性和隨機性.
量子耗散系統與諧振子路徑耦合產生帶有量子修正的量子混沌映射[9,10].在為量子修正添加有效噪音時,隨著損耗β的增加,量子混沌特性越來越明顯.文獻[9]分析了量子修正的影響,得出α=<α>+δα,這里δα表示在<α>附近的量子波動.同時,作者證明了最低次量子修正能產生混沌映射:
(1)
離散Arnold變換具有周期性,其周期性隨著圖像大小的變化而變化.經典Arnold變換是一個二維可逆映射,其表達形式如公式(2)所示:

(2)
這里坐標(x,y)T是N×N圖像上的點,經Arnold變換后變成坐標(x′,y′)T.在對矩陣A進行變換后,得到的廣義Arnold變換如公式(3)所示:
(3)
這里n代表迭代次數.為了進一步擴大密鑰空間,本文在廣義Arnold變換的基礎上提出來帶有密鑰的廣義Arnold變換,其表現形式如公式(4)所示:
(4)
對應的逆變換如公式(5)所示:
(5)
哈希函數[11]可以將任意長度的報文映射為定長的哈希碼.哈希碼具備錯誤檢測能力,其意義是當對明文做了很小的改變時,哈希碼將以不可預測的方式完全改變.安全哈希算法占用資源少、運算速度快,被廣泛運用在數字簽名、消息認證和無線射頻識別等各個領域.為了抵御暴力攻擊,本文選用SHA-256作為密鑰生成器,以明文圖像作為輸入,將得到的256位的輸出結果作為安全密鑰K.密鑰生成器將256位的K按每8位分段,得到32個分段密鑰ki(i=1,2,…,32).密鑰生成器得到的分段密鑰如公式(6)所示:
K=k1,k2,…,k32
(6)
加密過程主要包括兩個階段,第一個階段是以明文圖像作為輸入,使用SHA-256產生密鑰流,對密鑰流進行處理得到量子混沌映射與帶密鑰的廣義Arnold變換的初始參數;第二階段是利用量子混沌映射和帶有密鑰的廣義Arnold變換對圖像進行加密,得到密文圖像.整個加密系統體系結構如圖1所示.
本加密系統提出了一種置亂與擴散融合的加密結構.在利用帶有密鑰的廣義Arnold變換計算出置亂坐標后,系統對像素值進行灰度加密,最終將得到的密文像素賦值至置亂坐標中,遍歷所有像素并執行相同操作,實現圖像的置亂與擴散.

圖1 加密系統體系結構Fig.1 Architecture of the proposed cryptosystem
本文將明文圖像作為輸入,經SHA-256算法后得到256位的摘要信息,將摘要信息代入到公式(6)得到密鑰流K=k1,k2,…,k32.將分段密鑰分別代入公式(7)、公式(8),得到帶有密鑰的廣義Arnold變換和量子混沌映射的初始參數.
a={(k1⊕k2)+(k2⊕k2)+(k3⊕k4)+(k1⊕k4)}mod 256
b={(k5⊕k6)+(k6⊕k7)+(k7⊕k8)+(k5⊕k8)}mod 256
ku={(k9⊕k10)+(k10⊕k11)+(k11⊕k12)+(k9⊕k12)}mod 256
kv={(k13⊕k14)+(k14⊕k15)+(k15⊕k16)+(k13⊕k16)}mod 256
(7)
(8)

加密系統的核心算法是在對每一個像素值進行帶有密鑰的廣義Arnold變換的同時,將其與量子混沌映射產生的偽隨機數進行線性變換,得到最終的密文圖像.一方面,該加密算法保留了離散Arnold變換的置換特性;另一方面,量子混沌映射的加入實現了灰度加密,增強了加密系統的隨機性和擴散性,同時消除了Arnold變換自身的周期性影響.具體的加密步驟如下:
1)將x0、y0、z0作為初始參數代入到公式(1)中,并迭代m+(N×N)/3次.丟棄前m項后按以下方式重新排列,得到量子混沌映射的偽隨機序列Q:
Q={xm+1,ym+1,zm+1,xm+2,ym+2,zm+2,…,xm+(N×N)/3,
ym+(N×N)/3,ym+(N×N)/3}
(9)
2)為了進一步提高隨機性,本文對量子混沌映射的偽隨機序列Q進行如下變換:
Q′=mod((Q×104-Floor(Q×104))×103,256)
(10)
并將Q′轉換為N×N的二維矩陣Qt;
3)將初始值a、b和(ku,kv)T代入到公式(4),則明文圖像像素坐標(x,y)T經帶密鑰的Arnold變換后變為坐標(x′,y′)T;
4)將坐標(x,y)T的明文圖像像素值P(x,y)進行如下線性變換得到臨時值temp:
temp={(P(x,y)+Qt(x,y))mod 256}⊕Qt(x′,y′)
(11)
5)將臨時值temp賦值給N×N的二維矩陣E(x′,y′);
重復步驟(3)-步驟(5),直至所有像素加密完成,我們得到的二維矩陣E即密文圖像.
解密過程實質是加密過程的逆過程,具體的解密步驟如下:
1)重復加密步驟中的(1)和(2),得到量子混沌映射矩陣Qt;
2)代入初始參數a、b和(ku,kv)T至公式(5),則密文圖像像素坐標(x′,y′)T經帶密鑰的Arnold變換后變為坐標(x,y)T;
3)將坐標(x′,y′)T的像素值E(x′,y′)進行如下線性變換得到臨時值temp′:
temp′=(E(x′,y′)⊕Qt(x′,y′)-Qt(x,y)+256)mod 256
(12)
4)將臨時值temp′賦值給N×N的二維矩陣D(x,y);
重復步驟(2)-步驟(4),直至所有像素解密完成,我們的到的二維矩陣D即解密后的圖像.
本文加密系統的仿真模擬測試基于MATLAB平臺,以2張標準的灰度圖像256×256 Lena和512×512 Baboon作為測試對象,并從直方圖、相關性、差分攻擊、信息熵、密鑰空間大小和加密效率等多個角度對加密算法進行分析.該加密系統屬于無損加密,加/解密效果如圖2所示.
直方圖反映圖像中像素值的分布情況.經過理想的加密算法得到的密文圖像應盡可能少地提供明文圖像的統計信息以抵御統計分析.密文圖像的直方圖分布越均勻,說明該加密算法越安全.圖3對比了加密前后的Lena圖像和Baboon圖像的直方圖分布,實驗結果證明經該加密系統加密后的圖像不能提供任何有用的統計信息,該加密系統能夠抵御直方圖分析.
圖像的冗余特性決定了圖像相鄰像素具有很強的相關性.相鄰像素的強相關性能為攻擊者提供大量統計信息攻擊加密方案.良好的加密算法應能有效地降低圖像相鄰像素間的相關性.圖像像素相鄰關系分為水平、垂直和對角線三個方向.本文隨機選取5000組相鄰像素進行相關性計算,計算方法如公式(13)所示:

圖2 加/解密效果Fig.2 Results of encryption/decryption

圖3 圖像直方圖分析Fig.3 Histogram analysis of images

圖4 明文圖像Lena相鄰像素相關性(a)水平方向(b)垂直方向(c)對角線方向 密文圖像Lena相鄰像素相關性(d)水平方向(e)垂直方向(f)對角線方向Fig.4 Correlation of two adjacent pixels in the plain-image of Lena:(a)horizontal direction;(b)vertical direction;(c)diagonal direction.Correlation of two adjacent pixels in the cipher-image of 256×256 Lena;(d)horizontal direction;(e)vertical direction;(f)diagonal direction
(13)
這里xi、yi分別表示相鄰兩像素的像素值,rxy即為兩相鄰像素的相關性.圖4展現了Lena圖像及其密文圖像從水平、垂直和對角線方向上相鄰的像素分布,實驗結果顯示密文圖像較明文圖像具有更均勻的像素分布.
表1 相鄰像素值的相關性及比較
Table 1 Correlation coefficients of pair adjacent pixels and its comparison with others

掃描方向Lena明文圖像本文[13][14][15]水平0.93970.00010.01760.0029-0.0038豎直0.96800.00150.00270.0007-0.0026對角線0.91980.0019-0.00180.00090.0017
本文從水平、垂直和對角線三個方向分別計算出了Lena明文圖像及其密文圖像相鄰像素的相關性系數.從表1中可以看出,本文的加密系統能有效地降低圖像相鄰像素的相關性,較其他同類算法具有更好的加密效果.
差分攻擊是指通過比較分析有特定區別的明文在通過加密算法后的變化傳播情況進行攻擊.在圖像加密領域,攻擊者通常通過改變明文圖像的1比特信息來分析算法的擴散性.圖像加密算法的擴散性是指密文圖像以非常復雜的方式依賴于明文圖像,即攻擊者對明文圖像做很小的改變都能引起密文圖像巨大的變化.通常我們使用像素改變率(number of pixels change rate,NPCR)和一致平均改變強度(unified average changing intensity,UACI)來衡量圖像之間的差異.NPCR和UACI的計算方式如公式(14)-公式(16)所示:

(14)
(15)
(16)
這里C和C′分別表示兩幅加密圖像,它們對應的明文圖像僅相差1比特.理想狀態下,NPCR=99.609375%,UACI=33.463542%.本文將明文圖像Lena中坐標為(1,1)的像素值加1并計算NPCR和UACI的值,實驗結果如表2所示.實驗結果非常接近理想值,這說明明文圖像1比特的變化將引起密文圖像不可預測的改變.因此我們可以斷定該加密系統具備抵御差分攻擊的能力.
表2 像素改變率和平均一致改變強度及比較
Table 2NPCRandUACIand its comparison with others

算法NPCR/%UACI/%本文99.607933.3209[5]99.683133.4412[14]99.640633.3629[16]98.865725.2108[17]99.605833.5260
信息熵是衡量信號源隨機特性的重要指標之一.密文圖像的信息熵越高,隨機性越好,表示加密算法的安全性越高.在理想狀態下,256位完全隨機的信號源的信息熵為8.信息熵的定義如公式(17)所示:
(17)
這里p(mi)表示mi像素值出現的概率,M=256表示像素值的數目.表3統計了經該系統加密后的Lena圖像的信息熵,并比較該算法與其他算法.實驗結果顯示,經該算法加密后的密文圖像的信息熵非常接近理想值,表現出很高的隨機性.
表3 信息熵及比較
Table 3 Information entropy and its comparison with others

算法信息熵本文7.9972[5]7.9973[13]7.9974[14]7.9962[16]7.5691[17]7.9972
暴力攻擊是一種最常用的攻擊手段之一.它是指攻擊者通過遍歷所有可能的結果,直至找到正確的安全密鑰.因此,安全的加密算法必須提供足夠大的密鑰空間以保證攻擊者在有效的時間內無法找到安全秘鑰.為了抵御暴力攻擊,密鑰空間應大于2128[18,19].本文采用SHA-256哈希作為密鑰生成器,能提供的密鑰空間大小為2256>2128.因此,我們可以得出這樣一個結論:該加密系統具有足夠大的密鑰空間,能夠抵御任何暴力攻擊.
對于基于混沌系統的加密算法,其運算的時間消耗主要在多輪的乘法運算.這個階段需要Θ(3m+N×N)輪的迭代計算.在Arnold置換過程中,本文需要對所有像素的坐標進行計算,計算完成需要進行一次線性變換,這個階段需要迭代Θ(N×N)次.因此,整個加密過程消耗的計算量為Θ(3m+2×N×N).本文基于MATLAB平臺模擬了該加密系統的加密效率,實驗環境為:Intel Core I3 CPU 2.3 GHz、Windows XP、RAM 3.99 GB.加密大小為256×256的Lena圖像消耗時間為0.021083秒,加密效率為23.72Mbit/s;加密大小為512×512的Baboon圖像消耗時間為0.085218秒,加密效率為23.47Mbit/s.表4比較了在加密大小為256×256的Lena圖像時的運算速度,實驗結果顯示該加密系統具有很高的加密效率.
表4 加密速度及比較
Table 4 Encryption speed and its comparison with others

算法速度/s本文0.021[20]0.613[21]1.712[22]1.120

表5 階數N與Arnold變換周期的關系
Table 5 Relationship between the orderNand Arnold
transformation period

階數N51050100128256周期103015015096192
針對空域的圖像加密是指對圖像從像素坐標和像素值兩個方面進行可逆變換.Arnold變換旨在對圖像從像素坐標進行置換,其周期性對圖像的影響基于對像素值進行有周期性的灰度加密.本文在對每一個像素進行坐標變換的同時采用非周期性的灰度加密,保證即使在具有周期性的坐標變換下密文圖像的像素值也無法因此復原,避免了Arnold變換帶來的周期性的局限性.
本文設計了一種基于帶密鑰的廣義Arnold變換與量子混沌序列相結合的圖像加密系統.其算法充分利用Arnold變換置換的特性,量子混沌系統的遍歷性和隨機性等特點,同時針對Arnold變換周期性、密鑰空間小以及不具備抵御統計分析等缺點進行改進,提出了一種安全、高效的加密系統.密鑰生成器以明文圖像的256位哈希值作為安全秘鑰,產生帶密鑰的廣義Arnold變換和混沌序列的初始值.這種設計模式能夠保證密文圖像的擴散性,提供足夠大的密鑰空間,使加密算法能夠抵御差分攻擊和暴力攻擊,同時不影響算法的并行能力.在加密階段,該算法采用帶密鑰的廣義Arnold變換計算像素值的置亂坐標,然后利用量子混沌序列對像素值進行線性變換,最后完成置換.遍歷所有像素,得到密文圖像.這種置換與擴散融合的加密結構,很大程度上提高了加密算法的復雜性和隨機性.MATLAB仿真實驗結果顯示,該加密系統能有效地降低相鄰像素之間的相關性,密文圖像表現出很高的隨機性和擴散性,具備抵御統計分析攻擊、差分攻擊、暴力攻擊等多種攻擊手段的能力,支持并行計算且達到了很高的加密效率.