王宇 高飞鹏 郑斌 杨洁
摘 要: 对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