王宇 高飛鵬 鄭斌 楊潔



摘? 要: 對VoIP語音系統的信息隱藏算法進行了深入研究。通過碼元組合排序及PESQ評價指標確定了G.723.1編碼后碼流的待嵌入載體比特位。使用漢明編碼降低了嵌入過程中需要改變的載體數量,減小了嵌入過程導致的失真,并用混沌序列作為共享密鑰,使發送方和接收方之間可以通過偽隨機發生器生成單幀嵌入比特序列。引入分級編碼優化了單幀嵌入比特序列的嵌入順序,進一步降低了碼流調制引發的失真。實驗結果證明,分級編碼使PESQ評級的優化率達到了94.07%,進一步增強了嵌入隱蔽性。
關鍵詞: 信息隱藏; G.723.1; 碼流調制; 分級漢明編碼
中圖分類號:TP391? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)02-04-04
Abstract: The information hiding algorithm for VoIP voice system is deeply studied. The carrier bits to be embedded in G.723.1 coded stream are determined by code element combination sorting and PESQ evaluation index. Hamming coding is used to reduce the number of carriers that need to be changed in the embedding process and reduce the distortion caused by the embedding process. Chaotic sequence is used as the shared key, so that the sender and receiver can generate a single frame embedded bit sequence through the pseudo-random generator. Hierarchical coding is introduced to optimize the embedding order of single frame embedded bit sequence, which further reduces the distortion caused by bit stream modulation. The experimental results show that hierarchical coding makes the optimization rate of PESQ rating reach 94.07%, which further enhances the embedding concealment.
Key words: information hiding; G.723.1; code stream modulation; hierarchical Hamming coding
0 引言
隨著網絡技術的普及和發展,互聯網已經遍布人們的日常生活,在通信技術與數據科學日益發展的當下,人們也面臨著諸多信息安全問題,如信息冒用、信息竊取、數據劫持等。為了提高特定場合中數據傳輸的安全性,隱寫(Steganography)技術作為一種高隱蔽性的加密手段成為了近年來一項熱門的研究話題[1]。其中,IP語音(Voice over IP,VoIP)由于其應用范圍廣,使用場景多,傳播效率高,成為了信息隱藏技術中廣受青睞的載體[2-3]。VoIP系統通常使用低速率編碼器以節省帶寬資源,這種基于合成-分析法的線性預測編碼(Analysis by Synthesis-Linear Predictive Coding,AbS-LPC)的解碼器由于數據冗余量低,作為載體后將導致數據失真量大,所以對AbS-LPC低速率語音的信息隱藏將相對困難。
現有的研究中,針對AbS-LPC低速率語音的信息隱藏可以根據嵌入位置的不同分為三類。第一類使用了LPC合成濾波器進行信息隱-藏[4-5];第二類采用了基音預測器進行信息隱藏[6];第三類則是改變壓縮語音編碼碼流中特定編碼元素中進行信息隱藏[7-8]。第三類方法在完成編碼的語音中進行信息嵌入,具有實施簡單、無需了解編碼器原理等優點。
其中,文獻[7]引入了非活躍幀的概念,通過一種改進的語音活動檢測算法實現了對VoIP語音的大容量嵌入。文獻[8]使用矩陣編碼對G.729a編碼后的低速率語音進行嵌入,通過客觀語音質量評價標準PESQ進行分析確定可隱藏位,使嵌入后的碼流具有較好的不可感知性。
本文將基于第三類方法,以G.723.1語音編碼器為例對完成編碼后的AbS-LPC低速率語音進行信息隱藏研究。,該方法也適用于其他AbS-LPC低速率語音編碼器。不同于文獻[8],本文通過隨機種子傳遞整體加密序列,并通過分級將幀間嵌入順序進行優化,大幅優化了VoIP碼流的嵌入質量。
1 關于G.723.1語音編碼的信息隱藏介紹
G.723.1是一種常用的網絡壓縮語音編解碼標準,夠用較低的帶寬提供較好的網絡語音傳輸。G.723.1低速率標準按照6.3KHz采樣,以30ms為一幀,一幀為24字節即192位。由于G.723.1編碼后每一幀中比特定義有所不同,對語音質量的整體影響也存在差異。調制碼元時需要采用幀上不同位置的比特位作為載體進行秘密信息的嵌入以達到語音音頻整體失真較少的目標。其中,第7(VADFL-AG_B0)靜音幀、第8(RATEFLAG_B0)速率幀以及第104(UB)未使用幀為無效幀,在碼元調制時通常不做修改。故本文待選用的比特位共計189個。
2 PESQ評級確定載體
PESQ是一種客觀語音評價指標。通過源文件與碼元調制后的文件就能夠對修改過后的文件進行評級,結果區間為[0.5,4.5]。PESQ指標越高,代表隱寫后語音音頻失真較小,音頻整體素質較高,則隱寫隱蔽性高,嵌入效果好。PESQ的原理是通過比較參考信號和降級信號輸出一個對語音質量失真的預測值,該評級能夠幫助本文對調制后的碼流質量進行合理評測。
本文將采用PESQ評級方法研究調制一幀中189個比特位對與整體語音質量的影響效果,通過置反調制碼元獲得的PESQ-MOS值的優劣選擇待修改比特位。其中,PESQ-MOS均值小于3.5的對應比特位可以認定失真較為嚴重,對音頻質量整體質量影響較嚴重。
Step1:選用長度為60秒的中、英文語音片段各160段進行PESQ評級。讀入每個音頻,通過其幀集合進行逐幀修改,可以獲得單個音頻對189位單獨置反后的PESQ-MOS值,由于G.723.1編碼對每一幀采用相同的編碼方法,故每幀中各個比特位幀定義相同且位置固定。本文對單個音頻的操作為逐幀置反對應比特位,如式⑴。
其中,對單個樣本而言,時長為60秒的音頻擁有長度為[n=60×1000/30=2000]的幀集合[F],在逐幀置反對應比特后進行PESQ評級可獲得當前比特位的[MOS]值,即[F(j)mos]。通過對320個中、英文樣本中調制相同位置碼元得到的[MOS]評級取均值得到各比特位置反后的評級結果如式⑵。
通過實驗,均值大于3.5即調制后失真較小的比特位共105個,評級結果如表1。
Step2:根據單比特排序后的結果,進行比特組合以確定同一幀中能夠作為載體的最大比特數量。根據研究,若有比特位集合[M=b1,b2…,bk ,1≤k≤189]那么其比特組合形成的載體集合在置反后對語音質量的整體影響大于其子集置反結果。如式⑶。
其中,M為單比特置反后PESQ均值大于等于3.5的最低有效位集合。操作P表示根據集合中的比特位對音頻進行逐幀修改。例如,本文選擇單比特置反結果中PESQ均值最佳的第64位[P64=4.367 ]與和PESQ均值較好但小于3.5的第123位[P123=3.490]進行組合,在同時置反第64位與第123位后的PESQ評級同樣小于3.5且較第123位置反結果更差。
此外,若比特組合中各比特單個置反的PESQ評級較低,那么其組合后同時置反的結果也隨之變差。如式⑷。
綜上,若要減輕秘密信息嵌入后的失真情況,需要滿足其嵌入比特集合項數盡量少且其比特集合中單個比特的嵌入效果較好。故根據步驟一中的單比特排序結果,從優至劣逐一加入待嵌入比特集合能夠得到當前比特位數下的最佳嵌入效果。
因此,為滿足嵌入率盡量大的要求,逐一添加最優單比特,在PESQ評級小于可忍受臨界值3.5時即可得到載體的最大嵌入位數。根據樣本測驗結果,得到最大嵌入位數[kmax=8]。如式⑸。
若8個載體在嵌入過程中皆被置反,其320個樣本的PESQ-MOS均值為3.5317,但在嵌入9個最佳比特后,其均值降低至3.4713,已小于臨界值,即任意9比特組合均無法滿足條件。最終確定嵌入載體比特集[M={64,88,68,44,106,16,122,91}]。
3 基于混沌序列的分級矩陣編碼
Step1:若采取按位置反的方式進行嵌入,則每一幀需要更改8個比特位。對音頻的整體影響較大,本文引入了矩陣編碼嵌入方式,能夠在只修改1比特位的前提下將k個秘密信息嵌入至[n= 2k-1]個載體中。假定有如下載體序列[C=c1,…,cn ,n≤8],可獲得大小為[k×n]的編碼矩陣A,將載體C與A中各行相乘并連續亦或能夠得到結果集合[X],根據漢明奇偶校驗結果獲得[T],通過對載體的第[T]位進行置反即嵌入完成。其規則如式(6)。
Step2:已知單幀最高可嵌入比特位為8位,則單幀比特嵌入序列[λi]需要滿足式⑺。
例如,{3,1},{1,1,1,2}等集合都是一幀中滿足條件的嵌入序列。本文將通過密鑰確定碼流中各個幀中的待嵌入比特序列,而使用偽隨機數發生器種子[K]確定的混沌序列[λ=λi∈1,3, i=1,2,…,L]可以高效率地傳輸嵌入和提取所需的密鑰。
Step3:由于在嵌入過程中載體比特的修改位置直接影響了碼流的質量,為進一步減小嵌入帶來的失真,本文引入了分級嵌入的方法,其原理如下。
前文已經說明嵌入后語音質量與載體選擇直接相關,其比特集合中每個元素的單比特修改結果越好,則嵌入后整體效果越好。根據密鑰[K]產生的單幀待嵌入比特序列[λi]并非最佳嵌入順序。例如集合{3,1},根據矩陣編碼規則,若集合中的第二個元素需要通過改變載體進行嵌入,則必然會修改第8個待選比特位。而將比特序列[λi]進行排序后再進行嵌入,則能夠保證嵌入單個秘密信息僅可能改變當前最優待選比特導致其嵌入質量優于分級前。假定有單幀待嵌入載體集合[B]與單幀待嵌入比特序列[λi],則有式⑻。
根據100個[K]生成的嵌入序列對320個樣品嵌入隨機秘密信息,對比分級編碼前后的PESQ-MOS值,在單幀比特序列[λi]分級后,語音質量的優化率達到了94.07%,進一步減小了碼流調制過程中造成的失真。
4 結束語
由于VoIP語音數據冗余量低的特性,故基于AbS-LPC低速率語音的碼流調制通常會帶來較為嚴重的失真。本文以G.723.1語音編碼碼流為例,提出了一種基于漢明編碼的信息嵌入方法。通過PESQ評價指標獲得可嵌入最低有效位,并通過比特組合等方法確定了單幀可修改的比特集合為單比特置反結果最佳的前8個比特位。本文采用漢明編碼的方式降低了單個語音幀修改的比特數目且擁有較高的嵌入效率。本文創新性地引入了分級編碼以確定單幀嵌入的比特個數。在不同數據集和不同嵌入信息條件下的多組實驗結果證明,本文提出的基于分級漢明編碼的VoIP語音隱寫方法能夠實現94.07%的嵌入優化率。相較于文獻[8],進一步降低了碼流調制造成的失真。下一步的研究,將探索低速率語音編碼的其他信息隱藏算法,以實現嵌入效率高、音頻失真小的目標。
參考文獻(References):
[1] Mazurczyk W. VoIP Steganography and its detection:a survey[J]. ACM Computing Survey,2013.2(46):20
[2] Huang Y, Yuan J, Chen M, Xiao B. Key distribution over the covert communication based on VoIP[J].Chinese Journal of Electro-nics,2011.20(2):357-360
[3] 田暉,郭舒婷,秦界,黃永峰,陳永紅,盧璥.基于可量化性能分級的自適應IP語音隱寫方法[J].電子學報,2016.11:2735-2741
[4] Tian H,Liu J,Li S.Improving security of quantization-index-modulation steganography in low bit-rate speech streams[J].Multimedia Systems,2014.20(2):143-154
[5] Chiang Y K,Tsai P,Huang F L.Codebook partition based steganography without member restriction[J].Fundamenta Informati-cae,2008.82(1):15-27
[6] 吳志軍,李常亮,李榮.基于隨機位置選擇和矩陣編碼的語音信息隱藏方法[J].電子與信息學報,2020.42(2):355-363
[7] Huang Y,Tang S,Yuan J.? Steganography in inactive frames of VoIP streams encoded by source codec[J.IEEE Transactions onInformation Forensics and Security,2011.6(2):296-307
[8] 郭舒婷,田暉.一種基于G.729a語音的信息隱藏方法[J].華僑大學學報(自然科學版),2014.35(3):277-282