鄧文博,劉 帥,劉福才,黃茹楠
(燕山大學工業(yè)計算機控制工程河北省重點實驗室,河北 秦皇島 066004)
隨著互聯(lián)網(wǎng)的普及,人們會通過網(wǎng)絡傳輸各種數(shù)據(jù),信息泄露的風險也隨之增大。圖像加密是為多媒體數(shù)據(jù)提供安全保障的技術之一。由于混沌系統(tǒng)對初值敏感[1],而且混沌序列是偽隨機的,非常適合用于圖像加密。Cavusoglu等[2]提出了基于混沌S盒的圖像加密方案;Slimane等[3]將Logistic映射和Chua電路相結合定義復雜映射,生成用于加密的混沌序列;張海英等[4]采用分數(shù)階混沌進行圖像加密。這些加密方案只是從信息安全的角度設計的,沒有考慮圖像本身的特性。
圖像的高冗余度和相鄰像素的強相關性,導致其傳輸效率不高。合理壓縮加密圖像,既能提高傳輸速度又不影響圖像質(zhì)量,因此對圖像壓縮加密的研究具有重要意義。王厚林等[5]提出壓縮感知CS(Compressed Sensing)與混沌系統(tǒng)比特級的加密算法。該算法不僅加密效果優(yōu)良,而且還可以抵抗由統(tǒng)計攻擊和差分攻擊組成的窮舉攻擊等多種破壞行為,但在抵抗噪聲攻擊方面并不理想。Chai等[6]提出了一種基于四維混沌系統(tǒng)和元胞自動機的壓縮感知圖像加密算法。Ponuma等[7]將一種新的一維混沌映射用于壓縮感知圖像加密,該算法盡管加密效果良好,但其使用的是低維混沌系統(tǒng),存在安全性不足的問題,且抗噪聲、抗裁剪能力弱。
由于DNA高度并行,越來越多基于DNA編碼的圖像加密方案應運而生。譚琳等[8]提出了基于DNA序列和混沌的圖像加密算法。涂正武等[9]提出了基于DNA序列的彩色圖像加密算法。然而,基于DNA和混沌系統(tǒng)的加密算法不能抵抗選擇明文攻擊。
傳統(tǒng)單一的圖像加密算法在安全方面仍有很大的改進空間。為了克服以上方案存在的不足,本文提出一種將壓縮感知與DNA編碼相結合的圖像加密算法。首先,在圖像加密前通過CS對圖像進行預處理且CS的測量矩陣由克羅內(nèi)克積KP(Kronecker Product)構造;然后,通過對壓縮圖像進行DNA編碼加密,降低了圖像相鄰像素的相關性,提升了加密圖像抗噪聲、抗裁剪性能。超混沌序列動態(tài)控制DNA編碼,增加了加密過程的復雜度。使用原始圖像的256位哈希值生成混沌系統(tǒng)的初始值,能夠抵抗選擇明文攻擊。仿真實驗結果表明,本文算法加密效果良好、傳輸效率快、抗攻擊能力強。
本節(jié)主要介紹混沌系統(tǒng)、DNA編碼技術、克羅內(nèi)克積和壓縮感知技術。
混沌系統(tǒng)主要由Logistic混沌和超混沌Bao系統(tǒng)組成。
(1) Logistic混沌。
Logistic混沌是一種經(jīng)典的一維混沌映射,起源于蟲口模型。具體數(shù)學表達如式(1)所示:
wn=uwn-1(1-wn-1)
(1)
其中,u為分支參數(shù),{wn}為得到的混沌序列。當u∈(3.5699,4],wn∈[0,1]時,系統(tǒng)處于混沌狀態(tài)。
(2)超混沌Bao系統(tǒng)。
通過對三維混沌Bao系統(tǒng)進行改進,構建四維超混沌Bao系統(tǒng)[10],其數(shù)學模型如式(2)所示:
(2)
其中,e是控制參數(shù);x,y,z,h是狀態(tài)變量;a,b,c是常數(shù)。當a=20,b=4,c=32,e≥0時,稱系統(tǒng)為超混沌Bao系統(tǒng)。
壓縮感知,是一種信號采樣技術,可在采樣過程中同時完成數(shù)據(jù)壓縮。
圖像本身是一種二維或三維信號,本文算法處理的是二維灰度圖像。假設原始圖像I的大小為N×N,若I可以被稀疏表示,則:
CS_I=Φ1IΦ2T
(3)
其中,Φ1和Φ2為測量矩陣,大小為M×N,對應亞采樣過程,測量矩陣將高維信號I投影到低維空間;CS_I為測量值圖像,大小為M×N,也就是亞采樣后的結果。本文算法中測量矩陣由隨機高斯矩陣構成。
式(3)中,由于M (1)原始圖像I是稀疏的。在某種稀疏基上對原始圖像I進行稀疏表示。常用于稀疏分解的基有傅里葉變換基、小波變換基和離散余弦變換基等。本文采用小波變換基對圖像信號進行稀疏表示,如式(4)所示: S=ΨIΨT (4) 其中,Ψ為稀疏基矩陣,大小為N×N;S為稀疏系數(shù)矩陣,大小為N×N。 (2)Φ1和Φ2需滿足有限等距性質(zhì)RIP(Restricted Isometry Property),但判斷測量矩陣是否具有RIP性質(zhì)是非常困難的。相關研究表明,RIP的等價條件是測量矩陣Φ1、Φ2與稀疏基Ψ不相關,因此可將稀疏圖像S轉化為最小化問題進行求解,如式(5)所示: min‖S‖0subject toCS_I=Φ1SΦ2T (5) 其中,‖S‖0為稀疏系數(shù)矩陣S中非零向量的個數(shù)。 信號的重構就是采用某些算法,利用低維測量信號恢復出高維原始信號的過程。選擇的測量矩陣和重構算法將直接影響重構信號的質(zhì)量。本文采用的測量矩陣為隨機高斯矩陣,重構算法為正交匹配追蹤OMP(Orthogonal Matching Pursuit)算法。 克羅內(nèi)克積是張量積的一種特殊形式,它表示任意2個大小的矩陣之間的運算關系。若A為m×n的矩陣,B為p×q的矩陣,則A?B是一個mp×nq的分塊矩陣,如式(6)所示: (6) 若A和B是線性無關的正交矩陣,根據(jù)KP的性質(zhì),可通過低維的線性無關正交矩陣得到高維的線性無關正交矩陣。本文利用該方法構造CS測量矩陣。 在生物基因?qū)W中,每一條DNA包含4種堿基對,分別為A、T、C和G。其中,A與T互補配對,C與G互補配對。若用二進制表示4種堿基對,則滿足互補配對原則的規(guī)則共有8種,如表1所示。 Table 1 Rules of DNA encoding and decoding 根據(jù)表1的規(guī)則,假設像素值為114,二進制表示為01110010,將其按規(guī)則2進行DNA編碼得到GTAC,再按規(guī)則6解碼得到二進制數(shù)00011011,轉換為十進制即為27。通過一次簡單的DNA編碼和解碼,即可使一個像素值發(fā)生極大改變,這是基于DNA編碼加密圖像的基本原理。在此基礎上再進行DNA序列之間的運算,則可得到更好的圖像加密效果。本文采用的加、減法運算規(guī)則如表2所示,異或、同或運算規(guī)則如表3所示。 Table 2 DNA addition and subtraction operations Table 3 DNA XOR and XNOR operations 圖像壓縮加密解密算法過程如圖1和圖2所示。 Figure 1 Process of encryption圖1 加密過程 Figure 2 Process of decryption圖2 解密過程 假設原始圖像I的大小為N×N,圖像壓縮率為f,測量矩陣降維倍數(shù)為t。壓縮加密過程如下所示: (1)產(chǎn)生混沌序列。 為了抵抗明文攻擊,將原始圖像作為SHA-256哈希函數(shù)的參數(shù),得到256位哈希值D,將D轉化為32個十進制數(shù),表示為di,如式(7)所示: D={di},i=1,2,…,32 (7) 通過式(8)計算過渡參數(shù)X,Y,Z,H,W: (8) 其中,sum(·)表示求和。 通過式(9)計算超混沌Bao系統(tǒng)初始值x0,y0,z0,h0,w0: (9) 其中,floor(·)表示取整,對于不同的原始圖像,混沌系統(tǒng)的初始值完全不同,可以達到一圖一密的效果。 將x0,y0,z0,h0設置為超混沌Bao系統(tǒng)初值,w0設置為Logistic混沌初值產(chǎn)生混沌序列。為了獲得更好的隨機性,丟棄超混沌序列前1 500個元素,取剩下的元素組成4個超混沌序列{Xi},{Yi},{Zi}和{Hi}。利用式(10)將這4個超混沌序列轉化成整數(shù)序列: (10) 其中,{Xi}和{Yi}決定DNA編碼方式,有8種,分別為X1~X8,Y1~Y8;{Zi}決定運算方式,有4種,分別為Z1~Z4;{Hi}表示DNA解碼方式,有8種,分別為H1~H8。 將Logistic混沌序列{Wi}轉化成0~255的整數(shù)序列,再將其轉換為M×N的隨機矩陣,記為R,如式(11)所示: R=mod(floor(W*103),256) (11) (2)構造測量矩陣。 根據(jù)式(4)利用小波變換對原始圖像進行稀疏分解,并在頻域中表示。對稀疏化后的圖像進行Arnold變換。Arnold變換表示如式(12)所示: (12) 其中,L為稀疏化圖像的高,(V,K)為稀疏化圖像的像素點的位置坐標,(v,k)為變換后稀疏化圖像的像素點的位置坐標。 本文利用克羅內(nèi)克積性質(zhì)構造測量矩陣,提出的壓縮感知框架表示如式(13)所示: (13) 其中,I_A為稀疏化后的Arnold變換圖像;P為t×t的隨機高斯矩陣;t為降維倍數(shù),如式(14)所示: (14) 通過隨機高斯矩陣P,可把低維的測量矩陣Φ1和Φ2擴展為高維測量矩陣。根據(jù)式(6)可得到式(15): (15) 因此,Φ1?P的大小為(m×t)×(n×t),也就是M×N。假設原始圖像大小為256×256,圖像壓縮率f=M/N=m/n=0.75,則傳統(tǒng)的壓縮感知測量矩陣維度為192×256。本文對測量矩陣進行降維處理,設降維倍數(shù)t=4,則測量矩陣維度為48×64,極大減小了測量矩陣所需的存儲空間,提高了傳輸效率。 (3)獲得壓縮圖像。 根據(jù)式(13)得到一個壓縮后的M×N測量值圖像,記為CS_I。 (4)DNA編碼。 把矩陣R和矩陣CS_I分成個數(shù)相同、大小相等的若干子塊。利用整數(shù)序列{Xi}和{Yi}分別對矩陣R和矩陣CS_I的子塊進行DNA編碼,整數(shù)序列{Zi}決定子塊之間的DNA運算方式。 對運算完成后的子塊進行DNA解碼,整數(shù)序列{Hi}決定子塊的DNA解碼方式。 (5)獲得加密圖像。 合并所有子塊得到大小為M×N的加密圖像,記為E。 解密過程如下所示: (1)輸入密鑰。 輸入超混沌Bao系統(tǒng)初始值x0,y0,z0,h0和Logistic混沌系統(tǒng)參數(shù)u和初值w0。 (2)產(chǎn)生混沌序列。 通過輸入的密鑰產(chǎn)生混沌序列{Yi},{Zi},{Hi}和{Wi},將其轉化為混沌整數(shù)序列并得到二維隨機矩陣R。 (3)DNA逆編碼。 將加密圖像E和矩陣R分塊,與加密時產(chǎn)生的子塊大小相同。對加密圖像E和矩陣R的子塊進行DNA逆運算,運算法則由整數(shù)序列{Zi}決定。合并所有子塊,得到解密后的測量值圖像CS_I,將CS_I的稀疏度記為ks。 (4)獲得重構圖像。 將矩陣CS_I測量矩陣Φ1、Φ2和稀疏度ks作為輸入調(diào)用OMP重構算法,得到測量前稀疏信號的估計值。最后對該估計值進行小波逆變換和Arnold反變換得到原始圖像的重構圖像I′,其大小為N×N。 本文選擇“Lena”“Couple”和“Watch”3幅256×256的灰度圖像作為測試圖像,仿真軟件為Matlab2016b,設置超混沌Bao系統(tǒng)參數(shù)a=20,b=4,c=32,d=4。Logistic混沌系統(tǒng)參數(shù)為u=3.9999,壓縮率為0.85。仿真結果如圖3所示,其中圖3a,圖3d和圖3g為原始圖像,圖3b,圖3e和圖3h為壓縮加密圖像,圖3c,圖3f和圖3i為重構圖像。 Figure 3 Simulation results圖3 仿真結果 從圖3可以看出,壓縮加密圖像的大小不等于原始圖像的大小,且重構圖像與原始圖像在視覺上并沒有明顯區(qū)別,表明該壓縮加密算法效果良好。 直方圖用于描述灰度級對應的像素數(shù)和每個灰度級出現(xiàn)的頻率,顯示圖像像素的分布規(guī)律,是衡量圖像加密算法性能的重要指標之一。圖4a~圖4f為3幅測試圖像加密前后的直方圖。 從圖4可以看出,原始圖像的直方圖均起伏不定,而加密圖像3個通道的直方圖均分布平坦,具有偽隨機性,可隱藏原始圖像的統(tǒng)計特性,從而可以有效抵御大規(guī)模針對圖像的基于直方圖的統(tǒng)計攻擊。 圖像抵御攻擊的能力與其相鄰位置像素值的關聯(lián)性呈反比關系。為了測試圖像的抗攻擊能力,本文分別隨機選取不同圖像水平、垂直和對角線方向相鄰的5 000對像素點進行分析。相關性系數(shù)的計算如式(16)所示: (16) 其中,xi和yi為位置相鄰的像素值,j為所取像素點對數(shù)5 000。表4給出了不同明文圖像和密文圖像的水平、垂直和對角線相鄰像素的相關系數(shù)??梢钥闯?,原始圖像的水平、垂直和對角線方向的相關性系數(shù)均接近1,說明其相鄰位置像素值關聯(lián)性很大。而加密圖像的相關性系數(shù)均接近0,說明加密圖像的水平、垂直和對角線方向的相鄰位置像素值基本無關聯(lián)性。 表5是本文算法與其他加密算法的相關系數(shù)對比結果。實驗結果表明,本文算法可以大大降低相鄰像素的相關性,加密后圖像的混亂程度更高一些。本文算法優(yōu)于所比較的其他加密算法。 Table 4 Correlation coefficients of adjacent pixels of different images Figure 4 Histograms of test iamges before and after encryption圖4 測試圖像加密前后直方圖 Table 5 Comparison of correlation coefficients of adjacent pixels 峰值信噪比PSNR(Peak Signal to Noise Ratio)和均方誤差MSE(Mean Square Error)是評價圖像質(zhì)量的客觀標準。本文使用PSNR來衡量原始圖像與重構圖像之間的差異。PSNR和MSE的計算公式分別如式(17)和式(18)所示: (17) (18) 其中,M×N表示圖像的大小,R(i,j)和F(i,j)分別表示原始圖像和重構圖像在(i,j)處的像素值。 表6為不同壓縮率下的PSNR值。從表6中可以看出,PSNR值越小,圖像失真越大。當壓縮比為85%或75%時,恢復圖像與原始圖像基本相同。當壓縮比為50%時,PSNR值較小,重構后的圖像質(zhì)量在一定程度上可以接受。因此,本文算法具有良好的壓縮性能,可以減少在網(wǎng)絡中傳輸?shù)膱D像負載。 Table 6 PSNR values with different compression ratios 本文利用信息熵評價圖像像素值的混亂程度。像素分布越均勻,信息熵越大,且越接近理想值8。本文根據(jù)式(19)計算加密圖像的信息熵值: (19) 其中,xi表示像素值,p(xi)表示像素值xi出現(xiàn)的概率。 根據(jù)式(19)計算得到的3幅加密圖像的信息熵值如表7所示。由表7可知,加密圖像的像素分布更具隨機性,且與理論信息熵最大值8非常接近,能有效抵抗信息熵攻擊。 Table 7 Information entropy of different images表7 不同圖像的信息熵 本文使用了超混沌Bao系統(tǒng)參數(shù)初始值x0,y0,z0,h0及Logistic參數(shù)u和初始值w0作為密鑰,共6個密鑰??紤]到計算精度為1015,則密鑰容量為(1015)6=1090≈2276。這是一個巨大的密鑰容量,足以抵抗基于窮舉密鑰的方式來破解圖像。表8給出了本文算法與其他算法的密鑰空間對比。 Table 8 Comparison of key spaces 圖像在傳輸過程中易受到噪聲的干擾和破壞。為了評估所提出的壓縮加密算法的抗噪能力,本文在加密圖像中加入不同程度的高斯噪聲和椒鹽噪聲,重構得到的圖像,如圖5和圖6所示。 Figure 5 Reconstructed images by adding different degrees of Gaussian noise圖5 加入不同程度的高斯噪聲得到的重構圖像 Figure 6 Reconstructed images by adding different degrees of salt pepper noise圖6 加入不同程度的椒鹽噪聲得到的重構圖像 由圖5和圖6可知,隨著加入噪聲的強度增大,圖像越來越模糊,但從直觀視覺上仍然能夠分辨出原始圖像的主要信息,說明此壓縮加密算法抗噪聲能力較強。 加密圖像受到裁剪攻擊時,需要最大程度地保留其細節(jié)信息,將裁剪對圖像整體的影響降到最低。圖7a為加密圖像受到裁剪攻擊后,數(shù)據(jù)丟失了一部分。圖7b為其對應的重構圖像??梢钥闯?,加密圖像被部分裁剪破壞了,重構圖像在一定程度上發(fā)生了變形,但此算法最大程度上降低了裁剪對局部的影響,可以恢復大部分原始信息。這表明本文算法抗裁剪攻擊性能較強,適用于包含細節(jié)信息圖像的加密。 Figure 7 Anti cutting test圖7 抗裁剪測試 本文算法先對原始圖像進行壓縮,再進行加密,縮小了待加密圖像大小,提高了加密效率。進一步地,與傳統(tǒng)壓縮感知加密算法不同的是構造測量矩陣的方式。傳統(tǒng)的壓縮感知加密算法生成的測量矩陣維數(shù)高,在傳輸時會占用更多的帶寬和空間。本文算法通過KP將低維矩陣擴展為高維矩陣,提高了傳輸效率并縮小了存儲空間。 為了更直觀地描述所提出的圖像加密算法的速度,通過Matlab2016軟件記錄加密和解密時間。使用的電腦配置為:Intel Core i5-4460 CPU,8 GB內(nèi)存,操作系統(tǒng)為Windows 7。表9是壓縮率為0.5的情況下,加密和解密不同尺寸的圖像所花費的時間。從表9可以看出,圖像尺寸越大,加密和解密花費的時間越長。 Table 9 Encryption time and decryption time of different images 表10為在加密解密大小為256×256圖像上與傳統(tǒng)壓縮加密算法的時間對比。通過對比可知,本文算法加密解密時間短,效率高,可實時地實現(xiàn)圖像加密和解密。 Table 10 Comparison of encryption time and decryption time 安全的加密算法對明文圖像的任何變化都十分敏感,研究人員通常用像素改變率NPCR(Number of Pixels Change Rate)和統(tǒng)一變化強度UACI(Unified Average Changing Intensity)測試加密算法的抗差分攻擊性能。其計算如式(20)和式(21)所示: (20) (21) 其中,M和N為圖像的高和寬,C′和C為2幅對應明文圖像只有1個像素不同的壓縮加密圖像。若C′(i,j)=C(i,j),則D(i,j)=0,否則D(i,j)=1。對于8位灰度圖像,NPCR和UACI的理想值分別為99.609 4%和33.463 5%。不同圖像的測試結果如表11所示。 Table 11 NPCR and UACI of different images 由表11可知,本文算法對圖像微小變化很敏感,且3幅圖像的NPCR和UACI的平均值分別為99.600 1%和33.462 4%,十分接近期望值。 表12為本文算法和其他文獻算法在對相同Lena圖像進行加密時NPCR和UACI的對比。由表12可得,本文算法具有良好的抗差分能力。 Table 12 Comparison of NPCR and UACI of different algorithms 針對傳統(tǒng)單一圖像加密算法安全性能差和傳輸效率低等問題,本文提出了一種基于壓縮感知和DNA編碼的圖像加密算法。首先,高維超混沌系統(tǒng)保證了高復雜性和高隨機性的優(yōu)點。其次,采用原始圖像作為SHA-256哈希函數(shù)參數(shù),生成混沌系統(tǒng)初始值以抵抗明文攻擊。接著,采用DNA編碼技術保證了圖像加密算法的安全性。最后,通過KP構造測量矩陣,將低維矩陣擴展為高維矩陣,減小了觀測矩陣所需的存儲空間,提升了算法的傳輸效率。仿真實驗與結果分析表明,本文算法壓縮性能良好,運行效率高,重構圖像能夠保留原始圖像的大部分有效信息且能夠抵抗噪聲攻擊、裁剪攻擊和差分攻擊,保證了圖像傳輸時的安全性和快速性。2.3 克羅內(nèi)克積
2.4 DNA編碼技術
3 加密和解密流程
4 仿真實驗與結果分析
4.1 仿真實驗
4.2 直方圖分析
4.3 相鄰位置像素值關聯(lián)性分析
4.4 壓縮性能分析
4.5 信息熵分析
4.6 密鑰空間分析
4.7 抗噪聲能力分析
4.8 抗裁剪能力分析
4.9 運行效率分析
4.10 抗差分攻擊能力分析
5 結束語