一种改进的语音编码流加密方法

文档序号:7646760阅读:134来源:国知局
专利名称:一种改进的语音编码流加密方法
技术领域
本发明涉及语音编码技术领域。尤其是涉及一种改进的语音编码流加密方法。
背景技术
随着通信业务需求的飞速增长,为了保证通信业务数据的传输,人们大力开展各种数据压缩技术的研究工作。而语音信号的压缩数字化传输,是多年以来人们一直努力的方向。
现有技术一般采用低速率语音编码技术进行语音传输。低速率语音编码是在尽量减少失真的情况下,降低编码速率,以便减小传输时所占用的带宽。其相比较于模拟传输,可以节省带宽,便于实现与互联网(Internet Protocol,IP)的融合。
G.723.1是国际电信联盟(International Telecommunication Union,ITU)为低码率多媒体通信制定的语音编码标准。该语音编码方案是ITU-T H.324标准系列的组成部分,能够以非常低的码率压缩语音或多媒体设备的其它音频信号分量,具有6.3kbps和5.3kbps两种码率。高码率(6.3kbs)时的激励信号为多脉冲最大似然量化(Multipulse Maximum Likelihood Quantization,MP-MLQ),低码率(5.3kbs)时的激励信号为代数码本激励线性预测(Algebraic-Code-Excited Linear-Prediction,ACELP)。G.723.1语音信号的帧长30ms,240个采样值,编码器采用线性预测-合成分析编码,使感知加权误差信号最小。
在编码过程中,一次输入一帧,每帧经过高通滤波去掉直流分量,然后分成4个子帧,每子帧60个采样点。用线性预测分析法(Linear Predictive,LP)对语音信号进行短时预测分析,对每个子帧用加窗后的语音信号计算其线性预测编码(Linear Predictive Coding,LPC)的10阶滤波器系数,这4个子帧的LPC系数将用来建立短时感知加权滤波器,这个滤波器作用于整个帧并且得到感知加权信号。最后一子帧的LPC滤波器系数还将被转换成线谱对(Line Spectrum Pairs,LSP)系数,然后使用预测分裂矢量量化器量化。
如图1所示,为G.723.1编码原理图。G.723.1利用语音样点间的短时相关性和相邻语音段的长时相关性,以及对语音去除两种相关后的余量信号分别进行编码。
首先进行语音短时分析编码1)语音信号经过高通滤波后的240个点和上一帧的后120个点合成360个样点,若当前帧为语音信号的第一帧,则前面的120个样点就全为0;2)把样点分成相互交叠的4段,每一段长180,用汉明窗函数相乘加权,以减小分段带来的吉普斯效应;3)通过自相关函数等计算,求得线性预测系数。由语音信号的短时相关性,可知语音信号的预测系数在帧内变化不会很大,所以在本编码器中仅用最后10个预测系数(每一帧内最后一个子帧的LPC参数)来近似代替本帧语音的预测系数。
其次,把每一个子帧的LPC参数转换为线谱对(LSP)参数,用预测分裂矢量量化(Predictive Split Vector Quantizer,PSVQ)器量化、编码后加以传送把线谱对(LSP)残差矢量(去除了长时直流分量的LSP矢量与LSP预测矢量的差值,是10维矢量)分成3个子矢量,维数分别是3、3、4,然后对每个子矢量进行8bit码本量化,这样就产生了3个8bit码本矢量,共24位码本。
为了提高量化感知质量,高通滤波后的语音信号需通过共振峰感知加权滤波器和谐振峰噪声整形滤波器,对语音信号进行滤波,以生成初始目标信号。共振峰感知加权滤波器的参数由各子帧未量化的LPC系数构成;谐振峰噪声整形滤波器的参数通过对每两子帧进行开环基音周期估计得到。
对语音信号进行加权滤波和谐噪声滤波,其间还对信号作长时分析(即基音成分,也即周期成分),即先后进行开环基音估计和闭环基音预测,得到语音长时参数编码,最后对语音去除长时相关。其中,偶子帧的基音周期(自适应码本)用7比特编码,奇子帧的基音周期用2比特差分编码。
而余量信号由目标向量减去长时贡献得到。对余量信号的编码(固定码本)可选择6.3kbit/s或5.3kbit/s两种码率。前者(MP-MLQ算法)利用余量信号中小信号对合成语音质量影响不大,故可以对余量信号进行削波处理留下幅度较大者进行编码;后者(ACELP算法)用码本中存储的码字来替代余量信号,以搜索出与余量信号之间均方误差最小的码矢量进行传输。两种算法的区别在于用来代替余量信号的编码脉冲数目不同代数码本激励线性预测(ACELP)所用的脉冲数略少于MP-MLQ的脉冲数。
如图2所示,为G.723.1解码原理图,其首先从接收码流中提取LSP码本索引值,经过LSP解码、内插得到每一子帧的LSP参数,转换为LPC参数,构成LPC合成滤波器。然后从接收码流中提取每一子帧的基音周期、基音增益码本索引和激励脉冲信息,分别经过基音解码和激励解码得到激励信号e(n),对其进行基音滤波再经过合成滤波器获得重建语音,重建语音经过共振峰后滤波器和增益调整单元即得到解码器的最后输出。
由以上过程可知,被编码器处理后的一帧信号需传输的参数包括声道参数,即LSP参数,用以在解码端构造LPC合成滤波器;激励参数,即基音周期参数与长时预测增益参数,随机码本的脉冲位置参数和增益参数。
传统的语音编码加密方法都是对G.723.1压缩语音流整体进行加密。
传统的加密算法的分为两大类,对称加密和非对称加密。对称加密又分为序列加密和分组加密,3DES(3 Data Encryption Standard)和AES(AdvancedEncryption Standard)都属于分组加密算法。
因为非对称加密算法的运算速度较慢,而多媒体信息流相较于一般文本信息而言,其数据量十分庞大,而其实时性要求一般又较高,因此对媒体内容的加密不采用非对称加密算法。
对称密钥密码体制从加密模式上可分为序列密码和分组密码。由于对G.723.1的选择性加密导致需加密的位数不连续、不确定(不同安全等级要加密的位数不一样),而分组加密是对固定长度的明文进行加密,算法比较复杂,此处也不适用。序列加密(流加密)方法主要采用生成的伪随机序列和明文异或得到密文,但是需加密的比特位不连续,此时的异或操作若按位进行,相较于以字节为单位的操作,此法效率较低,得不偿失。

