手机加密的方法
本发明属于移动通讯领域,是一种对移动电话进行加密的方法。
为了通讯的安全,需要采取一定的保密措施,一般的保密措施是在通讯工具中加密。在现今全球应用最为广泛的GSM系统中,根据GSM规范的定义,在手机中对无线接口传输部分(一般认为最容易被监听的传输途径)所传送的话音进行了加密,而在地面传输设施中没有加密。对于一般的保密需要,这基本上已经可以满足了,但对于保密程度要求较高的特殊部门,这种加密措施仍嫌不够安全。首先,由于普通手机仅对无线接口传输部分进行了加密,而在地面设施传输部分是没有加密的,因而很容易被他人监听;其次,对于无线信道的加密,密钥是由电信部门的GSM运营商管理的,也就是说,对电信部门的GSM运营商是难以保密的。
1998年12月16日公开的中国专利申请《移动无线网络终端间进行直接加密通信的方法及相应设施》(申请号98108859。7)提出了一种新的通讯加密方法,该方法的主要内容是:主叫方终端利用网络发来的随机数(RAND),生成密钥Kc,然后该加密密钥通过呼叫建立消息发送到被叫方终端,使两终端用户在通讯时可以使用相同的密钥对通话数据进行加密/解密。此方法改传统方法中的密钥由GSM运商提供为终端使用者自己生成的,保密程度有了提高,但仍有以下缺点:(1)两通话终端加密/解密所使用的密钥Kc,是由GSM(/DCS)网络提供的随机数(RAND)以及网络和终端共享的Ki值通过A8算法确定的,无论是随机数(RAND),Ki值,A8算法还是最终的密钥Kc都由网络运营商加以管理,GSM系统运营商对这种加密可以很容易的加以破解。(2)该发明中所述的加密数据传送的方法,只有当应用于少数在通话期间允许建立不依赖于基站系统的直接端到端通讯的移动通讯系统时,才能达到全程加密的效果,在大多数情况下,终端(无论是主叫还是被叫)发出的数据都必须通过各自所在区域的BTS和BSC,然后上传到MSC,再到达控制对方终端的MSC然后通过BSC和BTS传输到另一终端。使用该方案中的密钥Kc对移动终端发送的话音进行加密,BTS收到该加密数据流后,就将其解密,在地面设施传输中仍将采用不加密的明文传送方式,直至另一层的无线接口处。
本发明的目的在于提供一种能适用于所有符合GSM规范的通讯系统的能支持数据业务手机加密方法,这种加密方法解决了上述手机加密方案中出现的由于网络运营商对密钥等加密信息的知悉而导致不安全的问题。
本发明中的手机加密的方法,包括以下步骤:
1)主叫方发起数据业务呼叫;
2)主叫方或被叫方提供生成密钥所需数据,并传递该数据;
3)双方根据2)传递的数据生成密钥,并存储在各自的存储器中;
4)对语音信息进行加密处理、对加密处理的信息进行速率适配和前向纠错后,再进行信道编码、交织、突发脉冲格式化、信道加密、调制、发射;和/或
5)对接收对方的信息,进行解调、信道解密、突发脉冲格式化、去交织、信道解码、纠错和速率适配后,进行解密处理。
所述提供生成密钥所需数据,可以是指利用伪随机数发生器产生的随机数rand所述传递数据,可以通过数据业务传递,也可以通过能携带用户数据的呼叫建立信令、呼叫进行信令或者呼叫告警信令中的用户信息域传递。
所述生成密钥的方法可以是:
1)利用随机数rand和另一值Km,作为二元输入单向算法F1的输入值,算出输出值为K1;
2)被叫方通过数据业务将K1传给主叫方,主叫方校验;
3)双方利用1)所述rand和Km通过另一二元输入单向算法F2生成密钥。
所述对语音信息进行加密处理可以包括以下步骤:
1)将模拟话音进行A/D转换后通过低速率话音编码器进行编码;
2)将经过低速率话音编码器编码的连续话音数据进行分帧;
3)根据密钥和帧号对语音数据逐帧加密;
4)对加密后的话音帧添上含有定位和纠错信息的帧头帧尾;
5)将以上得到的语音数据进行速率适配,生成符合数据业务传送的速率的数据。
所述对语音信息进行解密处理可以包括以下步骤:
1)对传来的数据流,利用数据流中的帧定位信息分离出独立的加密数据帧;
2)利用帧中的控制信息纠错;
3)利用密钥和帧控制信息中的帧号对加密数据帧解密,
4)最后拼接成连续话音数据流,送入低速率话音解码器解码后进行D/A转换,输出模拟话音。
下面结合附图对本发明进行详细描述。
图1是呼叫建立及全程加密流程图。
图2是加密呼叫建立后加密语音的加密/解密及传送的过程图。
根据图1所示的全程加密呼叫建立流程图,由主叫方发起数据业务呼叫,然后进行密钥的生成。为了安全起见,不直接进行密钥传递,而是由主叫方发起数据业务呼叫后,主叫方或被叫方利用伪随机发生器产生随机数rand,然后将rand通过数据业务被传送给对方。主叫和被叫方同时利用随机数rand和另一值Km(Km是一种仅为通话双方知晓的密码序列,由通话双方定期更换)作为二元输入单向算法F1的输入值,算法输出值为K1。所述的F1算法是一种具有单向(或陷阱门)功能的算法,也就是说,从输入计算输出很容易,但即便知道了几对(rand,K1)值,要反推出Km几乎是不可能的。例如GSM规范中规定的A3算法就是一种合适的F1算法。被叫方通过数据业务将K1传给主叫方。主叫方校验从被叫方传来的K1值同自己计算的结果是否一致。
若被叫方的K1值和主叫方的一致,加密呼叫将被允许进行,主叫方和被叫方同时通过另一种二元输入单向算法F2(例如GSM规范中规定的A8算法),同时仍利用随机数rand和Km作输入生成全程加密密钥。全程加密密钥生成后,双主方将其保存在各自的存储设备中,以供接下来的语音加密处理过程使用。
若被叫方的K1值和主叫方K1值不一致,手机通过人机界面(MMI)向用户提供指示。不一致的原因可能由两种:1)rand在传送中误码;2)被叫方不是一个合法的用户。这些情况发生时,可由用户决定是否重试或作进一步确认。
同密钥相关信息(上述rand和K1)除可利用数据业务传递外,也可以通过能携带用户数据的其它信令(如呼叫建立信令,呼叫进行信令,呼叫告警信令等)中的用户信息域(例如User-user域)传递。
加密呼叫建立后语音的加密/解密及传送的过程如图2所示。模拟话音通过话筒采集后,经A/D芯片201进行模数转换,然后再通过低速率话音编码器202进行低速率话音编码。这里低速率话音编码器应是能使原始话音编码成至少低于9600bit/s速率的话音数据的编码器,例如GSM规范定义的半速率编码器就是适合本要求的一种编码器,它可以生成7kbit/s的话音数据流。生成的低速率连续话音码流,被送入全程加密模块203。在全程加密模块中,连续码流被分割为等长的话音帧,在一个实施例中,将连续码流分成帧长为20ms的话音帧。用一计数器对话音帧计数并分配帧号。根据全程密钥和帧号生成加密序列对话音数据逐帧加密,加密算法可以使用A5加密算法或其它加密算法,例如美国最近公布的15种加密算法之一,只要双方使用同种算法进行加密/解密就可以了。对加密后的话音帧添上含有定位和纠错信息的帧头帧尾,帧号也被加入帧头或帧尾中。
经上述处理的数据流通过数据业务模块204进行速率适配和前向纠错,生成符合数据业务传送的速率的数据。数据业务模块204中包含GSM规范04.21规定的实现数据传输的基本功能应有的模块RAO、RA1’和FEC。经速率适配的数据再经过信道编码、交织、突发脉冲格式化、信道加密、调制后发射。
对接收对方的信息,在进行解调、信道解密、突发脉冲格式化、去交织、信道解码后,数据被还原成发送方信道编码前的形式。然后再通过数据业务模块204’进行前向纠错和速率适配,送入全程解密模块203’。全程解密模块203’利用数据流中的帧定位信息分离出独立的加密数据帧,利用帧中的控制信息(例如帧头帧尾中的控制信息)纠错,当发现一帧错误数据且不可恢复时,就简单地加以丢弃,利用全程密钥和帧控制信息中的帧号对加密数据帧解密,最后拼接成连续话音数据流,送入低速率话音解码器202’解码,最后经A/D转换器201’进行数模转换成为话音。
利用本发明中的手机加密方法,通信过程中,信息在通信的全过程都是加密的,加密的密钥以及生成密钥的随机数等都是通信者掌握而不是电信经营者控制的,所以通信的安全性大大提高。由于在每个加密语音帧中都加入了纠错信息,可对每一帧进行纠错。在解密方,当发现某帧数据错误不能纠正时,就简单地加以丢弃。由于帧与帧之间具有独立性,一个坏帧不会影响其他帧的解密,又因为每一帧都很短,丢弃一帧不会造成听觉上的障碍。这样,通信质量也会提高。