A5-1(A5/1)加密算法的简单理解
A5/1应该是一个比较低级且基于流秘钥的一种加密算法,因为是可以基于硬件实现的,所以可以非常快。
在这里写主要还是为了便于自己以后理解,如有不对请各位指正。
转载请注明:https://www.cnblogs.com/gambler/p/9074356.html
首先要明白A5/1算法产生秘钥的流程(这里就不讲什么初始化,道理都一样,主要是讲秘钥是怎么生成的)
1、假设有以下三个初始移位寄存器(先只要知道有三个移位寄存器(就是普通寄存器),分别有19位,22位,23位)
2、然后是如何开始生成秘钥的,假设有三个寄存器目前的状态是这样:
3、接下来开始进行规定的流程(这是规定,别问我为什么这样做)
(1)首先找到X8=1,Y10=0,Z10=1
(2)取数量最多的作为结果M=Maj(X8,Y10 , Z10 )= Maj(1,0, 1)=1;(如果是M=Maj(0,0,1)=0)
(3)因为M=1,且X8=1,M=X8,所以X寄存器需要左移一位,那么因为左移,第一位就空出来了,则 X0= (移位前的)=1
所以最后X寄存器变为
同理,再看Y寄存器,因为M=1,Y10=0,所以Y寄存器不需要进行移位,保持不变(如果是M=Y10 Z0=)
同理,Z寄存器,因为M=1,Z10=1,所以Z寄存器需要左移一位,第一位Z0==0
所以最后Y寄存器变为
所以最后得到的三个移位寄存器是
秘钥是S0==1,
就这样得到了第一位秘钥,如果需要64位秘钥,则按照上述进行循环64次操作即可。
怎么样是不是很简单。给个赞呗
转载请注明:https://www.cnblogs.com/gambler/