A3/A8/A5算法

来源:互联网 发布:java代码混淆 反编译 编辑:程序博客网 时间:2024/04/28 10:34
1、A3 Algorithm(A3 算法)
A3算法(A3 Algorithm)是用于对全球移动通讯系统(GSM)蜂窝通信进行加密的一种算法。实际上,A3 和 A8 算法通常被同时执行(也叫做 A3/A8)。一个 A3/A8 算法在用户识别(SIM)卡和在 GSM 网络认证中心中执行。它被用于鉴别用户和产生加密语音和数据通信的密钥,正如在 3GPP TS 43.020(Rel-4 前的 03.20)定义的一样。尽管实例执行是可行的,但 A3 和 A8 算法被认为是个人 GSM 网络操作者的事情。
A3/A8
A3/A8 是指两个算法,A3 和 A8,是用于对全球移动通信系统(GSM)蜂窝通信进行加密的算法。因为 A3 和 A8 算法通常同时执行,因此,它们通常被叫做 A3/A8,一个 A3/A8 算法在用户识别(SIM)卡和在 GSM 网络认证中心中被执行。正如在 3GPP TS 43.020(Rel-4 前的 03.20)中定义的一样,它通常用于认证这个用户和产生一个加密语音和数据通信的密码。尽管实例执行是可行的,但 A3 和 A8 算法被认为是个人 GSM 网络操作者的事情。
A5 Algorithm(A5 算法)
A5 算法(A5 Algorithm)被用于加密全球移动通信系统(GSM)蜂窝通信。一个 A5 加密算法在电话听筒和基站之间搅乱用户语音和数据传输来提供私密。一个 A5 算法被在电话听筒和基站子系统(BSS)两者中执行。
A8 Algorithm(A8 算法)
A8算法(A8 Algorithm)通常被用于全球信息系统(GSM) 蜂窝通信的加密。在实践中,A3 和A8 算法,也叫做 A3/A8,一般被同时执行。一个 A3/A8 算法在用户识别(SIM)卡和在 GSM 网络认证中心中被执行。它通常用于认证这个用户和产生一个加密语音和数据通信的密钥,正如在 3GPP TS 43.020(Rel-4 前的 03.20)中定义的一样。尽管实例执行是可行的,但 A3 和 A8 算法被认为是个人 GSM 网络操作者的事情。

2、算法详细的介绍:作为当今世界上应用最为广泛的移动通信系统,由于用于传输数据和信令的无线信道内在的弱点,移动系统中天然具有不安全性。一旦入侵者得到必要的信息,他就可以对用户和运营商形成多种攻击。而在通常情况下,一个较低程度的攻击又可能会带来在更高程度上的和更加严重的攻击。因此,在移动通信系统中必须要引入鉴别和安全机制。GSM系统在确保整个通信系统性价比的基础上,在为用户提供全球无缝漫游、高质量的语音通话、数字通信等多种多样的业务服务的同时,包含有有效的加密和鉴别机制,可以做到防止通话被窃听、无线电话被盗用、信令和数据被截取。GSM系统中的安全机制的目的是尽可能使得无线通信系统如有线网络一样安全,以保护用户的隐私和运营商的利益。
ITUT建议书中对GSM的安全机制进行了详细论述[参见参考文献8]。本文将系统的阐述GSM系统所包含的安全和加密机制,是如何使其成为一个成功的安全的移动通信系统,最后指出其缺点和发展方向。
    二、安全机制的分布
