陳 朗,王讓定,嚴迪群,林昱臻
(寧波大學信息科學與工程學院,浙江寧波 315211)
(*通信作者電子郵箱wangrangding@nbu.edu.cn)
伴隨著互聯網和多媒體處理技術的飛速發展,互聯網平臺上涌現出越來越多的數字媒體應用,數字媒體安全問題變得日益突出,已成為數字經濟等領域迫切需要解決的難題。在信息安全領域,保障信息安全的技術有密碼術和信息隱藏。然而,應用密碼術獲得的密文在公開信道上傳輸,很容易引起第三方的監聽進而采取手段破壞隱蔽通信;信息隱藏則很好地解決了密碼術存在的問題,它將密信以“暗度陳倉”的方式隱藏在另一非機密載體中進行傳輸,從而可實現隱蔽通信。廣義的信息隱藏包括隱寫術和隱寫分析:隱寫術利用人類感官對數字信號的感知冗余性將秘密信息隱藏到數字媒體中,目的是避免引起檢查者的注意;相反的,隱寫分析則是通過分析載體對象和嵌密對象在感知和統計特征上的差異來判別載體中是否隱藏密信。
近二十多年來,研究人員在采用傳統方法進行音頻隱寫分析方面做了大量工作,主要集中于手工特征的設計上。Johnson 等[1]通過短時傅里葉變換(Short-Time Fourier Transform,STFT)提取音頻統計特征,以支持向量機(Support Vector Machine,SVM)作為分類器;實驗結果顯示,該方法對較低嵌入率下最低有效位(Least Significant Bit,LSB)隱寫算法并不能有效檢測。Kraetzer 等[2]第一次提出了基于梅爾倒譜(Mel-cepstrum)的網絡協議(Internet Protocol,IP)語音隱寫檢測方法,以梅爾倒譜特征作為SVM 的輸入。Liu等[3]提出了基于時域導數頻譜和梅爾倒譜的音頻隱寫檢測方法,以傅里葉頻譜統計和二階差分濾波器獲取的梅爾倒譜系數作為提取的手工特征,采用SVM 作為分類器;實驗結果顯示,相較于僅提取梅爾倒譜特征的方法,該方法的檢測準確率有明顯提高。Liu 等[4]將梅爾倒譜系數和根據二階差分濾波器獲取的馬爾可夫轉移矩陣作為提取的手工特征,并研究了音頻信號復雜度和檢測準確率之間的關系;實驗結果表明,對LSB等低隱蔽性隱寫算法檢測準確率達到90%以上。Geetha 等[5]設計了一種基于音頻質量測度的特征,計算載體音頻和嵌密音頻的Hausdorff 距離作為失真度測量特征。王昱潔等[6]提出了一種基于改進離散余弦變換(Modified Discrete Cosine Transform,MDCT)量化系數統計特征的高級音頻編碼(Advanced Audio Coding,AAC)隱寫檢測方法,從MDCT 量化系數中提取了廣義高斯分布模型的參數、量化系數分布直方圖的頻域統計矩、幀內和幀間MDCT 系數的隱馬爾可夫轉移矩陣的部分數據作為手工設計的特征,采用SVM 作為分類器;實驗結果表明,該方法對基于MDCT 量化系數的直接擴頻隱寫算法檢測效果較好。王昱潔等[7]還提出了一種基于模糊C 均值聚類(Fuzzy Cmeans Clustering,FCC)和單類支持向量機(One Class Support Vector Machine,OC-SVM)的音頻隱寫檢測方法,首先提取短時傅里葉頻譜統計特征和基于音頻質量測度的特征,然后對提取的特征進行FCC聚類從而得到C個聚類,最后以OC-SVM作為分類器;實驗結果表明,對幾種經典隱寫算法在滿嵌時總體檢測率達到85.1%。Han 等[8]提出了一種基于線性預測的音頻隱寫檢測方法,提取了線性預測系數、線性預測殘差、線性預測頻譜和線性預測頻譜系數,將它們的最大值作為SVM的輸入特征;實驗結果表明,該方法對四種低隱蔽性傳統隱寫算法的檢測準確率均在96%以上。Ren 等[9]提出了一種基于幀內和幀間的改進離散余弦變換系數差異的高級音頻編碼音頻隱寫檢測方法。
隨著人工智能時代的到來,不同的深度學習網絡相繼被提出,在許多領域已經達到了目前最好的效果,尤其是在語音識別和計算機視覺領域。Chen 等[10]首次提出了針對LSB 匹配隱寫的卷積神經網絡(Convolutional Neural Network,CNN),該方法的檢測準確率高于手工提取特征的傳統方法。隨后,Lin等[11]提出了一種改進的CNN,首先采用四階差分濾波器計算殘差進行預處理,其中濾波器參數在網絡中設置為可訓練的;再將預處理后的音頻數據輸入到網絡中,采用遷移學習的策略進行低嵌入率下音頻隱寫檢測。Wang 等[12]提出了一種在熵編碼域(Entropy Code Domain)對MP3 進行隱寫分析的CNN,使用量化改進的離散余弦變換(Quantified Modified Discrete Cosine Transform,QMDCT)特征作為網絡的輸入的淺層特征,準確率相較于以前的隱寫分析方法提升了20%以上。Yang 等[13]融合了CNN 和循環神經網絡(Recurrent Neural Network,RNN)的優勢,提出了一種聯合CNN 和長短期記憶(Long Short-Term Memory,LSTM)網絡的模型CNN-LSTM 用于檢測網絡協議語音流(Voice over Internet Protocol,VoIP)上基于量化索引調制(Quantization Index Modulation,QIM)的隱寫算法,其中的LSTM 用于學習音頻載體的上下文信息,CNN用于學習分類特征。
然而,上述方法不能有效檢測高隱蔽性音頻信息隱藏算法,如STC框架[14]下的音頻隱寫算法。基于此,本文提出了一種融合深度殘差網絡和極限梯度提升(eXtreme Gradient Boosting,XGBoost)[15]的音頻隱寫檢測模型ResNet-XGBoost。基于ResNet-XGBoost模型的音頻隱寫檢測方法首先采用殘差網絡模型提取輸入音頻的高維抽象特征,再用XGBoost 模型對殘差網絡提取的高維抽象特征進行分類。實驗結果顯示,該方法對STC音頻隱寫算法在三種不同嵌入率下的檢測準確率相較于傳統提取手工特征的檢測方法和基于深度學習的檢測方法均有顯著提升。
STC 框架下的隱寫算法屬于一種基于校驗網格編碼的最小化嵌入失真隱寫算法,具備嵌入容量大、安全性高等優勢。隱寫設計者先定義失真函數,采用維特比算法獲取合適的原始載體修改模式,使得嵌入秘密信息后的總體失真接近理論最小值;而接收方不必知道失真函數,僅根據校驗矩陣便可提取出密信。
假設原始載體為二進制向量X∈{0,1}n,嵌密載體Y∈{0,1}n,秘密信息M∈{0,1}m,且n≥m。定義嵌入函數為Emb:{0,1}n×{0,1}m→{0,1}m,提取函數為Ext:{0,1}n→{0,1}m且滿足如下條件:

