1 引言
随着数字技术、网络及无线通信的发展,人们之间的信息交换越来越方便和快捷,但随之而来的信息安全问题越来越重要。信息隐藏,机密信息的隐秘传输方法的研究成为信息安全研究领域的重要课题之一。
通常可在多媒体信息中,提取对人眼或人耳不敏感的比特,组成可修改矢量,将数据隐藏在人眼(耳)不易觉察的部位。2002年,Yu—Chee Tseng等人给出了一种最多只修改2比特,就可在长为n比特可修改宿主数据流中嵌入[log2(n+1)]比特数据的方法。
2003年,F.Galand指出了最多只修改1比特,就可在n比特可修改数据中嵌入[log2(n+1)]比特数据,但没有给出具体的方法。2004年,田源等给出了一种最多只修改1比特,就可在n比特可修改数据中嵌入[log2(n+1)]比特数据的简便快速方法。但这些方法,每嵌入m比特数据,需(2m一1)比特宿主可修改数据,数据嵌入率不够高,常不能满足流媒体信息隐藏的要求。
国内陈亮等人给出了一种基于语音参数模型的语音隐藏算法。该方法主要通过修改对应的DFT系数来隐藏保密语音信息,但该方法在信息提取时需要宿主原始语音信息。
奇偶调制法是一种数据嵌入率较高的方法,可在n比特宿主可修改信息中嵌入n比特数据,但该方法最多要修改n比特宿主数据。
2 系统概述
首先从GSM编码的数字语音信息,提取对人耳不很敏感的比特,组成宿主可修改矢量,当其部分或全部改变时,人耳很难觉察。图1给出了该系统信息处理的主要框图。
为了保证隐秘传输低码率语音信息的安全性,可先对低码率语音信息加密,然后用密钥2、宿主可修改矢量及需隐秘传输的低码率语音信息,计算出GSM语音编码需修改(取反)比特的位置信息。
依据求得的须修改的位置信息,将GSM编码的宿主语音信息中相对应的比特取反,即可获得藏有另一路低码率语音信息的GSM语音编码,该编码送到公共信道传输。
接收端的信息处理是发送端处理的逆过程,从公共信道接收到藏有低码率语音信息的GSM编码后,用密钥2,求得隐藏在GSM编码中的低码率语音信息,经密钥l解密就可得到低码率音频信息,从而可实现一路低码率语音信息,隐藏在另一路GSM编码的语音信息中传输,嵌入前后对GSM编码的宿主语音信息的影响很难察觉。
3 GSM语音编码的码流分析
GSM语音采用RPE-LTP编码,每帧20ms语音信息由260比特组成。主要包括反射系数和4个子帧。8个反射系数共36比特,每一子帧由9比特LPT参数及47比特RPE参数组成。
欧洲电讯管理局对GSM编码语音信息每帧260比特,对人听觉影响程度进行了研究,并按对人类听觉影响程度的大小将这260比特分成6类,其中第一类对人类听觉影响最大。第六类影响最小,该类比特数据改变引起的失真,人耳很难分辨,可忽略。
表l给出了属于第一、二类及第六类的比特。表l中,LAR是对数面积比,Blockamplitude是4个子帧中每子帧块幅度,RPE pulses是子帧中的RPE脉冲。
由表l知,人耳不敏感的数位共有69比特,主要为各对数面积比的最低位,4个子帧中块幅度的最低位及RPE脉冲的最低位。
对于2_4kb/s混合激励线性预测(MELP)语音编码,每20ms有48比特语音信息,从本文给出的嵌入算法可知,只需选上述第六类比特作为宿主可修改矢量,最多修改其中的24比特,就可嵌入48比特数据。对于更低码率的语音信息,需选作为可修改矢量的比特位更少。采用该算法在第六类比特中嵌入低码率语音,低码率语音的最大码率可达3.4kb/s。
4 单位增广矩阵
n阶单位矩阵,再增加一列全“l”列矢量,作为第(n+1)列,就可以生成一个单位增广矩阵,可称为n阶二值单位增广矩阵。如果把其列矢量所对应的十进制数,称为该列矢量的值,则n阶单位增广矩阵第一列到第(n+1)列的值依次为:2n-1,2n-2…,21,20,2n一l。
4.1 4阶单位增广矩阵
式(1)为一4阶单位增广矩阵,其每一列都不相同,且列矢量的值依次为:8,4,2,1,15。
从式(1)知,4阶单位增广矩阵,对任一l至(24一1)整数的值所对应的4维二值列矢量,都可由矩阵中不超过二个列矢量,通过异或运算产生。
4.2 2L阶单位增广矩阵
式(2)为一2L单位增广矩阵,对于任一1至(22L一1)的整数值所对应的2£维二值列向量d。
1)若d中的“l”的个数为k,且l≤k≤L,由于式(2)前2L列的2L阶单位阵中,每列有且只有一个“1”,所以只要用d中“l”所在行,在2L阶单位阵中,找到对应行为“1”值的列矢量,最多可找到L个,列向量d则可由这些列矢量,通过异或运算产生。
2)若d中“1”的个数大于L,即L<k≤2L,这时d中零的个数J为J=2L一k<L,即0≤J≤L一1,只要用d中“0”所在行,在2L单位阵中找到对应行为“1”的列向量,不超过(L一1)个,连同最后一列全“l”列矢量,共不超过L个。列矢量d则可由这些矢量通过异或运算产生。
因此,对于任一1至22L一1的整数值所对应的2L维列矢量d,都可以在2L阶单位增广矩阵中,找到不超过L个列矢量,使得d可用这些列矢量通过异或运算产生:
其中hi1,…,hik是2L阶单位增广矩阵中满足上述条件的列矢量。
5 嵌入/提取算法原理
若可修改矢量为a=(a1,a2,…,an)T,待嵌入数据为c=(c1,c2,…,c2L)T,H为2L阶单位增广矩阵,[式(2)],下面分两种情况讨论:
(1)n=2L+1
计算
其中hi,i=1,…,2L+1,是2L阶单位增广矩阵中第i列矢量,由式(4)可知s为2L维列矢量。
令
d为2L维列矢量。若d为“O”矢量,则s=c,a不必作任何修改;若d是不为“0”矢量,由4.2节知,可在2L阶单位增广矩阵中找到k列,k≤L,如hi1,hi2,…,hik使得
只要将可修改矢量a中与这k≤L个列矢量对应的数位取反,就可得到嵌入c后的矢量a’,不失一般性,a’可表示为:
这样,最多修改Lbit,就可在a的(2L+1)bit中嵌入2Lbit数据。
提取数据时,只要计算
从上面讨论知,只要在H矩阵中,找到k列(k≤L)使得式(6)成立即可,而与日矩阵中列矢量的排列顺序无关,所以日矩阵可有(2L+1)!种选择。
(2)n>2L+1
由本小节(1)知,当n>2L+1时,H矩阵应为2L×n矩阵,记为H,为了对任一值为l~22L一1的2L维列向量d使得(6)满足,则H矩阵中,式(2)矩阵中的每一列向量至少出现一次,其余列可以是式(2)矩阵中的任一列向量。这样,H矩阵就有种选择。
当n很大时,这个值非常大,由于数值的嵌入和提取都要用相同的Ⅳ,因此,日也可用作密钥。在本文所述的系统中,可作为密钥2使用。
对于上述不同矩阵H,嵌入算法只需作一定的调整,而提取算法基本不变。6 实验及结果
6.1 嵌入/提取MELP语音的步骤
嵌入主要步骤:
1)对于每帧GSM语音信号,选取所有第六类n=69组成69比特宿主可修改矢量a,当L=24时,2L×69单位增广矩阵共有种,取其中任一种作为单位增广矩阵H。根据矩阵H(密钥2)和宿主可修改矢量口计算向量s=Ha;
2)对MELP机密语音由密钥1进行初始加密。加密算法采用简单异或加密或DES加密。根据已加密分段的MELP语音c计算向量若d=0,则不需进行任何修改;否则,在2L×69单位增广矩阵中必可找出满足条件的k列(k≤L):hi1,hi2,…hik。将可修改矢量a中与这K≤L个列矢量所对应的比特位分别取反即得到嵌入机密语音c后的GSM数据矢量a’(见式(7)。
提取主要步骤:
1)在接收端接收到a’后,采用与发送端相同的单位增广矩阵H,计算c即为加密后的MELP语音;
2)得到c后,再用密钥1解密,组合后就可得到所嵌入的一路2.4kb/s MELP机密语音。
6.2 实验结果
为了验证该算法,在局域网中进行了模拟实验。工作平台为Windows 2000,采集的音频信号为16比特线性PCM音频信号,采样时间为8s,共64000个样点。采用GSM编码,每帧GSM语音(20ms)中的69比特宿主可修改矢量,最多修改其中的L=24比特,相应嵌入2L=48比特MELP编码(20ms)的语音信息。
嵌入MELP语音后的语音与原宿主语音的对比采用峰值信噪比.PSNR(Peak SNR)进行衡量:
这里取K=64000。其中x(n)为原始PCM语音;y(n)为原始语音仅GSM编码传输解码后的PCM语音;y’(n)为相应的GSM语音嵌入MELP语音后传输、解码后的PCM语音。
图2给出了一组语音的实验结果,图2(b)相对于图2(a)的PSNRl=31.65dB,图2(c)相对于图2(a)的PSNR2=25.9ldB。图2(d)~(f)给出了所嵌入的MELP语音的波形。其中横轴是样点个数,纵轴是幅值(单位为5V/216)。
模拟实验表明,在GSM编码语音中可实时嵌入一路2.4kb/s的MELP编码的机密语音,嵌入后的GSM语音仍具有较好的音频质量。
在局域网传输的情况下,由于基本上无噪声影响,嵌入的2.4kb/s MELP编码的机密语音在实验室有100%的正确提取率,实验表明图2(e)与图2(f)的MELP文件完全相同,波形也完全相同。表2给出了10组实验的统计结果,实验中MELP机密语音在不考虑噪声影响的条件下正确提取率均为100%。
嵌入MELP语音后的GSM语音相对于原GSM语音,非专业人员难以分辩出二者的区别,在实验室请10人分别对多段嵌入MELP语音后的GSM语音与原GSM语音进行分辩,均未觉察出二者的明显区别。
另外还对加密的MELP语音进行了纠错编码和交织后,再嵌入的实验,以增加系统的可靠性。采用线性分组Hamming纠错编码,可纠正单比特错误。若数据位为m,监督位为k,则编码长度为n=m+k,需满足:2k一l≥n;n=m+k。这里取m=48,k=6,n=54。纠错编码后的数据交织后再进行嵌入。每帧GSM语音最多修改27比特,相应嵌入54比特数据。模拟表明当信道噪声或其它因素导致GSM语音丢失1帧信息时(最小丢帧间隔不小于54帧时),丢失帧所嵌入的机密语音可以全部由纠错码纠回。
7 结论
通过对GSM语音码流的分析,给出了一种将一路2.4kb/s的混合激励线性预测(MELP)编码的机密语音嵌入在另一路13kb/s的GSM语音码流非敏感比特中的一种方法。在每2L+l可修改比特中,通过最多只修改其中的L比特,便可嵌入2L比特的数据。
该方法主要采用了一个二值矩阵及异或运算,运算复杂度不高,易于硬件实现。
实验结果表明,该算法可隐藏的数据量较大,具有较好的安全性。进而可用于较大容量的流媒体信息的隐藏及隐秘传输,如隐形手机的研究等。
本文主要讨论了2.4kb/s低码率语音到GSM编码语音的嵌入/提取方法,进一步提高系统的抗干扰能力尚需进一步研究。