郭舒婷,田暉
(華僑大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,福建 廈門361021)
信息隱藏是近年來(lái)提出的一種解決信息安全的新途徑.它是利用人的聽(視)覺(jué)對(duì)媒體信號(hào)的感覺(jué)冗余,將隱秘信息嵌入到數(shù)字媒體中.以隱藏嵌入過(guò)程的存在性,使除了執(zhí)行嵌入行為的發(fā)送方和接收方之外的第三方不知道此過(guò)程[1].隨著研究的不斷深入,信息隱藏已不僅僅局限于以圖像、音頻、文本等靜態(tài)媒體為載體,對(duì)于能夠提供可觀隱藏空間的流媒體[2]也成為了學(xué)者們關(guān)注的熱點(diǎn).在基于流媒體的信息隱藏研究中,以VoIP(voice over internet protocol)為代表的信息隱藏技術(shù)發(fā)展的最為迅速.其原因主要是VoIP所嵌入的隱秘信息具有強(qiáng)動(dòng)態(tài)性,不易被攻擊者篡改,且VoIP語(yǔ)音能夠提供較好的隱蔽性和隱藏容量[2].基于VoIP的信息隱藏有兩種研究思路:一種是基于網(wǎng)絡(luò)協(xié)議的信息隱藏方法[3];另一種是基于載荷(語(yǔ)音流)方法[4-7].為實(shí)現(xiàn)信息隱藏,通常首先分析編碼器參數(shù)的冗余度以確定語(yǔ)音流中的可隱藏位.文獻(xiàn)[8-9]分別分析了 G.723.1編碼器在低比特率(5.3 kbit·s-1)和高比特率(6.3 kbit·s-1)下參數(shù)的冗余度.Liu等[10]采用分段信噪比來(lái)評(píng)價(jià)語(yǔ)音質(zhì)量,分析了G.729語(yǔ)音幀的最低有效位(LSB),認(rèn)為G.729語(yǔ)音幀的冗余位主要分布在第二子幀的LSP參數(shù)上.除了對(duì)于編碼參數(shù)中的最低有效位的探索,近年來(lái)研究者們也開始從語(yǔ)音編碼原理的角度挖掘冗余性.Huang等[11-12]先后提出利用不活躍語(yǔ)音幀來(lái)隱藏隱秘信息和將嵌入過(guò)程整合到編碼過(guò)程中;類似地,劉程浩等[13]則將隱寫過(guò)程整合到基音預(yù)測(cè)過(guò)程中.本文針對(duì)VoIP系統(tǒng)普遍采用G.729a語(yǔ)音編碼,以客觀的語(yǔ)音質(zhì)量感知評(píng)價(jià)標(biāo)準(zhǔn)為依據(jù),分析和總結(jié)G.729a語(yǔ)音幀中的可隱藏位;然后以此為基礎(chǔ),結(jié)合矩陣編碼算法,提出了一種基于G.729a語(yǔ)音的信息隱藏方法.
G.729a編解碼器按照8 k Hz采樣,16 bit量化且每幀長(zhǎng)10 ms,因而G.729a語(yǔ)音幀被壓縮成80位,每位都代表相應(yīng)的參數(shù)向量.G.729a語(yǔ)音幀各比特所代表的意義,如表1所示.表1中:每個(gè)比特位表示為Px-y格式,P表示參數(shù)類型,x表示子幀號(hào),y表示比特位置,從低位0到高位.在混合語(yǔ)音編碼流中,每比特對(duì)語(yǔ)音質(zhì)量有不同程度的影響[10],將對(duì)語(yǔ)音失真影響不大的位稱為冗余位,即最低有效位.通過(guò)對(duì)語(yǔ)音樣本中各幀的每個(gè)比特逐位取反來(lái)測(cè)試G.729a語(yǔ)音幀的最低有效位.
設(shè)待測(cè)試樣本經(jīng)過(guò) G.729a編碼后有n個(gè)語(yǔ)音幀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個(gè)語(yǔ)音幀的第j位.對(duì)F中的第j位取反且同時(shí)對(duì)bi,j(1≤i≤n)置反進(jìn)行測(cè)試.每次測(cè)試僅對(duì)G.729a語(yǔ)音幀的一個(gè)特定位進(jìn)行取反,并根據(jù)其對(duì)語(yǔ)音質(zhì)量的影響來(lái)判斷是否為最低有效位.
表1 G.729a語(yǔ)音幀各比特的意義Tab.1 Meanings of frame bits for G.729a speech
為了直觀的評(píng)價(jià)語(yǔ)音質(zhì)量的變化,采用客觀的語(yǔ)音質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)PESQ,其較之完全通過(guò)人來(lái)打分的主觀評(píng)價(jià)方式MOS技術(shù),具有成本低廉、客觀、自動(dòng)、可重復(fù)等優(yōu)點(diǎn),近年來(lái)在通信語(yǔ)音質(zhì)量評(píng)價(jià)領(lǐng)域得到了廣泛應(yīng)用.PESQ的原理是通過(guò)比較參考信號(hào)和降級(jí)信號(hào)輸出一個(gè)對(duì)語(yǔ)音質(zhì)量失真的預(yù)測(cè)值,其范圍在-0.5~4.5之間,值越高表示加噪語(yǔ)音信號(hào)的語(yǔ)音質(zhì)量越好.測(cè)試中將原始語(yǔ)音作為參考信號(hào),而將修改后的語(yǔ)音作為降級(jí)信號(hào),以評(píng)判各比特位被修改后對(duì)語(yǔ)音質(zhì)量的影響.
為了測(cè)試最低有效位,廣泛收集了2 800個(gè)語(yǔ)音樣本,涵蓋漢語(yǔ)男聲、漢語(yǔ)女聲、英語(yǔ)男聲、英語(yǔ)女聲4類.對(duì)各比特位的平均PESQ值進(jìn)行統(tǒng)計(jì),根據(jù)置反后平均PESQ值(PESQ score)的變化大小,可得到G.729a語(yǔ)音幀的LSB(PESQ值大于3.5的位),如表2所示.根據(jù)表1中的幀比特分布情況(加下劃線部分代表最低有效位),不難看出G.729a語(yǔ)音幀的最低有效位主要分布在自適應(yīng)碼書延遲、線性聲譜對(duì)、固定碼書索引以及碼書增益等參數(shù)上.
表2 G.729a語(yǔ)音幀比特的可隱藏位Tab.2 Available bits for steganography in G.729a speech frame
為了減少對(duì)載體的修改從而提高嵌入的不可感知性,利用矩陣編碼指導(dǎo)隱秘信息的嵌入.矩陣編碼是最常用的一種提高感知透明性的隱寫編碼策略[14],它可在2n-1比特載體信息中隱藏nbit的秘密信息,而只需修改不超過(guò)1 bit的載體信息,因而可以有效提高嵌入效率并且降低比特改變率.矩陣編碼過(guò)程等價(jià)于根據(jù)一個(gè)哈希函數(shù)求出待隱藏信息在載體中的嵌入位置.假設(shè)有長(zhǎng)度為nbit的隱秘信息分組S,S={s1,s2,s3,…,sn},要隱藏在長(zhǎng)度為lbit的載體分組C中,C={c1,c2,c3,…,cl},其中:n與l滿足l=2n-1.則隱秘信息的嵌入過(guò)程可表述為如下3個(gè)步驟.
步驟1 根據(jù)載體C中各位的下標(biāo)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對(duì)應(yīng)相乘并連續(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,則不必修改(說(shuō)明要嵌入的位與待嵌入的隱秘信息的值相同);否則,修改載體C中第X位的值.
基于矩陣編碼信息隱藏的提取算法是根據(jù)上述哈希函數(shù)即編碼矩陣A求得,可視作嵌入算法的一個(gè)逆過(guò)程.只需求出秘密信息的位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位的值.
在信息隱藏過(guò)程中[14],通常定義嵌入率為隱藏的隱秘信息比特?cái)?shù)與載體比特?cái)?shù)的比值;比特改變率為載體中被改變的比特?cái)?shù)與載體比特?cái)?shù)的比值;嵌入效率為隱藏的隱秘信息比特?cái)?shù)與載體中被改變的比特?cái)?shù)的比值.在應(yīng)用矩陣編碼的隱藏過(guò)程中,嵌入率(α)、比特改變率(β)和嵌入效率(λ)分別表示為
不同的隱秘信息分組長(zhǎng)度n下的矩陣編碼隱藏方法的隱藏性能,如表3所示.眾所周知,傳統(tǒng)的LSB替換方法中,嵌入率和比特改變率分別為1和0.5,也就是說(shuō)LSB替換方法的嵌入效率為2.由此可知:采用矩陣編碼可以獲得較之傳統(tǒng)LSB替換更高的嵌入效率.同時(shí),矩陣編碼的嵌入效率隨隱秘信息分組長(zhǎng)度n的增大而增大,而嵌入率卻隨之減少.因此,在實(shí)際應(yīng)用中,需在嵌入效率和嵌入率之間進(jìn)行合理折中.為兼顧嵌入效率和隱藏容量,根據(jù)上節(jié)的分析結(jié)果選取每幀中隱藏效果最佳的12個(gè)最低有效位,并按3 bit長(zhǎng)度進(jìn)行分組,然后在每組上分別執(zhí)行基于矩陣編碼的隱藏算法,即每組可隱藏2 bit隱秘信息,從而每幀共可隱藏8 bit隱秘信息.
表3 矩陣編碼在不同隱秘信息分組長(zhǎng)度n下的隱藏性能Tab.3 Steganographic performance of the matrix encoding with different lengths of the secret messages n
為了測(cè)試文中算法的有效性,先選擇英文對(duì)話“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)和中文短句“人之初,性本善,性相近,習(xí)相遠(yuǎn)”(記為C2)作為載體,以華僑大學(xué)英文簡(jiǎn)介(共4 810字節(jié))作為隱秘信息進(jìn)行測(cè)試.經(jīng)過(guò)G.729a編碼之后,C1共有2 010幀,可隱藏2 010字節(jié)隱秘信息;C2共有710幀,可隱藏710字節(jié)隱秘信息(由于載體長(zhǎng)度限制,因此不能將整段隱秘信息完全嵌入).嵌入隱秘信息前后的聲譜,如圖1所示.由圖1可知:載體語(yǔ)音在嵌入隱秘信息前后的聲譜圖基本一致,說(shuō)明隱藏過(guò)程未對(duì)載體語(yǔ)音頻譜造成明顯的改變.
圖1 C1和C2嵌入隱秘信息前后的聲譜圖Fig.1 Spectrogram of C1 and C2 before and after embedding secret message
為進(jìn)一步測(cè)試文中算法的隱藏效果,選取ITU P.501標(biāo)準(zhǔn)附錄B中提供的多種音頻庫(kù)中的語(yǔ)音作為載體樣本進(jìn)行PESQ值測(cè)試.該樣本庫(kù)覆蓋了世界上的主要10種語(yǔ)言,如中文、英語(yǔ)、法語(yǔ)、德語(yǔ)、意大利語(yǔ)、日語(yǔ)、波蘭語(yǔ)、西班牙語(yǔ)等,每種語(yǔ)言又包含了男聲和女聲,具有良好的多樣性,近年來(lái)在語(yǔ)音測(cè)試中被廣泛采用.
在測(cè)試過(guò)程中,首先,將載體樣本轉(zhuǎn)換為8 k Hz采樣,16 bit量化的PCM格式語(yǔ)音;然后,將其經(jīng)G.729a編碼器編碼、嵌入隱秘信息;最后,分別解碼已嵌入隱秘信息及未執(zhí)行任何操作的語(yǔ)音樣本為PCM格式語(yǔ)音.將未執(zhí)行任何操作的PCM語(yǔ)音樣本作為PESQ的原始語(yǔ)音,而經(jīng)嵌入后的PCM語(yǔ)音樣本作為PESQ的降級(jí)語(yǔ)音,進(jìn)行PESQ測(cè)試.
各類語(yǔ)音樣本嵌入隱秘信息后的PESQ值,如圖2所示.由圖2數(shù)據(jù)可知:載密語(yǔ)音的語(yǔ)音質(zhì)量與原始載體語(yǔ)音的語(yǔ)種存在一定的關(guān)系,如載密法語(yǔ)語(yǔ)音的平均PESQ值為3.7左右,而載密西班牙語(yǔ)音的平均PESQ值為3.4左右,但就整體而言,載密語(yǔ)音的平均PESQ值均維持在3.4以上,說(shuō)明文中方法對(duì)語(yǔ)音質(zhì)量影響較小,能夠提供良好的感知透明性.
表4進(jìn)一步給出了10個(gè)語(yǔ)種的語(yǔ)音樣本在嵌入上述隱秘信息之后的嵌入效率,及各樣本嵌入效率的波動(dòng)性(即方差)的統(tǒng)計(jì)結(jié)果.由表4可知:文中算法的平均嵌入效率為2.678;此外,對(duì)同一語(yǔ)種而言嵌入效率波動(dòng)性較小,說(shuō)明本算法能夠提供較為穩(wěn)定的隱藏性能.
表4 不同語(yǔ)種的嵌入效率均值及其方差Tab.4 Mean embedding efficiencies and their variance for different languages
除了采用客觀評(píng)價(jià)標(biāo)準(zhǔn)評(píng)價(jià)本方法的隱藏效果外,還進(jìn)行了ABX測(cè)試[15],從主觀上評(píng)價(jià)執(zhí)行嵌入操作的語(yǔ)音樣本與原始語(yǔ)音樣本之間的相似度.ABX測(cè)試,是讓受測(cè)者同時(shí)聽三段同樣內(nèi)容的樣本語(yǔ)音A,B和X,并讓受測(cè)者判斷X與A和B中的哪個(gè)一致.在測(cè)試過(guò)程中,若樣本X被判錯(cuò)的比例越高,則說(shuō)明人耳越難分辨A和B.文中選取了11個(gè)受測(cè)者,對(duì)ITU P.501標(biāo)準(zhǔn)附錄B中提供的40組樣本分別進(jìn)行了ABX測(cè)試,其中,A和B中的一者為原始語(yǔ)音樣本,另一者為嵌入隱秘信息后的語(yǔ)音樣本;X則為原始語(yǔ)音樣本和嵌入隱秘信息后的語(yǔ)音樣本之一.對(duì)不同語(yǔ)種的語(yǔ)音樣本進(jìn)行ABX測(cè)試的平均判錯(cuò)率(η),如圖3所示.
從全部樣本整體測(cè)試結(jié)果來(lái)看,平均判錯(cuò)率(η)為48.18%,接近隨機(jī)猜想的概率50%.說(shuō)明人耳很難準(zhǔn)確的區(qū)分原始語(yǔ)音和嵌入隱秘信息后的語(yǔ)音樣本,同時(shí)說(shuō)明本方法能夠提供良好的嵌入透明性.此外,從不同語(yǔ)種的測(cè)試結(jié)果來(lái)看,不同語(yǔ)種的ABX測(cè)試判錯(cuò)率略有不同,其規(guī)律與圖2中PESQ值的測(cè)試結(jié)果基本對(duì)應(yīng),即PESQ值較高者,ABX平均判錯(cuò)率也較高.這一現(xiàn)象可能表明語(yǔ)種(或語(yǔ)音內(nèi)容)對(duì)語(yǔ)音質(zhì)量和隱藏效果有一定程度上的影響,后續(xù)將對(duì)這一問(wèn)題做更深入的研究.
圖2 不同語(yǔ)種的PESQ值Fig.2 PESQ score for different languages
圖3 對(duì)不同語(yǔ)種的ABX測(cè)試的錯(cuò)誤率Fig.3 Error rate of ABX test for different languages
此外,針對(duì)G.729a語(yǔ)音流提出的隱藏方法可應(yīng)用的另一個(gè)重要前提是滿足語(yǔ)音通信的實(shí)時(shí)性要求.為此,在一臺(tái)計(jì)算機(jī)(主要配置參數(shù)為Intel(R)Core(TM)2 Duo CPU E7500@2.93 GHz 2.94 GHz;2.00 GB(RAM);Windows 7旗艦版Service Pack 1)上,對(duì)所提出方法嵌入和提取時(shí)間進(jìn)行測(cè)試.實(shí)驗(yàn)結(jié)果表明:本方法執(zhí)行過(guò)程中,每幀上隱秘信息的嵌入時(shí)間平均為6.868μs,每幀上提取隱秘信息的平均時(shí)間為7.142μs,這遠(yuǎn)小于G.729a編碼器所允許每幀的編碼時(shí)間15 ms(注:G.729a編碼器以10 ms為一幀進(jìn)行編碼,并允許5 ms的預(yù)留).由此說(shuō)明:本方法能夠很好地滿足實(shí)時(shí)語(yǔ)音通信的要求.
對(duì)基于G.729a語(yǔ)音流的信息隱藏方法進(jìn)行了初步研究.以客觀的語(yǔ)音質(zhì)量感知評(píng)價(jià)標(biāo)準(zhǔn)為依據(jù),通過(guò)逐幀按位取反對(duì)G.729a語(yǔ)音幀的最低有效位進(jìn)行了全面測(cè)試和分析;根據(jù)分析結(jié)果,結(jié)合矩陣編碼算法,提出了一種基于G.729a語(yǔ)音的信息隱藏方法.最后,選取大量語(yǔ)音樣本,對(duì)提出的方法進(jìn)行了測(cè)試和分析 .結(jié)果表明:該方法能提供可觀的隱藏容量,較高的嵌入效率和較好的不可感知性.
值得指出的是,本方法從本質(zhì)上來(lái)說(shuō)屬于最低有效位修改的隱藏方法,因而針對(duì)載體的大范圍篡改,尤其是針對(duì)最低有效位的主動(dòng)攻擊會(huì)在一定程度上造成隱秘信息的丟失.當(dāng)然,這種攻擊方式對(duì)于正常的語(yǔ)音通信也是致命的,也就是說(shuō)正常的語(yǔ)音通信都將難以為繼.因此,在研究隱蔽通信時(shí),常常不考慮這種極端的情形.對(duì)于非人為的載體影響(如噪聲干擾、數(shù)據(jù)包丟失等)可能造成的隱秘信息丟失,在隱蔽通信系統(tǒng)中可采用差錯(cuò)重傳技術(shù)[7]予以解決.
未來(lái)將針對(duì)文中方法在實(shí)際隱蔽通信系統(tǒng)中應(yīng)用時(shí)的魯棒性和可靠性問(wèn)題進(jìn)一步做深層次的研究和探討.此外,如何進(jìn)一步提高嵌入效率,各最低有效位的隱藏操作之間是否存在聯(lián)系或相互影響等,也是文中將進(jìn)一步深入的重要問(wè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高速率語(yǔ)音流的信息隱藏算法[J].計(jì)算機(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] 劉程浩,柏森,黃永峰,等.一種基于基音預(yù)測(cè)的信息隱藏算法[J].計(jì)算機(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 平臺(tái)的 ABX測(cè)試系統(tǒng)[J].聲學(xué)技術(shù),2005,24(1):46-49.