发明内容
本发明所要解决的问题在于提供一种改进的语音编码流加密方法,其相比分组算法,速度更快,从所使用的密钥流来看,其抗密钥分析攻击的能力更强,相比于一般混沌流加密,更适合于对多媒体数据的选择性加密。
为实现本发明目的而提供的一种改进的语音编码流加密方法,其采用混沌流加密方法,异或操作以字节为单位,并对所述流加密方法中的密钥流进行重复利用,进行语音编码加密。
对产生的密钥流进行适当重复利用,在不明显降低其安全性的情况下,减少为产生密钥流而进行混沌迭代的计算次数,以提高加密效率,降低系统能耗,本发明为配合G.723.1语音编码的选择性加密作出,适用于多媒体数据的选择性加密中,但在实施过程中应当与具体多媒体数据格式相结合考虑。
所述混沌流加密方法为以Logistics映射的一维非线性迭代方法表征的混沌流加密方法。
所述Logistics映射可以为自治一维离散动态系统是Logistics映射,它是用一维非线性迭代方法来表征混沌行为,其迭代函数如下式所示F(xn)=λxn(1-xn)其中,n=0,1,2……,x0和λ为调节参数。
所述的Logistics映射也可以采用改进的Logistics地图映射,用一维非线性迭代方法来表征混沌行为,其迭代函数下式所示G(x)=(β+1)(1+1/β)β×(1-x)β其中,β∈(1,4),x0∈(0,1),x的初始值为x0,通过此式迭代可以得到x1,x2,x3,...xn...。
所述语音编码为G.723.1标准语音编码。
所述G.723.1标准语音编码的语音编码帧加密过程包括如下步骤步骤A,首先收到语音帧的第一帧,判断帧速率和安全等级,据此确定与之相对应的需加密的字节序号表和比特位位置表;步骤B,查找需加密的比特位位置表,取出对应的值,与混沌生成的密钥流相与,根据需加密的字节序号表,查找出语音帧中需要加密的字节,将此字节与前述相与的结果进行异或,结果送回该字节。
所述G.723.1标准语音编码的语音编码帧加密过程还包括下列步骤步骤C,如果语音帧还有字节需要加密,重复步骤B,直到该语音帧加密完成。
进一步地,所述G.723.1标准语音编码的语音编码帧加密过程还包括下列步骤在当前语音帧加密完成后,取下一帧语音帧,判断是否为静音帧,如果是静音帧则不执行加密操作,继续取下一帧;如果不是静音帧,则重复步骤A~C,直到全部帧加密完成。
所述G.723.1标准语音编码的语音编码帧的比特位按照敏感性划分为五类CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,CLASS1类中的比特位敏感性最高,CLASS2其次,依次类推。
因此,最低安全等级Level1的加密是对CLASS1中的比特位加密,高一安全等级Level2的是对CLASS1和CLASS2中的比特位加密,...,最高安全等级Level4的加密是对五类中的前4类比特位进行加密。
其中,CLASS是对比特位的分类,Level是对安全等级的划分。
当安全等级为Level1时,加密CLASS1中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的48bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的38bit位加密;当安全等级为Level2时,加密CLASS1和CLASS2中的比特位,在G.723.1标准语音帧的高速率模式对语音帧中的62bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的52bit位加密;当安全等级为Level3时,加密CLASS1、CLASS2和CLASS3中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的74bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的64bit位加密;当安全等级为Level4时,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的86bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的76bit位加密。
本发明的有益效果是本发明的改进的语音编码流加密方法,相比分组算法,速度更快,从所使用的密钥流来看,其抗密钥分析攻击的能力更强。进一步地,本发明的流加密方法,在迭代过程中,为了减少密钥流的计算量,结合G.723.1帧结构所选择的需要加密部分位置的特点,适当地对混沌流密钥流进行重复使用,而不显著影响其安全性能。相比于一般混沌流加密,本方法更适合于对多媒体数据的选择性加密。