構造一個矩陣(亦即校驗矩陣,其結構如圖1 所示),使得嵌密載體滿足:

若嵌入操作相互獨立即互相不影響,則嵌入密信后引起的載體失真為加性失真。定義嵌入密信后的總失真函數為:

其中:D(X,Y)為嵌入密信后的總失真;i為當前載體位置索引;n為載體長度;ρi為當前元素變化引起的失真,在復雜區域取值較小,在平滑區域取值較大。

圖1 校驗矩陣示意圖Fig.1 Schematic diagram of check matrix
STC 隱寫的目標是使得總失真函數盡可能小,即求解最優的Y,既滿足HYT=M又使D(X,Y)最小,其嵌密和提取過程的數學表達為:

STC 過程在網格圖上完成,求解Y時可將所有滿足條件HYT=M的可行解Y在網格圖中用一條路徑表示。STC 在所有路徑中選擇具有最小權重的路徑,該路徑對應一個最佳矢量Y,使HYT=M,并且使得嵌入總失真函數D(X,Y)達到最小。維特比算法包括前向計算和反向計算,利用該算法可求解出最佳Y。
STC 音頻隱寫一般將STC 和失真代價結合。首先利用失真函數計算載體中每個元素被修改后的失真代價,再應用STC 確定需要修改的位置并進行嵌密操作,從而得到嵌密音頻。STC音頻隱寫流程如圖2所示。

