姚鑫 徐欣
摘要:為了提高數(shù)字圖像在傳輸過程中的安全性,并實現(xiàn)圖像加密僅需依據(jù)混沌系統(tǒng)初始密鑰,而與明文無關(guān),提出基于明文hash值與高維混沌序列的雙圖像交叉混合加密算法。首先獲取明文圖像各自的hash值,然后對hash值進行交叉改造,并利用hash值生成混沌序列。加密過程基于前向擴散一置亂一后向擴散的加密體系,最終生成密文圖像。仿真結(jié)果表明,該算法能夠較好地抵御各種攻擊,實現(xiàn)數(shù)字圖像的安全傳輸。
關(guān)鍵詞:圖像加密;混沌系統(tǒng);hash值;交叉混合;擴散置亂
DOI:10.11907/rjdk.192431開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP309文獻標(biāo)識碼:A 文章編號:1672-7800(2020)006-0248-05
0 引言
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,以及大數(shù)據(jù)時代的到來,越來越多數(shù)據(jù)需要在網(wǎng)絡(luò)中傳輸,其中就包括圖像數(shù)據(jù)。如何保證這些圖像數(shù)據(jù)安全傳輸成為人們研究的熱點。傳統(tǒng)加密方法有AES、DES、RSA等,這些算法主要應(yīng)用文本數(shù)據(jù)加密,數(shù)字圖像與文本數(shù)據(jù)相比,不僅數(shù)據(jù)量非常大,而且相關(guān)性強、冗余度較高,所以這些傳統(tǒng)的文本加密算法顯然不適用于圖像加密。因此,研究適合圖像的加密算法具有很高的應(yīng)用價值與較強的現(xiàn)實意義。
混沌系統(tǒng)自從被發(fā)現(xiàn)以來,得到了蓬勃發(fā)展,隨著研究的不斷深入,發(fā)現(xiàn)其具有偽隨機性、初值敏感性、非周期性和難預(yù)測性等特點,而這些正符合密碼學(xué)中密鑰和密鑰流所需的特性,因此混沌系統(tǒng)與圖像加密產(chǎn)生了聯(lián)系。許多學(xué)者對基于混沌系統(tǒng)的圖像加密算法進行研究,并在安全性方面獲得了一定成果。如文獻[2]提出基于圖像像素點置亂擴散的加密算法,盡管該算法使密文抵抗攻擊的能力有所增強,且密文像素值的隨機性更強,從而一定程度上提高了安全性,但還存在密鑰空間小等不足;文獻[4]研究一種基于混沌序列與頻域變換的加密算法,能夠增大密鑰空間,增強密鑰的敏感性,然而該算法生成的密文圖像存在信息熵偏小的問題;文獻[7]通過多混沌序列對數(shù)字圖像進行加密,該算法雖然具有密鑰空間大、能夠有效減少混沌周期性的優(yōu)點,但由于加密過程復(fù)雜,涉及多個混沌系統(tǒng),存在效率較低的問題。此外,上述算法嚴重依賴于密鑰的安全性,密鑰是加密系統(tǒng)的唯一依據(jù)。因此,這些算法容易受到選擇明文攻擊或已知明文攻擊。
為此,本文提出一種基于混沌系統(tǒng)的雙圖像交叉混合加密算法。首先利用SHA-256算法獲取兩幅明文圖像各自的hash值,然后對兩個hash值進行交叉混合改造,最后利用改造后的hash值生成混沌序列。加密過程首先將兩幅明文圖像合并,然后利用混沌序列基于前向擴散一置亂一后向擴散的加密體系進行加密,接著對中間密文進行均勻分割,最終得到兩幅密文圖像。仿真結(jié)果表明,該算法不僅具有相對較大的密鑰空間,而且對于明文攻擊、差分攻擊等攻擊的防御能力較強,因此能夠較為有效地保證數(shù)字圖像的傳輸安全。
1 算法基礎(chǔ)
1.1 四維Lorenz混沌系統(tǒng)
四維Lorenz混沌映射的數(shù)學(xué)表達式為:
1.2 安全散列算法
安全散列算法是一個密碼散列函數(shù)群,主要包括5種算法,分別是SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。這些算法用于提煉信息,產(chǎn)生一個固定長度的字符串,一般其長度相較于原信息長度要短的多,采用不同算法產(chǎn)生的字符串長度也不相同。如果輸入的消息不同,得到的字符串也不同。本文選用SHA-256算法,通過該算法可以生成明文圖像的hash值。該hash值是一個具有256bit的值,通常用一個長度為64位的十六進制字符串表示。盡管兩幅圖像之間僅有任意一個bit的區(qū)別,但產(chǎn)生的hash值也截然不同。
2 加密算法流程
2.1 明文圖像hash值交叉混合
首先讀取兩幅明文圖像,然后利用SHA-256算法分別生成兩幅圖像的哈希值P、Q,以8個bit為一組,則P、Q表達式如下所示:
接著重新對這兩個哈希值進行交叉混合改造,將P中的比特組與Q中的比特組每隔兩個進行互換,從而形成兩個新的哈希值P1、Q1,即:
2.2 四維Lorenz混沌系統(tǒng)初始值生成
利用上文改造后的哈希值產(chǎn)生四維Lorenz混沌映射的初始值,四維Lorenz混沌映射初始值計算公式如下:
其中,⊕表示按位異或運算,x0、y0、Z0和w0是給定的四維Lorenz混沌映射初始值。
2.3 加密步驟設(shè)計
加密算法設(shè)計流程如圖1所示。
設(shè)P1、P2表示輸入的明文圖像,大小為M×N,密鑰用K表示,K={x0,y0,Z0,w0,r1,r2,r3,r4}。其中,x0、y0、z0和w0是給定的四維Lorenz混沌系統(tǒng)初始值,r1、r2、r3和r4為4個8位的隨機整數(shù)。具體加密步驟如下:
1)首先讀取兩幅明文圖像P1、P2。
(2)利用SHA-256算法求出兩幅圖像的哈希值,分別記為P、Q,然后對P和Q進行交叉混合改造,具體步驟如2.1節(jié)所示。
(3)輸入給定的初始值x0、y0、z0和W0,然后通過式(6)利用改造的哈希值生成四維Lorenz混沌映射的初始值。為保證混沌序列具有更好的隨機性,先迭代r1+r2+r3+r4次,跳過混沌映射的過渡態(tài);然后再迭代2MN次,生成4條混沌序列{xi}、{yi}、{zi}、{wi},i=1,2,…,2MN;最后再利用這4個偽隨機序列生成隨機矩陣X、Y、Z和W,生成公式如下:
其中,u=1,2,…,M,v=1,2,…,2N,.floor(l)表示返回小于等于l的最大整數(shù),L=max(M,2N)。
(4)將明文圖像P1與P2合并,生成一幅大小為Mx2N的圖像P。
(5)通過前向擴散將明文圖像P轉(zhuǎn)化為矩陣A,轉(zhuǎn)化公式如下:
(6)前向擴散完成后,接著將矩陣A通過置亂算法轉(zhuǎn)化為矩陣B,置亂算法具體步驟如下:
Stepl:計算A(i,l)所在行全部元素的和(不含A(i,l),記為rowi,即為:
rowi=sum(A(i,1to2N))-A(i,j) (9)
Step2:計算A(i,j)所在列全部元素的和(不含A(i,j)),記為coli,即為:
colj=sum(A(1to M,j))-A(i,j) (10)
Step3:計算坐標(biāo)(m,n)的值,按如下公式計算:
Step4:如果m=i或n=j,則A(i,j)與A(m,n)的位置不變。否則,兩者互換位置,同時根據(jù)A(m,n)低三位的值,對A(i,j)進行循環(huán)移位,公式如下:
A(i,j)=A(i,j)<<<(A(m,n)0x7) (12)
式(12)中,x<<
Step5:按Stepl-Step 4的方法,首先置亂矩陣A的第M行A(M,1to 2N-1),然后置亂矩陣A的第N列A(1toM-1,2N),接著按照從左向右、從上到下的順序置亂矩陣A的元素A(1to M-1,1to 2N-1),最后置亂矩陣A的元素A(M,2N)。按上述步驟對矩陣A進行置亂后的矩陣記為B。
(7)置亂完成后,利用后向擴散將矩陣B轉(zhuǎn)化為矩陣C,轉(zhuǎn)化公式如下:
(8)最后,將上述矩陣C進行均勻分割,得到兩幅大小為MxN的密文圖像C1、C2。
3 仿真結(jié)果與分析
本文選取Lena和Elaine圖像進行實驗,其中Lena明文如圖2所示,其對應(yīng)哈希值為:fc3c11b7304dod81dd494894e8243b5a390c0628ba7acb753469751b28ebb764;Elaine明文如圖3所示,其對應(yīng)哈希值為:0cdb4339ee6173173declc01ff37e9dc2ace4d5299dobel9746584fa0481e020。加密密鑰為x0=3.2134,y0=12.3783,z0=40.5684,W0=-33.4886,r1=167,r2=211,r3=198和r4=234。密文分別如圖4、圖5所示,正確解密的圖像分別如圖6、圖7所示,錯誤解密的圖像分別如圖8、圖9所示。
3.1 密鑰空間分析
密鑰空間是一個由加密算法中所有合法初始密鑰組成的一個集合。若加密算法中的密鑰空間較小,竊聽方就能采用窮舉攻擊的暴力破解法破解加密系統(tǒng)。因此,如果想要保證一個加密系統(tǒng)的安全性,則需要一個相對較大的加密算法密鑰空間。本文密鑰空間K={x0,y0,z0,w0,r1,r2,r3,r4,狀態(tài)變量初始值取值范圍分別是:x0(-40,40),y0∈(-40,40),Zn∈(1,81),W0∈(-250,250),x0、y0、z0的步長均為10-13,w0步長為10-12。r1、r2、r3和r4取值范圍為[0,255],步長均為1。因此,可計算得到該加密算法密鑰空間大約為S=1.0995x 1069,則密鑰長度為L=log2S≈229b,即密鑰熵為229b,遠大于最低要求的128b,所以該加密算法安全性較好,可以有效抵御窮舉攻擊。
3.2 直方圖分析
直方圖可以表現(xiàn)圖像像素值的分布頻率,描述圖像灰度值的統(tǒng)計相關(guān)性。因此,一個加密算法的優(yōu)劣能夠直接從直方圖中進行觀測。一般來說,圖像像素值分布越均勻,越能有效抵御統(tǒng)計分析攻擊。明文Lena和Elaine的直方圖分別如圖10、圖12所示,密文Lena和Elaine的直方圖分別如圖11、圖13所示??梢钥闯?,加密后的密文直方圖分布近似均勻,說明該密文能夠有效抵御統(tǒng)計分析攻擊。
3.3 相關(guān)性分析
通常而言,在明文圖像中相關(guān)性較強的是正反對角、垂直、水平方向上鄰接的像素點,而這種相關(guān)性在密文圖像中則沒有明顯表現(xiàn)。相關(guān)系數(shù)越小,像素點相關(guān)性越低,從而能越有效地抵御統(tǒng)計分析攻擊。本文選取的Lena明文和密文像素點在4個方向上的相關(guān)系數(shù)如表1所示,相關(guān)性圖像如圖14所示。假設(shè)需要從考察圖像中選取N對相鄰像素點,其灰度值記為(ui,vi),l≤i≤N,則向量u={ui}與v={vi}間的相關(guān)系數(shù)計算公式如下:
3.4 信息熵分析
信息熵能夠用于表征信息具有的不確定性,通??梢哉J為,信息的不確定性隨著熵的增加而增加。對于圖像加密而言,隨著圖像的信息熵逐漸增加,圖像信息量和像素點的隨機性也逐漸增加,與此同時,可視信息逐漸減少,表明所應(yīng)用算法的安全性也得到增強。采用本文與其它幾個文獻的算法對經(jīng)典Lena圖像進行加密所求得的密文信息熵如表2所示。
式(15)中,L表示圖像灰度等級數(shù),p(i)表示灰度值i出現(xiàn)的概率。設(shè)本文的灰度等級數(shù)L=256,通過計算可得信息熵H的理論值為8。
通過表2中的數(shù)據(jù)對比可以發(fā)現(xiàn),雖然文獻[5]和文獻[17]的密文信息熵都很接近理論值8,但本文所提出的加密算法更接近理論值,所以相對而言,本文算法能更有效地抵御外界攻擊。
3.5 差分攻擊分析
差分攻擊是指通過對同一幅明文的像素點作稍許改變,然后利用同一個加密算法對其進行加密,再比較前后密文的差異。如果差異較大,則表示該算法抵御差分攻擊的能力較強。衡量兩幅相同大小圖像的差別有定性和定量兩種方式。本文采用以下兩種定量方法比較圖像之間的差異:
(1)NPCR:對于兩幅相同尺寸的圖像,首先對其相應(yīng)像素點的值進行比較,繼而統(tǒng)計像素值不同的像素點數(shù)量,并計算出其數(shù)量在總像素數(shù)中所占百分比。
(2)UACI:對于兩幅相同尺寸的圖像,首先對相應(yīng)像素點的值作差,接著對全部相應(yīng)像素點差值與最大差值(即255)的比值取平均。NPCR與UACI兩個指標(biāo)的具體表達式如下:
由表3可知,在80次重復(fù)實驗后,能夠獲得Lena密文NPCR和UACI兩個指標(biāo)平均值分別為99.6137和33.4501。通過比較兩個指標(biāo)的實驗值和理論值,發(fā)現(xiàn)其實驗值都很接近各自的理論值,表明該算法抵御明文攻擊與差分攻擊的能力較強。
4 結(jié)語
為了提高數(shù)字圖像在傳輸過程中的安全性,并實現(xiàn)圖像加密僅需依據(jù)混沌系統(tǒng)初始密鑰,而與明文無關(guān),本文提出一種基于混沌系統(tǒng)的雙圖像交叉混合加密算法。首先利用SHA-256算法獲取兩幅明文圖像各自的hash值,然后對兩個hash值進行混合改造,并用改造后的hash值生成混沌系統(tǒng)的初始值。在加密過程中,基于前向擴散一置亂一后向擴散體系加密合并后的明文圖像,生成最終的密文圖像。仿真分析結(jié)果表明,該算法密鑰空間大,能夠有效抵御暴力破解、明文攻擊、差分攻擊以及其它攻擊,從而能有效保證明文圖像傳輸?shù)陌踩?。本文算法在運行效率方面還有一定提升空間,因此今后工作重點將對算法運行效率作進一步優(yōu)化。