王垚飛,張衛(wèi)明,陳可江,周文柏,俞能海
(1. 中國科學技術大學網絡空間安全學院,安徽 合肥 230027;2. 中科院電磁空間信息重點實驗室,安徽 合肥 230027)
隱寫是用于隱蔽通信的技術,它將秘密消息以不可感知的形式隱藏在內容公開的載體中,在保護秘密通信內容的同時隱藏了通信行為。自適應隱寫通信系統(tǒng)如圖1所示,近年來,隨著圖像成為流行的社交媒體,基于圖像的隱寫算法研究成為熱點,針對圖像的主流隱寫都是自適應隱寫,基于最小化失真隱寫框架,即在負載率一定時最小化總失真。失真通常由失真函數衡量每個圖像元素修改所產生的影響來獲得。一般情況下,由于隱寫在各個元素上的修改對失真的影響是不獨立的,基于最小化失真框架很難求解,因此研究人員假設隱寫在各個位置上的修改對失真的影響是獨立的,即為加性隱寫模型。目前的 STC(syndrome-trellis code)[1]和SPC(steganographic polar codes)[2]在給定嵌入率下,能夠在加性模型下接近失真理論界。
圖1 自適應隱寫通信系統(tǒng)Figure 1 Adaptive steganography communication system
大量流行的圖像隱寫自適應失真函數設計都是加性的,根據嵌入域將它們分為空域與JPEG域,其中針對空域圖像的失真函數有:HUGO(highly undetectable stego)[3],WOW (wavelet obtained weights)[4],S-UNIWARD(spatial-universal wavelet relative distortion)[5],HILL(high-pass,low-pass and low-pass)[6],MG(multivariate gaussian),[7]和MiPOD(minimizing the power of optimal detector)[8]等,針對JPEG 域的失真函數有:J-UNIWARD(jpeg-universal wavelet relative distortion)[5],UED(uniform embedding distortion)[9],RBV(residual block values)[10]和BET(block entropy transformation)[11]等。為了更好地定義加性失真函數,學者們提出了3個基本原則:復雜度優(yōu)先原則、擴散原則和爭議元素優(yōu)先原則。
雖然基于加性失真的模型設計在技術上更容易處理,但顯然沒有反映實際的失真變化情況。早在自適應隱寫設計之初,研究人員就已經開始考慮該問題,Filler和Fridrich使用Gibbs結構[12]進行了首次嘗試,通過將宏觀特征表達成局部特征的總和,該方法在HUGO-BD(HUGO- bounding distortion)[3]中實現并顯示了其有效性,但其安全性仍弱于最近提出的加性失真方案。如何建立有效的非加性隱寫方案,一直困擾隱寫領域的研究者。在2013年的國際信息隱藏大會上[13]:設計非加性隱寫編碼和非加性隱寫失真函數被列入隱寫領域的兩個公開問題。2014年,Holub等[5]提出了基于小波函數定義的通用的失真函數UNIWARD,設計之初它的失真定義方式是非加性的,即考慮了其他元素的修改對當前元素失真所造成的影響,但沒有很好的非加性失真隱寫編碼方案,最終將該失真近似為加性失真用于嵌入。2015年,非加性失真函數的設計有了新的突破,Li等[14]和Denemark等[15]同時提出了方向一致性原則并將該原則用于非加性失真函數的定義,有效地提升了原有加性失真函數的安全性。隨后Zhang等[16]提出了聯合失真分解編碼方法DeJoin,將非加性編碼問題等效分解成幾個加性編碼問題,從而實現了快速嵌入。隨后,在JPEG域也出現了更多的原則和方案來優(yōu)化基于非加性失真的嵌入,如BBC[17]、BBC++[18]和BBM[19]等原則。
針對現有的非加性隱寫的研究,參考2013年的公開問題,將其分為兩大類:非加性隱寫編碼研究和非加性失真函數研究。非加性失真函數研究又分為3類:① 基于理論模型的非加性失真函數,即以理論模型為指導優(yōu)化失真函數的設計;② 基于修改原則的非加性失真函數,即以某種原則為指導來更新失真函數;③ 基于對抗檢測的非加性失真函數設計,即通過直接考慮抵抗檢測器的嵌入來設計非加性失真函數。
下面首先介紹最小化失真隱寫框架,然后概述加性失真函數設計原則,在此基礎上詳細介紹非加性隱寫模型。
不失一般性,設載體為x= (x1,…,xn)?X?In,對于空域圖像,典型地,I={0,1,…, 255},嵌入消息后的載密樣本為y= (y1, …yn)?Y?X,π(y) ?P(y|x)表示修改轉移分布(亦稱為修改分布),不同的分布對應不同的嵌入處理操作,記Y=I1×I2×…×I n,Ii?I。本文只考慮三元嵌入,有Ii= {xi- 1,xi,xi+ 1} ,xi≠ {0 ,255}。對應特定的x,不同的y代表不同的嵌入方法,該修改方法下的總體失真定義為D(y) ?D(x,y),可稱為總失真函數。由于存在元素嵌入之間的相互影響,D(y)是每個元素失真上的加性總和。一般情況下,根據信息論理論,隱寫的信息傳輸量(消息量)為分布函數π(y)的熵:
平均總失真為
在隱寫中,通常假設需要發(fā)送的隱秘消息量m是確定的,此時最優(yōu)嵌入問題要最小化平均總失真,可以歸結為求解限負載發(fā)送問題
在計算中,往往需要給出D(y)的具體形式。但是由于每個元素嵌入之間存在相互影響,很難精確地給出D(y)的具體形式。在此通??紤]加性失真的情況,設iρ表示僅xi被修改為yi所引起的失真,在加性模型下,假設每個元素的修改不相互影響,總體失真是每個元素上修改所造成失真的和,即
假設π(yi)是xi被修改為yi的修改概率,那么最小化失真的優(yōu)化問題轉化為
對應的最優(yōu)修改概率λπ為
以上即為最小化失真隱寫框架,由于加性失真容易刻畫和求解,常見的自適應隱寫一般基于失真的加性模型設計。以最小化加性隱寫失真為目的的隱寫嵌入,其中兩個關鍵技術就是隱寫編碼和隱寫失真的設計。鑒于采用隱寫編碼 STC[1]和SPC[2]可以在接近加性失真的理論界的條件下完成消息的嵌入和提取,留下的另一個問題就是對加性失真函數的設計和非加性隱寫設計。
目前的非加性失真模型都是以加性模型為基礎的,其失真也是基于加性失真改進設計的,因此本文總結了加性失真函數設計的3項基本原則。
(1)復雜度優(yōu)先原則
該原則是最重要的原則,它的理念是對高復雜度和噪聲區(qū)域的元素分配較低的修改失真。因為這些難以預測的復雜區(qū)域和噪聲區(qū)域難以建模,在這些區(qū)域的修改對應于隱寫分析特征的變化較小,從而難以被檢測到。目前許多隱寫失真函數都基于這一基本原則[4-6]。
(2)擴散原則
它的理念是要求相鄰元素的修改失真差異不應過大[20]。換句話說,當一個元素具有較高或者較低的修改失真時,相鄰元素也應當具有相當的修改失真,該原則已經被成功地應用于空域圖像[6,20]和JPEG圖像中[21]。
(3)爭議元素優(yōu)先原則[22]
該原則認為,當性能相當的基礎失真函數對同一元素的失真定義有很大差別時,應當對這種爭議元素賦予更低的修改失真以鼓勵其修改。
本節(jié)探討非加性隱寫方法,根據這些方法的特點,本文將現有的非加性隱寫研究分為兩大類:非加性隱寫失真設計和非加性隱寫編碼設計。
對于非加性隱寫失真設計,根據設計的目標和過程將其分為3類(如圖2所示)。第一類是基于理論模型的非加性失真函數設計,即以理論模型為指導優(yōu)化失真函數的設計,最早期的非加性失真設計采用該方法,如Gibbs構造[12];第二類是基于修改原則的非加性失真函數設計,即以某種原則為指導來更新失真函數,如CMD[14],目前大多數方法屬于這一類,簡單有效;第三類是基于對抗檢測的非加性失真函數設計,即通過直接考慮抵抗檢測器的嵌入來設計非加性失真函數,如早期對抗手工特征檢測器的HUGO-BD[3]和現在對抗深度學習的檢測器ADV-EMB[23]等,利用深度學習捕捉元素相關性的優(yōu)勢來指導非加性失真的調整。研究人員在設計失真函數的同時,為了更多地考慮相關性,往往會結合多種方法,如ITE-SYN[24]既采用了修改原則的方式又采用了對抗檢測的方式。以下將詳細介紹這3類非加性失真函數設計。
圖2 圖像非加性隱寫失真分類Figure 2 Classification of image non-additive steganographic distortion
(1)基于理論模型的非加性失真函數設計
最早的非加性失真方案是采用Gibbs構造[12]模擬嵌入變化之間的相互作用,通過將宏觀特征寫成局部特征函數的總和,為加性失真函數創(chuàng)建了一個上限。為了進一步簡化該方案,Filler等將載體輸入區(qū)域相互隔離,采用迭代的方式優(yōu)化最優(yōu)嵌入,該方法中的載體劃分方案為后來的基于修改原則的非加性方法提供了參考,HUGO-BD[3]就是采用Gibbs構造的非加性隱寫。類似地,為了進一步考慮不同嵌入單元的相互作用,Su等提出了一種基于高斯馬爾可夫隨機場(GMRF)[30]的圖像隱寫算法,將圖像隱寫任務表示成在給定嵌入容量下最小化載體和載密分布KL-散度的優(yōu)化問題。Hu等[29]通過考慮相鄰元素的影響,提出了基于模型的非對稱隱寫框架ASYMM,通過在嵌入時采用方向一致性原則,將相鄰修改通過高斯混合模型進行優(yōu)化。以上方法的性能和特點如表1所示。Taburet等[31]從另一個角度構建模型,通過統(tǒng)計DCT系數之間的相關性設計了一個非加性的同步嵌入策略,具體而言是先統(tǒng)計系數之間的相關性,然后將其轉化為高斯分布,其方差直接從嵌入失真中計算而來,最后按照分塊嵌入的思想,將已嵌入部分的修改作為先驗更新未嵌入部分的失真。
基于理論模型的非加性隱寫方法,以理論為指導優(yōu)化目標函數,取得了一定的成效,但求解的過程比較復雜,因此研究者開始研究啟發(fā)式的基于修改原則的非加性失真函數設計。
(2)基于修改原則的非加性失真函數設計
雖然Gibbs構造[12]具有較好的理論解釋,且在HUGO-BD[3]上產生了一定效果,但其安全性依然不能超過近年來所提出的自適應加性隱寫失真函數,然而該工作給了研究者一個很好的啟發(fā),即可以將載體分成隔離的部分,然后采用更新失真的方法動態(tài)更新未嵌入部分的失真。
2015年Li等[14]以及Denemark與Fridrich[15]針對空域灰度圖像分別提出了CMD(clustering modification directions)非加性隱寫與Synch(synchronization)非加性隱寫,有效地提升了抗檢測性能,其主要思想都是將載體圖像劃分沒有交集的子圖,然后依次嵌入,根據已修改像素的修改方向按照方向一致性原則來更新未嵌入區(qū)域的失真,從而達到聚集修改方向的目的。CMD和Synch的主要不同點是圖像劃分方案和失真更新方法不同,兩者對比及特點如表1所示。
表1 針對灰度空域圖像的不同非加性失真定義方法對比Table 1 Comparison of different methods of defining non-additive distortion for grayscale spatial domain images
受啟發(fā)于方向一致性原則,Tang等[32]直接將該原則應用到彩色空域圖像上設計了CMD-C策略,但由于未考慮通道間的相關性,安全性并沒有得到顯著提升。隨后Wang等[33]通過考慮通道間相關性和差異性后,參考CMD策略提出了基于G通道的通道間非加性策略GINA,該方法考慮到了通道間的相關性,即鼓勵R和B通道與G通道同步修改,并考慮到通道間的差異性,即在復雜度優(yōu)先原則的基礎上有選擇地更新失真,此外GINA采用了載荷自適應分配的策略來提升隱寫的安全性。相同的追求也在Qin等[34]提出的CPV[34]方法中體現,即通過將同一位置不同通道的像素考慮為一個超像素,根據復雜度優(yōu)先原則和通道間的相關性定義了27種失真,采用聯合失真分解DeJoin方案[16]將消息自適應地分配到3個通道。CMD-C、CPV和GINA的特點和比較如表2所示。
表2 針對彩色空域圖像的不同非加性失真定義方法對比Table 2 Comparison of different methods of defining non-additive distortion for color spatialdomain images
方向一致性原則雖然在空域圖像展示了其有效性,但并不能直接應用到JPEG圖像,為此Li等[17]針對JPEG圖像提出了一個新的原則:塊邊界連續(xù)性(BBC,block boundary continuity)原則,即在嵌入修改過程中鼓勵空域塊邊界的連續(xù)性,基于BBC原則的第一個方法只考慮相鄰DCT塊中同一模式下的相關性來鼓勵其同向或反向修改,并采用聯合失真分解DeJoin進行嵌入。然而DCT塊中一個系數的修改會影響到空域中64個像素,且在修改過程中只考慮一對DCT系數的相關性來維持空域塊邊界連續(xù)性是不夠的,基于此Wang等[18]提出了一種塊邊界連續(xù)性增強策略BBC++,即通過考慮全局DCT系數的修改來更新DCT系數和失真來維持空域塊邊界連續(xù)性,實驗證明該策略能夠充分利用塊邊界連續(xù)性原則來提升隱寫的安全性?;贐BC原則的方法雖然取得了一定的效果,但它只考慮相鄰塊間系數的相關性,沒有考慮到塊內系數的相關性,為此Wang等[19]通過探索DCT系數嵌入后在空域塊中不同區(qū)域的修改分布和抗檢測性能,發(fā)現空域塊邊界的修改數量和幅度明顯大于空域塊內部,且抗檢測性能弱于空域塊內部?;诖?,通過探尋空域塊內部的相關性,理論推導證明:當塊內一對同行或同列的DCT系數坐標差為偶數時,反向修改會導致更少的空域塊邊界修改量,由此提出了塊邊界維持(BBM,block boundary maintenance)原則[19],即通過考慮塊內DCT系數的相關性減少空域塊邊界的修改,基于此原則的方法有效地提升了JPEG圖像的隱寫安全性,且該原則可以和BBC原則進一步結合來提升隱寫的安全性。這也啟發(fā)研究人員不同修改原則并不是沖突的,非加性失真設計可以參考多種原則進行設計。此外,Lu等[35]針對JPEG圖像提出了塊效應去除原則BAR,即通過衡量相鄰塊的修改對塊效應的影響來調節(jié)嵌入失真,它同時考慮了相鄰塊和塊內部系數的相關性,這類似于BBC和BBM的組合。BBC、BBC++、BBM和BAR的特點和比較如表3所示。
表3 針對灰度JPEG圖像的不同非加性失真定義方法對比Table 3 Comparison of different methods of defining non-additive distortion for grayscale JPEG images
基于修改原則的非加性設計需要研究者根據不同類型圖像的特點,挖掘其內在的相關性和差異性來總結出一種修改原則指導非加性失真的設計。目前針對空域圖像和JPEG圖像,雖然產生了多種修改原則,但基于這些修改原則的失真更新都是啟發(fā)式的,缺乏一定的理論指導,且人工尋找新的原則往往耗時耗力,如何利用機器學習設計非加性失真開始成為人們關注的熱點。(3)基于對抗檢測的非加性失真函數設計
HUGO[3]是最早的自適應隱寫失真函數,它通過考慮對抗SPAM特征[26]來設計,并提供了模型矯正功能,具有非加性的特點,即在嵌入中針對每個像素重新計算當前嵌入下的+1和?1的失真,選擇其中失真較小的修改方向進行嵌入。隨著隱寫分析的發(fā)展,手工特征的維度越來越高,如對于空域富模型特征SRM[28],很難有針對性地設計非加性失真函數。因而近年來,從對抗高維度的人工隱寫分析特征出發(fā),沒有產生有效的非加性失真設計方法,直到基于深度學習隱寫分析器的出現,給了研究者另一條思路,即抵抗基于深度學習的隱寫分析器。
基于深度學習的隱寫分析器表現了較高的隱寫檢測性能,但深度學習神經網絡分類器具有脆弱性,給樣本添加微小的擾動就能誤導分類器,稱基于此的研究為對抗樣本。借鑒對抗樣本的思想,Zhang等[44]首次提出對抗樣本隱寫的概念,隨后Li等[23]提出ADV-EMB,將圖像劃分成兩部分區(qū)域,第一部分正常嵌入,第二部分對抗嵌入。逐漸增大對抗嵌入區(qū)域,增強隱寫算法的對抗性。其中第二部分的失真調整考慮到第一部分已經發(fā)生的修改,使得修改點有更大的可能性和梯度的方向一致,從而產生對抗效果。這種基于對抗檢測的方法可以和基于修改原則的方法進一步結合,如ITE-SYN[24]將對抗修改和方向一致性原則[14]結合,設計了更有效的非加性隱寫失真算法。為了增強對抗多種隱寫分析器的性能和效率,Bernard等[40-41]提出了一種min-max策略來進行優(yōu)化對抗嵌入的過程,此外,他們又基于理論設計了一種新的失真調整策略Backpack[43],即將對抗性的非加性失真近似為加性,通過Gumbel-Softmax分布的樣本來逼近離散的嵌入變化。與對抗樣本的思想類似,但不使用梯度攻擊,Mo等[42]將蒙特卡洛樹搜索(MCTS)和基于隱寫分析器的環(huán)境模型結合,建立了自動化非加性隱寫失真學習框架MCTSteg,可以在空域和頻域提高抗手工特征和深度學習隱寫分析器的性能。以上方法的特點和對比如表4所示。
表4 基于深度學習的不同非加性失真定義方法對比Table 4 Comparison of different non-additive distortion definition methods based on deep learning
基于對抗檢測的非加性失真函數設計雖然通過直接考慮抵抗檢測器取得了較好的效果,但在與基于修改原則的失真函數設計進行結合后仍可以進一步提升[24],這說明基于對抗檢測的非加性失真函數設計對修改之間的相關性考慮還不完備,如何借鑒修改原則進一步提升抗檢測的性能,或將對抗檢測的設計理論化依然是值得研究的問題。
隱寫編碼STC[1]和SPC[2]只解決了針對加性失真函數的消息嵌入問題。首個最小化非加性失真函數的次優(yōu)編碼方案是 Gibbs構造[12],該方法通過模擬嵌入變化之間的相互作用,進行不斷嵌入和更新失真完成消息嵌入。這可以用來實現具有任意失真的嵌入,但是這種方案求解較為困難,因此,進一步約束將載體劃分為沒有交集的子圖像進行交替迭代嵌入,希望嵌入模式能夠收斂到最優(yōu)嵌入的樣本,但由于沒有很好的非加性失真定義,這種方案最終沒有達到很好的性能。
隨著基于修改原則的非加性失真定義的出現,研究者參考Gibbs構造中的劃分方案,采用了不同的劃分區(qū)間[14-15],只需要迭代一次便可將消息完整的嵌入,這也是目前實現非加性嵌入的最有效的方案。隨后,Zhang等[16]提出了一種聯合失真分解編碼DeJoin可以達到聯合失真的理論界,將失真空間等效轉換到概率空間。將多個元素視為一個整體,定義聯合修改失真,根據限負載下的優(yōu)化問題,可以得到聯合修改概率,將聯合修改概率根據鏈式法則分解為邊緣概率和條件概率,根據概率失真翻轉引理,將邊緣概率和條件概率再轉化成邊沿失真和條件失真,由于這兩種失真均為加性失真,嵌入消息時大大降低了編碼復雜度,雖然這種方案可以達到聯合失真的理論界,但如何定義更好的聯合失真依然是值得研究的問題。其他的非加性編碼方案如variable-cost STC[45],將動態(tài)更新融入STC編碼過程中,但該方法的安全性沒有得到有效提升,且計算復雜度較高。
對于非加性失真的設計,非加性隱寫編碼方案較少,大多數采用分步嵌入的方案,如何設計更有效的非加性編碼依然是值得研究的課題。
本文對近年來圖像非加性隱寫的研究工作進行了總結和分析,將非加性隱寫研究分為兩大類:非加性隱寫失真設計和非加性隱寫編碼設計。其中又對非加性隱寫失真設計分為3類:基于理論模型、基于修改原則和基于對抗檢測的非加性失真設計。最早的基于理論模型研究受限于無法得到精確描述的載體分布,于是過渡到啟發(fā)式的基于修改原則的非加性失真函數設計;隨著深度學習隱寫分析的出現,通過對抗深度學習隱寫分析,研究者借鑒對抗樣本和強化學習的思想提出了更多基于對抗檢測的非加性失真函數設計。隨著非加性隱寫失真設計的發(fā)展,非加性隱寫編碼也由原來的Gibbs構造到分塊嵌入,再到可證明逼近聯合失真理論界的高效隱寫編碼DeJoin。由此可以看出,非加性隱寫失真設計和非加性隱寫編碼互為補充,均與隱寫分析的發(fā)展息息相關,面對快速發(fā)展的深度學習隱寫分析算法,本文對未來的圖像非加性隱寫研究有如下幾點展望。
1)基于理論模型的非加性隱寫失真設計具有更好的解釋性,但由于人工設計的理論模型和參數估計往往不能完全反映圖像本身的特點,該方案下的非加性失真效果不佳,如何借鑒深度學習的強大學習能力,對圖像建模設計更有效的非加性隱寫失真是一個有挑戰(zhàn)性的問題。
2)基于修改原則的非加性隱寫具有簡單有效的特點,但人工尋找有效的原則耗時耗力,如何利用深度學習從對抗檢測的角度歸納新的原則是值得研究的問題。
3)基于對抗深度學習的非加性失真隱寫設計雖然取得了較好的效果,但深度學習算法本身存在的可解釋性不足的問題,依然需要更多的理論來支持非加性隱寫失真設計。
4)非加性隱寫編碼相對于非加性隱寫失真設計發(fā)展較緩,目前基于分塊嵌入的策略雖然簡單有效但無法達到失真理論界,聯合失真分解編碼DeJoin的提出可以達到聯合失真的理論界,但針對聯合失真的設計較少,如何利用DeJoin的特點設計聯合失真依然是值得研究的問題。
綜上,深度學習為圖像非加性隱寫設計提供了新的理念和技術,是信息隱藏領域未來發(fā)展的重要方向之一,但在理論性和效率方面仍然存在很多問題亟待解決;深度學習所具有的強大學習能力可以將失真定義和編解碼過程兩部分合成一個部分,目前較為成熟的是在以圖藏圖上的應用,即將秘密圖像隱藏到載體圖像,但這種方式并沒有很高的抗檢測性能;如何解決這些問題并進一步提升圖像隱寫的安全性和實用性對網絡空間中信息的安全傳輸具有重要意義。