王永,龔建,王明月
(1. 重慶郵電大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,重慶 400065;2. 桂林電子科技大學(xué) 廣西密碼學(xué)與信息安全重點(diǎn)實(shí)驗(yàn)室,廣西,桂林 541004)
隨著互聯(lián)網(wǎng)和通信技術(shù)的飛速發(fā)展,多媒體逐步形成了一種進(jìn)行信息交流的關(guān)鍵方式[1]. 數(shù)字圖像作為多媒體的一種形式,普遍應(yīng)用在軍事、醫(yī)療、商業(yè)等各領(lǐng)域. 數(shù)字圖像信息由于冗余度高、關(guān)聯(lián)性強(qiáng),傳統(tǒng)的文本加密方法并不適合用于數(shù)字圖像,因此尋求新的技術(shù)加密圖像一直是研究的熱點(diǎn). 混沌與密碼學(xué)之間存在著普遍的相似性,它具有初始條件敏感性、非線性和偽隨機(jī)性等特點(diǎn),這些特性不僅應(yīng)用于流密碼[2-3]、S 盒[4]、Hash 函數(shù)[5]中,而且在圖像加密中也展現(xiàn)出良好的應(yīng)用前景[6-16]. 基于混沌的圖像加密方案逐漸受到研究者們的青睞.
用于加密的混沌系統(tǒng)大致可以分為一維混沌和高維混沌兩大類. 一維混沌如Logistic 映射,Sine 映射結(jié)構(gòu)簡單,易于實(shí)現(xiàn). PAK 等[7]利用Sine-Sine 系統(tǒng)構(gòu)造的混沌序列對(duì)像素進(jìn)行置換和擴(kuò)散, 雖然性能好,但是算法中存在一個(gè)代數(shù)上的弱點(diǎn),WANG 等[8]提出了一個(gè)等價(jià)的加密方案,通過將原置換矩陣和擴(kuò)散矩陣分別旋轉(zhuǎn)得到新的矩陣,證明了原方案得線性變換可以轉(zhuǎn)化為相應(yīng)的置換,從而使置換和擴(kuò)散操作分離,通過選擇明文攻擊破譯了原機(jī)制. 高維或復(fù)雜的混沌系統(tǒng)能夠保證所產(chǎn)生序列的復(fù)雜性,有效防止攻擊者對(duì)序列的預(yù)測與重構(gòu). KANG 等[9]提出了一種基于DNA 編碼和時(shí)空混沌系統(tǒng)的彩色圖像加密方案,首先根據(jù)DNA 隨機(jī)編碼規(guī)則,將圖像轉(zhuǎn)化為DNA 矩陣,然后利用混合線性-非線性耦合映像格子模型生成的矩陣對(duì)DNA 矩陣進(jìn)行置換,最后根據(jù)DNA 隨機(jī)解碼規(guī)則對(duì)置換后的矩陣進(jìn)行解碼,得到加密后的圖像. LI 等[10]基于DNA 運(yùn)算和超混沌Lorenz 系統(tǒng)提出了彩色圖像加密方案,利用Lorenz 系統(tǒng)和DNA 編碼對(duì)像素的位置和值進(jìn)行置亂和擴(kuò)散,使用了漢明距離和一次一密的方案提高了抗差分能力. WEN 等[11]利用了狀態(tài)值在相空間分布不均勻的特點(diǎn),對(duì)一種基于DNA 編碼和時(shí)空混沌的圖像加密算法[12]成功實(shí)施了選擇明文攻擊和選擇密文攻擊. 總結(jié)的已有的研究,不難發(fā)現(xiàn),一維混沌雖然結(jié)構(gòu)簡單速度快,但其相空間結(jié)構(gòu)過于簡單存在被重構(gòu)的安全隱患. 高維混沌雖有復(fù)雜的內(nèi)部結(jié)構(gòu),但其狀態(tài)值在相空間的分布往往是不均勻的,為存在被統(tǒng)計(jì)攻擊的隱患.
本文以圖像加密中常用的Sine 映射為研究對(duì)象.為解決其相空間結(jié)構(gòu)簡單帶來的安全性問題,將Sine 映射進(jìn)行分段處理,并將它擴(kuò)展至三維,保證了混沌系統(tǒng)的復(fù)雜性. 針對(duì)擴(kuò)展至三維后,混沌系統(tǒng)狀態(tài)值概率密度分布不均勻的問題,利用參數(shù)耦合和乘大整數(shù)取模變換,最終設(shè)計(jì)了三維參數(shù)耦合分段Sine 映射 (3DPCPSM). 該模型增強(qiáng)了混沌系統(tǒng)的復(fù)雜性并實(shí)現(xiàn)了狀態(tài)值的均勻分布,保證了其所產(chǎn)生的混沌序列的安全性. 以3DPCPSM 模型為基礎(chǔ),提出了一種彩色圖像加密算法. 該算法依據(jù)矩陣變換簡化了圖像的置亂操作,無需如傳統(tǒng)的混沌置亂方法對(duì)矩形圖像預(yù)處理,增強(qiáng)了算法的適用性.
Sine 映射是根據(jù)正弦三角函數(shù)變形得到,因其結(jié)構(gòu)簡單、實(shí)現(xiàn)容易,被廣泛應(yīng)用到混沌圖像加密中. 其數(shù)學(xué)表達(dá)式為
式中:初始值x0∈(0,1),控制參數(shù)μ∈(0,1]. 然而,Sine映射在設(shè)計(jì)加密應(yīng)用時(shí)存在一些不足,如Lyapunov 指數(shù)太小、遍歷性不強(qiáng)和概率密度分布不均勻等.因此,為了進(jìn)一步提高該混沌映射的性能,本文對(duì)Sine 映射進(jìn)行了分段化處理,設(shè)計(jì)變參數(shù)的分段Sine映射如下:
根據(jù)實(shí)驗(yàn)分析,當(dāng)分段數(shù)N=64時(shí),模型的混沌性能較好,故推薦設(shè)置N為64.
進(jìn)一步地?cái)U(kuò)展混沌系統(tǒng)的維度,以變參數(shù)的分段Sine 映射為基本單元,構(gòu)造三維參數(shù)耦合分段Sine映射模型(3DPCPSM)如下:
Lyapunov 指數(shù)不僅可以確定一個(gè)動(dòng)力系統(tǒng)中是否存在混沌行為,而且可以定量地評(píng)估系統(tǒng)的擴(kuò)散性能. 圖1(a)展示了當(dāng)控制參數(shù) μ以步長0.01,從0 增至1 時(shí),Sine 映射的Lyapunov 指數(shù). 從圖1 中可以看出,只有當(dāng)μ>0.86時(shí),該映射進(jìn)入混沌狀態(tài).
圖1(b)展示了當(dāng)控制參數(shù) μ以步長0.025,從0 增值1 時(shí),3DPCPSM 的Lyapunov 指數(shù)變化情況. 從圖中可以看出,所有的Lyapunov 指數(shù)均為正值. 這表明μ在區(qū)間(0,1]內(nèi),3DPCPSM 始終處于混沌狀態(tài). 同時(shí),3DPCPSM 的Lyapunov 指數(shù)值明顯大于Sine 映射的Lyapunov 指數(shù),表明了3DPCPSM 擁有比Sine映射更好且更穩(wěn)定的混沌性能.
圖1 Lyapunov 指數(shù)Fig. 1 Lyapunov exponent
在動(dòng)力學(xué)系統(tǒng)中,分岔圖可以清晰地區(qū)分系統(tǒng)的混沌區(qū)域與非混沌區(qū)域,從而確定該動(dòng)力學(xué)系統(tǒng)在何種條件下進(jìn)入了混沌狀態(tài). Sine 映射的分岔圖如圖2(a)所示,當(dāng)控制參數(shù)μ∈(0.86,1]時(shí),映射進(jìn)入混沌狀態(tài). 當(dāng)μ=1時(shí),其分岔行為最為復(fù)雜,混沌性能最好.
圖2 分岔圖Fig. 2 Bifurcation diagram
圖2(b)展示了3DPCPSM 的分岔圖. 無論控制參數(shù) μ取何值,3DPCPSM 的狀態(tài)值都能遍歷整個(gè)相空間. 這表明3DPCPSM 擁有比Sine 映射更為復(fù)雜的混沌動(dòng)力學(xué)行為. 它能夠在加密應(yīng)用中提供更好的安全保障.
對(duì)于混沌映射來說,遍歷性是指混沌映射的狀態(tài)值在自身相空間中的分布情況. 如圖3(a)所示,Sine 映射的狀態(tài)值沒有覆蓋整個(gè)相空間,并且分布不均勻.
圖3 狀態(tài)值分布情況Fig. 3 Distribution of state values
圖3(b)展示了3DPCPSM 的狀態(tài)值分布情況.它在整個(gè)(0,1)相空間中分布都是稠密且均勻的,這意味著3DPCPSM 具有很強(qiáng)的遍歷性和很高的隨機(jī)性.
概率密度分布反映了狀態(tài)值的均勻程度. 圖4(a)展示了當(dāng)控制參數(shù)μ=0.99時(shí),Sine 映射的概率密度分布. 顯然,其概率密度分布是不均勻的.
圖4 概率密度分布Fig. 4 Probability density distribution
圖4(b)展示了3DPCPSM 的概率密度分布情況.從均勻上看,雖然比Sine 更好,但仍然不均勻. 為解決此問題,對(duì)3DPCPSM 的輸出進(jìn)行乘大整數(shù)取模變換,如式(5)所示.
圖5 變換后的3DPCPSM 概率密度分布, μ=0.99Fig. 5 The probability density distribution of 3DPCPSM after transformation
表1 NIST 800-22 測試結(jié)果(帶*的測試指標(biāo)為平均值)Tab. 1 NIST 800-22 test results (the test index with * is the average)
TestU01 作為最嚴(yán)格的隨機(jī)測試標(biāo)準(zhǔn)之一,其中包含了3 個(gè)預(yù)定義的二進(jìn)制序列測試單元,分別為SmallCrush, Crush 和BigCrush. 此處,使用長度為227的二進(jìn)制序列進(jìn)行測試,結(jié)果如表2 所示. 二進(jìn)制序列通過了所有的子測試. 綜合所有的測試結(jié)果可得,3DPCPSM 能產(chǎn)生很高質(zhì)量的偽隨機(jī)序列,為圖像加密奠定了良好的基礎(chǔ).
表2 TestU01 測試結(jié)果Tab. 2 Test results of TestU01
采用置亂擴(kuò)散結(jié)構(gòu)作為圖像加密的框架. 在置亂階段,利用3DPCPSM 產(chǎn)生的3 個(gè)偽隨機(jī)序列分別構(gòu)造兩個(gè)初等矩陣,然后對(duì)R、G、B 3 個(gè)信道的像素點(diǎn)矩陣進(jìn)行置亂. 在擴(kuò)散階段,3 個(gè)偽隨機(jī)序列分別提取整數(shù)序列,對(duì)置亂后的R、G、B像素點(diǎn)分別進(jìn)行擴(kuò)散,最后生成密文圖像. 加密算法的具體步驟如下.
1) 假定彩色圖像大小H×W×3,將R,G,B 3 個(gè)信道轉(zhuǎn)化成3 個(gè)像素點(diǎn)矩陣Vi∈NH×W,i=R,G,B.
2) 設(shè)3DPCPSM 的3 個(gè)初始狀態(tài)值為x0、y0、z0,對(duì)3DPCPSM 迭代1 000 次以消除初值的影響. 然后分別構(gòu)造初等矩陣Pi和Qi,i= R、G、B.
構(gòu)造i信道的兩個(gè)初等矩陣Pi和Qi的步驟.
①迭代3DPCPSM,取出第i維信道的H個(gè)浮點(diǎn)數(shù)并存儲(chǔ)到序列p中,記作p={pn},其中n=1,2,...,H,并按照從大到小的順序排序,得到有序序列p′.
②按照式(6)、(7)構(gòu)造大小為H×H的矩陣Pi.
解密算法的過程與加密算法相反,此處不再詳述. 式(10)對(duì)應(yīng)的逆擴(kuò)散公式為
選取大小為512×512×3的標(biāo)準(zhǔn)彩色圖像Lena、Pepper 以及全黑(Black)和全白(White)作為明文圖像,對(duì)本文提出的圖像加密算法進(jìn)行測試,結(jié)果如圖6 所示. 可以看出,密文圖像很好地隱藏了明文圖像的有效信息且不可識(shí)別,而解密后的圖像與原明文圖像完全相同,這說明本文算法具有很好的加解密效果,滿足通常的圖像加解密需求.
圖6 明文圖像和密文圖像Fig. 6 Plaintext images and ciphertext images
從直方圖和相關(guān)性兩個(gè)方面測試算法的加密效果. 繪制彩色圖像Lena、Pepper、Black 和White 的R信道的直方圖如圖7 所示. 同時(shí)為了便于對(duì)比,在圖11中還繪制了密文圖像3 個(gè)信道的直方圖. 從圖11 中可以看出,加密后的圖像很好地隱藏了明文圖像中地統(tǒng)計(jì)信息,使得算法能夠有效地抵御統(tǒng)計(jì)攻擊.
圖7 圖像加密前后的直方圖Fig. 7 Histogram of image before and after encryption
對(duì)于有意義的圖像,相鄰像素通常在水平、垂直和對(duì)角線方向上相關(guān). 一個(gè)好的圖像加密方案應(yīng)該能夠顯著地消除這種相關(guān)性. 為了檢驗(yàn)原文圖像和密文圖像中相鄰像素之間的相關(guān)性,隨機(jī)從水平方向、垂直方向和對(duì)角線方向選取8 000 個(gè)像素作為樣本,計(jì)算相關(guān)系數(shù)如下.
表3 加密前后相鄰像素點(diǎn)之間的相關(guān)系數(shù)Tab. 3 Correlation coefficient between adjacent pixel points before and after encryption
直方圖分析和相關(guān)性分析的結(jié)果表明本文提出的圖像加密算法具有良好的抵抗統(tǒng)計(jì)攻擊能力.
信息熵表示圖像中所包含信息的累積和分散,其計(jì)算公式如下.
表4 密文圖像的信息熵Tab. 4 Information entropy of ciphertext image
對(duì)于加密算法而言,應(yīng)該由足夠大的密鑰空間(>2128)來抵御窮舉攻擊. 在本文算法中,密鑰包括初始狀態(tài)值x0、y0、z0∈(0,1)、控制參數(shù)μ∈(0,1)和擴(kuò)散常數(shù)C0∈[0,255]. 假設(shè)計(jì)算機(jī)中浮點(diǎn)數(shù)計(jì)算精度為10-14,則算法的密鑰空間大小為(1014)3×28遠(yuǎn)大于2176.根據(jù)IEEE 浮點(diǎn)數(shù)標(biāo)準(zhǔn),64 位雙精度數(shù)的精度大于10-14,所以本文算法能夠抵抗暴力攻擊的要求.
對(duì)于密鑰敏感度,進(jìn)行以下測試.
測試1:將初始狀態(tài)值x0改變?yōu)閤0+10-15;
測試2:將控制參數(shù) μ改變?yōu)棣?10-15;
比較密鑰變換前后的密文之間的差異. 結(jié)果如表5 所示. 從表中可以看出,密鑰的微小變化會(huì)使密文產(chǎn)生巨大的變化,并且差異都在99.5%以上,說明本文提出的算法具有良好的密鑰敏感性.
表5 密文圖像的差異Tab. 5 Ciphertext image difference%
抗差分攻擊的能力是評(píng)價(jià)密碼算法的一個(gè)重要指標(biāo). 攻擊者通常對(duì)明文進(jìn)行輕微調(diào)整,然后比較調(diào)整前后產(chǎn)生的密文之間的差異來進(jìn)行攻擊. 為了檢驗(yàn)原文圖像中單個(gè)像素變化對(duì)密文圖像的影響,可使用像素變化率(NPCR)和統(tǒng)一平均變化強(qiáng)度(UACI)進(jìn)行測試,公式如下.
rNPCR和TUACI理想值分別為99.6%和33.3%. 表6展示了本文算法加密后圖像的rNPCR和TUACI. 從表6中可以看出,rNPCR和TUACI的計(jì)算值非常接近理想值,說明算法具有有效抵御差分攻擊的能力.
表6 密文圖像的NPCR 和UACITab. 6 Ciphertext images by NPCR and UACI%
在本文中,3DPCPSM 模型屬于高維混沌系統(tǒng),具有良好的混沌性能和復(fù)雜的動(dòng)力學(xué)行為,能夠有效防止攻擊者通過相空間重構(gòu)的方式來預(yù)測其所產(chǎn)生的混沌序列. 其次,模型利用了參數(shù)耦合和乘大整數(shù)取模思想,保證了狀態(tài)值分布的均勻性,提高了其所產(chǎn)生混沌序列的隨機(jī)性,NIST 和TestU01 測試的結(jié)果進(jìn)一步驗(yàn)證了這一特點(diǎn),因此可以有效保證置亂階段所構(gòu)造的變換矩陣和擴(kuò)散階段提取的整數(shù)序列的隨機(jī)性,保證了加密方案的安全. 此外,本文具有足夠大的密鑰空間來抵御暴力攻擊. 實(shí)驗(yàn)測試的結(jié)果反映出方案的密文圖像直方圖分布均勻,像素點(diǎn)間相關(guān)性弱,信息熵非常接近理想值8,能夠有效抵抗統(tǒng)計(jì)攻擊和信息熵攻擊.
在本文算法中,首先需要迭代3DPCPSM 模型并從中抽取出相應(yīng)的狀態(tài)值構(gòu)造變換矩陣,進(jìn)行置亂操作,然后,再迭代混沌映射產(chǎn)生擴(kuò)散操作所需要的偽隨機(jī)序列,所以加密過程與圖像像素點(diǎn)規(guī)模成簡單的正比例關(guān)系. 使用Python 語言實(shí)現(xiàn)算法,在CPU型號(hào)為i7-9700,內(nèi)存為16 GB 的計(jì)算機(jī)上測試加解密速度,所得結(jié)果如圖8 所示. 圖中的結(jié)果進(jìn)一步驗(yàn)證了這種正比例關(guān)系. 解密算法是加密算法的逆步驟,解密時(shí)間與加密時(shí)間基本一致. 由于加密和解密時(shí)間與圖像的尺寸之間是呈線性變化關(guān)系,這表明本文算法能夠很好適應(yīng)圖像大小的變化,滿足在互聯(lián)網(wǎng)中進(jìn)行圖像加密的效率需求.
圖8 加密時(shí)間與圖像大小的關(guān)系Fig. 8 Relation between encryption time and image size
為了提高Sine 映射在加密應(yīng)用中的性能,結(jié)合參數(shù)耦合和乘大整數(shù)取模變換,構(gòu)造了一個(gè)三維參數(shù)耦合的分段Sine 映射模型. 對(duì)該模型的性能分析表明,它具有更大的Lyapunov 指數(shù)和更均勻的概率密度分布,有效提升了系統(tǒng)的混沌屬性,為保證產(chǎn)生具有良好密碼學(xué)性能的序列提供了重要支撐. 然后基于3DPCPSM 提出了一種彩色圖像加密算法,利用矩陣初等變換簡化了圖像置亂階段,增加了算法的普適性. 仿真實(shí)驗(yàn)及性能分析表明該算法具有良好的安全性,能夠有效地滿足圖像在網(wǎng)絡(luò)中安全傳輸?shù)男枨?