RC4加密算法理解

RC4加密算法理解

  • 概念

  • 在密碼學中,RC4(來自Rivest Cipher 4的縮寫)是一種流加密算法,密鑰長度可變。它加解密使用相同的密鑰,因此也屬於對稱加密算法。RC4是有線等效加密(WEP)中採用的加密算法,也曾經是TLS可採用的算法之一。

  • 原理:總體來說包括兩個部分:1.初始化密匙盒子。2.僞隨機密碼生成

PS:不需要過分轉牛角爲什麼能這樣子加密,這涉及到數學問題了,不過有興趣可以去理解一下。

  • 流程

    • 初始化盒子S-box,256個字節,分別賦值爲0-255.(生成的種子1)
    • 初始化密匙,就是你輸入的flag,然後輪轉填滿256個字節,如:輸入abc,就生成abcabcabc…(生成種子2),以此類推,類比。這裏就先記作k[25600]吧。
    • 開始對盒子S-box打亂(打亂種子1)------>
    j=0;//臨時變量
    for(i=0;i<256;i++)
    	j=(j+Sbox[i]+k[i])mod256;//記住就好,小菜雞也不大曉得原理鴨
    	//k是生成種子2
    	swap(Sbox[i],Sbox[j]);//打亂,swap函數自己簡單寫個去實現就好了
    
    • 下面開始生成密匙流(最後就是要用這個密匙流來異或加密的)
    • 先計算輸入flag的字節數(strlen),然後開始生成對應的異或要用的密匙流)------->
    i=0;
    j=0;
    while(lenth--)
    {
    	i=(i+1)mod256;
    	j=(j+Sbox[i])mod 256;
    	swap(s[i],s[j]);
    	t=(S[i]+S[j])mod256;
    	keystream=Sbox[t];
    	Data[對應的位數]^=k;//此處完成加密
    }
    
  • 總結

RC4算法還是蠻好理解的,多敲幾遍就好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章