溫 賀 平
(廣東工業(yè)大學自動化學院 廣東 廣州 510006)(東莞職業(yè)技術學院 廣東 東莞 523808)
隨著移動互聯(lián)網(wǎng)、云計算、社交網(wǎng)絡和大數(shù)據(jù)等信息技術的飛速發(fā)展,多媒體數(shù)據(jù)如圖像、視頻、音頻等的安全性愈來愈引起人們的廣泛關注[1]。圖像是多媒體數(shù)據(jù)的主要形式之一,通過數(shù)據(jù)加密方式對其進行隱私保護是一種常見且有效的手段[2]。混沌具有內秉隨機性、對初值和參數(shù)高度敏感、眾態(tài)遍歷性等特征[3],與密碼學的混淆、擴散和雪崩效應具有許多相似之處[4],基于混沌理論的圖像加密技術也因此受到了研究人員的高度關注[5-14]。但由于混沌密碼設計仍缺乏統(tǒng)一的衡量規(guī)范和標準,許多混沌加密算法在安全性方面存在問題[6-9,12,14],故難以從理論設計走向實際應用。因而,對現(xiàn)有的基于混沌的圖像加密算法進行安全性分析十分必要,亦是當今的一個研究熱點。
近年來,許多基于“置換-擴散”算法結構的混沌圖像加密算法被相繼提出[5,7-9,11,13]。然而,其中的許多算法由于存在各種安全缺陷,在提出后已被分析人員實現(xiàn)破譯[6-9,12,14]。文獻[5]首次提出基于混沌理論的圖像加密算法,采用先置換后擴散的算法結構,增強了混淆和擴散特性。文獻[6]采用選擇密文攻擊對文獻[5]的算法進行分析,并最終實現(xiàn)了破譯。文獻[7]提出了一種結合Logistic混沌映射和超混沌的圖像加密方案,實驗結果表明具有良好的密文統(tǒng)計特性。但是,文獻[8]對文獻[7]的算法進行了安全性分析,指出其無法抵御已知明文攻擊和選擇明文攻擊,并提出了改進的方案。文獻[9]在文獻[7]和文獻[8]的基礎上提出了一種增強型的超混沌圖像加密方案。然而,文獻[10]采用選擇明文攻擊方法破譯了文獻[9]提出的密碼算法。文獻[11]設計了采用Arnold混沌映射進行比特置換,進而采用仿射密碼擴散的圖像加密算法。針對文獻[11],文獻[12]采用選擇明文攻擊方法對其實現(xiàn)了破譯。文獻[13]提出了一種基于3維比特矩陣置換和擴散的圖像加密算法,并聲稱能夠抵御各種常見的攻擊。文獻[14]指出文獻[13]的算法是不安全的,同樣無法抵御選擇明文攻擊。密碼設計和分析這對矛盾相互促進,推動著混沌密碼技術向前發(fā)展。而隨著混沌密碼分析技術的發(fā)展,現(xiàn)有的混沌密碼設計水平在不斷提高和改進,對混沌密碼算法的分析和破譯難度也相應增大。然而,仍然存在一些混沌加密算法在安全性能方面存在不足,難以抵御常見的密碼攻擊方法。
文獻[15]采用“置換-擴散”算法結構,提出了一種基于Zigzag變換與混沌的彩色圖像加密算法,同時給出了一些數(shù)據(jù)分析結果,并聲稱能夠抵御各種常見攻擊。然而,本文經過分析發(fā)現(xiàn),該圖像加密算法存在以下安全缺陷:(1) 原算法不論是置換還是擴散過程均與明文圖像無關;(2) 原算法的全局置換和局部置換均為純像素位置置換;(3) 原算法的擴散加密過于簡單,且存在等效密鑰。因此,針對該算法的安全缺陷,本文提出采用選擇明文攻擊的方法對其進行密碼分析。
Zigzag變換[16]是一種常見的元素位置置換方法。以圖1所示的4×4的矩陣的Zigzag變換過程進行說明,其中A和B分別為Zigzag變換前后的矩陣。其變換過程為:首先,從左下角的13開始,按照Zigzag路徑逐一遍歷矩陣中所有元素,由此得到一個一維序列Z;然后,將一維序列Z由逆序并按照光柵掃描順序轉換為二維矩陣B。原算法中采用了擴展的Zigzag變換,其實質亦為純元素位置的置換方法[16]。
圖1 Zigzag變換過程圖
原算法采用的三維Logistic映射[17]的迭代方程為:
(1)
式中:狀態(tài)變量x,y,z∈(0,1),λ、β、α為控制參數(shù)。當控制參數(shù)滿足λ∈(3.53,3.81)、β∈(0,0.022)、α∈(0,015)時,三維Logistic映射處于混沌狀態(tài)。
根據(jù)文獻[15],原算法的描述如下:
(1) 密鑰參數(shù)。原算法中共有6個密鑰參數(shù)(λ,β,α,x0,y0,z0),其中x0、y0、z0為三維Logisitc混沌映射的3個初始值。
(2) 加密過程。加密算法包括全局置換、局部置換和異或擴散三個加密步驟。首先,利用Zigzag變換對彩色圖像的所有像素位置進行全局置換;接著,對預處理后的圖像的R、G、B通道分別進行像素位置的置換;最后,利用三維Logisitc混沌映射產生的掩模圖像對置換后的圖像按比特異或進行擴散加密,得到密文圖像。原算法的整體框圖如圖2所示。對于尺寸為H×W(高×寬)的明文彩色圖像I,下面給出其加密過程描述。
圖2 原加密算法整體框圖
第1步 全局置換。首先,彩色明文圖像I的R、G、B三個通道分別為IR、IG、IB,尺寸均為H×W。將IR、IG、IB以列不變且按行依次連接的形式,預處理得到一個尺寸為3H×W的矩陣,記為IY。
接著,利用擴展Zigzag變換對IY的像素位置進行置換,得到相同尺寸的置換矩陣I′Y。
最后,將尺寸為3H×W的矩陣I′Y分解為3個尺寸為H×W的二維矩陣,分別記為I′YR、I′YG、I′YB。
第2步 局部置換。利用擴展Zigzag變換分別對I′YR、I′YG、I′YB進行置換,置換后得到IZR、IZG、IZB。與第1步中對H×W×3個像素進行位置置換不同,此步驟中分別對R、G、B三個通道內的H×W個像素進行置換,因此稱之為局部置換。
第3步 異或擴散。首先,輸入密鑰參數(shù),產生混沌偽隨機序列。即選取三維Logistic混沌映射的控制參數(shù)為λ、β、α和初始值為x0、y0、z0,根據(jù)式(1),迭代W×H次,得到如下3個實數(shù)混沌序列:
(2)
式中:i=1,2,…,H×W,xi,yi,zi∈(0,1)??紤]到計算機的有限精度,每個混沌序列值均取16位有效值,得:
(3)
式中:j=1,2,…,16,m、n、p為比特數(shù)據(jù)位。
然后,選取混沌序列值中的第7~12數(shù)據(jù)位,采用下面的方法生成6個新的整數(shù)序列:
(4)
式中:i=1,2,…,H×W。分別將這6個整數(shù)序列x1i、x2i、y1i、y2i、z1i,z2i對256求余,得到6個用于加密的掩模序列X1,X2,Y1,Y2,Z1,Z2∈[0,255]。
接著,分別將掩模序列X1、X2、Y1、Y2、Z1、Z2轉換成尺寸為H×W的二維掩模矩陣JX1、JX2、JY1、JY2、JZ1、JZ2。
最后,利用這6個掩模矩陣分別對置換圖像的3個通道進行按比特異或擴散加密,得:
(5)
式中:“⊕”為按比特異或操作,CR、CG、CB為最終密文圖像C的3個通道。
(3) 解密過程。解密則是加密的逆過程。與加密過程不同的是,首先利用混沌序列進行反擴散解密,進而利用Zigzag變換進行兩次反置換解密恢復出原始明文圖像。
在本節(jié)中,首先對原算法存在的安全缺陷進行分析,進而提出基于選擇明文攻擊的破譯方法。
根據(jù)現(xiàn)代密碼學的基本假設[18],對于攻擊者來說,加密算法是完全公開的,只有密鑰未知。換言之,加密算法的安全性完全決定于密鑰。常用的四種密碼攻擊方法如表1所示。
表1 常見的四種密碼攻擊方法
一個安全的密碼系統(tǒng)應當可以抵御表1中所有類型的攻擊,假如無法抵抗其中的任何一種攻擊方法,那么此密碼系統(tǒng)是不安全的。因此,從密碼分析的角度看,原算法存在如下的安全缺陷:
(1) 原算法不論是置換還是擴散過程均與明文圖像無關。在密鑰給定的情況下,對于不同的明文圖像,置換和擴散過程中所采用的加密序列是固定不變的。實際上,這些加密序列可視作為算法的等效密鑰。即使攻擊者完全不知道密鑰信息,僅利用這些等效密鑰也可破譯原算法。此外,這種與明文圖像無關的加密算法往往難以抵御已知明文攻擊和選擇明文攻擊。
(2) 原算法的全局置換和局部置換均為純像素位置置換。原算法先后兩次采用Zigzag變換對彩色圖像進行了置換操作,理論分析和實驗仿真表明此方法有效破壞了原始圖像相鄰像素的相關性。然而,這兩次置換均為純像素位置置換,并未改變像素值,即置換前后的圖像統(tǒng)計直方圖完全一致。因而原算法容易受到統(tǒng)計分析的攻擊。
(3) 原算法的擴散加密僅采用按比特異或操作。擴散是確保加密算法安全的重要部件。然而,原算法采用按比特異或的方式進行擴散加密,既無非線性運算也無反饋加密機制,導致其擴散部分很容易被破譯。
鑒于此,下文將介紹針對原算法的選擇明文攻擊方法。
根據(jù)表1,在選擇明文攻擊的假設下,密碼攻擊者可以臨時使用加密機,選擇任意有利于破譯的明文,并獲得相應的密文。對于“置換-擴散”結構的圖像加密算法[15],基于選擇明文攻擊的基本分析思路為:首先,選取像素值全部相同的特殊明文圖像使得置換過程無效,從而破譯出等效的擴散密鑰;然后,選取一些特殊的明文圖像以及獲得相應的密文圖像求得等效的置換密鑰?;谶@個分析思路,本文所采取的選擇明文攻擊方法的破譯步驟為:
(1) 選取1幅像素值全為0的明文圖像及得到相應的密文圖像獲取等效擴散密鑰。
根據(jù)圖1,當輸入的明文圖像的像素值全為0時,經過兩次Zigzag變換的置換圖像的像素值也全為0。此時,算法將退化為唯擴散加密過程。所以,根據(jù)式(5),得像素值全為0的明文圖像I0對應的密文圖像C0與6個混沌掩模矩陣的關系為:
(6)
(2) 選取一些特定的選擇明文圖像及得到相應的密文圖像獲取等效置換密鑰。
在獲得了等效的擴散密鑰后,原算法將退化為唯置換加密算法。根據(jù)文獻[19-20]的分析結果,唯置換加密算法是不安全的,無法抵御選擇明文攻擊。且對于8比特的圖像,選取「log256(L)?幅特定的選擇明文圖像及其對應的密文圖像即可破譯唯置換加密算法,其中,“「·?”表示向下取整,L是圖像的像素個數(shù)。
對于唯置換加密算法的破譯過程,以圖像尺寸為4×4的簡單例子進行說明。選取一幅像素值全部不等且由小到大的特殊明文圖像為:
根據(jù)選擇明文攻擊的條件,臨時使用加密機,可獲得對應的密文圖像。由于唯置換加密過程僅改變圖像像素的位置,則不妨假設唯置換后的密文圖像為:
當置換過程與明文圖像無關時,輸入不同的明文圖像,唯置換過程是固定的。因此,根據(jù)選擇明文圖像P和對應的密文圖像C,即可求得所有像素置換前后的對應關系。例如,明文圖像P的第1行第1列的像素置換后對應密文圖像C的第3行第2列的像素。事實上,所有像素置換前后的對應關系即為等效的置換密鑰,記為EKP。
當然,由于8比特圖像每個像素的取值范圍為0到255,當圖像像素個數(shù)超過256時顯然無法僅采用一幅選擇明文圖像進行破譯。針對這種情況,再以256×256的8比特灰度圖像為例,說明唯置換的分析過程。虛構一幅特殊的明文圖像,其像素值全部不等且由小到大依次排列,表示為:
經過唯置換加密后得到的密文圖像記為Cv,那么根據(jù)Pv和Cv即可獲取等效的置換密鑰EKP。然而,受限于8比特圖像像素取值范圍,這樣的圖像是不存在的。為此,采用下面的方面將這幅虛構的圖像Pv分解為2幅可構建的8比特圖像P1和P2,分解方法為:
Pv=256×P2+P1
(7)
根據(jù)式(7),得到的P1和P2分別為:
根據(jù)選擇明文攻擊,分別利用加密機獲得與P1和P2對應的密文圖像C1和C2,進而合并為與Pv對應的虛構密文圖像Cv,表示為:
256×C2+C1=Cv
(8)
此時,比較Pv和Cv里所有像素的值即可獲取等效的置換密鑰EKP。
一般地,對于尺寸為H×W的彩色圖像,由于其總共有3HW個取值為0到255的像素,因此根據(jù)上面方法破譯唯置換過程所需的選擇明文圖像數(shù)量為「log256(3HW)?。
(3) 利用等效的擴散密鑰和置換密鑰,對密文圖像破譯得到原始明文圖像。
首先,利用第(1)步所獲得的等效擴散密鑰EKD,由密文圖像的CR、CG、CB破譯得到唯置換圖像的IZR、IZG、IZB。
接著,利用第(2)步所獲得的等效置換密鑰EKP,由置換圖像的IZR、IZG、IZB破譯得到原始明文圖像的IR、IG、IB,亦即完成算法的破譯。
因此,原算法無法抵御選擇明文攻擊,且攻擊所需的數(shù)據(jù)復雜度為O(「log256(3HW)?+1)。
為了驗證所提出的攻擊方法的有效性,選取圖像尺寸為256×256的RGB彩色圖像“Lena”進行實驗。實驗硬件平臺為一臺PC,處理器為Intel Core i5,主頻為3.2 GHz,內存大小為8 GB。軟件環(huán)境為Windows 7操作系統(tǒng)上運行MATLAB R2016a。
首先,根據(jù)第2.2節(jié)的第(1)步,選取一幅像素值全為0的明文圖像并得到相應的密文圖像,分別如圖3(a)和圖3(b)所示。其中,圖3(b)即為等效擴散密鑰EKD。
(a) 全0明文圖像 (b) 對應的密文圖像圖3 全0明文圖像及其對應的密文圖像
然后,利用等效擴散密鑰EKD,將“Lena”密文圖像恢復為唯置換的圖像?!癓ena”密文圖像和恢復的置換圖像及其相應的直方圖如圖4所示。
(a) “Lena”密文圖像 (b) 密文圖像R通道的直方圖
(c) 恢復的置換圖像 (d) 置換圖像R通道的直方圖圖4 “Lena”密文圖像和恢復的置換圖像及其直方圖
接著,根據(jù)第2.2節(jié)的第(2)步,選取如圖5(a)-(c)所示的3幅明文圖像P1、P2、P3,根據(jù)選擇明文攻擊的條件,分別得到如圖6(a)-(c)所示的相應的3幅密文圖像C1、C2、C3。
(a) 明文圖像P1 (b) 明文圖像P2 (c) 明文圖像P3圖5 選取的3幅特殊的明文圖像
(a) 密文圖像C1 (b) 密文圖像C2 (c) 密文圖像C3圖6 與圖5分別對應的3幅密文圖像
根據(jù)式(7)-式(8),分別將圖5(a)-(c)所示的3幅明文圖像和圖6(a)-(c)所示的相應的3幅密文圖像進行如下的合并運算操作:
Pv=2562×P3+256×P2+P1
Cv=2562×C3+256×C2+C1
進而比較Pv和Cv里所有元素的值即可獲取等效置換密鑰EKP。
最后,根據(jù)第2.2節(jié)的第(3)步,破譯還原出原始“Lena”圖像及其直方圖分別如圖7(a)-(b)所示。
(a) 破譯的“Lena”圖像 (b) R通道的直方圖圖7 破譯得到的“Lena”圖像及其直方圖
從圖4(b)、圖4(d)和圖7(b)可以看出,雖然密文圖像的直方圖呈現(xiàn)類噪聲分布特性,但置換圖像和破譯圖像的直方圖特性完全一致,從中也可以看出唯置換加密過程并未改變圖像的統(tǒng)計信息。對于尺寸為256×256的彩色圖像,實現(xiàn)破譯所需的數(shù)據(jù)復雜度僅為O(「(log2563WH)?+1)=O(4),運行時間約為1.25 s。
實驗結果表明,本文所提的選擇明文攻擊方法可以有效破譯原算法,而且破譯所需的時間和數(shù)據(jù)復雜度都比較低。
本文針對一種基于Zigzag變換與混沌的彩色圖像加密方案進行了安全性能分析。經過密碼分析發(fā)現(xiàn),原算法存在安全缺陷,置換和擴散過程均與明文無關,算法存在等效密鑰。因此,本文提出了基于選擇明文攻擊分別獲取等效擴散密鑰和等效置換密鑰,從而實現(xiàn)了對原算法的破譯。理論分析和實驗仿真表明,原算法是不安全的,無法抵御選擇明文攻擊。且對于圖像尺寸為H×W的彩色圖像,破譯的數(shù)據(jù)復雜度為O(「(log2563HW)?+1)。本文的密碼分析對于混沌密碼設計者提高算法的安全性能具有一定的參考作用。