圖2 STC音頻隱寫流程Fig.2 Flowchart of audio steganography based on STC
XGBoost 是[15]一種改進的梯度提升算法,改進點在于采用二階導數優化目標函數。它融合多個弱分類器進而演化成強分類器,基分類器為分類回歸樹(Classification And Regression Tree,CART)。
XGBoost 的目標函數由訓練損失和正則化項兩部分組成,定義如下:

其中:fk為第k棵樹模型的函數表達式;yi為第i個樣本xi的真實標簽為第i個樣本xi的預測值。而XGBoost 是一個加法模型,故預測值為每棵樹預測值的累加之和,即
將K棵樹的復雜度之和作為正則化項,用于防止模型過擬合。假設第t次迭代訓練的樹模型為ft,則有:

XGBoost 模型在訓練過程中,當建立第t棵樹時,采用貪心策略進行樹節點的分裂。每次分裂成左右兩個葉子節點后,會給損失函數帶來增益,其定義如下:

若Gain>0,則將此次分裂結果加入模型構建中。
考慮到卷積神經網絡在特征提取上的優勢,本文提出了一種基于ResNet-XGBoost模型的音頻隱寫檢測方法。該方法的思路是利用殘差網絡提取高維抽象特征,并將其作為XGBoost 分類器的輸入,再結合實驗結果和網絡結構調整得到最終的模型結構,如圖3 所示。首先,輸入到模型中的音頻通過高通濾波器(High-Pass Filter,HPF)的預處理后,利用第一階段的三個卷積層進行初步特征提取;接下來,經過五個階段的殘差塊和池化操作進一步提取深層次特征;最后,經過全連接層和Dropout[16]層將最終提取的特征作為XGBoost 分類器的輸入進行分類,進而輸出模型分類結果。
在神經網絡中應用非線性激活函數可增強特征學習能力。到目前為止,Sigmoid、Tanh、修正線性單元(Rectified Linear Unit,ReLU)等非線性激活函數已相繼提出,其中尤以ReLU 在計算機視覺等領域應用較好的泛化能力。ReLU 表達式如下:

ReLU 能適應計算機視覺領域被檢測目標的數據分布(被檢測信號信噪比較高),但在隱寫分析任務中由于隱寫噪聲微弱即被檢測信號信噪比低,若采用ReLU 激活函數,會使得模型不能提取有效的特征。因此,引入了如下的線性截斷單元(Truncated Linear Unit,TLU)[17]激活函數:

其中,超參數T為線性截斷閾值,根據實驗確定。
本文方法在階段1 的第一個卷積層的卷積核大小為1× 1,卷積核個數為8,且使用了TLU 激活函數,實驗中發現T=3 時,檢測效果較好;第二個卷積層的卷積核大小為1× 5,卷積核個數為8;第三個卷積層的卷積核大小為1× 1,卷積核個數為16。

圖3 本文模型總體結構Fig.3 Overall structure of the proposed model
為消除特征中的冗余信息和減少來自卷積層的參數個數,通常在卷積層后進行池化操作。池化也可被認為是一種卷積操作,分為最大池化和平均池化。最大池化輸出滑動窗口的最大值,用于提取紋理特征;平均池化輸出滑動窗口的平均值,用于保留背景信息。根據隱寫分析任務的特點和實驗效果,本文使用了平均池化,可在一定程度上防止過擬合,為使模型更好地學習到殘差,需在第6 階段后匯聚高維特征,因此,除了第6 階段殘差塊后使用了全局平均池化,其余階段均使用平均池化,池化窗口大小為1×3,步長為2。
殘差網絡最早由He等[18]提出并應用于圖像識別,設計了一個多達152 層的深度卷積神經網絡,在ImageNet 大規模視覺識別挑戰賽圖像分類任務上識別錯誤率僅為3.57%,奪得了圖像分類組第一名。殘差網絡在CNN 的基礎上做出了些許改進,有效避免了梯度消失和梯度爆炸的問題,解決了CNN層數過深時準確率下降的缺陷,殘差塊基本結構如圖4 所示。假設某段神經網絡的輸入為x,期望輸出為H(x),則在殘差塊中學習目標為F(x)=H(x)-x,其中F(x)為殘差。

