交互效果好的网站,手机网页传奇,阿里巴巴网站怎么做推广,wordpress删除中文0x01 A5/1流密码算法的基本用法
作用#xff1a; 用于蜂窝式移动电话系统语言和数字加密 过程#xff1a; A5/1算法用于用户的手机到基站之间的通信加密#xff0c;通信内容到基站后先解密变成明文#xff0c;然后再进行基站到基站之间#xff0c;以及基站到用户手机之间…0x01 A5/1流密码算法的基本用法
作用 用于蜂窝式移动电话系统语言和数字加密 过程 A5/1算法用于用户的手机到基站之间的通信加密通信内容到基站后先解密变成明文然后再进行基站到基站之间以及基站到用户手机之间的信息加密完成通信内容在通信过程的加密保护。 应用环节 只需考察用户A到基站1之间通信内容的加解密中间消息的传送由基站到基站之间的加密完成而接受方B对消息的加解密与用户A到基站1之间的通信完全类似只不过用户B先解密消息
基本密钥KA1 预置在SIM卡中与基站1共享。 •生存期一旦植入SIM卡将不再改变。 •用途用来分配用户和基站之间的会话密钥。
会话密钥k 在每次会话时基站产生一个64比特的随机数k。仅用于一次通话时间。
加密方式 一次通话使用一个会话密钥对每帧使用不同的帧密钥。按每帧228比特分为若干帧后逐帧加密每帧处理方式相同其中114比特为发送114比特用来接收数据。明文密钥流结合方式逐位异或
0x02 密钥流产生步骤 A5/1算法使用3个线性反馈移位寄存器简称为LFSR。三个寄存器的分别为19位、22位、23位。这里要使用三个共包含64位二进制的线性反馈移位寄存器这个设计绝非偶然。绝非巧合的是A5/1算法的密钥K也是64位。该密钥用于三个线性反馈移位寄存器的初始填充也就是说该密钥用于充当三个寄存器的初始值。这三个寄存器用密钥填充之后就可以开始生成密钥流了。
每个回合步骤可以拆分为取KEY反馈多项式Feedback Polynomial位移
1、取key
取三个寄存器的最后一位也就是19位、22位、23位进行XOR操作得到的结果为这一轮Key的一位。
2、反馈多项式
LFSR进行位移的前置操作具体可以分成两步判定是否需要进行位移判定新的充填的值
2.1 判断是否需要移位
这里使用的是择多原则三个寄存器中选择三个钟控信号19位中的第8位22位23位中皆为第10位两种二进制0,1必定有0或1数量居多居多的寄存器需要进行位移操作。就是上图的黄色部分
2.2 判定新的充填的值
这里需要用到反馈多项式 XOR后得到的值是充填到第0位的值。
3、移位
三个寄存器由上一步的判定后进行位移空出第0位用于充填反馈多项式得到的值。
0x03 密钥产生例子
1、假设有以下三个初始移位寄存器先只要知道有三个移位寄存器就是普通寄存器分别有19位22位23位
2、然后是如何开始生成秘钥的假设有三个寄存器目前的状态是这样 3、接下来开始进行规定的流程 取key得到第一个密钥值为1 1首先找到X81Y100Z101 2取数量最多的作为结果MMajX8Y10 Z10 Maj10, 11如果是MMaj0,0,10 3因为M1且X81MX8所以X寄存器需要左移一位那么因为左移第一位就空出来了则 X01 所以最后X寄存器变为 同理 所以最后得到的三个移位寄存器是 秘钥是S01,
就这样得到了另一位秘钥如果需要64位秘钥则按照上述进行循环64次操作即可。
0x04 A5/1算法弱点
移位寄存器太短容易遭受穷举攻击A5/1算法把主密钥作为算法中三个寄存器的初始值长度为64比特。如果利用已知明文攻击只需要知道其中两个寄存器的初始值就可以计算出另一个寄存器的初始值这只需要240步就可以得出寄存器LFSR-1和LFSR-2的结构。 利用了GSM通信加密中的两个安全漏洞可以通过离线迭代计算生成一个彩虹表它包含有密钥和其相对应的输出密码。这个彩虹表的大小为984GB。得到了彩虹表之后安全专家就可以在短短的九秒内确定用于加密通信数据的密钥。
参考 https://www.cnblogs.com/gambler/p/9074356.html https://blog.csdn.net/jerry81333/article/details/78641362 https://www.bilibili.com/video/av58596164?p17