2 系统方案设计
基于上述的分析与设计原则,本作品的系统框图如图2.1所示,左侧的麦克风与耳机,通过A/D、D/A输入/输出正常的语音信号。在A/D、D/A后加入一个加解密模块,完成语音加解密。同步模块在加解密模块之后,能实现同步信号的产生与检测。回声抑制模块起到消回声作用。右侧的麦克风与耳机,完成与加密语音发送,以及密文语音接收功能。系统需要两端手机均安装同样的系统模块。系统加载在GSM手机的麦克风、耳机前端,功能为:
1)本系统麦克风采集原始语音,通过本系统加密后将密文语音传输原始手机麦克风;
2)原始手机耳机获得密文语音,通过本系统解密后将明文语音本系统耳机。
图2.1 作品系统框图
工作流程为:
* 加密过程:输入语音信号由麦克风输入AD变换模块,再经语音加密模块处理,接着插入同步信息,DA变换后通过手机麦克风插口输入手机,经手机中的声码器压缩后射频输出。
* 解密过程:加密语音信号由手机中声码器解压后,通过手机耳机插口输出到AD模块,做回声抑制后进行同步检测,接着送到解密模块解密处理,最终DA变换后输出对方原始的语音信号。
为了快速语音加解密,需要设计适用于硬件架构的、安全快速的加解密算法,本作品设计了抗RPE-LTP压缩编码的语音加解密算法。
3 抗RPE-LTP压缩编码的语音加解密算法研究
3.1 算法总体框架
本算法针对RPE-LTP压缩编解码的特性,对人类自然语音信号进行变换处理,使之成为不可懂的声音信号,实现加密;同时保证加密语音信号在通过RPE-LTP编码器后能被对方的解码器恢复,且经过解密可成为可懂原始语音信号,从而完成全部加解密过程。
算法的主要思路为:
1、 首先把原始语音分解成符合RPE-LTP编解码要求的单位帧;
2、 接着根据分组密码的原理,通过选择合适的加密矩阵对分解后的单位帧依次在频域和时域上进行置乱;
3、 最终合成的不可懂语音信号通过RPE-LTP编码后送入GSM传输信道,在接收端进行逆向解密即可。
图2.2 GSM系统语音信号加密原理图
如图2.2所示,整个语音加密过程在虚线框部分,由语音分解、频域置乱、语音帧置乱和类语音合成四部分组成。反之,语音解密过程由类语音分解、帧置乱解密、频域置乱解密和语音合成四部分组成。其中各模块的功能与加密过程相对应。
其中语音分解算法的要求是找到一种合适的分解方法,便于进行后续的加密置乱运算,并且易于合成符合RPE-LTP压缩编码要求的模拟语音。另外,类语音合成算法将加密置乱后的信号合成符合RPE-LTP压缩编码要求的类似语音信号。
下面重点介绍本设计中频域置乱、语音帧置乱与算法参数选择的设计。
3.2 频域置乱
在时域加密置乱之前加上一步频域置乱,可以提高整个加密算法的强度。本设计具体的做法是:首先对一定长度语音数据作N点FFT(N可以取2的幂次以提高运算速度),得到一个频谱序列,取在语音频率范围(300~3400Hz)内的M点,组成M行×1列的矩阵x,然后对这个序列进行置乱,这相当于乘上一个M行×M列的置乱矩阵P,那么置乱后的序列为Px,最后对此序列求IFFT,即从频域返回到时域。
令M为明文信息,k1、r为算法密钥,由k1、r产生的加密矩阵为Pk1、r,Qk1、r为解密矩阵(即Pk1、r-1),C为密文,则有:
置乱矩阵P的选取有以下几点限制:1)保证置乱后的序列再求IFFT得到的是实序列;2)保证只对300~3400 Hz范围内的点进行置乱;3)保证最后得到的语音的剩余可懂度很小。
满足上述限制条件的矩阵有很多,其中有一种比较简单的形式是这样的[4]:
M=N*(3400-300) / fs =3100N / fs(fs是采样频率),表示频率在300~3400Hz内的点数,称为有效FFT点数。k1和r都是密钥,k1可以取与M互质并且小于M的自然数,r可以取小于M的自然数。
这样频域置乱的加密强度(本文中指密钥空间)就是M*f(M)(f(M)表示满足条件的k1的个数)。由此可见,采样频率一定,N的大小会影响该算法的加密强度,所以N的选取应该同时考虑运算速度和加密强度两方面的因素。
3.3 语音帧置乱
令M为明文信息,k2为算法密钥,由k2产生的加密矩阵为Pk2’, Qk2’为解密矩阵(即Pk2’-1),C为密文,则有: