袁 立, 謝 俐, 龍 穎, 胡春強, 蔣淘金
(1.重慶電力高等專科學校 信息工程學院,重慶 400053;2.重慶大學 大數(shù)據(jù)與軟件學院,重慶 401331;3.重慶應用技術職業(yè)學院 電子信息與財經(jīng)商務系,重慶 410520;4.重慶市公安局交巡警總隊,重慶 400054)
混沌系統(tǒng)對初始值非常敏感,且具有良好的非收斂性和類隨機性,因此在圖像加密處理中具有廣泛的應用[1-3]。當前,混沌系統(tǒng)在圖像加密中的應用主要包括混合迭代結(jié)構加密、置亂加密、灰度替換加密等技術。文獻[4]提出了一種流密碼算法,它結(jié)合了一次一密和強混沌映射,基于分段線性混沌序列生成相應的密鑰流序列,綜合了混沌算法和循環(huán)加密的優(yōu)勢。1994年,DNA計算被Adleman首次提出[5],為圖像加密處理提供了新的思路和方向。文獻[6]綜合Chebyshev映射和DNA計算的優(yōu)勢,將圖像進行擴散加密,結(jié)果顯示加密效果良好。文獻[7]將DNA計算用于進行圖像加密,使得貓映射在圖像安全處理效果上有極大提升。以上算法只是單純處理數(shù)字圖像加密的算法,沒有與處理文本的加密算法結(jié)合,存在一定的局限性。在文獻[8]中,Abbas提出了一種基于Hash的數(shù)字圖像加密算法,結(jié)果顯示加密效果良好。
文中將哈希函數(shù)、Arnold混沌映射和Logistic混沌映射結(jié)合,對圖像進行R、G、B3個維度的置亂;然后利用DNA編碼對圖像進行混亂處理。結(jié)合實驗結(jié)果表明:文中圖像加密算法具有很好的加密性。
Logistic映射模型比較經(jīng)典,主要用于對動力系統(tǒng)、分形系統(tǒng)等復雜系統(tǒng)進行分析和研究。Logistic映射本質(zhì)是一個在時間上離散的動力系統(tǒng),其迭代公式為
xn+1=μxn(1-xn),
(1)
式中,μ∈(0,4),xn∈(0,1)。當3.569 945 6<μ≤4時,Logistic映射處于混沌狀態(tài)。
將Logistic映射[9]改為
(2)
式中,xn為映射變量,0 俄國數(shù)學家Vladimir Igorevich Arnold首次提出了Arnold映射,又稱貓映射。本質(zhì)來說,Arnold映射就是在有限的區(qū)域內(nèi)進行反復折疊和伸縮變換。 其原始公式為 (3) 對其進行數(shù)字化處理之后,得到映射關系為 (4) 式中,a、b、N均為正整數(shù)。 DNA序列由A、T、C、G 4個堿基組成,其中A和T、C和G存在互補關系。如果使用2 bit表示字節(jié)表示一個字母,那么DNA編碼的方案共有4!種。但是滿足堿基互補原則的只有8種,如表1所示。 表1 DNA序列的8種編碼/解碼規(guī)則 一套基于DNA序列的基本代數(shù)運算被King等[10]提出,其基本思想起源于二進制的加減法運算。DNA序列的基本代數(shù)運算與編碼方案有很強的關系,不同編碼方案對應的加減法規(guī)則也不同。以表1中第1種編碼方案為例,其對應的加減運算規(guī)則如表2所示。 表2 第1種編碼方案的加減運算 哈希函數(shù)又叫散列函數(shù),它能夠?qū)⒉煌L度的信息轉(zhuǎn)換成一個固定長度的信息。SHA-256函數(shù)可以將圖像信息轉(zhuǎn)換成256位的哈希值。SHA-256函數(shù)對初始值極其敏感,圖像內(nèi)容有任何細微的差別,計算出來的哈希值都會發(fā)生巨大的變化。 為了使加密效果更好,充分利用SHA-256函數(shù)、Arnold混沌映射、改進Logistic混沌映射和DNA加密處理的優(yōu)點,文中提出一種新型加密技術,其算法步驟如下: 步驟1:假設明文圖像的尺寸為M×N,將其按照紅、綠、藍3個維度進行轉(zhuǎn)換,得到3個平面分別為R、G、B。這3個平面尺寸均為M×N,每個像素的值均在(0,255)之間且為整數(shù)。若M和N值不相等,則可以通過補0的方式將其轉(zhuǎn)換為N1×N1的方陣。 步驟2:分別求R、G、B3個平面的像素值之和,然后運用SHA-256函數(shù)分別計算這3個和值的哈希值,得到3組256位哈希值。式(4)的2個參數(shù)a、b和加密輪數(shù)N就是由SHA-256函數(shù)產(chǎn)生的3個參數(shù)值,分別作為R、G、B3個平面進行置亂處理的原始參數(shù)。 步驟3:運用按照式(4)分別對R、G、B3個平面進行置亂處理。 步驟4:將置亂后的R、G、B3個方陣進行二進制轉(zhuǎn)換,每個平面轉(zhuǎn)換后的大小均為N1×8N1,采用DNA編碼規(guī)則對其進行編碼處理,進而得到3個尺寸為N1×4N1的堿基方陣R1、G1、B1。 步驟5:按照式(2)進行混沌映射處理得到尺寸為N1×N1的混沌序列m,利用算子mod(floor(m*power(10,5)),256)將序列m進行整數(shù)化處理,得到相應的序列,采用DNA編碼規(guī)則對數(shù)化處理后的序列進行相應的編碼處理得到對應的矩陣。 步驟6:根據(jù)式(5)替換R、G、B3個平面的堿基序列,從而得到相應的3個平面R2、G2、B2。 (5) 步驟7:分別采用表1中的第4、2、7中的編碼規(guī)則對置亂替換后的3個平面R2、G2、B2進行解碼處理,得到相應的3個平面R3、G3、B3,尺寸為N1×N1。 步驟6:合成R3、G3、B33個平面得到相對應的密文圖像,計算得到密文圖像的和值,并將和值與密文圖像進行異或運算,最終得到本文的加密圖像。 加密和解密互為逆過程。解密是對加密進行逆運算,將DNA加法運算替換為減法運算,并按照R、G、B的逆序?qū)M行恢復,即可解密圖像。 文中選擇明文圖像為彩色的Lena圖,尺寸為512×512,運行的環(huán)境為Intel Core i5 CPU@2.5GHz、8G內(nèi)存、Win7 64位操作系統(tǒng),仿真軟件為MATLAB r2014a。對比圖1中的3幅圖分析可知,Lena圖像經(jīng)過文中加密算法處理后,已經(jīng)看不到明文信息,說明文中提出的加密算法具有良好的效果。 圖1 Lena圖加密前后對比 若式(2)的初始值和迭代次數(shù)發(fā)生細微改變,會導致加密后的圖像不能恢復成原始圖像。例如,若在解密過程中,將式(2)的初值增加 1×10-15,則會導致圖像解密失敗,具體如圖2所示。 圖2 錯誤密鑰的解密圖 直方圖能夠體現(xiàn)出圖像灰度值的分布情況。圖像灰度值的分布情況能夠體現(xiàn)出圖像的抗攻擊能力。若圖像灰度值分布越平均,則其越能抵抗統(tǒng)計攻擊[11-15]。從圖3、圖4、圖5對比分析中可以看出:文中算法加密圖像的直方圖和文獻[15]算法加密圖像的3個分量直方圖都是比較均勻的,說明都具有良好的統(tǒng)計攻擊抵御能力。2個算法加密的圖像直方圖差別很小,加密效果接近。 圖3 Lena圖的R圖像 圖4 Lena圖的G圖像 圖5 Lena圖的B圖像 為了驗證文中算法的置亂效果,將基于水平、垂直和對角3個角度,從明文圖像、加密圖像中隨機選取4 000對相鄰像素點,然后運用式(6)~式(9)計算相鄰像素間的相關性[15-20]。 (6) (7) (8) (9) 式中:x和y表示圖像中兩個相鄰像素的灰度;N表示圖像像素個數(shù);E(x)表示x的數(shù)學期望;D(x)表示x的方差;cov(x,y)表示x,y的協(xié)方差;rxy表示相關系數(shù)。 若相關系數(shù)越接近0,則像素之間的相關程度越低,圖像置亂效果越好,加密圖像破譯難度越大。從表3~表5可以看出,文中加密后的圖像的相關系數(shù)更接近0,置亂效果更好。 表3 垂直像素相關性 表4 水平像素相關性 表5 對角像素相關性 為了更加直觀地展現(xiàn)像素之間的相關性,選擇B平面,分別從水平、垂直、對角3個方面進行像素相關性圖像的繪制。圖6和圖7分別表示的是加密前和文中加密的線性關系。對比分析可以看出原始圖像B平面3個方向的圖像像素值集中在主對角線上,相關性很強,而加密圖像像素值均勻分布,相關性很弱,可破解性更小。 圖6 明文圖像B平面相關性 圖7 文中加密圖像B平面相關性 信息熵體現(xiàn)了系統(tǒng)的隨機性。圖像直方圖分布越均勻,則其隨機性越強,信息熵就越大。式(10)所示的是信息熵的計算方式。對于灰度值范圍為[0,255]的圖像,其信息熵與8的逼近程度反映了抵御攻擊的能力,信息熵越接近8,抵御統(tǒng)計攻擊的能力越強。根據(jù)式(10)計算所得結(jié)果如表6所示。 表6 信息熵 可以看出,文中算法加密后的圖像的信息熵更接近8,抗統(tǒng)計攻擊的能力更強。 (10) 式(11)~式(12)分別表示的是NPCR(the number of pixels change rate)和UACI(the unified average changing intensity)這2項指標,此2項指標表示了圖像的差分攻擊抵抗能力。改變原始圖像的R平面中(100,80)處的像素值,通過式(11)~式(12)計算出的NPCR和UACI的結(jié)果如表7所示。 表7 NPCR和UACI分析 (11) (12) 通過對比NPCR值和UACI值,可以看出文中算法抗差分攻擊能力更強。 將均值和方差分別為0和0.05的高斯噪聲加入到加密后的圖像中。圖8中,圖8(a)表示的是加入高斯噪聲后的加密圖像,圖8(b)表示的是相應的解密圖像。可以看出:文中的加密算法在圖像混入少量噪聲后,仍然能夠?qū)⑵浣饷艹鰜?,抗干擾能力較好。 圖8 抗干擾能力分析 隨著網(wǎng)絡技術的高速發(fā)展,彩色圖像的安全性越來越受到重視。圖像加密是一種很好保護圖像信息的方法。文中結(jié)合哈希函數(shù)、Arnold混沌映射和Logistic混沌映射,使用DNA編碼技術對圖像進行混合加密。實驗結(jié)果表明,本文的算法具有良好的加密效果,且對統(tǒng)計、差分攻擊具有很好的抵御效果。1.2 Arnold映射
1.3 DNA序列編碼
1.4 DNA序列的加法、減法
1.5 SHA-256
2 加密算法
2.1 加密算法
2.2 解密算法
3 實驗結(jié)果分析
3.1 密鑰敏感性分析
3.2 直方圖分析
3.3 相鄰像素相關性分析
3.4 信息熵分析
3.5 明文敏感性分析
3.6 抗干擾能力分析
4 結(jié)束語