圖4 殘差塊基本結構Fig.4 Basic structure of residual block
將輸入音頻x記為:

其中:c為載體音頻;0代表零信號,即無隱寫;m為嵌入秘密信息后產生的微弱信號。
將x輸入到殘差學習塊中,恒等映射塊將x傳輸到輸出節點,同時,殘差學習塊F(x)將學習到殘差m,并將其與輸入x匯合輸出。因此,可將殘差m類比為隱寫噪聲,利用殘差學習即可學習到隱寫噪聲的數據分布,使得殘差網絡非常適合于隱寫分析任務。
本文殘差網絡模型采用的殘差塊如圖4 所示。殘差映射部分由3 組基本單元構成,其中基本單元包括1× 1 卷積核、1× 5 卷積核、批規范化和tanh 激活函數。在該殘差塊中,輸入維度為D,經過殘差學習后,輸出維度為2D。在本文殘差網絡模型中,階段2~階段6中“5個殘差塊堆疊”后面括號內的參數分別表示輸入和輸出維度。以階段2 為例,(16,32)表示殘差塊的輸入維度為16,輸出維度為32。每個階段的殘差層由5個結構如圖5所示的殘差塊堆疊而成,其輸入維度和輸出維度按圖3中殘差層參數設置。

圖5 本文采用的殘差塊Fig.5 Residual block used in the paper
本文模型ResNet-XGBoost 的殘差網絡中有兩個全連接層,并且分別在每個全連接層后加入了一個Dropout[16]層,其中第一個全連接層的神經元個數為1 024,第二個全連接層的神經元個數為256。
在訓練深度神經網絡時難免出現過擬合現象,為解決這一問題,通常的思路是采用模型集成,即訓練多個模型進行組合,但是訓練多個模型會耗費巨大的計算量。因此,Dropout作為一種典型的正則化手段應運而生,一定程度上能有效防止出現過擬合。通俗地講,Dropout 就是在神經網絡前向傳播過程中,以一定概率p∈{0,1}抑制神經元,在測試時,激活所有神經元,但需將每個神經元的輸出乘以p。
假設一個神經網絡有L個隱藏層,l∈{1,2,…,L}為隱藏層數序號,z(l)為第l層的輸入向量,y(l)為第l層的輸出向量,w(l)和b(l)分別為第l權重和偏置。則若在前向傳播過程中不使用Dropout,對隱藏節點i有:

其中:l∈{0,1,…,L-1},f為激活函數。
若在前向傳播過程中使用Dropout,對隱藏節點i有:

其中:Bernoulli函數的作用是以概率p隨機生成一個由0、1 組成的向量;y(l)為第l層隱藏層的輸出。
實驗中通過多次調參發現,第一個Dropout層抑制概率取0.3,第二個Dropout 層抑制概率取0.1 時,提取的特征輸入到XGBoost分類器中的檢測效果最好。
本文方法的思路是先利用殘差網絡提取高維抽象特征,再將提取到的輸入到XGBoost 分類器中進行分類。XGBoost分類器融合多個分類回歸樹進行分類,具有較好的泛化能力,其參數設置顯得尤為重要。實驗中多次調參得出XGBoost 分類器最優參數組合:學習率取0.1,樹的深度取150,訓練輪數取1 000,其余均為默認的參數,此時檢測性能可達到最優。在XGBoost 模型訓練過程中,使用了logistic 和hinge 兩種損失函數,其表達式分別為:

