周閏昌,黃一平,張柯翔,孫健華
(廣西師范大學(xué) 電子工程學(xué)院,廣西 桂林 541004)
數(shù)字圖像具有直觀、生動的特點,是多媒體信息的重要形式之一,隨著物聯(lián)網(wǎng)和多媒體技術(shù)的發(fā)展,數(shù)字圖像在互聯(lián)網(wǎng)上廣泛傳播。因此,對各種通信網(wǎng)絡(luò)中安全圖像和傳輸?shù)难芯吭絹碓绞苋藗兊年P(guān)注[1]。研究人員研發(fā)了不同類型的技術(shù),如數(shù)據(jù)隱藏[2]、數(shù)字水印[3]和圖像加密[4-6],而最有效、最直接的方法就是圖像加密,將可視化的圖像轉(zhuǎn)化為無法識別的噪聲類圖像。因為圖像相鄰元素具備高度相關(guān)性,傳統(tǒng)的加密方案如數(shù)據(jù)加密標準(DES,data encryption standard)和高級加密標準(AES,advanced Encryption Standard)不適合多媒體加密[4]?;煦缦到y(tǒng)具有偽隨機性、不可預(yù)測性、遍歷性和對初始值和參數(shù)高度敏感性等基本特點[5-6],利用混沌特點進行圖像加密是在密碼學(xué)和計算機研究的熱點。在生成密鑰方面,混沌系統(tǒng)分為低維和高維,且兩者具有不同的優(yōu)缺點。高維混沌系統(tǒng)具有較好的隨機性,數(shù)據(jù)分布更均勻,參數(shù)空間更大,但計算復(fù)雜度高。低維混沌系統(tǒng)具有明顯的計算開銷優(yōu)勢,但它也降低了混沌性能。
人的心臟是極其復(fù)雜的生物系統(tǒng),而心電圖是檢測心率的常用方法,心電信號(ECG,electrocardiogram)在醫(yī)學(xué)領(lǐng)域運用較多,特別是診斷病情和預(yù)防疾病[7],受到很多研究者的歡迎。由于ECG信號很難被復(fù)制和模擬,故近年來,也有研究者將ECG信號用于數(shù)據(jù)加密和傳輸[8],文獻[9]設(shè)計了一種基于自阻塞和ECG信號相結(jié)合的圖像加密算法,ECG信號使用wolf算法生成混沌映射的初始條件,該算法被文獻[10]中使用已知明文攻擊所破譯。
研究者近年來有使用ZigZag標準變換對圖像進行像素的置換[11-13],文獻[14]提出了選擇明文攻擊方法對文獻[12]進行了破譯。有研究者對標準的ZigZag變換方式進行改進,文獻[15]提出從矩陣的主對角線元素進行掃描,進而遍歷整個矩陣;文獻[16]提出從選擇矩陣的任意位置作為起始元素,以Z型方向遍歷整個矩陣,因只是簡單變換在文獻[17]被選擇密文攻擊。以上方法都存在周期短、部分矩陣元素位置始終不變、變換規(guī)則易被破解的缺點。
根據(jù)以上分析,提出了基于ECG信號和混合混沌系統(tǒng)相結(jié)合的數(shù)字圖像加密方案。使用安全散列算法-256(secure hash algorithm-256, SHA-256)函數(shù)以及隨機性強的ECG信號,加大了密鑰空間。該方案采用置亂和擴散技術(shù),通過用3D邏輯映射產(chǎn)生的隨機序列值,進行動態(tài)脫氧核糖核酸(DNA,deoxyribonucleic acid)編碼、改進的ZigZag變換進行圖像置亂以及運算,對圖像進行實時動態(tài)加密。本文方案經(jīng)過安全性能測試和分析,實驗結(jié)果表明,本文算法具有良好的加密性能,并提高了抗常見的攻擊能力。
3D邏輯映射的混沌性能要比1D或者2D邏輯映射有著更好的混沌性能特性,且控制參數(shù)多。采用3D邏輯映射系統(tǒng),定義如公式(1)所示:
(1)
當設(shè)置參數(shù)3.53<α<3.81, 0<β<0.022,0<γ<0.015。xi,yi,zi∈(0,1),3D邏輯映射可產(chǎn)生復(fù)雜的混沌行為。而分段線性混沌映射(PWLCM),定義如式(2)所示:
(2)
其中:xi∈[0,1)和控制參數(shù)pi∈(0,0.5)。PWLCM系統(tǒng)具有良好的遍歷性、混淆性以及均勻的不變性分布,可以為加密系統(tǒng)生成隨機序列。
人體內(nèi)最特殊的信號就是ECG信號,同一個人在兩個不同的時刻與不同人在同一時刻,ECG信號都有很大的差異,如圖1所示。ECG信號采用wolf算法提取特征值,記為∈[-1,1][18]。
圖1 心電信號
DNA全稱為脫氧核苷酸,是由核苷酸組成的,不同的DNA可組成不同的核苷酸。核苷酸包括腺嘌呤(adenine, A)、鳥嘌呤(guanine, G)、胞嘧啶(cytosine,C)和胸腺嘧啶(thymine, T)。參照Watson-Crick堿基配對規(guī)則[19],A總是與T配對,C和G也是如此。則A和T、G與C形成堿基互補。二進制中0和1是互補的,因此00和11互補以及01和10互補,而滿足沃森-克里克互補規(guī)則的只有8種。如表1所示。圖像的像素范圍為0~255,將像素值的十進制轉(zhuǎn)化為二進制,得到8位有效像素值,可以表示為一個長度為4的DNA序列。假設(shè)像素值為198,則二進制為(11000110)2,根據(jù)表中的規(guī)則3,其編碼為ATGC。
表1 DNA編碼規(guī)則
在DNA計算中,DNA的加、減和異或都是根據(jù)二進制編碼來的,如表2~表4所示。
表2 采用DNA編碼規(guī)則1的加法運算
表3 采用DNA編碼規(guī)則1的減法運算
ZigZag變換是一種像素置亂的方法,可以通過選擇矩陣任意位置作為起始元素,然后以Z形路徑遍歷矩陣來實現(xiàn)像素的置亂[16]。假設(shè)選取矩陣的(3,2)位置數(shù),經(jīng)過Z型遍歷整個矩陣,得到新的矩陣,如圖2所示。ZigZag變
表4 采用DNA編碼規(guī)則1的異或運算
換系統(tǒng)是將經(jīng)過Z型變換生成的一維矩陣L分成4個等長的矩陣,矩陣內(nèi)部排序分為順序和逆序,共有16種方式,排序如表5所示。而矩陣間的排序為4個等長矩陣的排序組合,再轉(zhuǎn)換為二維矩陣。
表5 4個等長矩陣的排序
圖2 ZigZag變換
為了提高加密算法對明文圖像和ECG信號的依賴性,利用SHA-256函數(shù)和由3D混沌映射的一個混沌序列{Xi}來計算ZigZag置亂的起始位置、矩陣內(nèi)部排序以及矩陣間排序,改進的ZigZag變換如圖3所示。不同明文圖像和ECG信號可得到不同的初始位置,置亂效果也不一樣,具有很高的置亂率,可提高抵抗選擇明文攻擊和已知明文攻擊的能力。
圖3 ZigZag變換系統(tǒng)
圖像加密算法流程如圖4所示。
圖4 加密算法流程圖
圖像加密算法具體過程如下。
1)假設(shè)明文圖像為I,其大小為M*N,為加強算法對明文圖像的敏感性以及擴大密鑰空間。利用SHA-256哈希函數(shù)生成圖像I的256位哈希值K。并轉(zhuǎn)換為32個十進制數(shù),記為Ki。
Ki={K0,K1,,K31}
(3)
2)3D邏輯混沌映射的初始條件的生成,為了增加初始值的復(fù)雜性,ECG信號使用wolf算法提取特征值λ,在公式(4)和(5)生成3D邏輯映射的初始參數(shù)α,β,γ和初始值x0,y0,z0。
(4)
(5)
為了加強初始值跟明文圖像的敏感性,利用公式(6)對初始值再進行一次更新,得到新的初始值x’、y’和z’。
(6)
式中,|x|表示x的絕對值,floor(x)表示不大于x的整數(shù)。
(7)
(8)
4)分段線性混沌映射系統(tǒng)用初始值迭代1 000+MN次(其中1 000為隨機數(shù)),為了去掉暫態(tài)性,將前1 000次去掉,得到一維混沌序列Ri。并根據(jù)公式(9)進行量化處理,運算得到0~255范圍的整數(shù),得到二維矩陣H。
Ri=floor(Li×1014)mod256
(9)
式中,AmodB表示A除以B的余數(shù)。
5)根據(jù)以下式子對矩陣H進行更新像素值,依次選擇前N/2、后N/2列以及前M/2、后M/2行與明文圖像的哈希值Ki進行計算。
采用第一個DNA編碼規(guī)則,將其轉(zhuǎn)換為M*4N大小的矩陣P。
6)將3D邏輯映射的初始條件進行代入,對混沌系統(tǒng)進行迭代1 000+MN次,同樣為防止發(fā)生暫態(tài)效應(yīng),去掉前1 000次,得到3個混沌序列{Xi}、{Yi}和{Zi}。
7)假設(shè)ZigZag變換的起始元素位置為明文圖像I的(m,n)元素(其中1≤m≤M,1≤n≤N)。明文圖像的哈希值和混沌序列{Xi}動態(tài)選擇起始位置初始值,如式(10)~(11)所示。經(jīng)過ZigZag變換再按著從左到右,從上到下轉(zhuǎn)化為一維矩陣為L(i),i=1,2,3,,mn;其中mn為M*N的結(jié)果值。
(10)
(11)
8)對一維矩陣L進行平均分組,令:
得到4個等長的一維矩陣Li(i=1,2,3,4)。
9)對4個一維矩陣Li(i=1,2,3,4)進行單獨的矩陣內(nèi)部排序,正為保持原有的順序不變,而逆為對一維矩陣進行逆序排序。根據(jù)混沌序列{Xi}和哈希值,動態(tài)選擇矩陣內(nèi)部的排序規(guī)則,如公式(12)所示。假設(shè)值為7,根據(jù)表所示,L1和L4保持原有的順序,而L2和L3則為逆序。
(12)
(13)
變換后的一維矩陣轉(zhuǎn)化為從左到右、從上到下的大小為M*N的二維矩陣Q1。
11)將置換矩陣Q1轉(zhuǎn)換成0~255范圍的整數(shù),根據(jù)DNA編碼共有8種不同的標準規(guī)則,混沌序列{Yi}通過公式(14)計算的結(jié)果值來確定置亂圖像Q1的動態(tài)DNA編碼方式,并生成大小為M*4N的矩陣Q2。
y(i)=floor(Yi×104)mod8+1
(14)
12)經(jīng)過DNA編碼的矩陣Q2與矩陣P進行動態(tài)DNA運算得到矩陣Q3。而運算方式有三種,由混沌序列{Zi}通過式(21)計算的結(jié)果來確定選擇運算方式,式(14)如下所示:
z(i)=floor(Zi×104)mod3+1
(15)
其中:z(i)為1時,DNA運算為加法,當為2時,DNA運算為減法,當為3時,DNA運算為異或。
13)DNA解碼對應(yīng)有8種編碼規(guī)則,由式(16)~(21)的結(jié)果值共同決定解碼規(guī)則進行動態(tài)解碼,如式(16)所示,并獲得密文圖像C。
w=(m+n+v1+v2+y(i)+z(i))mod8+1
(16)
解密過程是加密過程的逆運算操作。
實驗硬件環(huán)境為1.7 GHz的Intel處理器,內(nèi)存為4.0 G,仿真軟件為Matlab R2016a,運行在64位的Windows 10操作系統(tǒng)。不同一個人以及不同時刻的ECG信號如圖1所示。通過wolf算法提取ECG信號的特征值和SHA-256產(chǎn)生的哈希值來控制混合混沌系統(tǒng)的初始條件。以256×256的Lena和Cameraman明文圖像和512×512的Peppers明文圖像的標準灰度圖像作為明文圖像進行實驗分析。圖5分別為明文圖像、對應(yīng)的密文圖像以及解密之后的圖像。
密鑰空間是用于加密的密鑰的數(shù)量,一個較大的密鑰空間超過2100可以抵抗窮舉攻擊[20]。本文算法使用了Physionet在線數(shù)據(jù)庫[21]的1 000個樣本的ECG信號和SHA-256哈希函數(shù)生成256位哈希值來生成混合混沌系統(tǒng)的初始條件和ZigZag變換的初始位置。如果心電信號中存在一個樣本移位或明文圖像改變一個像素,則無法解密出正確的明文圖像。也可選用文獻[8]提出的心電采集裝置進行實時測試。因此該算法的密鑰空間足夠大,可抵抗窮舉攻擊。
圖5 加密解密效果
圖6顯示出了圖像像素強度值的分布。優(yōu)異的加密算法使密文圖像的直方圖是近似均勻分布的。如圖6(a)~(c)為明文圖像的直方圖,而圖6(d)~(f)為對應(yīng)的加密圖像直方圖,加密圖像在[0,255]區(qū)間內(nèi)呈現(xiàn)均勻的分布,相對于不同類型的明文圖像,該加密系統(tǒng)對圖像加密具有良好的分散功能,可抵抗統(tǒng)計攻擊。
圖6 明文和密文的直方圖
明文圖像的相鄰元素點的相關(guān)性比較高(接近于1),然而一個優(yōu)秀的算法,可以使相鄰像素點的相關(guān)性變得更小(接近于0),可以抵御任何蠻力攻擊。分別從明文圖像和密文圖像中隨機選取1 000對像素點,根據(jù)公式(17)~(20)來計算兩相鄰像素點的水平、垂直和對角線上方向的相關(guān)性,并與近年的圖像加密算法文獻進行對比,結(jié)果如表6所示。由表6看出,密文圖像相鄰像素的相關(guān)系數(shù)要接近于0,對比其他文獻,本加密算法具備更好的抗攻擊能力。
表6 相鄰像素點比較
(17)
(18)
(19)
(20)
式中,E(x)和D(x)分別是變量x的期望和方差,x和y為明文和密文中同一位置兩個像素的灰度值,cov(x,y)為像素x和y處的協(xié)方差,rxy為相關(guān)系數(shù)。
信息熵是反映出圖像灰度值的分配和隨機性,像素值分布越均勻,圖像的信息熵就越大。信息熵的公式為:
(21)
式(21)中,P(xi)是像素值為xi出現(xiàn)的概率,n是圖像像素的個數(shù)。密文圖像信息熵的理想值為8。本文提出算法得到密文圖像的信息熵如表7所示,并與同近年的圖像加密方案文獻進行對比。結(jié)果表明,本加密算法的信息熵數(shù)值接近理想值8,能夠有效抵抗信息熵的攻擊。
表7 信息熵比較
攻擊者經(jīng)常使用加密算法對變換前后的明文圖像進行加密,通過對兩幅密文圖像的比較,找出明文圖像與密文圖像之間的聯(lián)系。這種類型的攻擊稱為差異攻擊[25]。通常用像素變化率(NPCR)和歸一化平均變化強度(UACI)這兩個指標來衡量抗差分攻擊的能力,其表達式如下:
(28)
(29)
(30)
C1(i,j)和C2(i,j)為兩幅密文圖像在(i,j)坐標的灰度值,且對應(yīng)的兩幅大小為M*N的明文圖像只有一個像素值的不同。
為了測試明文圖像的敏感性,從明文圖像中隨機選取一個像素值,并在同一位置的像素值進行更改,得到修改的明文圖像。使用同一密鑰對明文圖像和修改的明文圖像進行加密處理,生成2個密文圖像。測試中采用3張不同的明文圖像,比較不同方案的NPCR和UACI數(shù)據(jù),如表8和表9所示。從表中可以看出,本文算法的NPCR和UACI測試數(shù)據(jù)接近理論理想值(NPCR≈99.609 4%,UACI≈33.463 5%),優(yōu)于其他方案,因此具有較強的抗差分攻擊能力。
表8 NPCR(%)的比較
表9 UACI(%)的比較
基于混合混沌系統(tǒng)和ECG信號,提出了一種新的圖像加密算法。首先利用3D邏輯混沌系統(tǒng)產(chǎn)生的混沌序列對明文圖像進行像素隨機置亂和動態(tài)DNA編碼,像素隨機置亂是基于改進的ZigZag變換,具有很高的置亂率;PWLCM混沌映射生成的偽隨機矩陣與置亂圖像進行動態(tài)DNA運算達到像素的散亂,可得到密文圖像?;旌匣煦缦到y(tǒng)的初始值和初始參數(shù)不僅跟明文圖像的哈希值有關(guān),還跟ECG信號的特征值有關(guān),兩者都具有很強的隨機性;且對ZigZag變換的起始位置以及序列的置亂起了決定性作用,不僅大大增強了密鑰的敏感性,也提升了密鑰空間,加強了算法的可靠性。與其他方案的數(shù)據(jù)進行對比分析,該方案具有良好的加密性能,提高了抵抗選擇明文攻擊、已知明文攻擊、窮舉攻擊和差分攻擊的能力。