微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 移动通信 > GSM/GPRS/EDGE > 语音加密为什么需要A8算法?

语音加密为什么需要A8算法?

时间:04-04 整理:3721RD 点击:
如题。
在空中接口上,为什么还需要经过A8算法处理后的Ki产生的Kc,然后Kc结合语音经过A5算法来实现对话务的加密,而不是单靠A5算法对语音加密,这样不就是处理了两次?(诺基亚SYSTRA中文版资料鉴权性原理一节)

在手机登录移动网络的时候,移动网络会产生一个 16 字节的随机数据(通常称为 RAND)发给手机,手机将这个数据发给 SIM 卡, SIM 卡用自己的密钥 Ki 和 RAND 做运算以后,生成一个 4 字节的应答(SRES)发回给手机,并转发给移动网络,与此同时,移动网络也进行了相同算法的运算,移动网络会比较一下这两个结果是否相同,相同就表明这个卡是我发出来的,允许其登录。这个验证算法在 GSM 规范里面叫做 A3,m = 128 bit, k = 128 bit, c=32 bit,很显然,这个算法要求已知 m 和 k 可以很简单的算出 c ,但是已知 m 和 c 却很难算出 k 。A3 算法是做在 SIM 卡里面的,因此如果运营商想更换加密算法,他只要发行自己的 SIM 卡,让自己的基站和 SIM 卡都使用相同的算法就可以了,手机完全不用换。

在移动网络发送 RAND 过来的时候,手机还会让 SIM 卡对 RAND 和 Ki 计算出另一个密钥以供全程通信加密使用,这个密钥的长度是 64 bits, 通常叫做 Kc, 生成 Kc 的算法是 A8 ,因为 A3 和 A8 接受的输入完全相同,所以实现者偷了个懒,用一个算法同时生成 SRES 和 Kc 。

在通信过程中的加密就是用 Kc 了,这个算法叫做 A5 ,因为 A5 的加密量很巨大,而且 SIM 卡的速度很慢,因此所有通信过程中的加密都是在手机上面完成的,这样一来,除非天下所有 GSM 手机都至少支持一种相同的 A5 算法,否则就没法漫游了,这时候运营商和设备商的懒惰又体现出来了,全世界目前只有一种通用的 A5 算法,没有其他的,这个算法就是和 Kc 的 8 字节序列进行简单的循环 XOR,再和报文序号做个减法。

给一楼提点建议:一楼的“

在手机登录移动网络的时候,移动网络会产生一个 16 字节的随机数据(通常称为 RAND)发给手机,手机将这个数据发给 SIM 卡, SIM 卡用自己的密钥 Ki 和 RAND 做运算以后,生成一个 4 字节的应答(SRES)发回给手机,并转发给移动网络,与此同时,移动网络也进行了相同算法的运算,移动网络会比较一下这两个结果是否相同,相同就表明这个卡是我发出来的,允许其登录。”这是鉴权的算法。
个人看法:
A5算法:Kc(62bit)和当前脉冲串帧号码(22bit)经过A5算法产生114bit的加密序列。
至于为什么不能只用A5算法,因为A5算法不能产生Kc,而加密算法中Kc是一个必须的因素,而A8能产生Kc,所以必须要A8 算法。

上一篇:MSC、HLR
下一篇:GSM系统寻呼过程

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top