GSM手机端到端安全加密通信系统
扫描二维码
随时随地手机看文章
1 概述
1.1 研究背景
GSM是基于TDMA方式的蜂窝移动通信标准,可提供语音、数据、短消息及WAP上网等业务,是移动通信的主流网络,也是国民经济各行各业重要的通信手段。大量涉及商业以及个人的敏感信息通过GSM手机传递,必然要求GSM网络有更好的安全性。
较之深受窃听和盗用危害的第一代模拟移动通信系统,GSM的安全保密性能有了较大的提高,但其安全功能是不完整和不彻底的,其中隐患之一便是GSM仅支持空中接口加密[1]。
图1.1 现有GSM网络仅支持空中接口加密
图1.2 端到端安全加密通信
如图1.1所示,移动台和基站收发台之间的无线链路信息以密文方式传输,而GSM网络内部有线链路信息以明文方式传输,现有的GSM网络不能提供端到端的安全加密通信,不法分子可以从某种途径窃听和盗取数据。本作品目标便是解决GSM的这一缺陷,如图1.2所示,真正实现端到端安全加密通信。
1.2 国内外研究动态
国内外市场上有一些实现手机端到端安全加密通信的产品与解决方案。对这些产品进行技术分析后可以发现,其技术路线是基于GSM数据通道,利用传统加密算法实现端到端安全加密通信的。例如GSMK Cryptophone 200型号的手机,基于GSM数据信道传输,采用AES算法加密和SHA256哈希函数,密钥交换采用 Diffie-Hellman协议。
从传输用户信息的角度来看,GSM系统提供了三种方式,即话音方式、短消息方式和数据方式。其中数据传输方式提供的灵活性最大,适合于传输加密话音。只要话音编码速率足够低,GSM网络能够保证足够的QoS来保证语音的端到端传输,模拟话音信号编码生成的数字话音信号加密后就可以通过GSM数据信道传输,实现移动台与移动台、移动台与有线用户间的话音端到端加密功能。
但是使用数据通道也有如下的缺点:
(1)由于建立连接和运用自动重传机制造成的延时过大问题;
(2)GSM数据通道在通过国际网络上存在互用性的问题;
(3)数据通道的两端不能使用现有的移动网络的业务,需要申请额外的业务类型。
可见,数据信道的算法虽然是目前比较成熟的,但是其致命的弱点是不可避免的延时和网络互用性问题,使其不是用来进行实时语音通话的最佳选择。
综上所述,为了提供实时语言安全传输,需要借助数据通道以外的途径进行安全设计。
1.3 设计动机与预期功能
通过分析可知,GSM网络的承载通道除了前述不受限的数据通道,还有13k bit/s的编码语音通道。能否基于GSM的语音通道,最终实现GSM网络的端到端安全加密通信,本文对这个问题进行了深入的探索与研究。
语音通道方式是GSM 系统标准的语音传送方式,所有对语音信号编解码的规范都是标准的,在网络中传输时按照GSM 协议的规定对原始话音进行处理。为了降低数字信号的比特率,需要在保持重建语音质量的前提下对语音进行编解码。语音编解码技术对通过语音信道加密的方案有很大的影响。GSM中采用的规则脉冲激励—长时预测(RPE-LTP)编码器是一种基于语音冗余压缩技术的参量编码器。在参量编码器中,语音信号是用一组模型的特征参量来表示,它是由原始语音信号通过计算得到的。
因此,如果在声码器编码之前用传统算法加密的话,话音加密后成为白噪声,此时基于话音冗余压缩技术的声码器失效,从而还原不出原始语音信号;而如果直接在手机声码器编码后加密的话,由于在基站需要先解密然后才能解码,所以需要改造基站设备。
由此推导出本作品的设计原则:
1、使用语音信道:由于数据信道的缺点,排除数据通道而选用语音信道。
2、无法使用信道加密:上述的分析说明不能进行信道加密。
3、只能利用网络现有的信道传输能力传输加密后的信息。
因此,本作品确定采用信源加密的技术方案。该方案在语音信号进入声码器之前,采用一种针对声码器原理不破坏语音信号的语音特性的加密方法,从而可以在接收端恢复出原来的语音信号。本方案不需要改造基站设备,因此对通讯网络而言是透明的,只需要改造终端设备即可,以较小的代价换得高强度的安全。
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为密文,则有:
令分组长度为T,那么时域语音帧置乱的加密强度(密钥空间)为T!。由于我们采用的是两级加密技术,结合前面频域置乱,整个加密算法的加密强度(密钥空间)为M*f(M)*T!。
3.4 算法参数选择
通过大量实验研究,发现对测试结果有较大影响的因素有两个:语音分解帧尺寸和分组长度。我们主要选择语音分解帧长为5ms、10ms、20ms、分组长度为15帧、20帧、25帧共九种情况进行了研究分析。
通过测试和比较,发现以20ms作为语音分解帧长,加密语音可以基本解密恢复,而且所恢复的语音可以很好地满足人耳的可懂度要求。同时根据声码器的编解码原理,20ms作为单位帧长能保持信号的语音特性。因此本方案将选择20ms作为语音分解帧长。
对于分组长度(用n表示),从整个加密算法的加密强度公式,可以发现n越大,算法的加密强度就越大,但考虑整个加解密系统的延时等因素,n必须取一个合适的值。通过大量仿真测试结果发现,分组长度取20或25可以在这对矛盾间取得一个好的平衡。
总之,本算法结合了语音信号处理和分组密码加密运算的特点,具有对RPE-LTP压缩编码很好的恢复性,其加密强度也可满足需求。
4 同步算法研究
对于一个通信系统而言,接收端的同步是一个必须考虑的问题;对于语音加解密系统而言,它将会直接关系到接收端解密的准确性。
要精确完成同步,考虑在语音帧中插入同步帧,对于同步帧有以下几点要求:
1)要求同步帧能顺利通过GSM的语音编码器,并且经过声码器后还能顺利被检测出来。
2)同步帧是插在数据帧中的,并不用于携带话音信息,所以如果同步帧取得较长,将会带来较大延时,影响通信系统的性能。因此在确保精确同步的情况下,同步帧应取的尽量短。
3)同步帧的波形经自相关运算后的峰值须足够高,以便和普通语音信号区别出来,否则会影响同步位置的判决,造成误判。
鉴于以上三点考虑,选择正弦波序列作为同步帧。正弦波序列能够顺利通过GSM系统的声码器不发生大的波形畸变。此外,正弦波序列的自相关函数峰值等参数符合作为同步帧的要求,能够在较短的长度内完成精确同步。对于同步帧的插入位置,采用在算法中固定下来的方式,在每个置乱单元的起始位置插入同步帧,较之随机插入的方法,简单但同样有效。
5 系统实现
系统具体实现分硬件和软件两部分,具体架构如图5.1所示:
图5.1 系统具体架构
为了实现全双工通信,我们设计并制作了一块拓展电路板,通过开发板拓展槽插口实现连接。两路语音通道均使用McBSP传输ADDA数据,开发板上语音芯片使用I2C总线初化,拓展板上的语音芯片采用McBSP时钟停止模式下的SPI总线进行初始化。
图5.2拓展板上AIC23B的接口示意图
图5.3 拓展音频模块实物图
此外,为了实现作品能够通过手机的语音接口实现即插即用,我们对手机配件的耳麦线路进行了改造。
整个语音加解密软件包括语音分解算法模块,语音加解密算法模块,类语音合成算法模块三部分。其中语音分解帧大小为20ms,加解密处理帧数为28,最后实现抗RPE-LTP压缩的语音加解密。语音信号同步模块用于为加密后的语音提供同步。我们选取一帧正弦波序列作为同步头,每196帧数据插入一帧同步头序列,在接收端用相同正弦波序列进行检测。
此外,我们通过减小加解密算法的复杂度并采用DMA技术以减小通话时延。回声抑制和自适应同步检测算法的应用可以提高通话语音的质量。
6 结果与测试
本作品测试时需两部手机,测试地点需有中国移动或中国联通的信号覆盖。测试工具为Cool Edit软件以及matlab软件,前者主要用于录音及时域分析,后者则用于频域分析。
测试点位置参见图6.1。其中的语音加密模块包含了语音分解、加密和合成算法。我们对抽样量化后的语音A、加密后的语音B、经RPE-LTP编解码后的语音C,以及解密后的语音D分别进行了测试比较。