admin 管理员组

文章数量: 1087677

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是生成种子2swap(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算法还是蛮好理解的,多敲几遍就好了。

本文标签: RC4加密算法理解