徐錫統(tǒng),陳圣波,于巖
(吉林大學(xué) 地球探測科學(xué)與技術(shù)學(xué)院,長春 130026)
隨著數(shù)字化與信息化的快速發(fā)展,遙感技術(shù)在現(xiàn)階段已經(jīng)應(yīng)用于多個領(lǐng)域,遙感圖像作為遙感技術(shù)的基礎(chǔ)和支撐,在遙感的相關(guān)應(yīng)用領(lǐng)域具有重要地位。在國土資源開發(fā)、土地利用規(guī)劃等領(lǐng)域,所涉及的遙感圖像含有較多的重要敏感信息。因此,確保遙感圖像在數(shù)據(jù)傳輸方面的安全性十分重要。近年來,有許多和圖像安全相關(guān)的技術(shù)陸續(xù)提出,如數(shù)字水印[1]、信息隱藏[2]與圖像加密[3-4],這些技術(shù)同樣被應(yīng)用于遙感圖像當(dāng)中,但是仍存在一些不足之處。例如,基于橢圓曲線密碼體制進行加密,保證了在開放互聯(lián)網(wǎng)環(huán)境中的傳輸效率,但加密后的遙感圖像仍能表達(dá)一定信息[5];基于可逆元胞自動機進行加密,混亂特性與擴散特性較好,但加密效率較低,且抗窮舉攻擊能力較弱[6]。
在考慮圖像特性的基礎(chǔ)上,多種用于圖像加密的技術(shù)手段被陸續(xù)提出,如壓縮感知[7]、DNA編碼[8]、混沌系統(tǒng)[9]等。相比于其他加密方法,由于混沌具有初值敏感性、不可預(yù)測性與遍歷性等內(nèi)在特性,混沌系統(tǒng)廣泛應(yīng)用于圖像加密當(dāng)中[10]。使用低維混沌映射具有結(jié)構(gòu)簡單、加密時間短等特點,但其密鑰空間較小,且混沌序列的隨機性較差,易受到窮舉攻擊,無法充分保證加密結(jié)果的安全性[11]。高維混沌映射結(jié)構(gòu)復(fù)雜,參數(shù)較多[12],具有更大的密鑰空間,但同時擁有較高的計算難度與較大的計算復(fù)雜度[13]。
遙感圖像具有信息較多、數(shù)據(jù)量大的特點,具有復(fù)雜的光譜特性[14],不同波段對于不同地物的識別能力不同,并且能夠反映出不同的紋理特征[15]。因此,使用高維混沌映射對遙感圖像進行加密時,會由于大量的浮點運算降低加密效率[16]。此外,由于遙感圖像的數(shù)據(jù)量大,混沌系統(tǒng)所生成的混沌序列會出現(xiàn)不能對圖像信息有效加密的情況,在數(shù)據(jù)量較小的圖像中適用的加密方法對于遙感圖像而言加密效果可能會有所下降。
本文提出了一種結(jié)合小波包變換與多種低維混沌映射和改進后的混沌神經(jīng)元的遙感圖像加密方法,使用小波包變換對不同波段的遙感圖像進行分解,將遙感圖像中低頻信號的主體地物信息與高頻信號的紋理信息分離,并對分離后的高頻信號進行自適應(yīng)分類處理,對低頻信號與提取所得的紋理豐富的高頻信號進行不同方式的加密。使用SHA-256算法將初始密鑰與遙感圖像相結(jié)合,對小波包變換后的圖像與小波包逆變換后的圖像分別進行置亂與擴散,加密方法中初始密鑰完全由原始遙感圖像生成,增大了密鑰空間與加密算法的可靠性。實驗證明,本文方法能夠?qū)崿F(xiàn)對遙感圖像的有效加密,保證了加密后圖像的安全性。
小波包變換(wavelet packet transform,WPT)常用于對圖像進行分解得到高頻信號與低頻信號。相比于小波變換,小波包變換對于圖像的分解更加精細(xì),尤其是高頻信息豐富的圖像。遙感圖像具有豐富的紋理信息,使用小波包變換對遙感圖像進行分解能夠更加細(xì)致地提取出紋理信息。自適應(yīng)分類能夠?qū)D像中含有不同信息量的信號進行歸類,并分別處理[17]。以本文所用遙感影像的藍(lán)波段為例,離散二階小波包變換如圖1所示。
圖1 離散二階小波變換圖
圖1左上角的低頻信號Si涵蓋了遙感圖像的主體信息,剩余15個信號分量分別表達(dá)出不同程度的遙感影像的紋理信息。對于15個信號分量分別求取標(biāo)準(zhǔn)差,表達(dá)如式(1)所示。
(1)
式中:xi為矩陣中的單個元素;N為矩陣中元素總數(shù);r為矩陣中元素的算數(shù)平均值。
對所得15個信號分量的標(biāo)準(zhǔn)差進行判斷,σi<1的信號分量幾乎無法反映有效的紋理信息,表示為Pi。對除Pi外的信號分量標(biāo)準(zhǔn)差求均值σmean,對信號分量進一步分類處理,自適應(yīng)分類算法如圖2所示。
圖2 自適應(yīng)分類算法流程圖
圖2中,信號Pi表示標(biāo)準(zhǔn)差小于1的分量,這些分量幾乎無法反映有效紋理信息;信號Mi與Oi分別表示在去除信號Pi后標(biāo)準(zhǔn)差小于和大于剩余信號標(biāo)準(zhǔn)差均值的分量;分量Mi只能反映少量的紋理信息;信號Oi能夠反映較多的紋理信息。
加密算法引入兩種一維混沌映射[18],其描述如式(2)、式(3)所示。
Xn+1=ul×Xn×(1-Xn)×214-floor
(ul×Xn×(1-Xn)×214)
(2)
Yn+1=us×sin(π×Yn)×214-floor
(us×sin(π×Yn)×214)
(3)
兩種一維混沌映射分別由雙logistic與雙sine映射組成,命名為LLS(logistic-logistic system)和SSS(sine-sine system),且均具有較好的混沌性質(zhì)與較大的密鑰空間。當(dāng)0
圖3 混沌分叉圖
本文在加密方法中使用改進Chen等提出的混沌神經(jīng)網(wǎng)絡(luò)所得到的始終保持混沌狀態(tài)的混沌神經(jīng)元動力系統(tǒng)。Chen混沌神經(jīng)網(wǎng)絡(luò)中的混沌神經(jīng)元如式(4)所示。
(4)
式中:xn和yn分別為神經(jīng)元的輸入和輸出;I0為常數(shù);I0>0,ε為激勵函數(shù)的陡度參數(shù);k為阻尼因子,0≤k≤1;β為模擬退火參數(shù),0<β<1;zn為自反饋項。
隨著模擬退火速度的增加,自反饋項前系數(shù)遞減,混沌神經(jīng)元處于混沌搜索狀態(tài)的時間越短。因此,當(dāng)模擬退火速度為零時,能夠使混沌神經(jīng)元始終保持混沌狀態(tài),得到始終保持混沌狀態(tài)的混沌神經(jīng)元動力系統(tǒng)[19]。本文為增強混沌神經(jīng)元所生成混沌序列的可靠性,提升混沌神經(jīng)元的加密效果,在混沌神經(jīng)元中加入式(5)所示變換,式中N的取值在給定區(qū)間內(nèi)均能有效增強混沌神經(jīng)元的混沌現(xiàn)象,本文實驗中N始終取14。原始的混沌神經(jīng)元狀態(tài)圖、改進后的混沌神經(jīng)元狀態(tài)圖與最大lyapunov指數(shù)演化圖如圖4所示。根據(jù)圖4,改進后的混沌神經(jīng)元相比于原始的混沌神經(jīng)元,在生成混沌序列的范圍與混沌性質(zhì)上都有明顯的提升,因此具有更強的魯棒性和更好的加密效果。
yn=yn×2N-floor(yn×2N),8≤N≤20
(5)
圖4 混沌神經(jīng)元動力系統(tǒng)
首先,根據(jù)遙感圖像使用SHA-256函數(shù)計算哈希值,并生成初始密鑰,使遙感圖像與密鑰關(guān)聯(lián),增強加密算法的明文敏感性。接著,將密鑰分別輸入混沌系統(tǒng)迭代,生成混沌序列。最后,對遙感圖像進行小波包變換,分解出四種不同信號,使用SSS與LLS所生成的混沌序列對不同信號進行置亂,進行小波包逆變換,使用改進的混沌神經(jīng)元系統(tǒng)進行像素值擴散,得到密文圖像。整體加密流程如圖5所示。
圖5 加密流程圖
步驟1:輸入單波段遙感圖像,轉(zhuǎn)換為M×N的二維矩陣E,矩陣行列數(shù)與單波段遙感圖像相同,輸入輔助初始密鑰a1、a2、a3、a4。
步驟2:將E輸入SHA-256函數(shù)中,生成64位的16進制哈希值,按順序分別取16個4位的元素形成初始密鑰集Ki(i=1,2,…,16)。
步驟3:根據(jù)所得初始密鑰集Ki(i=1,2,…,16),通過式(6)和式(7)計算LLS的初始密鑰ul、X0,SSS的初始密鑰us、Y0,改進混沌神經(jīng)元的初始密鑰k、I0、z0、y0,改進的混沌神經(jīng)元的初始參數(shù)為ε=0.004、β=0。
g(x)=hex2dec(x)
(6)
(7)
步驟4:對E進行二階離散小波包分解,得到16個信號分量,信號分量大小均為m×n,將除低頻信號Si外的15個信號分量進行自適應(yīng)分類,得到Pi、Mi、Oi,其中Si含有遙感影像中的主體信息,Oi含有遙感影像中大部分的紋理信息。Pi、Mi含有極少量紋理信息,因此只需對Si、Oi進行置亂,有效提高了加密效果,且減少了加密過程中的運算量。
步驟5:將從步驟3中得的初始密鑰ul、x0輸入LLS,迭代1 000次消除混沌的暫態(tài)效應(yīng),繼續(xù)迭代m×n次,生成混沌序列L。同理,通過SSS,產(chǎn)生混沌序列S。
步驟6:將Si與Oi中的信號分量均按行展平為一行長度為m×n的向量,對混沌序列L與混沌序列S分別進行排序,使用混沌序列L對信號分量Si所形成向量進行置亂,使用混沌序列S對信號分量Oi中的信號分量所形成向量進行置亂,具體置亂過程以混沌序列L為例,如圖6所示。置亂完成后,按行重新構(gòu)建大小為m×n的矩陣。
圖6 置亂過程
步驟7:對置亂后的S′i、O′i與未置亂的Pi、Mi進行二階離散小波包逆變換,得到M×N的矩陣H。
步驟8:將從步驟3中所得初始密鑰k、I0、z0、y0輸入改進的混沌神經(jīng)元系統(tǒng),產(chǎn)生混沌序列D,帶入式(8),得到混沌序列D′,使用D′對H進行如式(9)所示的擴散操作,得到密文圖像H′。解密為加密的逆過程。
D′=(floor(D)×108)mod256
(8)
H′=D′⊕H
(9)
實驗使用6 908像素×7 300像素的GF-2多光譜遙感影像,在MATLAB 2017a環(huán)境下進行仿真,分別將藍(lán)波段、綠波段、紅波段、近紅外波段作為明文圖像進行加密。由于GF-2影像所含信息量大,為觀察圖像整體加密效果,首先以藍(lán)波段為例,對明文圖像和密文圖像進行對比,如圖7所示。為觀察圖像局部加密效果,選擇5個觀察點,如圖8所示。以觀察點為中心,選取300像素×300像素的矩形對加密效果進行檢驗,以藍(lán)波段為例,如圖9所示。圖9中,左圖均為原始圖像藍(lán)波段中的觀察點所在位置,右圖均為加密后圖像藍(lán)波段中的觀察點所在位置,結(jié)果表明加密效果良好。
圖7 藍(lán)波段明文圖像和密文圖像
圖8 選取觀察點
圖9 觀察點加密效果
信息熵是一種衡量數(shù)字圖像信息純度的標(biāo)準(zhǔn),信息熵隨著數(shù)字圖像所含信息不確定性的增加而增加,計算如式(10)所示。
(10)
式中:n表示一幅圖像的灰度等級;p(Xi)表示灰度值Xi出現(xiàn)的概率。對于一幅灰度等級為256的完全隨機圖像而言,H(x)的理論值為8,信息熵越接近理論值,圖像所表達(dá)出的有用信息越少[20]。表1將GF-2影像不同波段的明文圖像與密文圖像信息熵進行記錄,各波段信息熵均接近理想值,加密效果較好。
表1 比較不同加密方案的信息熵
在評價加密方法對于圖像信息隱藏的程度時,可以使用密文圖像不同方向上的相鄰像素點的相關(guān)系數(shù)作為重要的評價指標(biāo)。一般而言,使用水平方向、垂直方向和斜線方向三個方向上的相鄰像素計算相干性[21]。相關(guān)性計算如式(11)所示。
(11)
式中:x、y為遙感圖像不同波段中相鄰像素的灰度值;ρxy表示兩個相鄰像素間的相關(guān)系數(shù)。表2列出了GF-2影像不同波段在加密前后的相關(guān)性。從表2可以看出,不同波段密文圖像在三個方向上相關(guān)系數(shù)均趨近于零,近似隨機分布,有效隱藏了遙感信息。
表2 GF-2影像不同波段在加密前后的相關(guān)系數(shù)
灰度直方圖是指通過統(tǒng)計灰度圖像中像素的灰度值,得到整幅灰度圖像中每種灰度級的像素的個數(shù),進而反映灰度圖像中不同灰度級的出現(xiàn)頻率[22]?;叶戎狈綀D作為圖像的基本統(tǒng)計特征之一,其橫坐標(biāo)通常為灰度級,縱坐標(biāo)為該灰度級所出現(xiàn)的頻率。下面通過GF-2影像不同波段的明文圖像、密文圖像的直方圖,對加密效果進行評價,計算所得灰度直方圖如圖10所示。
圖10 藍(lán)、綠、紅、近紅外波段灰度直方圖
差分攻擊是一種通過對比明文修改后所得密文與原密文之間的異同,從而進行破譯密碼的手段。本實驗使用像素改變率(number of pixel change rate,NPCR)與一致平均改變強度(unified average changing intensity,UACI)兩個指標(biāo)定量分析加密算法抵抗差分攻擊的能力[23]。
定義P1表示加密后的密文圖像;P2表示改變明文圖像一個像素點后加密的密文圖像;P1(i,j)和P2(i,j)為兩幅圖像在點(i,j)的像素值。二維矩陣B與P1和P2大小相同,在點(i,j)處,若P1(i,j)=P2(i,j),則B(i,j)=0,若P1(i,j)≠P2(i,j),則B(i,j)=1。NPCR、UACI的計算如式(12)、式(13)所示。
(12)
(13)
式中:M和N分別為矩陣的行數(shù)與列數(shù)。
在理想情況下,NPCR值為0.996 1,UACI值為0.334 6,計算結(jié)果越接近理想值,表明加密方法的抗差分攻擊能力越好。針對遙感圖像不同波段,計算所得NPCR和UACI的值如表3所示。通過觀察表3能夠得出,在一定的誤差范圍內(nèi),加密方法對GF-2影像不同波段的NPCR與UACI均接近理想值,表明加密算法能夠較好地抵御差分攻擊。
表3 NPCR與UACI計算結(jié)果 %
密鑰敏感性測試是指對解密密鑰進行微小變化,得到新的解密密鑰,使用改變后的解密密鑰對加密圖像進行解密,判斷加密算法對密鑰是否敏感的方法。若能從錯誤解密后的圖像中獲取遙感信息,則證明加密算法對于密鑰變化不敏感,安全性差;反之,加密算法對密鑰的變化敏感,安全性高。
本節(jié)對GF-2影像不同波段的解密密鑰中初始變量y(0)改變10-15,并將其用于解密。為定量判斷原圖像與錯誤解密圖像之間的差異,引入均方誤差對圖像間的灰度變化進行度量[24]。定義D(i,j)為改變后圖像,B(i,j)為原圖像,均方誤差EMS的計算如式(14)所示。
(14)
式中:M和N分別為矩陣的行數(shù)與列數(shù)。
所得結(jié)果如表4所示。由表4可知,即使單一密鑰改變值為10-15,錯誤解密圖像和原始圖像之間也存在很大的均方誤差,基本與加密圖像和原始圖像之間的均方誤差相同,無法從錯誤解密圖像中獲取有效信息;且正確解密圖像和原始圖像之間均方誤差為0,能夠完全恢復(fù)圖像中的信息,表明本文加密方法對于遙感圖像的加密具有較高的安全性。
表4 不同波段灰度均方差
本文加密方法的密鑰由LLS的初始密鑰ul、X0,SSS的初始密鑰us、Y0,改進混沌神經(jīng)元的初始密鑰k、I0、z0、y0構(gòu)成,八個初始密鑰均由輔助初始密鑰a1、a2、a3、a4,以及256 bit的SHA-256值生成。通常可認(rèn)為a1、a2、a3、a4的精度為1014,可得本文加密方法密鑰空間為1014×1014×1014×1014×2256,遠(yuǎn)大于文獻(xiàn)[25]中指出的安全密鑰空間2100,可得本文方法的密鑰空間能夠抵御蠻力攻擊。
本文基于小波包變換、兩種低維混沌映射與改進的混沌神經(jīng)元動力系統(tǒng),提出了一種針對遙感圖像的加密方法。該方法用SHA-256函數(shù)使初始密鑰與GF-2影像相關(guān)聯(lián),有效提高了加密算法的明文敏感性,增強了加密方法的可靠性。文章使用小波包變換實現(xiàn)GF-2影像主體信息與紋理信息的分離,并對所得信號分量進行自適應(yīng)分類處理,對低頻信號與紋理信息豐富的高頻信號進行不同方式的加密,在有效隱藏遙感信息的同時提升了加密效率;在進行小波包逆變換后,使用改進的混沌神經(jīng)元動力系統(tǒng)對明文圖像進行像素值擴散,提高擴散效果,實現(xiàn)了遙感信息的充分隱藏。通過仿真實驗,將本文加密方法實際應(yīng)用于整幅GF-2影像中,使用相關(guān)性、信息熵、直方圖等多項指標(biāo)驗證了各個波段的加密效果,能夠直觀體現(xiàn)出本文加密方法具有優(yōu)良的安全性、充分的魯棒性與密鑰敏感性,適用于數(shù)據(jù)量大且信息豐富的遙感圖像。