其中,z1、z2均為分類器的預測輸出。
對于XGBoost 分類器來講,使用logistic 損失函數時,分類器輸出給定輸入樣本屬于正類的概率;使用hinge 損失函數時,分類器輸出給定輸入樣本的分類結果。在實驗中發現,在保持除了損失函數外的所有參數不變的條件下,損失函數為hinge時的分類準確率明顯高于logistic。
實驗數據集來源于TIMIT 語料庫[19],其中包含6 300 個采樣頻率為16 kHz、量化位數為16 的無壓縮單聲道音頻,將每段語音切割成時長為1 s的音頻片段,選取其中15 000個作為用于隱寫的原始音頻,并分別利用LSBM 和STC 隱寫算法嵌入密信,從而生成15 000個嵌密音頻。
實驗時將15 000個原始音頻和15 000個嵌密音頻組合在一起,合計30 000個音頻片段,其中,24 000個為訓練集,6 000個用于驗證與測試。殘差網絡模型的訓練批次大小為64,輸入到XGBoost 分類器中的高維抽象特征維度是256。實驗硬件環境是內存大小為11 GB 的NVDIA GTX1 080Ti GPU,軟件環境是Tensorflow和Keras深度學習框架。
4.2.1 高通濾波器階數對檢測準確率的影響
本文采用的高通濾波器為差分濾波器[4],在訓練過程中發現,將其參數設為固定時檢測效果較好。隱寫相當于向原始載體中添加了微弱的噪聲,需比較嵌入密信前后的載體差異即計算殘差,以此提高信噪比,使得特征學習更充分。為研究濾波器階數對檢測準確率的影響,分別在嵌入率為0.5 bps(bit per sample)時對LSBM 和STC 進行檢測,實驗結果如圖6所示。實驗結果表明,高通濾波器階數取6 時,隱寫檢測準確率最高;當濾波器階數大于6時,隱寫檢測準確率反而下降。

圖6 高通濾波器不同階數對應的檢測準確率Fig.6 Detection accuracies corresponding to different orders of HPF
6階高通濾波器參數設置如下:

4.2.2 模型結構對檢測準確率的影響
通過修改用于提取特征的殘差網絡的不同結構參數,比較每種修改情況下對LSBM 隱寫算法的檢測準確率,其中LSBM 嵌入率為0.5 bps,修改的網絡結構參數如表1 所示。為比較修改不同的網絡結構參數后模型檢測準確率的波動范圍,對于每個不同的模型進行10次實驗,實驗結果如圖7的箱形圖所示。本文模型平均檢測準確率為86.58%,與其他9 種模型相比,檢測準確率最高且較穩定;模型#2 的平均檢測準確率為83.48%,原因可能是移除高通濾波器后,模型不能有效學習到殘差;模型#3 的平均檢測準確率為82.59%,原因可能是移除TLU激活函數后,模型提取的特征數據缺失規范化;模型#4 和#5 的檢測準確率介于81.12%和86.85%之間且波動范圍較大;模型#6 的檢測準確率在75.12%和87.25%之間,有時檢測準確率高于模型#1,但有時檢測準確率陷入局部最小值;模型#7 的檢測準確率波動范圍小,但平均檢測準確率僅為79.14%,原因是梯度消失;模型#8 的檢測平均檢測準確率為85.6%,原因是可能發生過擬合;模型#9 的平均檢測準確率為74.72%,在9 種模型中是最低的,恰恰印證了XGBoost 分類器的有效性。XGBoost 分類器能提高檢測準確率的一個重要原因是,XGBoost 模型在訓練過程中不斷優化當前決策樹,并融合多棵當前最優決策樹進行分類,是集成學習的一種體現。綜上所述,本文模型收斂快,檢測準確率最高,因此,相較于其他8種模型,本文模型是最有效的。

表1 修改的網絡結構參數Tab.1 Modified network structure parameters

圖7 嵌入率為0.5 bps時不同模型的LSBM隱寫檢測準確率箱形圖Fig.7 Box plots of the detection accuracies acquired from different models for LSBM steganography with embedding rate of 0.5 bps
為進一步證實本文方法的優勢所在,對比了文獻[3-4,20]分別提出的傳統基于手工特征的音頻隱寫檢測方法和文獻[11]提出的深度學習檢測方法對LSBM 和STC 在不同嵌入率下的平均檢測準確率,其中平均檢測準確率為10 次重復實驗結果取平均值。對于STC 嵌密,為研究嵌入率相同即子校驗矩陣寬度相同而子校驗矩陣高度不同對隱寫檢測準確率的影響,由于在STC 隱寫中,子校驗矩陣高度取值范圍為6 ≤h≤15,為簡化實驗,分別在子校驗矩陣高度為7、8和9 時進行嵌密。實驗結果如表2、3所示。
從表2可知,本文方法對三種不同嵌入率下的LSBM 隱寫算法檢測準確率相較于文獻[3-4,20]和文獻[11]的方法均有明顯提升。對0.5 bps 的LSBM 隱寫檢測,本文方法的準確率比文獻[3-4,20]和文獻[11]的方法分別提高了28.46 個百分點、16.23個百分點、15.22個百分點和10.16個百分點。

