黃佳鑫,趙凱悅,李佳文,李珊珊
(長安大學信息工程學院,西安 710064)
醫(yī)學、生物特征、個人、衛(wèi)星圖像等內(nèi)容常含有機密信息,當這些載體通過公開信道進行傳輸時,容易被非法竊聽獲取,造成機密信息泄露。圖像加密通過一定的運算來隱藏視覺信息,保證信息安全,使得非法用戶無法得到圖像內(nèi)容,接收方通過解密密鑰可以獲得圖像的全部內(nèi)容,是保護圖像安全中最常用的途徑[1]。
20世紀90年代開始,許多學者開始研究圖像加密理論[1]。圖像加密可分為基于傳統(tǒng)方法、空間域、混沌系統(tǒng)、壓縮感知等方法[2-3]。DES(date encryption standard)、AES(advanced encryption standard)等傳統(tǒng)加密技術(shù)主要是針對數(shù)據(jù)流進行加密,沒有考慮到圖像相鄰像素之間的關(guān)系,加密時間復(fù)雜度高、運算量大并且效率低[4]??臻g域中,如采用zigzag變換、約瑟夫置亂、Arnold變換、幻方排列等[5]對圖像像素置亂的技術(shù),沒有改變像素值分布即不存在擴散步驟,存在一定的缺陷?;趬嚎s感知的圖像加密存在加密圖像視覺安全性不高和重構(gòu)圖像質(zhì)量不佳的問題。上述加密方法存在加密算法效率低、擴散性能不佳、解密損失信息等缺陷。
混沌系統(tǒng)具有復(fù)雜的非線性動力學性能,良好的偽隨機特性、軌道的不可預(yù)測性以及對初始狀態(tài)和控制參數(shù)極其敏感等特征,因此混沌系統(tǒng)廣泛應(yīng)用于圖像加密、保密通信等領(lǐng)域[6]。低維混沌系統(tǒng)具有密鑰空間小和安全級別低等缺點,由于計算機計算精度的限制,混沌系統(tǒng)會出現(xiàn)動力學退化等現(xiàn)象[7]。常用的低維混沌系統(tǒng)包含Logistic映射、Chebyshev映射、Tent映射、Sine映射、分段線性映射、Cubic映射等[8]。高維混沌系統(tǒng)具有良好的混沌特性,但其時間復(fù)雜度較高。常見的高維混沌系統(tǒng)有Lorenz系統(tǒng)、Chen’s系統(tǒng)和其他超混沌系統(tǒng)[9-10]。
很多學者都研究了基于混沌系統(tǒng)的圖像加密方法。文獻[1]采用coupled logistic映射結(jié)合貓映射來實現(xiàn)圖像加密,并采用雙向擴散提高加密性能。文獻[11]基于PWLCM(piecewise linear chaotic map)、Lorena、Chen混沌系統(tǒng),結(jié)合哈希函數(shù)、DNA(deoxyribonucleic acid)運算實現(xiàn)加密,初始加密參數(shù)通過SHA-256(secure hash algorithm-256)運算與明文相關(guān),提高了密鑰敏感性。文獻[12]提出的算法基于混沌理論、分數(shù)傅里葉變換、DNA運算,對圖像進行了三次分數(shù)階傅里葉變換和異或操作。該算法具有良好的加密效果、較大的密鑰空間和良好的密鑰敏感性。然而,相位掩碼占用了存儲和傳輸中的資源。文獻[13]使用SHA-3(secure hash algorithm-3)算法計算初始密碼的哈希值,用作混沌系統(tǒng)的初始值,使用Fisher-Yates置亂、排序置亂算法進行了二次置亂,增強了置亂效果。
為了克服低維和高維混沌系統(tǒng)存在的不足,許多學者采用低維混沌系統(tǒng)級聯(lián)的方式來設(shè)計新的混沌系統(tǒng)。文獻[5]基于Logistic-Sine-Cosine混沌系統(tǒng)產(chǎn)生序列,利用該序列進行了四輪置亂和擴散,但四輪運算會顯著地增加算法的運行時間。文獻[14]提出了一種使用離散復(fù)合混沌映射LSS(logistic-sine)生成混沌S盒圖像加密算法,該算法具有突出的擴散和混淆特性。文獻[15]提出一種基于余弦變換的復(fù)合混沌系統(tǒng),該方案克服了現(xiàn)有的低維混沌系統(tǒng)混沌區(qū)間不連續(xù)等缺點,但是沒有針對彩色圖像進行設(shè)計。文獻[16]基于Logistic、Sine和Tent映射構(gòu)造了新的復(fù)合混沌系統(tǒng),并基于此設(shè)計循環(huán)移位和分塊等操作實現(xiàn)加密。
除了密碼學本身的方法,其他領(lǐng)域的研究成果也拓寬了研究思路,與其他領(lǐng)域方法結(jié)合的新方案逐漸被關(guān)注。如結(jié)合約瑟夫問題和濾波器擴散的圖像加密算法[17],基于Mandelbrot集的條件移位的圖像加密算法[18],結(jié)合混沌系統(tǒng)和DNA運算的圖像加密方法[19],將混沌系統(tǒng)和神經(jīng)網(wǎng)絡(luò)結(jié)合[20],將混沌系統(tǒng)和壓縮感知結(jié)合[21],將安全哈希算法和脫氧核糖核酸編碼與混沌系統(tǒng)相結(jié)合[22],結(jié)合DNA編碼與混沌系統(tǒng)[23],基于量子魔方旋轉(zhuǎn)圖像置亂的方案[24],基于一維Logistic和Sine映射耦合而來的新的二維混沌映射[25]等。
現(xiàn)設(shè)計基于Logistic-Sine-Cosine混沌系統(tǒng)的空間域無損圖像加密算法,該算法包含針對彩色圖像的Fisher-Yates置亂方案和二維異或濾波擴散方案,在提高安全性、實時性的同時降低時間復(fù)雜度。
為保證加密系統(tǒng)的安全性和較低的時間復(fù)雜度,將Logistic映射和Sine映射作為種子映射,與Cosine映射級聯(lián),構(gòu)成Logistic-Sine-Cosine映射[15],表達式為
(1)
式(1)中:F(α,xi)、G(1-α,xi)為已知的Logistic、Sine映射;α、β為控制參數(shù),取β=-0.5得到Logistic-Sine-Cosine映射的表達式為
xi+1=cosπ[4αxi(1-xi)+(1-α)sin(πxi)-0.5]
(2)
式(2)中:α∈[0,1],xi∈(0,1)。
樣本熵、分岔圖、Lyapunov指數(shù)分析表明該混沌系統(tǒng)的性能良好[15],如圖1所示。該系統(tǒng)在定義域α∈[0,1]內(nèi)都能呈現(xiàn)出混沌狀態(tài),且輸出狀態(tài)是隨機的。
圖1 Logistic-Sine-Cosine系統(tǒng)分叉圖
Fisher-Yates置亂生成一個有限集合的隨機排列[13]。傳統(tǒng)的Fisher-Yates置亂方案將圖像轉(zhuǎn)化為一維序列進行置亂。設(shè)計一種針對彩色圖像的三維Fisher-Yates置亂方案,對像素點同時進行行、列、平面維度的置亂。該方案對矩陣A[l1,l2,l3]的具體置亂步驟如下:
(1)令i=1,j=1,k=1。
(2)生成1~l1的整數(shù)i1,生成1~l2的整數(shù)j1,生成1~l3的整數(shù)k1。
(3)交換A(i,j,k)和A(i1,j1,k1)的值。
(4)按照平面、行、列的順序執(zhí)行(2)和(3),遍歷完所有的像素點。
濾波是采用濾波器對圖像進行卷積處理的圖像處理技術(shù)。濾波器是二維矩陣,其中心元素和當前處理像素對齊,其余元素和相關(guān)的像素對應(yīng)。濾波結(jié)果是濾波器元素與對應(yīng)像素相乘再相加?,F(xiàn)在傳統(tǒng)濾波技術(shù)的基礎(chǔ)上,將異或運算引入濾波中。
假設(shè)二階濾波器f的尺寸為a×b。對像素y(lr,lc)進行處理得到y(tǒng)′(lr,lc),公式為
b+j)
(3)
圖2描述了濾波操作,其中y是圖像塊,y(2,2)是要處理的元素,濾波器f的尺寸是2×2。f的中心元素f(2,2)與y(2,2)異或⊕,其他元素與y(2,2)對應(yīng)的元素異或,這些異或結(jié)果相加得到濾波結(jié)果y′(2,2)。
圖2 濾波過程
采用合適的濾波器,濾波可以去除圖像中的噪聲。然而,使用不規(guī)則的濾波器,圖像濾波會使圖像模糊,故采用濾波技術(shù)來實現(xiàn)圖像加密中的擴散操作。本方案使用二階異或濾波的方式對圖像進行擴散。傳統(tǒng)濾波技術(shù)不需要恢復(fù)明文像素值,將該技術(shù)應(yīng)用在圖像加密領(lǐng)域時,必須存在其逆過程以保證運算可逆。根據(jù)異或的性質(zhì),任何正整數(shù)和0異或,其值不變,故濾波過程可逆問題可以通過設(shè)置濾波器的中心元素f(2,2)=0,其他元素為正整數(shù)來解決。
濾波過程存在邊界問題,像素矩陣在每個平面的首行和最左邊的一列沒有足夠的像素。當處理這些像素點的時候,使用對角方向上的像素來擴充矩陣,如圖3所示,擴充的矩陣不需要被存儲,因此像素矩陣的尺寸不會改變。
圖3 擴充示意圖
為了更加清晰地表示該過程,定義對像素點進行濾波時,像素點p2(lr,lc,lz)對應(yīng)的相鄰像素矩陣為T,其表達式為
(4)
為了進一步提高濾波的隨機性,在濾波器模板中引入混沌序列值,即將濾波器f中的第一個元素設(shè)置為偽隨機像素。
對像素p2(lr,lc,lz)進行濾波,其表達式為
(5)
從相鄰像素矩陣T中可以看出,像素左上角元素已經(jīng)經(jīng)過處理,右下角元素是未經(jīng)過處理的原始像素。當對當前像素進行逆運算時,矩陣T中的元素與正向處理時處于相同的狀態(tài),故式(5)是可逆的,其逆運算表達式為。
(6)
根據(jù)式(5)和式(6)設(shè)計圖像擴散算法。
現(xiàn)有的擴散技術(shù)通常使用同一行或列的先前像素值來改變當前像素。本文中的擴散方法引入像素的鄰域像素,且濾波器模板由明文和密鑰共同決定并引入偽隨機像素值,實現(xiàn)了可變?yōu)V波器。該濾波技術(shù)可以更快的將一個像素的微小變化擴散到所有像素,在抗差分攻擊方面表現(xiàn)出更好的性能。
根據(jù)Fisher-Yates置亂和濾波器擴散的原理,提出了一種基于置亂-擴散框架的圖像加密方案。該方案由兩部分組成,分別是Fisher-Yates置亂和濾波器擴散。設(shè)計的三維Fisher-Yates置亂可以同時對行、列、平面位置進行置亂,從而獲得良好的置亂效果,濾波技術(shù)可以實現(xiàn)良好的擴散特性,因此將二者結(jié)合設(shè)計了加密方案。解密過程是加密過程的逆過程,本文不再描述。加密過程如圖4所示。
圖4 加密流程圖
為了提高加密密鑰和明文的相關(guān)性,本文中初始密鑰由用戶輸入的密鑰k0、k1和明文SHA-512值h0共同決定,其中k0,k1∈[0,1],h0是對明文p進行SHA-512運算得到的128位十六進制字符串。具體步驟如下。
(1)將h0中的元素按照先后順序,每4位為一組轉(zhuǎn)化為十進制序列記為h1,表達式為
h1(i)=hex2dec{h0[(i-1)×4+1:i×4]},i∈[1,32]
(7)
(2)將h1中的元素按順序每8位進行取模運算然后求和,結(jié)合k0、k1來生成F0,表達式為
(8)
(3)生成混沌系統(tǒng)的舍棄項數(shù)n0,表達式為
(9)
(4)令混沌系統(tǒng)的初始參數(shù)y0=F1(1),u0=F1(2),表達式為
(10)
(5)為了確保濾波過程可逆,設(shè)置濾波器的中心元素為0,通過F0得到f0,重新排列后得到濾波器模板f,表達式為
f0(i)=bitxor[F0(i),F0(4)],i∈[1,4]
(11)
f(i,j)=f0[(i-1)×2+j],i∈[1,2],j∈[1,2]
(12)
對像素矩陣p進行三維Fisher-Yates置亂,置亂后的像素矩陣記為p1。利用控制參數(shù)u0和初始值y0迭代式(2)所定義的系統(tǒng)l1l2l3+n0次,并且舍棄前n0項獲得一維序列X。將X按照行優(yōu)先的順序重新排列得到與矩陣p尺寸相同新矩陣X2。
(1)令lr=1,lc=1,lz=1;根據(jù)平面、行、列的順序來重復(fù)執(zhí)行(2)和(3),置亂后的矩陣記為p1。
(2)計算坐標(lr,lc,lz)置亂后的坐標(lrs,lcs,lzs),公式為
(13)
(3)交換像素p(lr,lc,lz)和p(lrs,lcs,lzs)。
采用2.1節(jié)中生成的濾波器f來對像素進行濾波處理。利用式(14)對X處理得到偽隨機像素序列X3,利用式(15)將X3排列為尺寸為[l1,l2,l3]的偽隨機像素矩陣X4,X4是f中使用的偽隨機像素矩陣。按照RGB平面的順序?qū)ο袼鼐仃囘M行濾波,在每個平面內(nèi),利用式(16)按照行優(yōu)先的順序執(zhí)行濾波運算。對當前像素點p2(lr,lc,lz)處理時,將X4中的混沌序列值引入濾波器f中,得到對應(yīng)的f如式(17)所示。直到所有的像素點都濾波完成,得到加密后的圖像矩陣Pe。
X3(i)=fix[X(i)×1015]mod256,i∈[1,l1l2l3]
(14)
X4(i,j,k)=X3[(k-1)l1l2+(i-1)l2+j],i∈[1,l1],j∈[1,l2],k∈[1,l3]
(15)
T(i,j)]mod256
(16)
(17)
實驗軟件采用Matlab R2022a,CPU為3.10 GHz的Intel i5-12500H處理器,內(nèi)存為16G。參數(shù)k0=0.666 6,k1=0.888 8,明文的十六進制SHA-512值為’cc3de5553fe62ff546f66b5b27a1de0a2758e2 299216af8004e10ec353e1ac695c04103bc11d1ffc70646 34332c89290f94caac381d79a6d1835692b653276ca’。
為了測試本文所提算法的性能,對尺寸為512×512×3的彩色“Lena”圖像進行仿真,結(jié)果如圖5所示。由圖5可知,密文和明文完全不同,而且密文類似于噪聲圖像且密文的直方圖分布是近似均勻的,表明該方案可以對圖像進行有效的加密。
通道取值為1、2、3分別代表R、G、B平面的像素分布直方圖
加密破壞了明文中的像素相關(guān)性,繪制明文和密文相鄰像素點分布點圖如圖6所示。明文相鄰像素對集中分布在對角線附近,說明明文相鄰像素之間的相關(guān)性較強,而密文鄰域像素對近似均勻的分布于整個平面之中,說明加密破壞了明文相鄰像素的相關(guān)性。
通道取值為1、2、3分別代表對應(yīng)平面水平、垂直、對角線的相鄰像素對分布點圖
計算明文和密文RGB平面相關(guān)系數(shù),如表1所示。由表1可知明文在三個通道內(nèi)的相關(guān)系數(shù)接近于1,對應(yīng)的密文相關(guān)系數(shù)均接近0。表明明文相鄰像素的相關(guān)性很強,密文相關(guān)性較弱,加密有效的降低了明文像素之間的強相關(guān)關(guān)系。
表1 明文和密文的相關(guān)系數(shù)
信息熵反映一個系統(tǒng)的混亂程度。根據(jù)香農(nóng)定理,圖像的信息熵通定義[5]為
(18)
式(18)中:i為像素值,f(i)為該像素出現(xiàn)的概率。
計算Lena圖像在加密前后不同通道的信息熵,如表2所示。結(jié)果顯示明文信息熵的值較小,密文信息熵接近于8,說明密文的像素值分布較明文更加均勻,加密隱藏了明文的像素分布規(guī)律,攻擊者不能通過分析密文像素分布規(guī)律來得到有用信息。
表2 明文和密文的信息熵
傳統(tǒng)密碼攻擊分析算法包括:唯密文攻擊、已知明文攻擊、選擇明文攻擊和選擇密文攻擊[6]。其中,選擇明文攻擊對密碼系統(tǒng)最具有威脅性。如果一個加密系統(tǒng)能夠抵御選擇明文攻擊,那么該算法也可以抵御其余三種攻擊。本文的方案中,密鑰和明文的SHA-512值相關(guān),故密文圖像與明文圖像高度相關(guān),所以對抗選擇明文攻擊是安全的。圖7顯示了512×512×3的純黑、白圖像加密結(jié)果,表3列出了對應(yīng)的相關(guān)系數(shù)和信息熵。結(jié)果表明,這些特殊圖像的信息熵接近于8,且直方圖是均衡的,表明該算法也適用于單一像素值圖像。
表3 純黑和純白圖像信息熵與相關(guān)系數(shù)
圖7 純黑和純白圖像加密結(jié)果
安全的加密方法應(yīng)該對明文高度敏感,即明文的微小變化會導(dǎo)致加密圖像發(fā)生很大的變化。NPCR(number of pixel change rate)、UACI(unified average change intensity)用來評估密碼抗差分攻擊的能力[3],NPCR與UACI 的定義為
攻擊者通常對原始圖像進行微小的改變,找出原始圖像和加密圖像之間的關(guān)系,即差分攻擊。
(19)
(20)
NPCR理論值是99.6094%,UACI理論值為33.463 5%[6]。當明文p中的第一個像素點的改變量為1時,加密算法的NPCR和UACI值如表4所示。
表4 NPCR與UACI值
NPCR值接近于1表明當明文發(fā)生微小變化時,密文中幾乎所有的像素點都會發(fā)生改變,表明算法抗差分攻擊能力較強。本文方法的NPCR值與參考文獻性能基本一致,UACI值低于參考文獻的值,但均接近于理想值。
密鑰空間包含所有參與加密過程的密鑰集合,較大的密鑰空間可以抵御任何窮舉攻擊。圖像加密算法的密鑰空間大于2100才能夠抵抗窮舉攻擊[6]。圖像SHA-512值h0產(chǎn)生的密鑰空間為2512。根據(jù)美國電氣電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)浮點標準[26],64位雙精度數(shù)據(jù)的計算精度為1015。所以本算法的密鑰空間為2512×1015×2≈2611,遠大于2100,故該算法產(chǎn)生的密鑰空間可以抵御窮舉攻擊。
除了足夠大的密鑰空間外,加密算法還需要對密鑰高度敏感才能更好地抵抗暴力攻擊[1]。本文加密密鑰分別是k0、k1、h0。當解密密鑰分別發(fā)生微小的變化變?yōu)閗0+10-15、k1+10-15、h0中第一位字符改變1位,解密結(jié)果如圖8所示,由圖8可知,當密鑰發(fā)生微小的改變,無法正確的解密出明文,表明加密算法對密鑰高度敏感。
圖8 密鑰敏感性分析
圖9 噪聲攻擊解密結(jié)果
圖像具有大量的像素點,因此對處理時間要求較高,好的圖像加密算法要求具有較短的運行時間。加密算法的耗時不僅和時間復(fù)雜度有關(guān),還和運行的硬件環(huán)境相關(guān)。選擇和本文算法運行環(huán)境相近的方法比較,如表5所示。由表5可知,在圖像尺寸相同的情況下,本文算法用時少于文獻[14]。
表5 不同尺寸圖像計算時間對比
針對數(shù)字圖像加密算法存在安全性低的問題,提出了一種基于Logistic-Sine-Cosine復(fù)合混沌映射、Fisher-Yates置亂和濾波器擴散的彩色圖像加密方案。采用明文哈希值和用戶輸入?yún)?shù)來生成密鑰;應(yīng)用Fisher-Yates置亂和混沌序打亂明文像素間強相關(guān)性;采用濾波器分別在圖像RGB平面濾波。選擇標準Lena圖進行實驗,實驗結(jié)果表明,本文算法能夠抵御差分、暴力、剪切、噪聲等常見攻擊,可應(yīng)用于數(shù)字圖像的加密和傳輸。本文為了提高算法的安全性,設(shè)計的濾波擴散增加了運算的次數(shù)。若將算法應(yīng)用于實時性要求高的場合,需進一步提升算法效率。