zoukankan      html  css  js  c++  java
  • 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次操作即可。

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

  • 相关阅读:
    python增加 删除列表元素
    Fildder2
    Appscan使用第三方浏览器
    Appscan的下载安装
    http状态码
    python学习资料
    Fiddler抓包工具
    性能测试的一些资料
    Jmeter分布式测试
    内存溢出的原因及解决办法(转)
  • 原文地址:https://www.cnblogs.com/gambler/p/9074356.html
Copyright © 2011-2022 走看看