孟 浩 李 博 楊耀森
(中北大學儀器科學與動態(tài)測試教育部重點實驗室 山西 太原 030051)
在過去的幾十年中,保密數(shù)據(jù)的安全性受到了密碼學家的廣泛關注。研究人員提出了不同類型的信息安全技術。由于圖像中較大的數(shù)據(jù)容量和相鄰像素之間的嚴重相關性,許多傳統(tǒng)的算法,如高級加密標準(AES)、數(shù)據(jù)加密標準(DES)、國際數(shù)據(jù)加密標準(IDES)在處理圖像方面速度較低,不能滿足圖像/視頻的實時加密要求?;煦缦到y(tǒng)具有許多敏感特性,使得混沌系統(tǒng)保證了對于不同統(tǒng)計攻擊和差分攻擊的安全性和魯棒性[1-3]。文獻[4]中提出了一種新的基于混沌分組密碼的圖像加密算法。該算法結合密碼原始運算、非線性變換函數(shù)和混沌帳篷映射實現(xiàn)加密。它可以抵御蠻力攻擊。文獻[5]中提出了一種具有線性反饋移位寄存器和混沌映射的時間域和頻域圖像加密方法,該方法能抵抗差分攻擊。Tang等[6]提出了一種基于Arnold變換和三種隨機策略的加密算法。這種加密技術是一種安全的算法,可以克服Arnold變換的尺寸限制。但研究人員分析發(fā)現(xiàn),有些混沌方法很容易受到不同攻擊。文獻[7]使用斜帳篷混沌映射來實現(xiàn)排列和擴散,而不改變像素信息。該方法具有較高的效率和較大的密鑰空間,但從直方圖的角度來看,其安全性不夠。Fridrich[8]使用二維標準Baker映射演示了對稱塊加密技術。Solak等強調(diào)了Fridrich方法對所選密碼文本攻擊的一些弱點?;煦缬成淞硪粋€重要問題是混沌系統(tǒng)迭代中的需要進行大量的浮點計算[9],并且混沌映射在有限的精密平臺下會退化為周期性行為。對此,研究人員提出了數(shù)學模型與混沌相結合的圖像加密系統(tǒng),其中置換是由一些非混沌方法定義的,如基于灰度碼的排列方法、基于螺旋相位調(diào)制的非相干點擴散函數(shù)、圓的性質等。這些非混沌技術與一些著名的基于混沌的圖像加密技術相比,效果更好。
香農(nóng)證明,對于一個強大的安全系統(tǒng),在一定程度上產(chǎn)生數(shù)據(jù)的混亂和擴散是必要的[10]。因此本文提出了一種新的置亂擴散結構的加密方案。該方案首先利用有限素域乘法群的性質,生成一個置換序列,在置亂階段,像素被重新定位,降低了像素之間的相關性。但是,直方圖仍然與原始圖像相同,會導致攻擊者有機會從直方圖中猜測原始圖像。因此,在擴散階段,采用斜帳篷映射對像素進行異或運算,以此提高系統(tǒng)的安全性。本文使用標準度量來測試所提方法的安全性和魯棒性,與現(xiàn)有技術相比,取得了較好的效果。
1.1.1有限素域乘法群
設G={X1,X2,…,Xn}為含有n個元素的集合。“*”定義為G集合中的二元運算符。如果滿足:
?xi,xj∈G,xi·xj∈G?xi,xj,xp∈G,(xi·xj)·xp=xi·(xj·xp) ?e∈G,e·xi=xi·e,?xi∈G?xi∈G,?xj∈G,xi·xj=xj·xi=e
那么(G,*)則為在二元運算下的的群。
若—個群G的每—個元都是G的某—個固定元a的乘方,則稱G為循環(huán)群,記作G=={am|m∈Z},a稱為G的—個生成元。
循環(huán)群分為無限循環(huán)群與有限循環(huán)群。針對有限的圖像尺寸,我們只討論有限循環(huán)群。
1.1.2有限素域乘法群置亂原理
表1 以2為生成元的序列
根據(jù)上表結果可知新序列Z={2,4,8,3,6,12,11,9,5,10,7,1}。
由有限域模n乘法群的第二個性質可知生成元的個數(shù)為Φ(Φ(13))=4。
表2 在P=13情況下的所有生成元的序列
續(xù)表2
從表中數(shù)據(jù)可知,新序列的排列順序依賴于生成元的選擇,因此在加密過程中生成元a被視為密鑰。在進行像素置亂過程中,為了擴充密鑰,我們可以隨機選擇一個較大的素數(shù)p,滿足p>n+1即可。生成的新序列則會包含大于n的元素,只需刪除掉這些大于n的元素,保留剩余元素即可。比如:繼續(xù)使用表2中以2為生成元的新序列,假設圖像大小為10×10,即n=10,則{2,4,8,3,6,12,11,9,5,10,7,1}序列會變成{2,4,8,3,6,9,5,10,7,1}。因此,質數(shù)p同樣被視為密鑰。
由于置亂后的圖像只破壞了明文圖像相鄰像素的相關性,并不改變灰度值的大小,所以整體圖像的統(tǒng)計信息并沒有發(fā)生改變。本文采用混沌映射對置亂后圖像像素點進行異或運算,使得各像素灰度值分布更加均勻,破壞整體圖像的統(tǒng)計信息。
混沌系統(tǒng)具有非周期性、遍歷性和對初值的敏感性三大特性。故將混沌系統(tǒng)用于圖像加密具有保密性強、隨機性好、密鑰空間大等優(yōu)勢,同時具有良好的抗干擾性、抵御攻擊的能力。本文在進行灰度擴散時使用的是斜帳篷混沌映射。其動力學方程為:
(1)
式中:Vn∈[0,r]定義了混沌系統(tǒng)的狀態(tài);r∈(0,1)作為混沌系統(tǒng)的控制參數(shù)。式(1)對任意控制參數(shù)r∈(0,1)具有正的Lyapunov指數(shù),因此,由式(1)定義的映射總是表現(xiàn)出混沌行為[11]。本文利用式(1)迭代65 536次,生成長度為65 536的擴散序列。
加密流程如圖1所示。
圖1 加密流程圖
步驟1定義圖像為P,大小為256×256。按照上述循環(huán)群置亂算法,定義按行排列的密鑰scrkeyrow=(a1,p1,T),定義按列排列的密鑰為scrkeycolumn=(a2,p2,T)。根據(jù)密鑰生成的兩種新序列Z1、Z2,分別對圖像P的行和列進行置亂操作得到置亂圖像Pscrambling。因此,置亂過程的密鑰scrkey=(a1,p1,a2,p2,T)。
步驟2在擴散過程中,定義斜帳篷映射初始條件,即diffkey=(r,V0)。根據(jù)初始密鑰進行迭代,生成長度為256×256的隨機序列V。由于序列元素是分布在(-1,1)上的浮點型實數(shù),將隨機序列中的元素都與1014相乘得到序列Y,并對Y序列元素進行取模運算以獲得0到256范圍內(nèi)的隨機數(shù)[12],運算公式如下:
Ydiffusion=Modulo(Y,256)
(2)
將Ydiffusion序列以256×256的矩陣形式排列對Pscrambling進行按位異或運算。運算公式如下:
Pdiffusion=bitxor(Pscrambling,Ydiffusion)
(3)
按照上述過程對lena和cameraman圖像進行仿真,結果如圖2所示。
(a) lena原始圖像 (b) lena置亂圖像 (c) lena擴散圖像
(d) cameraman原始圖像 (e) camerama置亂圖像 (f) cameraman擴散圖像圖2 原始、置亂和最終加密的圖像
從圖2兩種不同圖像加密結果來看,經(jīng)過本文算法加密后的圖像看不出原始圖像任何信息,達到了加密的效果。
對不同的原始圖像和加密圖像的直方圖進行分析。由圖3可知原始圖像的直方圖包含較大的尖峰,并且傾斜很大。圖4中的加密圖像與原始圖像的直方圖相比具有平坦、均勻的特性。因此,通過比較原始圖像和加密圖像的直方圖,我們得出加密圖像是隨機的,攻擊者無法看出原始圖像的分布規(guī)律,這有效地抵制了攻擊者的破譯。
(a) lena原始圖像 (b) cameraman原始圖像
(c) lena直方圖(d) cameraman直方圖圖3 加密前灰度值直方圖
(a) lena密文圖像 (b) cameraman密文圖像
(c) lena密文圖像直方圖 (d) cameraman密文圖像直方圖 圖4 加密后灰度值直方圖
安全密碼系統(tǒng)必須有效抵抗任何類型的統(tǒng)計攻擊[13]。因此,我們運用一些嚴格的測試,包括密鑰空間、密鑰敏感度、相關性、圖像熵和抗差分攻擊測試,來檢查所提出的加密算法的性能。
一種好的加密算法具有密鑰空間大的特點,可以增強其抵抗不同攻擊的能力。圖像加密方案的密鑰空間至少為2100,甚至更大[14]。在計算密鑰空間過程中,考慮到尺寸為2k×2k的圖像。首先,計算置亂過程中scrkey的密鑰空間。p1和p2的大小至少為k+1位;假定a1和a2為k+1位;T為中等大小,可設為6位。因此,對于scrkey位,要求至少為4(k+1)+6位。在擴散過程中,根據(jù)IEEE浮點標準[15],64位雙精度計算精度為1015因此,diffkey密鑰空間為1030,大于299。
綜上所述,對于一幅256×256大小的圖像,密鑰空間至少為scrkey+diffkey=141位。在現(xiàn)有的64位機器中無法通過窮舉法進行破譯。
密鑰敏感度是影響密碼系統(tǒng)安全性的主要因素。因此,安全性強的加密方案中密鑰中只有一個位的微小變化也應該產(chǎn)生不同的加密圖像。分析密鑰敏感度有兩種方法:(1) 使用兩個不同的密鑰加密同一圖像,然后比較加密圖像。(2) 使用不同于實際密鑰的密鑰解密加密圖像,然后將原始圖像與新解密的圖像進行比較。
本文采用前者進行測試。在測試過程中,diffkey(r,V0)的值保持不變,通過更改p或a修改密鑰。
通過兩個不同的密鑰對lena原始圖像進行加密,結果如圖5所示。
(a) 密鑰1圖像及其直方圖Scrkey1(10157,5893,1) (b) 密鑰2圖像及其直方圖Scrkey1(10157,5893,1) (c) 差分圖像|(b)-(a)|圖5 秘鑰敏感性測試圖
根據(jù)結果圖顯示這兩個加密的圖像都產(chǎn)生均勻的直方圖,然而差分圖像的直方圖表明兩種密鑰之間99%的像素不相等。這表明加密結果很大程度上依賴于密鑰,具有很強的密鑰敏感度。
普通圖像的像素與相鄰的像素高度相關,因此它們可以形成一些有意義的形狀。對于一個安全的密碼系統(tǒng),需要產(chǎn)生像素間相關性很低的密碼圖像,這樣密碼分析員就不能得到任何信息。
本文隨機隨機選擇明文和密文圖像水平、垂直、對角方向各1 000對像素點[16],計算相關性系數(shù),公式如下:
(4)
(5)
式中:cov(x,y)表示相關系數(shù);xi、yi為像素值。
由表3可知,明文圖像具有較強的相關性。經(jīng)過本文算法加密后,相關性不足0.01,表明密文圖像各個像素點基本無相關性。
表3 圖像相關性參數(shù)
圖6、圖7給出了加密前后攝影師圖像相關性對比圖。
(a) 原始圖像 (b) 水平方向
(c) 垂直圖像 (d) 對角方向圖6 原始圖像相關性
(a) 原始圖像 (b) 水平方向
(c) 垂直圖像 (d) 對角方向圖7 密文圖像相關性
信息熵反映了圖像中平均信息量的多少,通過信息熵可以判斷一幅圖像的隨機性。對于一幅圖像,灰度值分布得越均勻,圖像的信息熵就越大,圖像的隨機性越強[17]。當每個灰度值的概率相等時,信息熵為8。
信息熵計算公式如下:
(6)
式中:P(xi)表示某個灰度值出現(xiàn)的概率。
利用式(6)對lena和攝影師加密圖像進行了信息熵測試,結果見表4。
表4 密文圖像信息熵
由表4可知所提出的加密方案在密文圖像中產(chǎn)生了高度的隨機性。表1中的結果表明加密圖像的熵非常接近8,并且比文獻[18-20]的方案要好得多。因此,我們可以推斷該加密方案具有很強的抗熵攻擊能力。
差分攻擊是通過比較分析有特定區(qū)別的明文在通過加密后的變化傳播情況來攻擊密碼算法的。算法對明文的敏感性越強,抗差分攻擊能就越強。本文通過像素改變率(NPCR)與歸一化像素值平均改變強度(UACI)測試加密算法對明文圖像的敏感性[17],計算公式如下:
(7)
(8)
表5 NPCR與UACI測量結果
由表5可知本文加密方案NPCR平均值均高于文獻[21-22]的NPCR與UACI的平均值。該結果表明即使對原文圖像做一點細微的變化,計算得出的密文圖像也有明顯的差異,即本文算法具有更強的抗差分攻擊能力。
本文提出了一種基于有限素域乘法群和斜帳篷映射的圖像加密算法。與已有的圖像加密算法相比,該算法在圖像置亂過程中對兩個方面進行了提升:(1) 相比傳統(tǒng)的混沌序列,有限素域乘法群序列的生成不僅依賴于迭代次數(shù),更與生成元a與質數(shù)P的選擇有不可分割的作用;(2) 有限素域乘法群的低復雜性表明它在實時圖像傳輸應用中具有很高的潛力。實驗結果表明,該方案面對不同的攻擊具有足夠的安全性和魯棒性,優(yōu)于一些常用的圖像加密算法。