表2 不同檢測方法對LSBM隱寫檢測準確率 單位:%Tab.2 Detection accuracies of different detection methods for LSBM steganography unit:%
表3 顯示了不同方法對子校驗矩陣高度分別為7、8 和9時的STC 隱寫算法檢測準確率,可知本文方法對不同嵌入率下的STC 隱寫算法檢測準確率明顯高于文獻[3-4,20]和文獻[11]的方法,且已達到了目前最好的效果。以STC 隱寫子校驗矩陣高度h=7 時為例,本文方法對0.5 bps 的STC 隱寫算法檢測準確率比文獻[3-4,20]和文獻[11]的方法分別提高了22 個百分點以上、12.75 個百分點、12.25 個百分點、11.07 個百分點。文獻[3]方法不能檢測STC 隱寫算法的一個重要原因是,STC 隱寫會使得嵌入密信后引起的失真最小,即隱寫噪聲極其微弱,以此保證STC隱寫具有很高的隱蔽性,使得基于傳統手工特征的音頻隱寫檢測方法很難提取到有效的特征。通過表3 的實驗結果可知,就STC 隱寫而言,子校驗矩陣高度越高,安全性越高,即越抗隱寫檢測。

表3 不同檢測方法對h=7,8,9時的STC隱寫檢測準確率單位:%Tab.3 Detection accuracies of different detection methods for STC steganography when h=7,8,9 unit:%
同時,對于0.5 bps的LSBM隱寫和STC隱寫(子校驗矩陣高度h=7)檢測,文獻[11]方法和本文方法的ROC 曲線如圖8 所示。其中:橫軸表示假陽率(即虛警率),縱軸表示真陽率(即檢測率);實線表示隨機猜測,判斷載體隱寫和未隱寫的概率均為50%。ROC 曲線下面積(Area Under ROC Curve,AUC)表征了檢測器對此類隱寫對象的適用性程度。由圖8可知,本文方法在兩種隱寫算法下的AUC 均大于文獻[11]方法,即本文檢測器性能更優。

圖8 兩種深度學習檢測方法對LSBM隱寫和STC隱寫的ROC曲線Fig.8 ROC curves of two deep learning detection methods for LSBM steganography and STC steganography
針對現有隱寫檢測方法對STC音頻隱寫算法難以檢測的問題,本文提出了一種融合深度殘差網絡和極限梯度提升的音頻隱寫檢測模型ResNet-XGBoost。基于ResNet-XGBoost 模型的音頻隱寫檢測方法首先構建了一種用于提取高維抽象特征的深度殘差網絡模型,再將利用其提取的特征作為XGBoost 模型的輸入進行分類。實驗中比較了本文方法和其他四種經典音頻隱寫檢測方法對LSBM 隱寫算法和STC 隱寫算法的檢測準確率,實驗結果表明,相較于傳統提取手工特征的檢測方法和基于深度學習的檢測方法,本文方法檢測準確率最高且有明顯提升。STC 隱寫中子校驗矩陣高度較高時的檢測準確率低于子校驗矩陣高度較低時,證明了子校驗矩陣高度對隱寫檢測準確率有直接影響,子校驗矩陣高度越高,隱寫算法越難以檢測。同時,本文方法采用深度殘差網絡提取高維抽象特征并用XGBoost 模型分類,相較傳統的隱寫檢測方法通常集中于依靠經驗設計手工特征,本文方法則從一個新的角度出發提取特征,避免了耗費大量精力著眼于復雜的手工特征設計上。
后續工作將研究基于STC框架的自適應音頻隱寫的檢測算法,考慮到自適應隱寫嵌密集中于復雜區域上,研究重點則聚焦于隱寫信號的提取和放大,然后采用本文方法進行隱寫檢測。