图1为现有技术G.723.1标准语音帧的语音编码原理图;图2为现有技术G.723.1标准语音帧的语音解码原理图;图3为本发明语音编码流加密方法加密过程示意图;图4为本发明一实施例G.723.1标准语音帧高速率帧安全等级为1时第3字节开始加密过程示意图;图5为图4所示G.723.1标准语音帧第10字节加密过程示意图;图6为图4所示G.723.1标准语音帧第11字节加密过程示意图;图7为图4所示G.723.1标准语音帧第12字节加密过程示意图;图8为图4所示G.723.1标准语音帧第14字节加密过程示意图;图9为图4所示G.723.1标准语音帧的下一帧从第3字节开始加密过程示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种改进的语音编码流加密方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面详细说明本发明改进的语音编码流加密方法综合考虑语音编码加密的特点、效率以及安全性,本发明实施例的语音编码流加密方法采用混沌流加密方法,异或操作以字节为单位,并对所述流加密方法中的密钥流进行重复利用,进行语音编码加密。
流加密的优点是错误扩展小、实时性高,其保密度取决于密钥发生器产生的密钥序列的随机性,当密钥序列非常接近随机序列时,其安全性很高。
此混沌流加密方法可用于G.723.1语音编码的语音帧的选择性加密。进一步地,对以Logistics映射迭代得到的密钥流进行适当的重复利用。
对产生的密钥流进行适当重复利用,在不明显降低其安全性的情况下,减少为产生密钥流而进行混沌迭代的计算次数,以提高加密效率,降低系统能耗,本发明为配合G.723.1语音编码的选择性加密作出,适用于多媒体数据的选择性加密中,但在实施过程中应当与具体多媒体数据格式相结合考虑。
一般的混沌流加密是一次性的使用密钥,在本发明实施例中可以适当的重复使用密钥流,是因为对G.723.1实行的选择性加密,造成语音帧中的每一字节需要加密的比特位不相同,即使用相同的密钥对两个字节进行加密,其实际使用的效果还是相当于两个密钥。
较佳地,所述混沌流加密方法为以Logistics映射的一维非线性迭代方法表征的混沌流加密方法。
所述的Logistics映射为自治一维离散动态系统是Logistics映射,它是用一维非线性迭代方法来表征混沌行为,其迭代函数如式(1)所示。
F(xn)=λxn(1-xn)(1)其中,x0和λ为调节参数,当x0∈(0,1),λ∈(3.5699456...,4)时,Logistics映射工作于混沌态,即由初始条件x0在Logistics映射的作用下所产生的序列{xk,k=0,1,2,3...}是非周期的、不收敛的,且对初始值和参数非常敏感。
进一步地,为了克服流加密方法中,采用的伪随机序列发生器为线性同余发生器或线性反馈移位寄存器,安全性都较差,易被破解的缺陷。作为另一种可实施的方式,可以采用改进的混沌流加密方法。
式(1)所示的混沌函数有两个问题,一个是函数的固定点,即多次迭代趋近于某一个固定值,另一个是“稳定窗”,即在某个区间的点聚集,窗中产生的迭代序列不能提供作为密钥流所必须的安全性。
因此,所述的Logistics映射采用改进的Logistics地图(Logistics map)映射,用一维非线性迭代方法来表征混沌行为,其迭代函数如式(2)所示G(x)=(β+1)(1+1/β)β×(1-x)β(2)其中,β∈(1,4),x0∈(0,1),x的初始值为x0,通过此式迭代可以得到x1,x2,x3,...xn...。
理论上式(2)产生的序列是非周期的,但由于受到计算机字长的限制,由计算机仿真得到的混沌序列都只是对客观混沌的逼近,因此有一个“循环窗”问题,就是经过若干次迭代,迭代值出现周期性。根据测试的结果,在采用双精度的浮点运算时,可用的迭代平均次数>=2*107。
因此,更进一步地,对混沌密钥流的使用进行改进,结合对G.723.1帧结构所选择的需要加密部分位置的特点,可以适当地对混沌密钥流进行重复使用,而不十分影响其安全性能,从而提高效率。
本发明的改进的语音编码流加密方法,将明文直接和密钥流进行异或,相比分组算法,速度更快。同时,为了增强安全性,本发明的语音编码流加密方法中使用的密钥流为混沌序列,由改进Logistic地图映射得。进一步地,本发明的流加密方法,在迭代过程中,为了减少密钥流的计算量,结合G.723.1帧结构所选择的需要加密部分位置的特点,适当地对混沌流密钥流进行重复使用,而不显著影响其安全性能。
下面结合G.723.1标准语音编码的语音编码帧,以该语音编码帧压缩数据流的比特位选择性加密为例,详细说明本发明的改进的语音编码流加密方法步骤A,首先收到语音帧的第一帧,判断帧速率和安全等级,据此确定与之相对应的需加密的字节序号表和比特位位置表;步骤B,查找需加密的比特位位置表,取出对应的值,与混沌生成的密钥流的相与,根据需加密的字节序号表,查找出语音帧中需要加密的字节,将此字节与前述相与的结果进行异或,结果送回该字节。
步骤C,如果语音帧还有字节需要加密,重复步骤B,直到该语音帧加密完成。
步骤D,在当前语音帧加密完成后,取下一帧语音帧,判断是否为静音帧,如果是静音帧则不执行加密操作,继续取下一帧;如果不是静音帧,则重复步骤A~C,直到全部帧加密完成。
为了说明本发明的的改进的语音编码流加密方法,首先说明G.723.1标准帧结构。
如表1所示为低速率帧5.3kbps模式G.723.1语音编码后的比特分配帧结构
表1 低速率帧5.3kbps模式G.723.1语音编码后的比特分配帧结构表

