一种语音信息安全通信方法

文档序号:7855913阅读:178来源:国知局
专利名称:一种语音信息安全通信方法
技术领域
本发明涉及语音通信信息安全技术领域,尤其涉及一种可以同时保证语音通信本身的隐蔽性、语音通信内容的机密性和完整性的通信方法。
背景技术
目前,语音通信已经遍布在我们身边的各个角落中。随着智能手机、移动通信技术、多媒体技术的不断发展,人们身边也涌现出了米聊、TalkBox、微信等众多语音聊天软件,作为一种全新的通信方式展现在人们面前。但是像米聊、微信这些语音聊天软件,他们并未考虑安全性的问题,仅仅保证了软件的可用性。这使得通信隐私受到极大的威胁,同时也限制了这种通信方式在商业、军事等需要严格保密的环境中的应用。、为了解决类似这种通信中存在的安全问题,技术人员提出了信息隐藏技术。信息隐藏是利用人类感觉器官对数字信号的感觉冗余,将一个消息(称为被隐藏消息或秘密信息)隐藏在另一个消息(称为载体)中。由于消息被隐藏后外部表现的只是载体的外部特征,故并不改变载体消息本身的基本特征和使用价值。例如,将采集到的语音作为秘密信息(称为秘密语音),将另外一个无关的音频文件作为载体(称为载体语音)。这种技术可以很好地隐藏通信,从而保证了通信的安全。但通信安全不仅包括传输安全,还包括内容数据安全。目前,尚没有研究者在实现通信隐蔽性的同时,考虑通信内容的机密性和完整性。这是因为传统的消息认证码(MAC)是易碎的,而且不能准确反映内容的完整程度。

发明内容
本发明的目的是针对目前在语音通信中存在的安全问题,提出一种语音信息安全通信方法。本发明所述方法的基本原理如下通过利用基于系数量化的离散余弦变换(DCT)变换域嵌入算法,保证通信的隐蔽性。通过使用选择性混沌加密算法对秘密语音进行加密,加密时,仅针对音频中的少数关键位进行加密,不仅显著提高了加密效率,而且保证了秘密语音内容的机密性。通过计算比较秘密语音的鲁棒消息认证码(rMAC)来判断秘密语音内容的完整性,由于rMAC是基于人耳听觉系统的,因此使用rMAC可以让用户得到一个与听觉感觉类似的完整性度量。为实现上述目的,本发明采用的技术方案如下一种语音信息安全通信方法,包括语音发送过程和语音接收过程两部分,其实现过程如图I所示。步骤一、发送端获取待发送语音并对其音频文件进行处理。具体如下步骤I. I:获取语音可以获取发送端系统中已有的语音音频文件,也可以获取经用户录制的音频文件。将获取到的音频文件称作秘密语音。步骤I. 2 :对所述秘密语音进行编码。编码的处理流程如下
首先,根据编码的复杂程度,从所述秘密语音中读取一定量的音频样本。其中,编码的复杂程度为开源代码例Speex库提供的参数,其数值越大,产生的Speex音频质量越高,所占空间也越大,因此根据实际情况需要进行选取。例如,采用复杂度为5的编码方式(Speex库提供的参数),因此每次取得音频样本为160个。然后,将所取得的音频样本编码(如上述160个音频样本)为Speex音频帧,具体可以通过调用开源的Speex编码库中的编码帧函数实现。然后,将生成的Speex音频帧写入到新的Speex音频文件中。最后,判断是否已经读取所述秘密语音中的全部音频样本。若已经全部读取,则执行步骤I. 3 ;否则继续读取下一批相同数量的(例如再读取160个)音频样本并重复执行上述操作。如果在读取时,音频样本不足,未能读取与前述等量的音频样本(例如已经不足160个音频样本),则按照实际读取到的音频样本进行操作,Speex库会进行相应处理的。