GSM系统由移动站(MS)、基站子系统(BSS)和网络子系统(NSS)三部分组成。移动站和基站间通过无线连路连接,系统其他部分间则通过有线链路连接。
每个移动站,即移动电话,配有一个用户识别(SIM)卡。在SIM卡中存有用户在GSM系统中的注册信息,包括:给用户特定且唯一的身份标志的国际移动用户号(IMSI)、用户电话号码、鉴别算法(A3)、加密密钥生成算法(A8)、个人识别号(PIN)、单个用户鉴别密钥(Ki)等。GSM移动电话又包含加密算法(A5)。
基站子系统用于连接移动电话和GSM网络。基站通过无线信道与移动电话通信。这是GSM系统中唯一使用无线信道的部分。所以,ITUT建议中只考虑移动电话和基站之间的信息需要加密。
有线电话网通过网络子系统将各个GSM网络连接起来。网络子系统中的本地区域注册(HLR)和访问区域注册(VLR)为移动业务交换中心(MSC)提供协调呼叫所需的全部信息。在HLR中存有所有与本地用户相关的信息,如本地用户的IMSI、电话号码、登记业务和鉴别密钥(Ki)等永久数据和一些临时数据。VLR包含与所有当前正在接受服务的用户有关的信息,除HLR中的永久数据外,还有一些如临时移动用户识别号(TMSI)这样的临时数据,为相应的MSC提供呼叫建立和鉴别阶段的支持。设备识别注册(EIR)存有所有移动用户的IMEI及其在网络中的权限。鉴别中心(AuC)是一个包含着GSM网络中最重要和最敏感信息的数据库,为GSM网络提供了鉴别用户、加密数据和信号所必需的全部信息。这些信息包括:每个用户的鉴别密钥(Ki),鉴别算法(A3),加密算法(A5),加密密钥生成算法(A8)。AuC生成一系列随机数(RAND)、标识响应(SRES)和密码密钥(Kc),将它们传送并存储在HLRVLR中,为鉴别和加密过程提供所需要的信息。
 1 [引用自参考文献2]所示的是安全信息在GSM系统这三部分中的分布。存储在这三部分中的信息在安全机制中缺一不可。而安全信息和算法在整个系统不同部分的分布又为用户和系统地的安全提供了额外的保障。

 1: 安全信息在GSM网络中的分布
    三、安全机制的组成
GSM系统中的安全机制由用户身份鉴别、用户身份保密性和信令及数据保密性组成。
在通话建立之前,系统通过一个呼叫响应过程进行用户身份鉴别,通过跟踪技术确定主叫位置。被叫也可在接受通话前确认主叫身份。
存在SIM卡中的IMSI以及单个用户鉴别密钥(Ki)组成了GSM系统敏感的识别认证书。GSM中鉴别和加密方案的设计保证了这些敏感信息不会通过无线信道传送。移动用户是通过TMSI,而不是IMSI,来让网络识别自己,而TMSI由网络派送并周期性改变。所以第三方不可能通过窃听对话来得到用户的真正识别。GSM中通过无线信道传输的移动用户和基站之间的数据和信令由一个临时随机生成的加密密钥(Kc)加密。Kc由用户和运营商保密。这保证了系统用户的隐私,使系统不会被泄漏。
1.      GSM的鉴别机制
鉴别是通过一个基于加密的调战响应机制识别GSM网络用户。调战应答机制工作如下:GSM网络向移动电话派送一个128比特的随机数(RAND)作为“呼叫”。移动电话在收到呼叫后,用鉴别算法(A3)和分配给移动用户的单个用户鉴别密钥(Ki)对其进行加密,得到32比特的标识响应(SRES)。然后,移动电话将加密后的呼叫,即标识响应(SRES),发回给GSM网络。GSM网络在收到SRES之后,用同样的鉴别密钥Ki进行A3运算,以验证用户的身份。如果GSM网络的运算结果与收到的SRES相同,移动电话就成功地通过了鉴别,可以继续与网络通信。否则,连接就会中断。
 2 [8] 所示为GSM网络的鉴别机制以及各部分如何应用 Ki A3 算法.

 
2:GSM系统中的鉴别机制
在鉴别过程中,入侵者所能从无线信道中得到的是本次的调战和标识响应。但下一次将是一个新的随机调战及其对应的标识响应。因此,窃听无线信道的入侵者不会在鉴别过程中得到形成一次攻击所需的足够有用信息。
2.       GSM的信令和数据保密性
在鉴别过程完成之后,GSM网络和用户之间便可进行信令和数据通信。在通信过程中,它们之间的信令和数据都必须适当地进行加密,以确保其保密性。
A. 生成加密密钥(Kc 
GSM系统中,对信令和数据进行加密和解密的密钥及算法均不同于用于鉴别过程的密钥和算法。首先我们来看如何生成加密密钥(Kc)。将之前在鉴别过程中使用过的相同的随机数(RAND)以单个用户鉴别密钥(Ki)为密钥,用密码密钥生成算法(A8 )进行运算,结果便是64比特的用于加密信令和数据的加密密钥(Kc)。
3所示为在系统中如何生成加密密钥(Kc)。