劉 鵬,李松斌+,戴瓊興,鄧浩江
(1.中國科學(xué)院聲學(xué)研究所南海研究站,海南???70105;2.中國科學(xué)院聲學(xué)研究所國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京100190)
網(wǎng)絡(luò)語音流具有實時、大容量等特征,是進(jìn)行信息隱藏的潛在優(yōu)質(zhì)載體。由于當(dāng)前眾多的VoIP(voice over internet protocol)常用語音編碼器,如G.729、G.723.1等,都采用了線性預(yù)測編碼(linear predictive coding,LPC)技術(shù),因此基于LPC的信息隱藏方法具有較大應(yīng)用價值。
近年來,研究者們在VoIP通信語音流中進(jìn)行信息隱藏方面做了許多嘗試。文獻(xiàn)[1,2]給出了在G.729壓縮語音流中進(jìn)行最低有效位(least significant bit,LSB)替換的隱寫方法;文獻(xiàn)[3-5]給出了G.723.1壓縮語音流中的LSB替換方法;文獻(xiàn)[6]給出了針對G.711壓縮語音流的LSB替換方法;文獻(xiàn)[7]給出了在混合激勵線性預(yù)測編碼多級矢量量化過程中使用量化索引調(diào)制(quantization index modulation,QIM)進(jìn)行隱寫的方法;文獻(xiàn)[8]給出了一種基于基音周期的隱寫方法;文獻(xiàn)[9]給出了一種在LPC過程中利用QIM進(jìn)行隱寫的方法。
LSB替換方法需要對不同的壓縮標(biāo)準(zhǔn)進(jìn)行具體分析,通用性較差。由于并不是所有壓縮算法都具有基音周期或多級矢量量化過程,因此文獻(xiàn)[7,8]中的算法通用性也不強(qiáng)。文獻(xiàn)[9]中將LPC過程與QIM結(jié)合是一種較好的選擇。但如果對LPC碼字的改變次數(shù)過多,碼字分布統(tǒng)計特征的變化很容易被察覺。
本文將給出一種聯(lián)合矩陣編碼與QIM的線性預(yù)測語音編碼信息隱藏方法,稱為MQCL(ME-QIM-Chaos based on LPC)方法。該方法通過提高信息嵌入效率達(dá)到減小失真、提高隱蔽性的目的。
由于線性預(yù)測語音編碼是以幀為單位進(jìn)行的且編碼時均包含LPC過程,因此語音碼流可以看作一個LPC濾波器序列,如圖1所示。
圖1 語音碼流的LPC視圖
矩陣A代表了使用QIM進(jìn)行嵌入時的所有可嵌入位置,即信息隱藏空間。由于嵌入的秘密信息長度是有限的,通常只需要用到部分載體幀。于是嵌入時存在對載體幀的選擇,這種選擇會導(dǎo)致不同的安全等級。
定義1 假設(shè)某種隱寫算法b被檢測算法d檢測出存在隱寫的概率是c,則該隱寫算法的安全等級L可以表示為
安全等級代表了信息隱藏算法的安全程度,安全等級越高則隱寫本身就越難以被發(fā)現(xiàn)。假設(shè)嵌入時挑選i幀作為載體幀,則隱寫嵌入率可以表示為R=i/n。由于嵌入率和安全等級通常滿足關(guān)系R∝1/Lb,d。因此為了達(dá)到不同的安全等級,只需要對嵌入率R進(jìn)行調(diào)整。嵌入率確定后,需要對嵌入位置即載體幀進(jìn)行選擇。此時,如果采用固定的或易推測的選擇算法,則檢測者可以只針對嵌入位置進(jìn)行檢測,從而變相提高了嵌入率降低了安全等級。為此,本文將結(jié)合混沌理論對嵌入位置進(jìn)行抽取,任何不知道密鑰的第三方均不可能知道實際嵌入位置。
MQCL方法嵌入過程如下:
(1)根據(jù)所需安全等級選擇合適的嵌入率。
(2)對矩陣A進(jìn)行分塊,每個子塊為(p×m)階矩陣,其中p為預(yù)先設(shè)定值。于是可以得到分塊矩陣A=[A1A2…Aj]T。
(3)根據(jù)所需嵌入率結(jié)合混沌理論從每個塊區(qū)中抽取i幀進(jìn)行嵌入,根據(jù)p和嵌入率生成密鑰K。于是可以得到待嵌入矩陣
(4)對B進(jìn)行分塊,每個子塊為(q×m)階矩陣,其中q為預(yù)先設(shè)定值。于是可得B=[B1B2…Bt]T。其中,每個子塊即為MQCL方法中的最小嵌入單元,記為C。其獲取過程如圖2所示。
圖2 最小嵌入單元的獲取過程
(5)結(jié)合混沌理論利用密鑰K進(jìn)行塊區(qū)內(nèi)嵌入位置選擇,本文共設(shè)計了8種嵌入模版。確定嵌入模版后,可以得到一個或多個待嵌入序列(c1,c2,…,cr),每個序列均含有若干個嵌入位置。
(6)針對每個待嵌入序列結(jié)合矩陣編碼和QIM方法進(jìn)行信息隱藏,并根據(jù)實際需要增加前向糾錯編碼。
MQCL方法提取過程如下:
(1)根據(jù)密鑰K得到p、載體幀位置和塊內(nèi)嵌入模版。
(2)將載體幀攜帶的QIM信息記錄下來,根據(jù)塊內(nèi)選擇模版及q值得到待提取序列。
(3)根據(jù)前向糾錯編碼信息對秘密信息進(jìn)行差錯恢復(fù),并通過矩陣編碼的解碼操作得到最終的秘密信息。
混沌是一種確定系統(tǒng)中出現(xiàn)的偽隨機(jī)無規(guī)則的運(yùn)動,具有以下特性:
(1)偽隨機(jī)性:混沌系統(tǒng)的輸出受混沌軌道不規(guī)則性及系統(tǒng)局部伸縮的影響,呈現(xiàn)出類似隨機(jī)噪聲的偽隨機(jī)性。
(2)遍歷性:在有限區(qū)域內(nèi),混沌軌道上的點可以任意接近,這使得對初始條件的預(yù)測變得非常困難。
(3)發(fā)散性:相平面上任意接近的兩點隨著過程的進(jìn)行都會指數(shù)性發(fā)散。
可見,混沌系統(tǒng)是一種天然的密碼系統(tǒng)。本文將結(jié)合混沌理論進(jìn)行嵌入位置及嵌入模版的選擇。
Logistic映射是一類非常簡單的動力系統(tǒng),其定義為xk+1=μxk(1-xk),0<xk+1<1。當(dāng)μ滿足一定條件時,通過logistic映射可以產(chǎn)生非周期不收斂的混沌序列。本文將以logistic為例,對嵌入位置及模版選取過程進(jìn)行介紹。
對混沌序列進(jìn)行0-1量化后可得到序列y,序列y即可作為嵌入位置及嵌入模版的選擇依據(jù)。序列y因只和初值x0以及μ的取值有關(guān),因此可以將(μ,x0)作為密鑰使用。圖3顯示的是當(dāng)μ=3.96,x0=0.100000001或x0=0.100000002時,兩個logistic序列的差值??梢钥闯?,開始的若干次迭代中兩者的差值較小,隨著迭代次數(shù)的增加兩者差值呈現(xiàn)出了無規(guī)律的變化特征。為了獲得更好的安全性,我們規(guī)定MQCL算法中l(wèi)ogistic序列的取值從第31個開始。
圖3 初值的微小變化對logistic序列值得影響
MQCL方法中使用logistic映射進(jìn)行嵌入位置及嵌入模版選擇的具體過程如下:
(1)根據(jù)不同的p值確定logistic映射初值x0。x0和p滿足x0=p/N,其中N為大于p的整數(shù),可以自由設(shè)定。
(2)根據(jù)所需嵌入率選取適當(dāng)?shù)摩讨禎M足3.5699456≤μ≤4,于是可以得到密鑰(μ,x0)。
(3)首先根據(jù)密鑰產(chǎn)生對應(yīng)的y序列,然后將序列中(y34,y35,…,yp+30)作為位置選擇序列即可得到待嵌入矩陣B。然后根據(jù)預(yù)先設(shè)定的q值即可得到最小嵌入單元。
(4)從最小嵌入單元C中抽取待嵌入序列(c1,c2,…,cr)的方法有多種,本文規(guī)定了8種待嵌入序列的抽取模版如圖4所示。利用y序列中(y31,y32,y33)三位進(jìn)行選擇,(0,0,0)~(1,1,1)分別對應(yīng)0~7這8種模版。圖4中黑點表示抽取時的起始位置。
經(jīng)以上步驟,我們便可得到待嵌入序列(c1,c2,…,cr)。例如,當(dāng)q=7,m=3時
圖4 塊內(nèi)待嵌入序列的8種嵌入模版
于是,我們依據(jù)圖4中的8種嵌入模版可以得到此時與每個嵌入模版所對應(yīng)的待嵌入序列,見表1。
表1 嵌入模版及對應(yīng)待嵌入序列
本節(jié)將針對待嵌入序列c給出一種聯(lián)合矩陣編碼和QIM算法的信息隱藏方法,簡稱MQL(ME-QIM on LPC)方法。
假設(shè)c=(c1,c2,…,cn),秘密消息序列u=(u1,u2,…,uk),其中n和k為序列長度。假設(shè)生成矩陣為H=[h1h2…h(huán)n],其中hn表示為[h1,nh2,n…h(huán)k,n]T。則使用矩陣運(yùn)算進(jìn)行信息隱藏的一般辦法可以概括如下:
(1)求解
(2)令d=s⊕uT,其中d為k維列矢量。如果d=0,則s=c,此時待嵌入序列c不需要做任何改變。如果d≠0,則需要對c中數(shù)據(jù)進(jìn)行修改使d=0。
假設(shè)此時c中最多需要修改δ位,則該算法特點可以表述為在n比特中最多修改δ位即可嵌入k比特秘密信息。通過對生成矩陣H的選取,可以根據(jù)需要對δ的值進(jìn)行設(shè)定。當(dāng)H為單位矩陣時,s=cT,δ=k,此時矩陣運(yùn)算沒有對嵌入效率產(chǎn)生任何貢獻(xiàn);當(dāng)n=2k-1且mod2時,δ=1,此時矩陣運(yùn)算對嵌入效率的貢獻(xiàn)達(dá)到最大。本文思想即通過將矩陣運(yùn)算和QIM嵌入方法結(jié)合,從而最大限度的提高嵌入效率。
MQL算法嵌入過程如下:
(2)求得生成矩陣
(3)根據(jù)式(5)求解s并由d=s⊕uT求得d。假設(shè)d=[d1d2…dj…dk]T,1≤j≤k,則
(4)為使d中所有元素均為0,只需根據(jù)
(5)利用QIM方法對cm對應(yīng)的碼字進(jìn)行修改。
MQL算法解析時,只需要對混沌算法步驟的輸出序列c進(jìn)行以下計算即可獲得秘密信息u=(u1,u2,…,uk)
為了分析MQL方法的性能,我們將其與文獻(xiàn)[9]中的LPC-QIM方法進(jìn)行了比較。為此,我們首先定義一些用于衡量矢量替換的參數(shù)。
定義2 變化率D(n,k)表示在n個可修改矢量中嵌入k比特秘密信息時,每個矢量被修改的平均概率。假設(shè)Echange為嵌入過程中對矢量修改次數(shù)的數(shù)學(xué)期望,則D(n,k)可由下式求得
它反映了嵌入過程對宿主信息的影響程度。D(n,k)的值越小,嵌入對宿主造成的影響就越小,嵌入過程就越難以被發(fā)現(xiàn)。例如,當(dāng)D(n,k)=0時,嵌入過程對宿主信息沒有造成任何影響,此時隱寫絕對安全。于是我們可求得兩種方法的變化率為
定義3 平均每個待嵌入矢量中嵌入的數(shù)據(jù)量稱為數(shù)據(jù)嵌入率R(n,k),可由下式求得
它反映了宿主對秘密信息的承載能力。根據(jù)R(n,δ)的計算公式我們可以計算兩種方法的數(shù)據(jù)嵌入率
定義4 嵌入效率E(k)表示每次矢量替換所能嵌入的秘密信息比特數(shù)。
在矩陣編碼過程中k為大于1的整數(shù),所以由式(12)、式(13)及E(k)的定義可得
由此可知,MQL方法變化率小于LPC-QIM方法,這說明MQL方法對載體的影響更?。籑QL方法的嵌入效率高于LPC-QIM方法,且前者是后者的k倍。
實驗從語音質(zhì)量和檢測準(zhǔn)確率兩方面進(jìn)行,通過比較MQCL方法與LPC-QIM方法[9]的實驗結(jié)果,對MQCL方法實際效果進(jìn)行分析。
本文選擇不同發(fā)音人的多個語音片段組成語音樣本庫。所用語音片段樣本包含4個種類,分別是中文男聲(Chinese speech man,CSM):包含498個語音片段、中文女聲(Chinese speech woman,CSW):包含498個語音片段、英文男聲(English speech man,ESM):包含500個語音片段、英文女聲(English speech woman,ESW):包含499個語音片段,語音片段總計1995個。每個語音片段的時長為10秒,采樣率為8000 HZ,對每個采樣點用16比特進(jìn)行量化,用PCM格式存儲。
實驗中選取了G.729和G.723.1這兩種語音編碼進(jìn)行信息嵌入,其基本參數(shù)見表2。
表2 兩種語音編碼基本參數(shù)
實驗前首先針對每組樣本及每種編碼類型生成嵌入率分別為20%、40%、60%、80%和100%的掩密文件。其中MQCL方法采用模版0進(jìn)行嵌入。使用MQCL方法進(jìn)行嵌入時,每幀最多可以嵌入2bit秘密信息,而使用LPCQIM方法時,每幀最多可以嵌入3bit秘密信息。為了保證數(shù)據(jù)嵌入率相等,本實驗中使用LPC-QIM嵌入時,在每幀的3個可嵌入位置中隨機(jī)挑選兩個進(jìn)行嵌入。經(jīng)過以上處理,我們共得到80組語音數(shù)據(jù)。
為了解MQCL方法對載體語音質(zhì)量的影響,本文隨機(jī)挑選了4組語音文件并對其隱寫前后的時域幅度譜進(jìn)行了比較。采用G.729、G.723.1編碼時的時域幅度譜分別如圖5和圖6所示。其中,隱寫前后語音文件的幅度譜分別用灰色和黑色表示,嵌入率均為100%。從圖中可以看出,即使在嵌入率為100%時,MQCL方法對載體語音文件的影響依然非常小。
圖5 采用G.729編碼時的時域幅度譜
圖6 采用G.723.1編碼時的時域幅度譜
為了更加客觀地評價MQCL方法對載體語音質(zhì)量的影響,本文將對語音文件進(jìn)行主觀平均意見分(mean opinion score,MOS)評測。MOS為我們提供了一種評價語音質(zhì)量的量化指標(biāo),其評分范圍為1到5分,1分代表最低語音質(zhì)量,5分代表最高語音質(zhì)量。本實驗采用ITU-T提供的自動MOS評分軟件進(jìn)行測試。為了比較MQCL方法與LPCQIM對載體語音質(zhì)量的影響,本文對使用兩種方法進(jìn)行嵌入后的語音文件進(jìn)行了MOS評測。為了便于觀察,我們以LPC-QIM方法的測試數(shù)據(jù)為基準(zhǔn)計算采用MQCL方法時的MOS變化率,結(jié)果見表3和表4。
從表3中可以看出,相較于LPC-QIM方法,采用MQCL方法進(jìn)行信息嵌入時,20組數(shù)據(jù)中共有19組數(shù)據(jù)的MOS值出現(xiàn)了提高。這說明MQCL方法的嵌入過程對載體語音質(zhì)量的影響更小。從表4中可以看出,20組數(shù)據(jù)中13組數(shù)據(jù)的MOS評分出現(xiàn)了提高但不如表3中明顯。
表3 采用G.729編碼時的MOS變化率
表4 采用G.723.1編碼時的MOS變化率
這是因為MQCL優(yōu)于LPC-QIM方法的本質(zhì)原因是嵌入效率更高,嵌入過程中對系數(shù)修改次數(shù)的數(shù)學(xué)期望更小,因此幀數(shù)越多這種優(yōu)勢就越明顯,幀數(shù)過少時改動次數(shù)差別不明顯。
由以上分析可知,采用MQCL方法進(jìn)行信息隱藏時對載體語音質(zhì)量的影響更小。
為了比較MQCL方法與LPC-QIM方法的隱蔽性,本文利用差分梅爾倒譜隱寫檢測方法[10]對兩種方法進(jìn)行了檢測。圖7為采用G.729編碼時的檢測準(zhǔn)確率,從圖7中可以看出MQCL方法被檢測出的概率明顯低于LPC-QIM方法。
圖7 采用G.729編碼時的檢測準(zhǔn)確率
采用G.723.1編碼時的檢測準(zhǔn)確率結(jié)果如圖8所示。從圖8中可以看出當(dāng)嵌入率較低時檢測結(jié)果大多集中在50%附近,這是因為使用G.723.1編碼后生成幀數(shù)相對較少,嵌入率較低時會導(dǎo)致嵌入過程中對系數(shù)改動次數(shù)過少,致使隱寫檢測方法無法對其有效檢測。當(dāng)嵌入率較高時,從圖8中可以看出LPC-QIM被檢測出的概率明顯增加,高于MQCL方法。
圖8 采用G.723.1編碼時的檢測準(zhǔn)確率
由以上分析可知,使用MQCL方法進(jìn)行信息隱藏時,被檢測出的概率更低,表明該方法具有更好的隱蔽性。
本文針對LPC過程提出了一種具有普適性的信息隱藏方法——MQCL方法。該方法通過結(jié)合矩陣編碼和QIM方法提高信息嵌入效率達(dá)到減小失真、提高隱蔽性的目的。MQCL方法的嵌入效率是現(xiàn)有LPC-QIM方法的k(k>1)倍。此外,該方法還引入了可調(diào)安全等級的概念,結(jié)合混沌理論對嵌入位置及嵌入模版進(jìn)行選擇,從而進(jìn)一步提高隱寫的隱蔽性。實驗結(jié)果表明,采用MQCL方法進(jìn)行信息嵌入后語音質(zhì)量和檢測準(zhǔn)確率均優(yōu)于采用LPC-QIM方法的結(jié)果。
[1]Tian Hui,Zhou Ke,Jiang Hong,et al.An M-sequence based steganography model for voice over IP[C]//IEEE International Conference on Proceedings of the Communications,2009:1-5.
[2]Liu Lihua,Li Mingyu,Li Qiong,et al.Perceptually transparent information hiding in G.729 bitstream[C]//International Conference on Proceedings of the Intelligent Information Hiding and Multimedia Signal Processing,2008:406-409.
[3]Liu Jin,Zhou Ke,Tian Hui.Least-significant-digit steganography in low bitrate speech[C]//IEEE International Conference on Proceedings of the Communications,2012:1133-1137.
[4]Xu Tingting,Yang Zhen.Simple and effective speech steganography in G.723.1 low-rate codes[C]//International Conference on Proceedings of the Wireless Communications &Signal Processing,2009:1-4.
[5]Huang Yongfeng,Tang Shanyu,Yuan Jian.Steganography in inactive frames of VoIP streams encoded by source codec[J].IEEE Transactions on Information Forensics and Security,2011,6(2):296-306.
[6]Ito A,Abe S,Suzuki Y.Information hiding for G.711 speech based on substitution of least significant bits and estimation of tolerable distortion[C]//IEEE International Conference on Proceedings of the Acoustics,Speech and Signal Processing,2009:1409-1412.
[7]Yargicloglu A U,Ilk H G.Hidden data transmission in mixed excitation linear prediction coded speech using quantisation index modulation[J].Information Security,2010,4(3):158-166.
[8]Huang Yongfeng,Liu Chenghao,Tang Shanyu,et al.Steganography integration into a low-bit rate speech codec[J].IEEE Transactions on Information Forensics and Security,2012,7(6):1865-1875.
[9]Xiao Bo,Huang Yongfeng,Tang Shanyu.An approach to information hiding in low bit-rate speech stream[C]//Proceedings of the Global Telecommunications Conference.IEEE,2008:1-5.
[10]Liu Qingzhong,Sung A H,Qiao Mengyu.Temporal derivative-based spectrum and mel-cepstrum audio steganalysis[J].IEEE Transactions on Information Forensics and Security,2009,4(3):359-368.