圖像文件混沌加密方法之混淆和擴(kuò)散相結(jié)合

為了提高算法抵御統(tǒng)計分析和差分攻擊的能力,提出一種改進(jìn)的基于混沌的圖像文件加密算法。這種加密方法根據(jù)分組密碼具有混淆和擴(kuò)散兩個機(jī)制,結(jié)合混沌動力系統(tǒng)特有的優(yōu)點(diǎn),該方案簡單、快速并且對密鑰敏感,不僅有效抵抗統(tǒng)計分析,而且對已知明文攻擊也具有較好的抵御能力。

一、Logistic強(qiáng)混沌和MD5算法

Logistic映射是一種廣泛使用的動力系統(tǒng),Logistic強(qiáng)混沌映射的定義為利用MD5算法生成128位二進(jìn)制信息摘要,將生成的128位密鑰分成8組,即Bp,BQ’(P,Q=1,2,3,4),為計算初始條件xo,將密鑰組轉(zhuǎn)換成二進(jìn)制。

kij表示外部街鑰的第i組的二進(jìn)制值。

選擇K,K’中不同的密鑰組,計算得到16個不同的xo值,即xo(l,1),xo(l,2),…,xo(2,1),…,xo(4,4)。利用Logistic映射迭代200次以去除暫留效應(yīng),生成實(shí)數(shù)序列{ X201(1,1),X201(1,2),…,
X201(2,1),…,X201(4,4)},記做f1f2...fi。

Xi為像素擴(kuò)散所中反饋機(jī)制修改密鑰的輸入。

二、本文加密算法

1、像素混淆

為了使攻擊者無法從明文和密文的對應(yīng)關(guān)系中獲得它們和密鑰之間的聯(lián)系,采用混淆技術(shù)將圖像像索的灰度值進(jìn)行替換。

將明文分成16組,依次實(shí)現(xiàn)像素值的代替過程,若加密的明文不是16的倍數(shù),則依次加密數(shù)據(jù)流的每個字節(jié)。具體步驟如下:

Stcpl:首先圖像分成8x8塊(記作P1,P2,…,P64),每塊含有2x2個像素點(diǎn)(記作P1,p2,P3,P4),假設(shè)圖像灰度級是256,即8位(b1 b2...b8)二進(jìn)制構(gòu)成每個像素點(diǎn),根據(jù)前一像素點(diǎn)Pi-1的三個最重要位(blb2b3)的值和表1對應(yīng)該位值的操作,修改Pi的像素值。例如,首先取出P1塊,P1和P2的像素值分別是201 (11001001)和185(10111001)。像素點(diǎn)P1相應(yīng)的位值6(110)進(jìn)行查表,對P2的像素值循環(huán)左移一位后取反,由新像素值141(10001101)替代185(10111001)。根據(jù)P2新像素值修改P3的像素值,同理修改P4的像素值,并根據(jù)該值修改Pi的像素值。按照如上規(guī)律,依次完成塊Pl,P2,…,P64的替代操作。

Step2:對Stepl得到的結(jié)果圖像塊進(jìn)行操作:根據(jù)前一像素點(diǎn)Pi-1的兩個最重要位(blb2)的值和表1對應(yīng)該位值的操作,修改Pi的像素值,方法同Stepl。

Step3:再一次對Step2得到的結(jié)果圖像塊進(jìn)行操作:根據(jù)前一像索點(diǎn)Pi-1的最重要位(bl)的值和表1對應(yīng)該位值的操作,修改Pi的像素值,方法同Stepl。

2、像素擴(kuò)散

對分組圖像的像素點(diǎn)進(jìn)行擴(kuò)散操作,具體為:根據(jù)Logistic映射生成的密鑰Xi=m,令ki—1=km,利用公式(9)完成像素擴(kuò)散操作.其中C(i)和C(i-1)分別是子圖像內(nèi)部水平或垂直相鄰像素點(diǎn)的值。

完成一輪加密后,利用反饋機(jī)制進(jìn)行密鑰修改,Ii是第f塊所有像素點(diǎn)均值。

3、加密算法流程

完整圖像加密流程如下,其中Original Image是原始圖像,Cipher Image是加密圖像。按圖3加密過程反方向進(jìn)行可以完成圖像解密。

三、仿真實(shí)驗(yàn)及分析

研究表明直方圖、像素相關(guān)性、密鑰敏感性可有效衡量算法抵御統(tǒng)計分析的能力,為此我們進(jìn)行了相應(yīng)的實(shí)驗(yàn)。加密前后圖像的直方圖信息具有很大區(qū)別,表明密文像素達(dá)到較好的置亂和擴(kuò)散效果。

算法的密鑰空間是2128。密鑰的敏感性是保障加密系統(tǒng)信息免受窮舉攻擊的重要特性之一。實(shí)驗(yàn)采用密鑰Key:2F69E1063A72COCFA78 D9 F84BC-279D220采用三個與之具有微小差別的密鑰對圖5(b)解密效果如圖(d)(e)(f)所示。結(jié)果驗(yàn)證了本文算法的密鑰敏感性較強(qiáng)。

三個密鑰分別為:

圖像的本質(zhì)特征決定了圖像中相鄰像素間具有較強(qiáng)的相關(guān)性,基于該性質(zhì),利用統(tǒng)計攻擊方法來分析圖像加密算法具有較高的可行性,因此用相關(guān)系數(shù)來衡量加密算法破壞相鄰像素相關(guān)性的能力。如表3所示,與均勻置亂算法相比,該算法去相關(guān)性能力較強(qiáng),表明加密圖像的灰度值分布具有良好的隨機(jī)性和均勻性。

利用NPCR(next pixeJ change rate)可有效度量明文圖像一個像素的改變對密文圖像的影響。選取100組圖像進(jìn)行加密實(shí)驗(yàn),一幅是原圖像,另一幅是在該圖像基礎(chǔ)上隨機(jī)改變一個像素值得到的圖像,采用加密算法獲得密文圖像的NPCR值并與算法進(jìn)行對比。

實(shí)驗(yàn)表明該算法抵御已知明文攻擊能力比均勻置亂和二維混沌序列的加密算法。采用均勻置亂算法,當(dāng)塊內(nèi)像素點(diǎn)相對坐標(biāo)和塊坐標(biāo)相同時會導(dǎo)致置亂失敗。本文算法利用分組密鑰生成混沌序列初值,結(jié)合像素混淆和擴(kuò)散操作,降低了明文和密鑰序列之間的相關(guān)性,與二維混沌映射相比,圖像像素達(dá)到了更好的擴(kuò)散性和隨機(jī)性。

小知識之MD5算法

Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。該算法的文件號為RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。