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

怎么樣是不是很簡單。給個贊唄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM