孫鶴鵬,張曉強(qiáng)
(中國礦業(yè)大學(xué) 信息與控制工程學(xué)院,江蘇 徐州 221116)
多圖像加密作為一種新興多媒體安全技術(shù),逐漸引起人們的關(guān)注。研究者們已提出一些基于光學(xué)信息處理系統(tǒng)的多圖像加密算法[1-5]。如:朱等提出了一種基于小波變換的多圖像加密算法[6];李等提出了一種基于級聯(lián)分?jǐn)?shù)階傅里葉變換的多圖像加密算法[7]。然而,這些算法中的大部分都是基于變換域而設(shè)計(jì)的,并常與圖像壓縮技術(shù)結(jié)合。因此,解密圖像往往存在一些明顯的失真。唐等提出了一種基于位平面和混沌映射的多圖像加密算法[8]。然而,該算法每次只能加密四幅圖像。
為保障多圖像內(nèi)容傳輸?shù)陌踩?,結(jié)合混沌理論和DNA計(jì)算技術(shù),提出了一種多圖像加密算法。實(shí)驗(yàn)結(jié)果和算法分析表明:該算法加密效果良好,安全性高。
(1)DNA編碼
DNA序列由腺嘌呤(A)、鳥嘌呤(G)、胞嘧啶(C)和胸腺嘧啶(T)組成。其中,A與T互補(bǔ),G與C互補(bǔ)[9]。在二進(jìn)制中,0和1互補(bǔ),00和11、10和01也互補(bǔ),用A、C、G、T編碼00、01、10、11共有24種編碼方案,但只有8種編碼方案滿足DNA堿基間的互補(bǔ)規(guī)則,請參見文獻(xiàn)[10]。
通常,灰色圖像的像素值可用8個(gè)比特來表示。然而,使用DNA編碼規(guī)則,灰色圖像的像素值也可用4個(gè)DNA碼來表示。反之,根據(jù)給定DNA序列可得出相應(yīng)的十進(jìn)制像素值。
(2)DNA運(yùn)算
DNA序列的加、減法運(yùn)算是根據(jù)二進(jìn)制系統(tǒng)中的加、減法運(yùn)算得到的。根據(jù)DNA編碼規(guī)則1,DNA序列的加、減法運(yùn)算,請參見文獻(xiàn)[10]。
二維Logistic混沌映射定義為
(1)
式中:r1,r2,s1和s2是用于控制二維Logistic混沌行為的系統(tǒng)參數(shù)。當(dāng)2.75 安全散列算法(secure hash algorithm)既可用于數(shù)字簽名標(biāo)準(zhǔn)算法,也可為數(shù)據(jù)的完整性驗(yàn)證服務(wù)[11]。SHA-256是一種安全散列算法,摘要長度為256比特。為增強(qiáng)明文敏感性,新算法利用SHA-256產(chǎn)生混沌系統(tǒng)的初始值,即使兩幅原始圖像只有一個(gè)比特的差別,它們的哈希值也會(huì)完全不同[11]。 將k幅原始圖像組合為一幅大圖像,根據(jù)組合圖像,利用SHA-256產(chǎn)生256比特哈希值K。以8比特為一個(gè)比特塊ki,則K可表示為 K=k1,k2,…,k32 (2) 二維Logistic映射的初始值可表示為 (3) (4) 新算法的加密流程,如圖1所示。首先,分別對k(k> 2)幅原始圖像進(jìn)行DNA編碼;其次,利用二維Logistic映射產(chǎn)生的混沌序列,將DNA序列在k幅圖像間移動(dòng)進(jìn)行置亂;再次,將置亂圖像與二維Logistic映射產(chǎn)生的混沌圖像進(jìn)行加法運(yùn)算完成擴(kuò)散過程;最后,進(jìn)行DNA解碼,得到加密圖像。其中,二維Logistic映射初始值由2.1節(jié)方法產(chǎn)生。具體加密步驟為: 圖1 加密流程 步驟1 將k幅大小為m×n的原始圖像I1,I2,…,Ik組合為一幅大圖像。利用2.1節(jié)方法產(chǎn)生二維Logistic映射的初始值x0和y0。 步驟2 利用x0和y0,迭代二維Logistic映射4mn次,產(chǎn)生2個(gè)混沌序列X4mn和Y4mn。 步驟3 對I1,I2,…,Ik分別進(jìn)行DNA編碼,得矩陣I11,I21,…,Ik1。 步驟4 計(jì)算 (5) 步驟5 置亂k幅DNA編碼圖像 (6) 式中:i=1,2,…,m和j=1,2,…,4n。 最后,可得置亂矩陣I12,I22,…,Ik2。 步驟6 按照一定規(guī)則,從Y4mn選取m×n個(gè)元素構(gòu)成Zmn。計(jì)算 (7) 步驟7 對I12,I22,…,Ik2按照下式進(jìn)行擴(kuò)散得矩陣I13,I23,…,Ik3 It3(i,j)=It2(i,j)+C(i,j) (8) 式中:t=1,2,…,k,i=1,2,…,m和j=1,2,…,4n。 步驟8 對I13,I23,…,Ik3分別進(jìn)行DNA解碼,得加密圖像E1,E2,…,Ek。 解密步驟為加密步驟的逆過程。 圖2 原始圖像 圖3 加密圖像 直方圖顯示了一幅圖像中像素值的分布情況,好的加密算法的加密圖像應(yīng)該有均勻的直方圖。圖4和圖5分別為原始圖像和加密圖像的直方圖。從圖可看出:原始圖像的直方圖和對應(yīng)加密圖像的直方圖完全不同,加密圖像的直方圖類似噪聲分布,從而掩蓋了原始圖像的統(tǒng)計(jì)特征。因此,攻擊者不能從加密圖像中發(fā)現(xiàn)有用的統(tǒng)計(jì)數(shù)據(jù),這表明新算法可有效地抵抗統(tǒng)計(jì)攻擊。 圖4 原始圖像的直方圖 圖5 加密圖像的直方圖 根據(jù)如式(9),可計(jì)算原始圖像和加密圖像中相鄰像素的相關(guān)性rx,y (9) (10) (11) 其中,E(x)和D(x)分別為x的期望和方差。 選取圖像中多對相鄰像素,進(jìn)行相關(guān)性分析。圖6為原始圖像Lena及其加密圖像的相關(guān)性分析。原始圖像和加密圖像的相關(guān)系數(shù),見表1。實(shí)驗(yàn)結(jié)果顯示:在原始圖像中,相鄰像素的相關(guān)系數(shù)均接近1,與此相對,在加密圖像中,相鄰像素的相關(guān)系數(shù)均趨近0。因此,新算法能夠破壞原始圖像相鄰像素的相關(guān)性,從而很好地保護(hù)原始圖像內(nèi)容的安全。 圖6 原始圖像和加密圖像的相關(guān)性分析 表1 原始圖像和加密圖像的相關(guān)系數(shù) 圖7 錯(cuò)誤解密圖像 像素?cái)?shù)目改變率和平均強(qiáng)度變化率是圖像加密學(xué)者進(jìn)行差分攻擊分析的兩個(gè)常見指標(biāo)。兩個(gè)指標(biāo)值越大,表明該加密算法對明文變化越敏感,算法抵制差分攻擊的能力越強(qiáng)。它們定義分別如式(13)和示(14)所示 (12) (13) (14) 其中,I′(i,j)和I″(i,j)分別為原始圖像修改前后對應(yīng)的加密圖像。 在實(shí)驗(yàn)中,隨機(jī)選取原始圖像Lena中的任選一個(gè)像素,如I(1,1)=158。為測試新算法抵制差分攻擊的能力,將該像素的像素值改為200。加密圖像的像素?cái)?shù)目改變率和平均強(qiáng)度變化率,見表2。從表中數(shù)據(jù)可看出:即使對原始圖像做出輕微的改動(dòng),也會(huì)對加密圖像造成巨大的影響。同時(shí),也說明新算法具有良好的抵制差分攻擊的能力。 表2 加密圖像的NPCR和UACI 信息熵能夠反映一幅灰色圖像像素灰度值的分布狀況。如果像素灰度值分布較為水平一致,那么該圖像的信息熵就會(huì)較大。一幅理想的隨機(jī)圖像,所有灰度級出現(xiàn)的概率完全相等。此時(shí),可計(jì)算出信息熵為8。因此,當(dāng)加密圖像的信息熵越接近8時(shí),說明圖像像素值改變的越充分,加密效果越好[13]。信息熵定義為 (15) 表3 加密圖像的信息熵 在唐算法[8]中,4幅加密圖像被視為PNG圖像的紅、綠、藍(lán)和阿爾法分量。因此,該算法每次只能加密4幅原始圖像。然而,新算法每次能加密多幅原始圖像,具體數(shù)目根據(jù)用戶需求來確定。因此,新算法在加密圖像數(shù)目上優(yōu)于唐算法[8]。 張算法[14]僅置亂了圖像塊位置,沒有進(jìn)行擴(kuò)散操作。因此,張算法適用于加密效率要求高,而安全性要求相對不太高的應(yīng)用場景中[14]。然而,新算法進(jìn)行了置亂和擴(kuò)散操作。同時(shí),隨著加密圖像數(shù)目的增加,新算法的置亂過程效果會(huì)更好,安全性更高。因此,新算法在安全性上優(yōu)于張算法[14]。 結(jié)合DNA和二維Logistic映射,提出了一種多圖像加密算法。該算法每次可加密多幅圖像。與兩種類似算法對比表明:新算法具有一定的優(yōu)勢。實(shí)驗(yàn)結(jié)果和算法分析表明:新算法足以抵抗蠻力、差分、統(tǒng)計(jì)和選擇明文等攻擊,安全性高。未來,隨著DNA技術(shù)的發(fā)展,新算法在加密效率上的優(yōu)勢將得到充分體現(xiàn)。1.3 安全散列算法
2 加密算法
2.1 混沌映射初始值的產(chǎn)生
2.2 加密步驟
2.3 解密步驟
3 仿真實(shí)驗(yàn)
4 算法分析
4.1 密鑰空間分析
4.2 直方圖分析
4.3 相關(guān)性分析
4.4 密鑰敏感性分析
4.5 差分攻擊分析
4.6 信息熵分析
5 與類似算法對比分析
5.1 輸入圖像數(shù)目分析
5.2 安全性分析
6 結(jié)束語