步骤I. 3 :对经步骤I. 2编码产生的Speex音频文件进行解码。解码的处理流程如下首先,从所述Speex音频文件中读取I个Speex音频中贞。之后,将这I个Speex音频巾贞解码为Speex音频样本,可以通过调用开源的Speex编码库中的解码帧函数实现。然后,将获取到的Speex音频样本写入新的Speex音频文件中。最后,判断是否已经读取全部的Speex音频巾贞。如果已读取全部的Speex音频中贞,则执行步骤I. 4 ;否则继续读取下一个Speex音频帧并执行上述操作。步骤I. 4 :对经步骤I. 3解码产生的Speex音频文件,计算rMAC。具体处理流程如下首先,对Speex音频文件中,以每1024个音频样本记为一个FFT巾贞,并对每个FFT帧分别进行傅里叶变换(FFT )操作。然后,将人耳对声音的频率敏感范围300Hz-3300Hz中,按照每IOOHz作为一个频率段,共将其划分为30个小频率段,并计算每个频率段的能量值。具体地,所述计算频率段的能量值的方法如下对于FFT变换,若N点序列x(n) (n=0,1,...,N_1)是在采样频率f下获得的。它的DFT结果也是N点序列,即.M'k)(k______0,1么则第k点所对应实际频率值为
f' =(kXf)/N。因此,若需要计算FFT帧中某一个频率段的能量值,首先要找到频率值落在该频率段的所有点,然后将这些点值进行平方求和便可获得该频率段的能量值。之后,读取密钥文件。密钥是以4个整数为一组,共128组(对应于rMAC长度128的情况)的数据。而后,利用密钥和频率段能量值计算rMAC值。具体计算方法见如下公式
、 I 人M) —人,'2) >0H (Iil) - <,( I \
.’ Io,//其中Ivukn^tnu, tm,2是可作为密钥的随机选取的系数,均为非负整数。函数e (t, k)为能量函数,表示音频的第t个DFT帧中第k个频率段所具有的能量总和,即步骤4中所计算出来的能量值,t、k均为实数。m表示所产生rMAC的位,为非负整数。H(m)表示产生rMAC的第m位。步骤I. 5 :对经步骤I. 2编码后得到的Speex音频文件进行选择性混度加密。处理流程如下本步骤中,要求每一步计算操作在16进制下,计算精度要求达到小数点后40位,以求获得比较优秀的加密效果。首先,从Speex音频文件中读取4个Speex音频巾贞,并取每巾贞的7到38位,总共32位。4个音频帧总共获得128为数据。然后,利用公式xk+1= μ Xk(I-Xk), O彡μ彡4,xk e (0,I),计算下一个混沛数据。式中,Xk表示混沛序列的第k个的数据,为实数;μ为自定义的系数,为实数;Xtl为密钥,k-1、为执行的次数。如果得到的Xk+1大于O. 9或小于O. 1,则重复本操作;之后,将计算得到的xk+1取小数点后连续的128位数据,与第I步得到的128位数据进行异或操作。随后,用获取到的128位数据替换Speex音频帧中原128位数据。最后,判断Speex音频文件音频帧是否全部处理完毕,如果Speex音频文件处理完成,则执行后续步骤;否则继续读取Speex音频文件的Speex音频中贞。步骤I. 6 :对经步骤I. 5处理后的Speex音频文件进行信息隐藏处理。首先,对所述Speex音频文件中,以每1024个样本记为一个FCT帧,对每个FCT帧分别进行傅里叶变换(FCT)操作。然后,对于经FCT产生的前256个系数,除以选定的量化区间的长度,进行量化操作。如果计算结果为奇数,则标记该系数处于A区间,否则标记其处于B区间。显然,A、B区间交替出现。之后,依次对所述256个系数中的每一个系数进行下述操作对于每一个系数,首先查看待嵌入数据的状态。如果待嵌入数据为I且系数处于A区间,或待嵌入数据为O且系数处于B区间,则将系数修改为该区间的中点;否则将系数改为最接近系数的另一种区间的中点。其中,第一个FCT帧中嵌入了 rMAC值与嵌入数据的长度值,后面每个FCT帧为嵌入的数据。然后,对FCT帧中的所有系数进行逆变换,替换原音频样本。最后,判断Speex音频文件是否已嵌入全部数据,如果是,则信息隐藏处理流程结束,执行步骤I. 7 ;否则继续处理下一个FCT帧。需要声明的是,步骤I. 6为优选执行。如果不执行步骤I. 6,本发明方法仍能在一定程度上保证信息内容的机密性和完整性,但鲁棒性较差,可靠性较低。步骤I. 7 :将嵌入了秘密语音的Speex音频文件发送给接收方。具体可以通过互联网、手机网络、U盘以及各种文件交换方法进行发送或传输。步骤二、接收端接收发送端传输过来的Speex音频文件并进行处理,提取其中的秘密语音。流程如下步骤2. I :对接收到的Speex音频文件进行数据提取,具体如下首先,对Speex音频文件中,以每1024个样本记为一个FCT帧,对每个FCT帧分别进行傅里叶变换(FCT)操作。然后,对于FCT产生的前256个系数,执行与步骤I. 6中信息隐藏相同的操作,查看每个系数所处于的区间,如果系数处于A区间,则认为该系数中嵌入了数据1,否则认为嵌入了数据O。其中,第一个FCT帧中提取出来的为rMAC值和嵌入数据的长度之,后面的为所嵌入的数据。最后,判断是否已经提出了全部数据,如果已提取全部数据,则执行步骤2. 2 ;否则继续处理下一个FCT帧。步骤2. 2 :对经步骤2. I得到的Speex音频文件进行解密。鉴于前述加密过程是与密钥产生的二进制流进行异或操作,因此解密仅需要进行相同操作便可实现,即解密与加密的方法相同。需要声明的是,如果不具有该步骤需要的密钥或是不执行该步骤,则继续执行步骤2. 3所产生的音频将不会包含任何内容,最终计算出的rMAC值接近O. 5,导致音频提取失 败。步骤2. 3 :对经步骤2. 2编码产生的Speex音频文件进行解码。其实现方法与步骤I. 3相同。步骤2. 4 :对经步骤2. 3解码产生的Speex音频文件,计算rMAC。其实现该方法与步骤2. 4相同。步骤2. 5 :计算rMAC的匹配度并据此判断秘密语音内容完整性程度。首先,将步骤2. 5提取出来的rMAC值与步骤2. 4计算得到的rMAC值按位进行比较,两个128位数据的位相同概率即为rMAC的匹配度。然后,根据rMAC的匹配度判断秘密语音内容完整性。当rMAC值大于等于O. 8时,认为秘密语音内容具备完整性,反之则认为其不符合完整性要求。对于没有破坏秘密语音内容完整性的攻击,合法的信息接收方计算出rMAC值将接近于I。对于破坏了秘密语音内容完整性的攻击,合法的信息接收方计算出rMAC值接近于O. 5。rMAC值准确的反映了秘密语音内容的完整性程度。有益效果本发明方法,通过利用基于系数量化的离散余弦变换(DCT)变换域嵌入算法,保证通信的隐蔽性。通过使用选择性混沌加密算法对秘密语音进行加密,加密时,仅针对音频 中的少数关键位进行加密,不仅显著提高了加密效率,而且保证了秘密语音内容的机密性。通过计算比较秘密语音的鲁棒消息认证码(rMAC)来判断秘密语音内容的完整性。在保证了语音通信本身的隐蔽性的同时,保证了语音通信内容的机密性和完整性,实现了安全的语音通信。


