郭舒婷,田暉
(華僑大學 計算機科學與技術學院,福建 廈門361021)
信息隱藏是近年來提出的一種解決信息安全的新途徑.它是利用人的聽(視)覺對媒體信號的感覺冗余,將隱秘信息嵌入到數(shù)字媒體中.以隱藏嵌入過程的存在性,使除了執(zhí)行嵌入行為的發(fā)送方和接收方之外的第三方不知道此過程[1].隨著研究的不斷深入,信息隱藏已不僅僅局限于以圖像、音頻、文本等靜態(tài)媒體為載體,對于能夠提供可觀隱藏空間的流媒體[2]也成為了學者們關注的熱點.在基于流媒體的信息隱藏研究中,以VoIP(voice over internet protocol)為代表的信息隱藏技術發(fā)展的最為迅速.其原因主要是VoIP所嵌入的隱秘信息具有強動態(tài)性,不易被攻擊者篡改,且VoIP語音能夠提供較好的隱蔽性和隱藏容量[2].基于VoIP的信息隱藏有兩種研究思路:一種是基于網(wǎng)絡協(xié)議的信息隱藏方法[3];另一種是基于載荷(語音流)方法[4-7].為實現(xiàn)信息隱藏,通常首先分析編碼器參數(shù)的冗余度以確定語音流中的可隱藏位.文獻[8-9]分別分析了 G.723.1編碼器在低比特率(5.3 kbit·s-1)和高比特率(6.3 kbit·s-1)下參數(shù)的冗余度.Liu等[10]采用分段信噪比來評價語音質(zhì)量,分析了G.729語音幀的最低有效位(LSB),認為G.729語音幀的冗余位主要分布在第二子幀的LSP參數(shù)上.除了對于編碼參數(shù)中的最低有效位的探索,近年來研究者們也開始從語音編碼原理的角度挖掘冗余性.Huang等[11-12]先后提出利用不活躍語音幀來隱藏隱秘信息和將嵌入過程整合到編碼過程中;類似地,劉程浩等[13]則將隱寫過程整合到基音預測過程中.本文針對VoIP系統(tǒng)普遍采用G.729a語音編碼,以客觀的語音質(zhì)量感知評價標準為依據(jù),分析和總結G.729a語音幀中的可隱藏位;然后以此為基礎,結合矩陣編碼算法,提出了一種基于G.729a語音的信息隱藏方法.
G.729a編解碼器按照8 k Hz采樣,16 bit量化且每幀長10 ms,因而G.729a語音幀被壓縮成80位,每位都代表相應的參數(shù)向量.G.729a語音幀各比特所代表的意義,如表1所示.表1中:每個比特位表示為Px-y格式,P表示參數(shù)類型,x表示子幀號,y表示比特位置,從低位0到高位.在混合語音編碼流中,每比特對語音質(zhì)量有不同程度的影響[10],將對語音失真影響不大的位稱為冗余位,即最低有效位.通過對語音樣本中各幀的每個比特逐位取反來測試G.729a語音幀的最低有效位.
設待測試樣本經(jīng)過 G.729a編碼后有n個語音幀F(xiàn),F(xiàn)={f1,f2,…,fn}且fi={bi,1,bi,2,…,bi,80}.其中:1≤i≤n;bi,j(1≤i≤n,1≤j≤80)表示第i個語音幀的第j位.對F中的第j位取反且同時對bi,j(1≤i≤n)置反進行測試.每次測試僅對G.729a語音幀的一個特定位進行取反,并根據(jù)其對語音質(zhì)量的影響來判斷是否為最低有效位.
表1 G.729a語音幀各比特的意義Tab.1 Meanings of frame bits for G.729a speech
為了直觀的評價語音質(zhì)量的變化,采用客觀的語音質(zhì)量評價標準PESQ,其較之完全通過人來打分的主觀評價方式MOS技術,具有成本低廉、客觀、自動、可重復等優(yōu)點,近年來在通信語音質(zhì)量評價領域得到了廣泛應用.PESQ的原理是通過比較參考信號和降級信號輸出一個對語音質(zhì)量失真的預測值,其范圍在-0.5~4.5之間,值越高表示加噪語音信號的語音質(zhì)量越好.測試中將原始語音作為參考信號,而將修改后的語音作為降級信號,以評判各比特位被修改后對語音質(zhì)量的影響.
為了測試最低有效位,廣泛收集了2 800個語音樣本,涵蓋漢語男聲、漢語女聲、英語男聲、英語女聲4類.對各比特位的平均PESQ值進行統(tǒng)計,根據(jù)置反后平均PESQ值(PESQ score)的變化大小,可得到G.729a語音幀的LSB(PESQ值大于3.5的位),如表2所示.根據(jù)表1中的幀比特分布情況(加下劃線部分代表最低有效位),不難看出G.729a語音幀的最低有效位主要分布在自適應碼書延遲、線性聲譜對、固定碼書索引以及碼書增益等參數(shù)上.
表2 G.729a語音幀比特的可隱藏位Tab.2 Available bits for steganography in G.729a speech frame
為了減少對載體的修改從而提高嵌入的不可感知性,利用矩陣編碼指導隱秘信息的嵌入.矩陣編碼是最常用的一種提高感知透明性的隱寫編碼策略[14],它可在2n-1比特載體信息中隱藏nbit的秘密信息,而只需修改不超過1 bit的載體信息,因而可以有效提高嵌入效率并且降低比特改變率.矩陣編碼過程等價于根據(jù)一個哈希函數(shù)求出待隱藏信息在載體中的嵌入位置.假設有長度為nbit的隱秘信息分組S,S={s1,s2,s3,…,sn},要隱藏在長度為lbit的載體分組C中,C={c1,c2,c3,…,cl},其中:n與l滿足l=2n-1.則隱秘信息的嵌入過程可表述為如下3個步驟.
步驟1 根據(jù)載體C中各位的下標i(1≤i≤l),求得大小為n×l的編碼矩陣A,即
式(1)中:i=ai,1×20+ai,2×21+…+ai,n×2n-1,1≤i≤l.
步驟2 將載體C與Am對應相乘并連續(xù)求異或,得值xm.其中:Am(1≤m≤n)表示編碼矩陣A中的第m行;am,j(1≤m≤n,1≤j≤l)表示編碼矩陣A中的第m行第j列的值.即
步驟3 比較sm與xm(1≤m≤n)是否相等.若相等,則令Xm為0;否則,Xm為1(其中sm為隱秘信息S中的第m位),根據(jù)式(3)求嵌入位置X,即
若求得的X為0,則不必修改(說明要嵌入的位與待嵌入的隱秘信息的值相同);否則,修改載體C中第X位的值.
基于矩陣編碼信息隱藏的提取算法是根據(jù)上述哈希函數(shù)即編碼矩陣A求得,可視作嵌入算法的一個逆過程.只需求出秘密信息的位sj,即
式(4)中:c′i為載密信息C′= {c′1,c′2,c′3,…,c′l}中第i位的值;aj,i(1≤j≤n,1≤i≤l)表示編碼矩陣A中的第j行第i列的值;sj為提取的隱秘信息S={s1,s2,s3,…,sn}中第j位的值.
在信息隱藏過程中[14],通常定義嵌入率為隱藏的隱秘信息比特數(shù)與載體比特數(shù)的比值;比特改變率為載體中被改變的比特數(shù)與載體比特數(shù)的比值;嵌入效率為隱藏的隱秘信息比特數(shù)與載體中被改變的比特數(shù)的比值.在應用矩陣編碼的隱藏過程中,嵌入率(α)、比特改變率(β)和嵌入效率(λ)分別表示為
不同的隱秘信息分組長度n下的矩陣編碼隱藏方法的隱藏性能,如表3所示.眾所周知,傳統(tǒng)的LSB替換方法中,嵌入率和比特改變率分別為1和0.5,也就是說LSB替換方法的嵌入效率為2.由此可知:采用矩陣編碼可以獲得較之傳統(tǒng)LSB替換更高的嵌入效率.同時,矩陣編碼的嵌入效率隨隱秘信息分組長度n的增大而增大,而嵌入率卻隨之減少.因此,在實際應用中,需在嵌入效率和嵌入率之間進行合理折中.為兼顧嵌入效率和隱藏容量,根據(jù)上節(jié)的分析結果選取每幀中隱藏效果最佳的12個最低有效位,并按3 bit長度進行分組,然后在每組上分別執(zhí)行基于矩陣編碼的隱藏算法,即每組可隱藏2 bit隱秘信息,從而每幀共可隱藏8 bit隱秘信息.
表3 矩陣編碼在不同隱秘信息分組長度n下的隱藏性能Tab.3 Steganographic performance of the matrix encoding with different lengths of the secret messages n
為了測試文中算法的有效性,先選擇英文對話“Question11.W:Did you hear that Anna needs to stay in bed for 4 weeks?M:Yeah.She injured her spine in a fall and a doctor told her to lie flat on her back for a month so it can mend.Q:What can we learn from the conversation?”(記為C1)和中文短句“人之初,性本善,性相近,習相遠”(記為C2)作為載體,以華僑大學英文簡介(共4 810字節(jié))作為隱秘信息進行測試.經(jīng)過G.729a編碼之后,C1共有2 010幀,可隱藏2 010字節(jié)隱秘信息;C2共有710幀,可隱藏710字節(jié)隱秘信息(由于載體長度限制,因此不能將整段隱秘信息完全嵌入).嵌入隱秘信息前后的聲譜,如圖1所示.由圖1可知:載體語音在嵌入隱秘信息前后的聲譜圖基本一致,說明隱藏過程未對載體語音頻譜造成明顯的改變.
圖1 C1和C2嵌入隱秘信息前后的聲譜圖Fig.1 Spectrogram of C1 and C2 before and after embedding secret message
為進一步測試文中算法的隱藏效果,選取ITU P.501標準附錄B中提供的多種音頻庫中的語音作為載體樣本進行PESQ值測試.該樣本庫覆蓋了世界上的主要10種語言,如中文、英語、法語、德語、意大利語、日語、波蘭語、西班牙語等,每種語言又包含了男聲和女聲,具有良好的多樣性,近年來在語音測試中被廣泛采用.
在測試過程中,首先,將載體樣本轉(zhuǎn)換為8 k Hz采樣,16 bit量化的PCM格式語音;然后,將其經(jīng)G.729a編碼器編碼、嵌入隱秘信息;最后,分別解碼已嵌入隱秘信息及未執(zhí)行任何操作的語音樣本為PCM格式語音.將未執(zhí)行任何操作的PCM語音樣本作為PESQ的原始語音,而經(jīng)嵌入后的PCM語音樣本作為PESQ的降級語音,進行PESQ測試.
各類語音樣本嵌入隱秘信息后的PESQ值,如圖2所示.由圖2數(shù)據(jù)可知:載密語音的語音質(zhì)量與原始載體語音的語種存在一定的關系,如載密法語語音的平均PESQ值為3.7左右,而載密西班牙語音的平均PESQ值為3.4左右,但就整體而言,載密語音的平均PESQ值均維持在3.4以上,說明文中方法對語音質(zhì)量影響較小,能夠提供良好的感知透明性.
表4進一步給出了10個語種的語音樣本在嵌入上述隱秘信息之后的嵌入效率,及各樣本嵌入效率的波動性(即方差)的統(tǒng)計結果.由表4可知:文中算法的平均嵌入效率為2.678;此外,對同一語種而言嵌入效率波動性較小,說明本算法能夠提供較為穩(wěn)定的隱藏性能.
表4 不同語種的嵌入效率均值及其方差Tab.4 Mean embedding efficiencies and their variance for different languages
除了采用客觀評價標準評價本方法的隱藏效果外,還進行了ABX測試[15],從主觀上評價執(zhí)行嵌入操作的語音樣本與原始語音樣本之間的相似度.ABX測試,是讓受測者同時聽三段同樣內(nèi)容的樣本語音A,B和X,并讓受測者判斷X與A和B中的哪個一致.在測試過程中,若樣本X被判錯的比例越高,則說明人耳越難分辨A和B.文中選取了11個受測者,對ITU P.501標準附錄B中提供的40組樣本分別進行了ABX測試,其中,A和B中的一者為原始語音樣本,另一者為嵌入隱秘信息后的語音樣本;X則為原始語音樣本和嵌入隱秘信息后的語音樣本之一.對不同語種的語音樣本進行ABX測試的平均判錯率(η),如圖3所示.
從全部樣本整體測試結果來看,平均判錯率(η)為48.18%,接近隨機猜想的概率50%.說明人耳很難準確的區(qū)分原始語音和嵌入隱秘信息后的語音樣本,同時說明本方法能夠提供良好的嵌入透明性.此外,從不同語種的測試結果來看,不同語種的ABX測試判錯率略有不同,其規(guī)律與圖2中PESQ值的測試結果基本對應,即PESQ值較高者,ABX平均判錯率也較高.這一現(xiàn)象可能表明語種(或語音內(nèi)容)對語音質(zhì)量和隱藏效果有一定程度上的影響,后續(xù)將對這一問題做更深入的研究.
圖2 不同語種的PESQ值Fig.2 PESQ score for different languages
圖3 對不同語種的ABX測試的錯誤率Fig.3 Error rate of ABX test for different languages
此外,針對G.729a語音流提出的隱藏方法可應用的另一個重要前提是滿足語音通信的實時性要求.為此,在一臺計算機(主要配置參數(shù)為Intel(R)Core(TM)2 Duo CPU E7500@2.93 GHz 2.94 GHz;2.00 GB(RAM);Windows 7旗艦版Service Pack 1)上,對所提出方法嵌入和提取時間進行測試.實驗結果表明:本方法執(zhí)行過程中,每幀上隱秘信息的嵌入時間平均為6.868μs,每幀上提取隱秘信息的平均時間為7.142μs,這遠小于G.729a編碼器所允許每幀的編碼時間15 ms(注:G.729a編碼器以10 ms為一幀進行編碼,并允許5 ms的預留).由此說明:本方法能夠很好地滿足實時語音通信的要求.
對基于G.729a語音流的信息隱藏方法進行了初步研究.以客觀的語音質(zhì)量感知評價標準為依據(jù),通過逐幀按位取反對G.729a語音幀的最低有效位進行了全面測試和分析;根據(jù)分析結果,結合矩陣編碼算法,提出了一種基于G.729a語音的信息隱藏方法.最后,選取大量語音樣本,對提出的方法進行了測試和分析 .結果表明:該方法能提供可觀的隱藏容量,較高的嵌入效率和較好的不可感知性.
值得指出的是,本方法從本質(zhì)上來說屬于最低有效位修改的隱藏方法,因而針對載體的大范圍篡改,尤其是針對最低有效位的主動攻擊會在一定程度上造成隱秘信息的丟失.當然,這種攻擊方式對于正常的語音通信也是致命的,也就是說正常的語音通信都將難以為繼.因此,在研究隱蔽通信時,常常不考慮這種極端的情形.對于非人為的載體影響(如噪聲干擾、數(shù)據(jù)包丟失等)可能造成的隱秘信息丟失,在隱蔽通信系統(tǒng)中可采用差錯重傳技術[7]予以解決.
未來將針對文中方法在實際隱蔽通信系統(tǒng)中應用時的魯棒性和可靠性問題進一步做深層次的研究和探討.此外,如何進一步提高嵌入效率,各最低有效位的隱藏操作之間是否存在聯(lián)系或相互影響等,也是文中將進一步深入的重要問題.
[1] GU Chun-ying,GAO Xiao-li.Research on information hiding technology[C]∥ Proceedings of the 2nd International Conference on Consumer Electronics,Communications and Networks(CECNet).Yichang:IEEE Press,2012:2035-2037.
[2] MAZURCZYK W.VoIP steganography and its detection:A survey[J].ACM Computing Surveys,2013,2(46):20.
[3] FRACZEK W,MAZURCZYK W,SZCZYPIORSKI K.Hiding information in a stream control transmission protocol[J].Computer Communications,2012,2(35):159-169.
[4] XU Er-chi,LIU Bo,XU Li-yang.Adaptive VoIP steganography for information hiding within network audio streams[C]∥Proceedings of the 14th International Conference on Network-Based Information Systems(NBiS).Tirana:IEEE Press,2011:612-617.
[5] MIAO Rui,HUANG Yong-feng.An approach of covert communication based on the adaptive steganography scheme on voice over IP[C]∥Proceedings of the 46th IEEE International Conference on Communications(ICC).Kyoto:IEEE Press,2011:1-5.
[6] LIU Jin,ZHOU Ke,TIAN Hui.Least-significant-digit steganography in low bitrate speech[C]∥Proceedings of the 47th IEEE International Conference on Communications(ICC).Ottawa:IEEE Press,2012:1109-1112.
[7] TIAN Hui,JIANG Hong,ZHOU Ke,et al.Adaptive partial-matching steganography for voice over IP using triple m sequences[J].Computer Communications,2011,34(18):2236-2247.
[8] XU Ting-ting,YANG Zhen.Simple and effective speech steganography in G.723.1 low-rate codes[C]∥Proceedings of the 1st International Conference on Wireless Communications & Signal Processing.Nanjing:IEEE Press,2009:1-4.
[9] 楊俊,柏森,朱桂斌,等.G.723.1高速率語音流的信息隱藏算法[J].計算機工程,2011,37(22):114-115,118.
[10] LIU Li-hua,LI Ming-yu,LI Qiong,et al.Perceptually transparent information hiding in G.729 bitstream[C]∥Proceedings of the 4th International Conference on Intelligent Information Hiding and Multimedia Signal Processing.Harbin:IEEE Press,2008:406-409.
[11] HUANG Yong-feng,TANG Shan-yu.Steganography in inactive frames of VoIP streams encoded by source codec[J].IEEE Transactions on Information Forensics and Security,2011,6(2):296-306.
[12] HUANG Yong-feng,LIU Cheng-hao,TANG Shan-yu.Steganography integration into a low-bit rate speech codec[J].IEEE Transactions on Information Forensics and Security,2012,7(6):1865-1875.
[13] 劉程浩,柏森,黃永峰,等.一種基于基音預測的信息隱藏算法[J].計算機工程,2013,39(2):137-140.
[14] TIAN Hui,ZHOU Ke,F(xiàn)ENG Dan.Dynamic matrix encoding strategy for voice-over-IP steganography[J].Journal of Central South University of Technology,2010,17(6):1285-1292.
[15] 賈俊,王朔中.基于Lab VIEW 平臺的 ABX測試系統(tǒng)[J].聲學技術,2005,24(1):46-49.