如表2所示为高速率帧6.3kbps模式G.723.1语音编码后的比特分配帧结构表2 高速率帧6.3kbps模式G.723.1语音编码后的比特分配帧结构表


通过对G.723.1的编码过程的分析,对照帧结构,可以确定帧中各个参数的作用1)LPC索引是LPC参数,用于在解码端构造LPC合成滤波器,十分关键,LPC系数和最后的语音的可理解性(即语义)有着密切关联;2)联合增益GAIN0、GAIN1、GAIN2、GAIN3是自适应码本和固定码本的增益的联合编码,增益参数影响着人耳对语音的通话与静音期的分辨能力;3)ACL0、ACL1、ACL2、ACL3分别代表第一、二、三、四子帧的自适应码本延时,它们代表语音激励中的长时基音,也即周期脉冲成分,这个成分影响着人耳对语音的性别判断;4)脉冲符号(PSIG0,PSIG1,PSIG2,PSIG3)和脉冲位置(POS0,POS1,POS2,POS3)分别代表固定码本(语音激励中的非周期脉冲成分)的编码脉冲的符号和位置。固定码本是在对激励信号的编码过程中,对目标矢量和长时基音贡献的差值的逼近,是总激励的余量信号,因此其重要性低于自适应码本,在自适应码本已有效加密的基础上,固定码本相关参数的加密优先级可置后考虑。
因此,通过对语音加密效果的衡量标准和G.723.1各参数作用的联合考虑,明确LPC参数、联合增益和自适应码本三个参数非常重要,在选择加密参数时需要首先考虑,固定码本参数的加密可以置后考虑。
进一步地,根据G.723.1的附件C中对帧比特位的误码敏感性的排列顺序,可以得到G.723.1的编码比特帧结构编码敏感性的排列顺序。
把G.723.1标准帧的比特位按照敏感性划分为五类CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,CLASS1类中的比特位敏感性最高,CLASS2其次,依次类推。因此,最低安全等级Level1的加密是对CLASS1中的比特位加密,高一安全等级Level2的是对CLASS1和CLASS2中的比特位加密,...,最高安全等级Level4的加密是对五类中的前4类比特位进行加密。其中,CLASS是对比特位的分类,Level是对安全等级的划分。
在G.723.1的标准帧结构高速率模式(6.3kbps)下,比特位的主观敏感性排序号如表3所示。特别需要说明的是,本表没有给出各比特位的精确排序,而是根据敏感性做了大致的类别划分,划分为五类表示其敏感性由高至低。
表3在G.723.1的标准帧结构高速率模式(6.3kbps)下,比特位的主观敏感性排序号