图I为本发明所述方法的流程图。
具体实施例方式下面结合附图及实施例对本发明的具体实施方式
作进一步详细说明。实施例I一种语音信息安全通信方法,包括语音发送过程和语音接收过程两部分,其实现过程如图I所示。所述方法中,如无特别说明,“η位”代表η个2进制位。
步骤一、发送端获取待发送语音并对其音频文件进行处理,生成嵌入了秘密语音的待发送语音音频文件。具体如下步骤I. I :采集语音该步骤可以是获取系统已有的语音音频文件,也可以是录制用户的语音音频,获取录制的音频文件。获取的音频文件称为秘密语音S。例如我们采集了 341KB的WAV格式音频文件info, wav ο步骤I. 2 :对秘密语音info, wav进行编码,用于对秘密语音进行压缩,节省后面的通信开销。编码的处理流程如下第(I)步对于秘密语音info, wav,从文件中读取160个音频样本。 第(2)步将这160个音频样本编码为Speex音频帧,直接调用开源的Speex编码库中的编码巾贞函数即可。然后将获取的音频巾贞写入到新的Speex音频文件info, spx中。第(3)步如果已读取全部音频样本,则完成本步骤;否则返回第(I)步继续执行。本实施例中,所产生的info, spx音频文件大小为40. 5KB。步骤I. 3 :对步骤I. 2编码产生的Speex音频文件info, spx再次进行解码,用于后续计算rMAC。解码的处理流程如下第(I)步从Speex音频文件info, spx中读取I个Speex音频巾贞,我们读到的Speex音频帧大小为38字节。第(2)步将这I个音频帧解码为音频样本,直接调用开源的Speex编码库中的解码中贞函数实现解码操作。获取的音频样本写入到新的WAV音频文件info_rMAC. wav中。第(3)步如果已读取全部音频帧,则执行步骤I. 4 ;否则返回第(I)步继续执行。本实施例中,所产生的info_rMAC. wav音频文件大小为341KB,与原始WAV音频文件info,wav相同,但内容稍有不同。步骤4 :对步骤I. 3解码产生的音频文件info_rMAC. wav,计算rMAC。处理流程如下第(I)步对音频文件info_rMAC. wav中,每1024个样本记为一个FFT巾贞,将其读取到内存中,并调用傅里叶变换(FFT)函数,对其进行FFT操作。第(2)步人耳对声音的频率敏感的范围300Hz-3300Hz,将其划分为若干个频率段,然后计算每个频率段的能量值。我们这里将这个范围每IOOHz为一个频率段,划分为30个小的频率段。对于FFT变换,若N点序列x(n) (n=0,1,…,N-1)是在采样频率f下获得的。它的DFT结果也是N点序列,即__U,L2N-i ),则第k点所对应实际频率值为f' =(kXf)/N。因此若需要计算FFT帧中某一个频率段的能量值,首先需要找到频率值落在该频率段的数个点,然后将这些点值进行平方求和便可获得该频率段的能量值。第(3)步读取密钥文件key. txt,密钥为4个整数为一组,共η组(对应于rMAC长度η的情况,η可任意取值,值越大,对通信内容的完整性描述越准确)的数据。本实施例中η取128,key. txt中包含512个整数,可以产生128位rMAC。第(4)步利用密钥和第(2)步获取的频率段能量值,计算rMAC值。具体计算方法见如下公式
权利要求
1.ー种语音信息安全通信方法,包括语音发送过程和语音接收过程两部分,其特征在于: 步骤一、发送端获取待发送语音并对其音频文件进行处理,具体如下 步骤1.1:获取语音,将获取到的音频文件称作秘密语音; 步骤I. 2 :对所述秘密语音进行编码,流程如下 首先,根据编码的复杂程度,从所述秘密语音中读取一定量的音频样本,其中,编码复杂程度为开源Speex编码库所提供的參数; 然后,将所取得的音频样本编码为Speex音频帧,将生成的Speex音频帧写入到新的 Speex音频文件中; 最后,判断是否已经读取所述秘密语音中的全部音频样本,若已经全部读取,则执行步骤I. 3 ;否则继续读取下ー批相同数量的音频样本并重复执行上述操作;如果在读取时,音频样本不足,未能读取与前述等量的音频样本,则按照实际读取到的音频样本进行操作;步骤I. 3 :对经步骤I. 2编码产生的Speex音频文件进行解码,流程如下 首先,从所述Speex音频文件中读取I个Speex音频巾贞; 之后,将这I个Speex音频巾贞解码为Speex音频样本; 然后,将获取到的Speex音频样本写入新的Speex音频文件中; 最后,判断是否已经读取全部的Speex音频巾贞,如果已读取全部的Speex音频巾贞,则执行步骤4 ;否则继续读取下ー个Speex音频帧并执行上述操作; 步骤I. 4 :对经步骤I. 3解码产生的Speex音频文件,计算rMAC,流程如下 首先,对Speex音频文件中,以每1024个音频样本记为ー个FFT帧,并对每个FFT帧分别进行傅里叶变换操作; 然后,将人耳对声音的频率敏感范围300Hz-3300Hz中,按照每IOOHz作为ー个频率段,共将其划分为30个小频率段,并计算每个频率段的能量值; 之后,读取密钥文件,密钥为以4个整数为一組,共128组的数据; 而后,利用密钥和频率段能量值计算rMAC值,具体如下『、eItlll,],< ,1) 一 e^m,!,ん",,2 ) > 0-1 φηκι,K,I)-φη-,α’kna⑴ 其中、い、“、1,、2是作为密钥的随机选取的系数,均为非负整数;函数6(セ,10为能量函数,表示音频的第t个DFT帧中第k个频率段所具有的能量总和,即步骤I. 4中所计算出来的能量值,t、k均为实数;m表示所产生rMAC的位,为非负整数,H(m)表示产生rMAC的第m位; 步骤I. 5 :对经步骤I. 2编码后得到的Speex音频文件进行选择性混度加密,流程如下 本步骤中,要求每ー步计算操作在16进制下,计算精度要求达到小数点后40位; 首先,从Speex音频文件中读取4个Speex音频帧,并取每帧的7到38位,总共32位,4个音频帧总共获得128为数据; 然后,利用公式xk+1= μ xk(l-xk),O く μ彡4,xk e (0,I),计算下一个混沛数据;式中,xk表示混沛序列的第k个的数据,为实数;μ为自定义的系数,为实数为密钥,k-Ι为执行的次数;如果得到的Xk+1大于O. 9或小于O. 1,则重复本操作; 之后,将计算得到的xk+1取小数点后连续的128位数据,与前述得到的128位数据进行异或操作; 随后,用获取到的128位数据替换Speex音频帧中原128位数据; 最后,判断Speex音频文件音频帧是否全部处理完毕,如果Speex音频文件处理完成,则执行后续步骤;否则继续读取Speex音频文件的Speex音频巾贞; 步骤I. 6 :将嵌入了秘密语音的Speex音频文件发送给接收方; 步骤ニ、接收端接收发送端传输过来的Speex音频文件并进行处理,提取其中的秘密语音,流程如下 步骤2. I :对接收到的Speex音频文件进行数据提取,具体如下 首先,对Speex音频文件中,以每1024个样本记为ー个FCT帧,对每个FCT帧分别进行傅里叶变换(FCT)操作; 然后,对于FCT产生的前256个系数,执行与步骤I. 6中信息隐藏相同的操作,查看每个系数所处于的区间,如果系数处于A区间,则认为该系数中嵌入了数据1,否则认为嵌入了数据O;其中,第一个FCT帧中提取出来的为rMAC值和嵌入数据的长度之,后面的为所嵌入的数据; 最后,判断是否已经提出了全部数据,如果已提取全部数据,则执行步骤2.2 ;否则继续处理下ー个FCT帧; 步骤2. 2 :对经步骤2. I得到的Speex音频文件进行解密; 步骤2. 3 :对经步骤2. 2编码产生的Speex音频文件进行解码; 步骤2. 4 :对经步骤2. 3解码产生的Speex音频文件,计算rMAC ; 步骤2. 5 :计算rMAC的匹配度并据此判断秘密语音内容完整性程度,过程如下 首先,将步骤2. 5提取出来的rMAC值与步骤2. 4计算得到的rMAC值按位进行比较,两个128位数据的位相同概率即为rMAC的匹配度; 然后,根据rMAC的匹配度判断秘密语音内容完整性,当rMAC值大于等于O. 8时,认为秘密语音内容具备完整性,反之则认为其不符合完整性要求。
2.如权利要求I所述的ー种语音信息安全通信方法,其特征在于,对经步骤I. 5处理后的Speex音频文件进行信息隐藏处理,流程如下 首先,对所述Speex音频文件中,以每1024个样本记为ー个FCT帧,对每个FCT帧分别进行傅里叶变换操作; 然后,对于经FCT产生的前256个系数,除以选定的量化区间的长度,进行量化操作;如果计算结果为奇数,则标记该系数处于A区间,否则标记其处于B区间; 之后,依次对所述256个系数中的姆ー个系数进行下述操作 对于每ー个系数,首先查看待嵌入数据的状态,如果待嵌入数据为I且系数处于A区间,或待嵌入数据为O且系数处于B区间,则将系数修改为该区间的中点;否则将系数改为最接近系数的另ー种区间的中点;其中,第一个FCT帧中嵌入了 rMAC值与嵌入数据的长度值,后面每个FCT帧为嵌入的数据; 然后,对FCT帧中的所有系数进行逆变换,替换原音频样本; 最后,判断Speex音频文件是否已嵌入全部数据,如果是,则信息隐藏处理流程结束,执行下一歩;否则继续处理下ー个FCT帧。
3.如权利要求I或2所述的ー种语音信息安全通信方法,其特征在于,所述步骤I. 4中计算频率段的能量值的方法为,首先找到频率值落在该频率段的所有点,然后将这些点值进行平方求和。
全文摘要
本发明公开了一种语音信息安全通信方法。通过利用基于系数量化的离散余弦变换域嵌入算法,保证通信的隐蔽性。通过使用选择性混沌加密算法对秘密语音进行加密,加密时,仅针对音频中的少数关键位进行加密,不仅显著提高了加密效率,而且保证了秘密语音内容的机密性。通过计算比较秘密语音的鲁棒消息认证码来判断秘密语音内容的完整性。在保证了语音通信本身的隐蔽性的同时,保证了语音通信内容的机密性和完整性,实现了安全的语音通信。
文档编号H04L9/00GK102737639SQ20121024343
公开日2012年10月17日 申请日期2012年7月13日 优先权日2012年7月13日
发明者于立涛, 刘丹, 祝烈煌, 谢驭舟 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1