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算法还是蛮好理解的,多敲几遍就好了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值