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