基于语音编码中自适应码本的隐藏信息方法
2013-09-11杨婉霞孙东红黄永峰
杨婉霞,孙东红,黄永峰
(1.甘肃农业大学 工学院,甘肃 兰州730070;2.清华大学 信息科学技术学院,北京100084)
0 引 言
信息隐藏是一种在最近几年开始得到应用的信息安全传递技术。但目前信息隐藏所使用隐藏载体主要是图像和视频等文件,对使用语音、特别是低速率语音作为隐藏载体的研究成果却比较少。然而,在目前人们网络交互方式中,语音通信是主要方法。例如,电话、移动通信、VoIP(voice over IP)、语音即时通信等等 。而且这些语音通信中,基本都是采用低速率语音编码。因此,研究以低速率语音为信息隐藏载体具有十分重要的学术意义和实际价值。目前,比较流行的低速率编码典型代表有 G.723.1、G.729a等。尤其是专为互联网设计的低速率语音编解码器iLBC (internet low bit rate codec),因 其 语 音 质 量 优 于G.729A和G.723.1等常用低速率语音编码器,以及具有良好抗丢包性能,日益得到越来越多的应用。例如SKYPE之所以发展如此迅猛,主要归功于使用了iLBC语音编码。因此,研究以iLBC为隐藏载体的信息隐藏技术,具有很大应用前景[1]。然而,由于信息隐藏技术是利用媒体信息中的冗余来嵌入秘密信息,而低速率语音在压缩编码过程中尽可能大的去除冗余信息,而且人耳对语音极其敏感。因此,如何在低速率语音中实现信息隐藏是十分具有挑战性的研究方向。
1 相关研究工作
目前,针对低速率压缩编码器的信息隐藏研究内容还比较少,传统的语音信息隐藏方法针对的对象是脉冲编码调制 (pulse-code modulation,PCM)[2]。这些方法都难以直接应用于低速率压缩语音。原因是语音信号经过压缩,已经去除了很多冗余信息,使得信息嵌入容量有限且难以提取。目前与低速率语音压缩信息隐藏算法相关的研究有:Chang等人提出了适用于 MELP和G.729a编码的基于多级矢量量化信息隐藏算法[3];Huang等人也引入了LSB(least significant bit)matching 的方法替代传统的 LSB 方法,取得了较好的隐藏效果[4]。Yang等人通过对G.729a算法特性的研究,提出了一种基于码书位置向量的信息隐藏算法,并通过抗噪性分析得出了固定码书是适合信息隐藏的最佳位置的结论[5]。Xiao等人引入量化索引调制(quantization index modulation,QIM)方法提出了一种针对低速率语音编码的信息隐藏方法[6]。文献 [7,8]等从不同角度分析了G.729a帧中的各参数,总结了G.729a中可用于信息隐藏的且具有较高透明性的最低有效位。
从目前国际国内的研究现状来看,虽然有一些针对低速率语音压缩的研究成果,但大部分只是对编码参数简单的LSB和改进的LSB嵌入算法,这样的算法不仅容易受到统计检测攻击,而且容易对重构语音质量造成较大的影响[10]。因此,如何更有效的利用参数压缩编码特点,研究在语音编码的压缩域中进行信息隐藏是本文研究的主要问题。
2 基于iLBC编码的压缩域信息隐藏方法
2004年12月IETF发布了专为互联网设计的编解码算法iLBC。iLBC的语音质量优于G.729A和G.723.1。在出现丢包时,仍可以获得非常清晰的语音效果,其语音质量更要优于其他低比特率编码方式,这是iLBC算法得到越来越多的应用原由。因此,研究iLBC的信息隐藏方法成为一个热点。
2.1 基于iLBC编码原理
iLBC是基于码本激励线性预测模型。该模型对语音进行一系列分析,得到一组能够表示语音特征的参数,将这些参数编码封装发送,接收方根据接收到的这些特征参数对语音进行恢复。因此,iLBC语音编码经历了多个编码环节,其中之一是自适应码本编码。论文针对iLBC的自适应码本编码过程特点,建立一种基于动态码本量化的信息隐藏算法。
(1)码本存储构建。码本是由码本存储构成的,码本存储的大小为85/147bit。下面以30ms帧为例分析码本存储的构建原理。如图1所示。初始状态是第二和第三个子帧的后58个样本,编码时,在初始状态前的子块的码本存储要进行时间反转。首先编码的是子块1,由于位于开始状态前,所以要进行反转,由于存储有85位,而初始状态只有58位,剩余的位用0填满。如1(b)所示。编码子块2时,子块1已经编码完成,对应的码本存储如1(c)所示,码本存储有147位,剩余用0填充。对子块3,4也如此。对于子块5,由于在初始状态之前,所以码本存储要进行时间反转,如1(f)所示。
图1 子块编码顺序及对应的码本存储
(2)码本的构建:码本由基础码本和扩展码本两部分组成,基础码本和扩展码本都包含一个称为增值码本的部分。将码本存储通过一个8阶的FIR滤波器,然后按照基础码本的建立方法得到一个扩展码本。扩展码本其实是基础码本中向量的线性组合。扩展码本中也含有增值码本。增值码本拥有20个码字,建立方法如图2所示。增值码本的第一个码字以码本存储中的第127个数据开始,由三部分组成:第一部分是图中指针pp之后的15个数据;第二部分是指针pp前的5个数据和最后5个数据的线性组合;第三部分是由指针pp后的20个数据构成。
图2 增值码本创建过程
(3)码本搜索。码本搜索三级增益形成匹配方法。首先计算出每个阶段的最佳匹配向量,然后计算最佳匹配向量的增益并量化增益,更新目标向量进行下一阶段的匹配。码本搜索的主要步骤如下:
1)最佳匹配感知权重向量需要满足如下3个条件:
a.计算度量,如公式 (1)所示:选择码本中的码字向量使其最大
公式 (1)cbvec表示选择的码本向量,target表示目标码本向量。
c.在第一阶段匹配时,选择最佳码本向量与目标向量的点积必须大于0,即满足式 (3)
2)量化每个阶段的增益。3个阶段的增益都要进行量化,分别使用5、4和3位来进行量化。
3)更新感知权重目标。在执行第二第三阶段的搜索之前,要用加权后的目标向量减去选择的目标码本乘以相应的量化后的增益来更新感知加权的目标向量。
2.2 基于码本搜索的压缩域隐藏方法
基于上述自适应码本构建过程,采用QIM (quantization impulse modulation)原理来建立一种基于iLBC动态码本量化的信息隐藏方法,如图3所示。因为,动态码本中的码字相对较多,对其实现信息隐藏所带来的误差,相比之下对语音质量影响较小;而且,动态码本进行编码时分为3个阶段,每个阶段结束以后都会对目标向量进行更新,也就是说在第一阶段和第二阶段量化都是精确的,只有第三阶段会产生量化误差,这就保证了语音的质量。但是,动态码本和其他3个位置的静态码本的不同点在于:在编码过程中动态码本身是一直在改变的,编码每个子帧时都要对动态码本进行分区,而静态码本分区一次就可以。
图3 压缩域隐藏信息的嵌入方法
(1)隐藏信息的嵌入算法设计
在自适应码本的编码过程中,根据嵌入机密信息的比特来控制选择是在奇数索引还是偶数索引所代表的码本中进行匹配。动态编码一共3个阶段,因此要重复三次,具体嵌入算法的流程如下所述。
信息隐藏的嵌入算法描述
1)将机密信息经过处理得到二进制的秘密信息比特流。
2)对得到的二进制秘密信息利用伪随机码发生器进行加密操作。得到加密后的二进制比特流。
3)由码本存储构成待编码子帧编码所需的动态码本。
4)动态编码第一阶段,根据当前需要嵌入的机密信息的值来选择所需码本,若机密信息为1则选择在索引为奇数的码字作为当前码本,若机密信息为0则在索引为偶数的码字作为当前码本。
5)对目标向量与当前码本中码字进行匹配,得到索引号以及增益。然后对目标向量进行更新。秘密信息已经嵌入,向后移一位。
6)动态编码第二阶段,重复4)5)的操作。
7)动态编码第三阶段,重复4)5)的操作。
8)若秘密信息已经嵌入完毕或已无载体则结束,否则回到第3)步。
(2)信息隐藏的提取算法设计
在接收端收到含有秘密信息的语音信号时,对其进行iLBC解码,然后获取秘密信息。如图4所示。解码的第1步骤是解析编码参数,其中最主要的是码本索引参数。码本索引参数记录的是在编码时动态编码3个阶段选择的最佳匹配向量的索引号,根据索引号的奇偶性就可以判断嵌入比特位。
图4 压缩域隐藏信息的提取方法
提取算法描述
1)接收端对接收到的语音包进行解析,并获取各个参数。
2)对其中码本索引的参数进行分析获得索引的值。注意此时解析的是一帧数据而不是一个子帧,因此对20ms的帧而言,获得的码本索引参数包含9bit的秘密信息,对于30ms的帧,获得的码本索引参数包含15bit的秘密信息。
3)判断索引值的奇偶来决定当前秘密信息位是0还是1。
4)将提取得到的秘密信息进行整合,形成机密信息比特流。
5)通过利用和发送方相同的密钥,对加密的机密信息流进行解密处理,获得被隐藏的秘密信息。
3 算法实验结果与性能分析
对于一种信息隐藏性能分析,主要是从隐蔽性和隐藏容量两个方面来衡量[11]。
3.1 隐藏容量分析
通过对上述隐藏算法的分析可以从理论上计算得到二种不同帧结构下的机密信息隐藏容量:
(1)对于30ms帧结构的隐藏容量
由前面动态码本编码原理分析可知:由于每个帧分为5个子帧,每个子帧进行了3个阶段量化编码,嵌入算法是动态码本分区来隐藏信息。因此,可以得到30ms帧结构下的信息隐藏容量如式 (4)来计算
(2)对于20ms帧结构的隐藏容量
同理,我们也可以建立20ms帧结构的隐藏容量计算方法,如式 (5)来计算。由于20ms帧结构分为3个子帧
从计算结果可以看出,这种算法的隐藏容量对低速率语音编码载体来说,是比较理想的结果。
3.2 iLBC编码信息隐藏算法的隐蔽性分析
对于以语音为载体的信息隐藏算法,其隐蔽性的好坏主要对比测试载密和非载密情况的语音质量。对语音质量的评价,国际上常采用标准语音质量评测工具来测试PESQ值[11]。本文也是采用该方法来评价隐藏算法的隐蔽性。
实验采用中文男声、中文女声、英文男声、英文女声4组不同类型的语音样本。每组语音各有20段。首先要判断隐藏信息提取的准确性,然后通过对只进行编解码不隐藏信息得到的语音质量和进行隐藏后得到的语音质量的比较,来判断隐藏算法的优劣。语音质量的好坏用PESQ值来表示。对iLBC编码,有两种帧结构,下面分别对这二种帧进行测试。其中图5是30ms帧结构下的隐蔽性测试结果,分别对比了进行信息隐藏和未信息隐藏时20段语音样本对应的PESQ值。图6是20ms帧结构下的隐蔽性测试结果,对比了进行信息隐藏和未信息隐藏时20段语音样本对应的PESQ值。
通过对不同种类的语音载体进行测试,可以看出在信道良好的条件下,iLBC语音编码中的隐藏算法能够保证秘密信息的准确性。同时载体语音的质量也没有受到嵌入机密信息的影响而产生很大变化。另外,也可以看出对于环境情况不太好时,即有很多噪音时,隐藏算法对语音质量改变相对较小,这是因为秘密信息对于载体语音而言就相当于噪声,有一部分秘密信息湮没在了噪声中,因此,对语音质量改变较小,隐蔽性会更好些。
另外,对PESQ平均值和方差进行了进一步分析,计算了不同条件的平均值和方差,从而来评估隐藏算法隐蔽性能的平稳性。其中,表1是4组语音测得PESQ平均值,以及与文献 [8]隐藏算法 (CNV)的隐蔽性比较。该算法也是采用QIM方法进行隐藏,但是采用静态码本,本文是采用动态码本。表2是4组语音测得PESQ值变化的平均值和方差。
表1 4组语音测得PESQ平均值
从表1可以看出,论文采用动态码本载体的隐藏方法, 从语音质量的隐蔽性比文献 [8]静态载体要好,文献 [8]采用的CNV码本隐藏方法是目前国际性能最好方法之一。而且,本论文提出的动态载体还具有对抗统计分析的隐蔽性能。另外,从表1表2中还可以发现,相对于非载密情况,载密条件下语音质量的PESQ值的方差增大。也就是说,在iLBC语音编码使用隐藏算法来隐藏信息情况下,语音质量更容易受到外界的干扰。同时,还可以发现iLBC20ms帧结构比30ms帧结构更能获得稳定的语音质量。
表2 4组语音测得PESQ值变化的平均值和方差
最后,我们还对30ms帧结构和20ms帧结构的隐蔽性进行了比较。主要是对比分析了30ms帧结构和20ms帧结构在载密情况下的语音质量变化情况。iLBC的这两种帧结构在具体应用中产生的效果不一样,将4种不同的声音样本共80段语音经过iLBC编解码后语音质量关系如图7所示。
图7 20ms和30ms帧的PESQ值比较
从图7中可以得到以下结论:①仅对于iLBC语音编码而言,选择20ms或30ms帧结构对语音质量的影响基本一样。不同的只是传输速率。②对于动态码本信息隐藏算法而言,更适合用20ms帧结构来实现,从图上可以看出,20ms帧结构隐藏后的语音质量明显比30ms帧结构要好,因此以后选用此方法进行隐藏时用20ms帧结构较好。
4 结束语
基于低速率语音编码的信息隐藏是一项非常具有挑战性工作。论文选择目前广泛应用的iLBC语音为研究对象,提出了一种基于动态码本量化过程的压缩域的信息隐藏方法,并研发了一套基于信息隐藏功能的iLBC编解码软件。实验测试表明,该算法具有较好隐藏容量和很好隐蔽性能,特别是具有很好的对抗统计分析检测能力。而且,该隐藏算法由于实现了编码和隐藏计算的共享。因此该方法还有一个优点是运行速度快,算法复杂度低。可以应用于网络阈下信道的构建等。未来的工作是进一步分析iLBC语音其他特征,进一步提高隐藏容量。
[1]Andersen S,Duric A Telio.Internet low bit rate codec(iLBC)[M].IETF RFC 3951,2004.
[2]Miao Rui,Huang Yongfeng.An approach of covert communication based on the adaptive steganography scheme on voice over IP [C]//IEEE International Conference on Communications,2011:1-5.
[3]Lu Z M,Yan B,Sun S H.Watermarking combined with CELP speech coding for authentication [C]//IEICE Transactions on Information and System,2005,E88-D (2):330-334.
[4]Huang Yongfeng,Yuan Jian,Tang Shanyu,et al.Steganography in inactive frames of VoIP streams encoded by source codec[J].IEEE Transactions on Information Forensics and Security,2011,6 (2):296-306.
[5]Yang Jun,Bai Sen,Huang Yongfeng,et al.Implementation of steganography based on HOOK [J].Advances in Intelligent and Soft Computing,2012 (112):133-141.
[6]Xiao B,Huang Y,Tang S.An approach to information hiding in low bit-rate speech stream [C]//Proceedings of the IEEE Global Telecommunications Conference,2008:1-5.
[7]Huang Yongfeng,Chen mingchao,Jian Yuan.Key distribution in the convert communication based on Voip [J].Chinese Journal of Electronics,2011,20(CJE-2):357-360.
[8]Tang Shanyu,Huang Yongfeng.Prediction of distortion patterns in image steganography by means of fractal computing[C]//The Third International Conferences on Pervasive Patterns and Applications,2011:128-132.
[9]Huang Yongfeng,Tang Shanyu,Bao Chunlai,et al.Steganalysis of compressed speech to detect covert VoIP channels [J].IEE/IEEE Journal.IET Information Security,2011,5 (1):1-7.
[10]Huang Y,Zhang Y,Tang S.Detection of covert VoIP communications using sliding window based steganalysis [J].IEE/IEEE Journal.IET Communications,2011,5 (2):126-133.
[11]Huang Y,Yuan J,Tang S,et al.Steganography in inactive frames of VoIP streams encoded by source codec [J].IEEE Transactions on Information Forensics and Security,2011,6(2):296-306.