在G.723.1的标准帧结构低速率模式(5.3kbps)下,比特位的主观敏感性排序号如表4所示表4在G.723.1的标准帧结构低速率模式(5.3kbps)下,比特位的主观敏感性排序号


从表3和表4可以得到,当安全等级为Level1时,加密CLASS1中的比特位,在高速率模式(6.3kbps)下共需要加密CLASS1中的48位,因此对语音帧中的48bit位加密;在低速率模式(5.3kbps)下共需要加密CLASS1中的38位,因此对语音帧中的38bit位加密;当安全等级为Level2时,加密CLASS1和CLASS2中的比特位,在高速率模式(6.3kbps)下还需要加密CLASS2中的14位,因此对语音帧中的48+14=62bit位加密;低速率模式(5.3kbps)下还需要加密CLASS2中的14位,因此对语音帧中的38+12=52bit位加密;当安全等级为Level3时,加密CLASS1、CLASS2和CLASS3中的比特位,在高速率模式(6.3kbps)下还需要加密CLASS3中的12位,因此对语音帧中的62+12=74bit位加密;在低速率模式(5.3kbps)下还需要加密CLASS3中的12位,因此对语音帧中的52+12=64bit位加密;当安全等级为Level4时,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在高速率模式(6.3kbps)下还需要加密CLASS4中的12位,因此对语音帧中的74+12=86bit位加密;在低速率模式(5.3kbps)下还需要加密12位,因此对语音帧中的64+12=76bit位加密。
作为一种可实施的方式,所述安全等级和选择性加密一帧中各字节需加密的比特位置表的数据结构可以表示如下/*安全等级*/
#define SECURITY_LEVEL1 1 //需要加密以上提出的CLASS1中的比特位#define SECURITY_LEVEL2 2 //需要加密以上提出的CLASS1~2中的比特位#define SECURITY_LEVEL3 3 //需要加密以上提出的CLASS1~3中的比特位#define SECURITY_LEVEL4 4 //需要加密以上提出的CLASS1~4中的比特位/*选择性加密一帧中需加密的字节序号表*/byte highrate_bytepos_list[]={3,4,5,6,7,8,9,10,11,12,13,14};byte lowrate_bytepos_list[]={3,4,5,6,7,8,9,10,11,12};/*选择性加密一帧中各字节需加密的比特位置表*/byte highrate_levell_bitpos_list[]={0xf0,0xff,0xfd,0x0b,0xf0,0x00,0x0f,0xf0,0x00,0x0f,0xf0,0x3f};//高速率、安全等级等级1时,选用的比特位置表byte highrate_level2_bitpos_list[]={0xff,0xff,0xff,0x0f,0xfc,0xc0,0x0f,0xfc,0xc0,0x0f,0xf0,0x3f};//高速率、安全等级等级2时,选用的比特位置表byte highrate_level3_bitpos_list[]={0xff,0xff,0xff,0x8f,0xff,0xf8,0x8f,0xff,0xf8,0x0f,0xf0,0x3f};//高速率、安全等级等级3时,选用的比特位置表byte highrate_level4_bitpos_list[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf0,0x3f};//高速率、安全等级等级4时,选用的比特位置表byte lowrate_level1_bitpos_list[]={0xf0,0xff,0xfd,0x0b,0xf0,0x00,0x0f,0xf0,0x00,0x0f};//低速率、安全等级等级1时,选用的比特位置表
byte lowrate_level2_bitpos_list[]={0xff,0xff,0xff,0x0f,0xfc,0xc0,0x0f,0xfc,0xc0,0x0f};//低速率、安全等级等级2时,选用的比特位置表byte lowrate_level3_bitpos_list[]={0xff,0xff,0xff,0x8f,0xff,0xf8,0x8f,0xff,0xf8,0x0f};//低速率、安全等级等级3时,选用的比特位置表byte lowrate_level4_bitpos_list[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f};//低速率、安全等级等级4时,选用的比特位置表如图3所示,为本发明语音编码流加密方法加密过程示意图。
下面详细说明本发明语音编码流加密方法执行加密操作的具体方法过程首先,G.723.1的帧大小有三种24字节(6.4kbit/s帧),20字节(5.3kbit/s帧)和4字节,其中4字节帧为SID(静音插入指示语),三种帧如何间隔没有限制。其帧的大小通过每帧的头两个比特VADFLAG_B0和RATEFLAG_B0反映。其对应关系如表9所示表9 VADFLAG_B0和RATEFLAG_B0与每帧比特数的对应关系表

