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次操作即可。

怎么样是不是很简单。给个赞呗

 

posted @ 2018-05-22 21:56  沉默的赌徒  阅读(8466)  评论(2编辑  收藏  举报