王海珍,廉佐政,谷文成
(1.齊齊哈爾大學計算機與控制工程學院,黑龍江 齊齊哈爾 161006;2.齊齊哈爾大學網絡信息中心,黑龍江 齊齊哈爾 161006)
伴隨互聯(lián)網、數(shù)字圖像技術的廣泛應用,可以方便地處理數(shù)字圖像,私密的圖像有可能被互聯(lián)網以多種方式竊取、篡改,因此,圖像的安全及加密技術日益重要[1-3],如何對圖像進行安全高效的加密成為人們研究的熱點。是分組密碼研究領域中最熱門的密碼算法之一[4-6],是被廣泛使用的密碼算法[7-10],但輪密鑰之間相關性較強,只要破解了任何一輪的輪密鑰就能推導出前一輪或后一輪的輪密鑰,從而得到全部的輪密鑰?;煦缦到y(tǒng)的特點是初值敏感,具有偽隨機性、無周期性,經常被用于圖像加密中[11-14]。分析文獻[7-14]可知,一維混沌系統(tǒng)速度快、但密鑰空間不夠大、容易破解,高維混沌系統(tǒng)動力學行為復雜的、隨機性好,在一定程度上提高了加密的安全性,但復雜、實現(xiàn)成本高,很難應用。
因此,為了使一維混沌系統(tǒng)具有較高安全性,降低 輪密鑰的相關性,本文提出了基于Logistic映射、PWLCM映射和AES的圖像加密算法,將混沌映射用于產生算法的初始輪密鑰及密鑰擴展操作,降低輪密鑰的相關性,MATLAB仿真分析,驗證了該算法的有效性和安全性。
基于一維混沌映射和AES.算優(yōu)點,本文提出了基于L-P映射和AES.的加/解密方案,如圖1所示。本節(jié)詳細說明加、解密算法。
圖1 加/解密方案
加密算法主要按以下步驟進行,由于使用MATLAB進行實驗,下面的步驟中用到了相關的語句。
1)原始圖像分組
假設原始圖像A的尺寸為a×b,對應矩陣P是a行b列,第i行第j列的像素值為Pij,則
①如果A是灰度圖像,將P以行優(yōu)先方式構成向量L,將向量中元素按先后順序,16個元素一組,最后一組不足16個元素,則按AES算法默認填充。
②如果A是彩色圖像,將其轉換成RGB圖像,并按R、G、B通道順序,將三個矩陣合并成一個,尺寸為3×a×b,分組方法同①。
2)L-P混沌映射控制參數(shù)和初值設置
①計算圖像A的像素平均值Δ,并取整。以灰度圖像為例,Δ可以用式(1)表示。
(1)
②Logistic混沌映射的控制參數(shù)μ用式(2)表示。
μ=4-×10-3
(2)
③用式(3)產生(0,0.5]之間的隨機數(shù),作為PWLCM混沌映射的控制參數(shù)η。
η=rand()/2
(3)
④用式(4)、(5)產生兩個(0,1)之間的隨機數(shù),key0、key1,其中,key0作為Logistic混沌映射迭代的初值,key1作為PWLCM混沌射迭代的初值。
key0=rand()
(4)
key1=rand()
(5)
3)L-P混沌映射迭代至混沌狀態(tài)
①Logistic混沌映射以μ為控制參數(shù)、key0為初值,迭代100次,消除暫態(tài)的影響,處于混沌狀態(tài)。
②PWLCM混沌映射以η為控制參數(shù)、key1為初值,用迭代100次,消除暫態(tài)的影響,處于混沌狀態(tài)。
4)加密方產生數(shù)字簽名
使用MD5函數(shù)對L-P混沌映射控制參數(shù)和初值μ、η、key0、key1、100生成摘要,作為加密方的數(shù)字簽名。
5)產生AES初始輪密鑰
①在前面Logistic混沌映射迭代基礎上,再迭代16次,將這16次Logistic混沌映射迭代的結果分別保存在PWLCM(i)中,其中i=1,…,16。
②在前面PWLCM混沌映射迭代基礎,再迭代16次,將這16次PWLCM混沌映射迭代的結果分別保存在Logistic(i)中,其中i=1,…,16。
③按式(6)、(7)將PWLCM(i)、Logistic(i)成整數(shù)序列。
y_PWLCM(i)=mod(108×PWLCM(i),256)
(6)
y_PLogistic(i)=mod(108×Logistic(i),256)
(7)
④將整數(shù)序列y_PWLCM(i)、y_PLogistic(i)分別轉換成4×4矩陣p_mat、l_mat,然后將兩個矩陣對應元素進行異或,作為AES加密的初始輪密鑰。
6)狀態(tài)矩陣初始化
取出原始圖像的一組,作為狀態(tài)矩陣,并將其奇數(shù)行各元素與p_mat的對應元素進行異或,偶數(shù)行各元素l_mat的對應元素進行異或。
7)AES加密
按AES加密算法加密,直到原始圖像的所有組都加密完成,生成密文圖像。
8)修改加密輪數(shù)
修改AES加密輪數(shù),通過MATLAB實驗,分析加密時間以及密文圖像的安全性,選取合適的輪數(shù)。
解密算法主要步驟如下:
1)L-P混沌映射控制參數(shù)和初值設置
①將接收到的L-P混沌映射控制參數(shù)和初值,使用MD5函數(shù)生成數(shù)字簽名R。
②接收到的數(shù)字簽名用S表示,判斷R和S是否相等,如果不相等,丟棄接收的信息,否則按順序轉加密方案的第3、第5步產生AES解要的初始輪密鑰。
2)使用AES輪密鑰擴展算法生成其它輪密鑰。
3)按順序取出密文圖像的每一組,使用AES解密算法解密,得到狀態(tài)矩陣,并轉加密方案的第6步,生成明文圖像。
選擇不同尺寸的灰度圖像Lena(256×256)、Peppers(512×384)進行實驗驗證。實驗環(huán)境為:內存8GB,處理器i7-6700HQ,CPU2.6GHz,操作系統(tǒng)Windows 10,仿真軟件為MATLAB R2014a。按照第2節(jié)提出的加/解密算法,編寫加密、解密程序,并設置加密輪數(shù)為6,程序運行結果如圖2、3所示,加密算法實現(xiàn)了加密效果,使用解密算法可以完全恢復加密圖像。
圖2 Lena圖像實驗結果
圖3 Peppers圖像實驗結果
3.2.1 密鑰敏感性分析
本文設置了2組錯誤密鑰,第一組錯誤密鑰保證key0,讓key1=key1+10-16,第二組錯誤密鑰保證key1正確,讓key0=key0+10-16,實驗結果如圖4、5所示,即錯誤密鑰與正確密鑰的值非常接近,但沒有解密成功??梢?,本解密算法對密鑰非常敏感,可以提高圖像的安全性。
圖4 第一組錯誤密鑰實驗結果
圖5 第二組錯誤密鑰實驗結果
3.2.2 相鄰像素相關性分析
相鄰像素相關性是由相關系數(shù)系數(shù)來判斷的,它的計算公式,如式(8)-(12)所示。
(8)
(9)
(10)
(11)
(12)
其中,N是相鄰像素對(x,y)數(shù),rxy是相關系數(shù),rxy∈[-1,1],D(x)為方差,E(x)為均值,cov(x,y)為x和y的協(xié)方差。如果rxy>0,說明相鄰像素之間的相關性高,如果rxy<0.3,說明相鄰像素之間的相關性低。
本文從Lena加密圖像中隨機選取了10000對相鄰像素,分別計算它們在水平方向、垂直方向、對角線方向上的相關性,并與文獻[15]的加密算法進行比較,如表1所示,本文算法運行6輪后,圖像在水平、垂直、對角線方向上的相關系數(shù)均小于文獻[15]加密圖像的,當運行輪數(shù)與標準AES.相,相關系數(shù)絕對值均小于標準AES.加像的??梢?,本文加密算法使原始圖像統(tǒng)計特性,較好擴散到隨機密文圖像中,可以有效抵抗統(tǒng)計分析。
表1 Lena圖像加密前后相鄰像素相關系數(shù)對比
3.2.3 直方圖分析
選擇3.1節(jié)的2幅圖像進行實驗,對圖像加密前后的直方圖進行比較,如圖6、7所示,原始圖像像素分布落差大、較混亂,可以很容易獲得圖像的信息,加密圖像像素分布比較均勻,較好隱藏了圖像的像素值信息,具備抵御統(tǒng)計方法攻擊的能力。
圖6 Lena圖像直方圖分析
圖7 Peppers圖像直方圖分析
3.2.4 信息熵分析
按式(13)計算信息熵。
(13)
本文選擇3.2節(jié)的Lena圖像進行實驗,按式(13)計算圖像加密前后的信息熵,表2顯示了計算結果,本算法加密圖像的信息熵值高于加密前的,也高于標準AES算法的,和文獻[16]算法的接近,且接近8,表明加密圖像像素隨機性很好,較安全。
表2 Lena圖像加密前后的信息熵
3.2.5 差分攻擊分析
依據以下指標進行差分攻擊分析:像素改變率NPCR、平均像素改變強度UACI。下面分別說明它們的計算方法。
1)NPCR
NPCR計算公式如式(14)所示。
(14)
其中,M、N表示圖像大小,D(i,j)按式(15)計算。
(15)
C1(i,j)、C2(i,j)分別表示圖像改變一個像素值前、后的密文圖像矩陣。NPCR的理想值為100%,此時,加密算法對純圖像的變化較敏感,有較好抵御純明文攻擊的能力。
2)UACI
UACI的計算公式如式(16)所示。
(16)
UACI的理想值為33.33%,當其值接近33.33%時,加密算法具備抵御差分攻擊的能力。
采用3.1節(jié)的Lena圖像進行實驗,隨機選擇其明文圖像的一個像素點,然后將像素值加1后對256取模,用相同的密鑰對像素值改變前、后的明文圖像分別加密,并計算密文圖像的NPCR、UACI,結果如表3所示,本算法的NPCR值接近100%,UACI值接近33.33%。因此,明文圖像中像素值發(fā)生微小變化,經過本文算法加密后,圖像像素值擴散效果較好,具備抵御差分攻擊的能力。
表3 NPCR和UACI值對比
3.2.6 魯棒性分析
密文圖像在傳輸過程中,會受到噪聲干擾,由于椒鹽噪聲對圖像的干擾最嚴重,因此,本文采用Lena圖像實驗,在其加密圖像中添加0.005dB的椒鹽噪聲,并按解密算法進行解密。如圖8所示,解密圖像有明顯斑點,但在視覺上可以分辨出原始圖像,算法具有一定的魯棒性。
圖8 加入椒鹽噪聲后的加/解密Lena圖像
3.2.7 抗剪切能力分析
本文對Lena密文圖像圖進行25%的截切,即將密文圖像的25%區(qū)域的灰度值設為0,并按解密方案進行解密。如圖9所示,因此,本文加解密算法在圖像信息部分丟失情況下解密效果不夠理想,抗剪切能力有待改進。
圖9 密文圖像剪切25%的抗剪切攻擊能力分析
3.2.8 算法運行時間分析
本文對3.1節(jié)不同尺寸的圖像,分別計算了標準AES算法加密、本文算法加密的運行時間,如表4所示,本文算法運行時間均小于標準AES算法,但它們的運行時間會隨圖像尺寸變大而變多,因此,本算法不適合大尺寸圖像加密。
表4 算法運行時間分析
本文研究了AES圖像加/解密算法、Logistic混沌映射和PWLCM混沌映射,結合它們的優(yōu)點,提出一種圖像加/解密算法,加密算法結合圖像明文信息,設置Logistic和PWLCM混沌映射的相關參數(shù),利用Logistic和PWLCM混沌映射交叉迭代生成不同的混沌序列,進行異或擴散,生成AES初始輪密鑰,同時結合明文設置初始狀態(tài)矩陣,減少AES加密的輪數(shù),最終得到加密圖像。解密算法先通過數(shù)字簽名認證接收Logistic和PWLCM混沌映射的相關參數(shù),再解密。通過實驗比較分析,驗證了本文算法的安全性,但抗剪切能力不足,下一步將優(yōu)化算法,提高算法的抗剪切能力。