因此,可以看出,VADFLAG_B0和RATEFLAG_B0两位是用来区别G.723.1的三种帧的,不能加密。
根据这种帧结构特点,保留每帧帧头VADFLAG_B0和RATEFLAG_B0是必要的,以此判断是否属于静音帧。
同时,在G.723.1编码中,由于语音的有效数据都包含在每帧24字节和20字节的语音帧中,而静音帧包含的是无效的数据量,所以在加密时就不用对静音帧进行加密,这样可以减少加密的数据量。
在本发明实施例中,如图4所示;以高速率语音帧、安全等级为1的情况为例进行分析说明,此时要加密的字节序号表选用byte highrate_bytepos_list[],比特位置表选用byte highrate_level1_bitpos_list[]。
其中,高速率语音帧71(一帧24字节)中,斜体带下划线表示此字节有需要加密的位,否则没有。
数组72表示长度为12的字节(byte)型数组,它的第一项存放的数据对应于语音帧的第三帧,前四位为1表示语音帧第三帧前四位需要加密,后四位则不需要,依此类推。
数组keyList[8]73表表Xi小数点后取64位二进制位,生成8字节的字节型(byte)型数据,存入数组keyList[8]73中。
具体包括如下步骤步骤S1,首先收到语音帧的第一帧,此处经判定后假设为高速率帧,安全等级为1,查找密钥流数组byte highrate_bytepos_list[]的第1项为3,说明语音帧的第3字节有要加密的位;步骤S2,根据密钥流数组byte highrate_level1_bitpos_list[]的第1项记录语音帧的第3字节需要加密的比特位,取出其值11110000,比特位为1说明相应语音帧字节的比特位需要加密,否则不用;步骤S3,将11110000与数组keyList[](存放生成的64位密钥流)的第1项相与,得到的结果与语音帧的第3字节进行异或,结果送回语音帧第3字节;步骤S4,再查找数组byte highrate_bytepos_list[]的第2项为4,说明语音帧的第4字节有要加密的位;步骤S5,数组byte highrate_level1_bitpos_list[]的第2项记录语音帧的第4字节需要加密的比特位,取出其值11111111;
步骤S6,与数组keyList[]的第2项相与,得到的结果与语音帧的第4字节进行异或,结果送回语音帧第4字节。
以此类推,直到将语音帧的第10字节加密完成,如图5所示。
步骤S7,当语音帧的第11个字节需要加密时,keyList[]表回到表头第1项,用此字节与语音帧第11字节进行异或加密。
如图6所示,当进行到步骤S237时,keyList[]的第8个字节也已用完,当语音帧的第11个字节需要加密时,keyList[]表回到表头第1项,用此字节与语音帧第11字节进行异或加密。因为语音帧每一字节要加密的比特位并不相同,即使keyList[]重复使用,其中每一次真正使用到的比特位也不尽相同。
步骤S8,向后滑动继续加密第12字节,同时,keyList[]表也向后滑动到第2项,byte highrate_bytepos_list[]和byte highrate_level1_bitpos_list[]也向后移动一项;如图7所示,语音帧第11字节加密完后,向后滑动继续加密第12字节,同时,keyList[]表也向后滑动到第2项,byte highrate_bytepos_list[]和bytehighrate_level1_bitpos_list[]也向后移动一项;以此类推,至加密完成语音帧第14字节,此语音帧加密完成,因为第14字节以后没有需要加密的字节,如图8所示。
步骤S9,在当前语音帧加密完成后,取下一帧语音帧,判断是否为静音帧,如果是静音帧则不执行加密操作,继续取下一帧;如果不是静音帧,则重复步骤S1~8,直到全部帧加密完成;此时,如图9所示,keyList[]表从第2项开始使用,与语音帧第1个需要加密的字节(即字节3)进行异或操作。
后续操作和上一帧语音帧一样,语音帧字节、keyList[]、byte highrate_bytepos_list[]和byte highrate_level1_bitpos_list[]都相应向后移动,逐字节进行异或加密。直到keyList[]第8项使用完,回到其表头第1项,再继续和语音帧下一字节异或加密,直到此语音帧加密完成。
再取下一非静音语音帧,keyList[]表从第3项开始使用,与上类似和语音帧逐字节进行异或加密,直到此帧加密完成。
再取下一非静音语音帧,keyList[]表从第8项开始使用,与上类似和语音帧逐字节进行异或加密,直到此帧加密完成。
此时,已加密过8个非静音帧,keyList[]表作废,需要更新。利用式(9)G(x)=(β+1)(1+1/β)β×(1-x)β,(9)对xi进行迭代(x的当前值),得到xi+1,取xi+1的小数点后的64位有效二进制位,转换为8个byte型数据,将转换的数据存入数组keyList[],实现了keyList[]的更新。
继续取一帧非静音帧,keyList[]表从第1项开始使用;继续取一帧非静音帧,keyList[]表从第2项开始使用;继续取一帧非静音帧,keyList[]表从第3项开始使用;重复上述过程,直至第8次取一帧非静音帧,keyList[]表从第8项开始使用。
这样,加密完成8个非静音帧,对xi进行迭代,得到xi+1对keyList[]进行更新。以此处理下一个8个非静音帧。
直到所有语音帧加密完成。
本发明实施例的改进的语音编码流加密方法,使用选择性加密对G.723.1编码语音进行混沌流加密,一方面提高语音通话的实时性,其使用流加密算法,将明文直接和密钥流进行异或,相比分组算法,此法速度更快,同时,为了增强安全性,流加密算法中使用的密钥流为混沌序列,由改进的Logistics map映射得到。此法在迭代过程中,计算复杂度较大,为了减少密钥流的计算量,结合G.723.1帧结构所选择的需要加密部分位置的特点,适当地对混沌密钥流进行重复使用(具体见实例详解),而不显著影响其安全性能。
进一步地,对语音帧进行选择性加密,使用流加密算法,对混沌密钥流进行适当的重复利用,这些措施在提高效率的同时,也可以降低系统能耗,减少占用的资源数量。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
权利要求
1.一种改进的语音编码流加密方法,其特征在于,采用混沌流加密方法,异或操作以字节为单位,并对所述流加密方法中的密钥流进行重复利用,进行语音编码加密。
2.根据权利要求1所述的改进的语音编码流加密方法,其特征在于,所述混沌流加密方法为以Logistics映射的一维非线性迭代方法表征的混沌流加密方法。
3.根据权利要求2所述的改进的语音编码流加密方法,其特征在于,所述Logistics映射为自治一维离散动态系统是Logistics映射,它是用一维非线性迭代方法来表征混沌行为,其迭代函数如下式所示F(xn)=λxn(1-xn)其中,n=0,1,2,……,x0和λ为调节参数。
4.根据权利要求2所述的改进的语音编码流加密方法,其特征在于,所述的Logistics映射采用改进的Logistics地图映射,用一维非线性迭代方法来表征混沌行为,其迭代函数下式所示G(x=(β+1)(1+1/β)β×(1-x)β其中,β∈(1,4),x0∈(0,1),x的初始值为x0,通过此式迭代可以得到x1,x2,x3,...xn...。
5.根据权利要求1至4任一项所述的改进的语音编码流加密方法,其特征在于,所述语音编码为G.723.1标准语音编码。
6.根据权利要求5所述的改进的语音编码流加密方法,其特征在于,所述G.723.1标准语音编码的语音编码帧加密过程包括如下步骤步骤A,首先收到语音帧的第一帧,判断帧速率和安全等级,据此确定与之相对应的需加密的字节序号表和比特位位置表;步骤B,查找需加密的比特位位置表,取出对应的值,与混沌生成的密钥流的相与,根据需加密的字节序号表,查找出语音帧中需要加密的字节,将此字节与前述相与的结果进行异或,结果送回该字节。
7.根据权利要求6所述的改进的语音编码流加密方法,其特征在于,所述G.723.1标准语音编码的语音编码帧加密过程还包括下列步骤步骤C,如果语音帧还有字节需要加密,重复步骤B,直到该语音帧加密完成。
8.根据权利要求7所述的改进的语音编码流加密方法,其特征在于,进一步地,所述G.723.1标准语音编码的语音编码帧加密过程还包括下列步骤在当前语音帧加密完成后,取下一帧语音帧,判断是否为静音帧,如果是静音帧则不执行加密操作,继续取下一帧;如果不是静音帧,则重复步骤A~C,直到全部帧加密完成。
9.根据权利要求6所述的改进的语音编码流加密方法,其特征在于,所述G.723.1标准语音编码的语音编码帧的比特位按照敏感性划分为五类CLASS1,CLASS2,CLASS3,CLASS4,CLASS5,CLASS1类中的比特位敏感性最高,CLASS2其次,依次类推。
10.根据权利要求9所述的改进的语音编码流加密方法,其特征在于,当安全等级为Level 1时,加密CLASS1中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的48bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的38bit位加密;当安全等级为Level 2时,加密CLASS1和CLASS2中的比特位,在G.723.1标准语音帧的高速率模式对语音帧中的62bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的52bit位加密;当安全等级为Level 3时,加密CLASS1、CLASS2和CLASS3中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的74bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的64bit位加密;当安全等级为Level 4时,加密CLASS1、CLASS2、CLASS3和CLASS4中的比特位,在G.723.1标准语音帧的高速率模式下对语音帧中的86bit位加密;在G.723.1标准语音帧的低速率模式下对语音帧中的76bit位加密。
全文摘要
本发明公开了一种改进的语音编码流加密方法,其采用混沌流加密方法,异或操作以字节为单位。所述混沌流加密方法为以Logistics映射的一维非线性迭代方法表征的混沌流加密方法。其相比分组算法,速度更快,从所使用的密钥流来看,其抗密钥分析攻击的能力更强,相比于一般混沌流加密,更适合于对多媒体数据的选择性加密。
文档编号H04L9/22GK101090312SQ200710052239
公开日2007年12月19日 申请日期2007年5月24日 优先权日2007年5月24日
发明者王芙蓉, 何娟, 杨军 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1