rc4和rc4md5

IV及初始化向量S,

密文:密文第i字节=明文第i字节^密钥流第i字节

密钥流:根据明文和密钥生成,密钥流长度和明文长度一样

状态向量S或IV:长度256个8位,256个字节

临时向量T:长度也是256个8位,256个字节,如果密钥的长度是256字节,就直接把密钥的值赋给T,否则,轮转地将密钥的每个字节赋给T;

密钥K:密钥长度与明文长度、密钥流的长度没有必然关系,通常密钥的长度取为16字节(128比特)

1.初始化S和T:

S的值升序被置为0-255

T的值是密钥K的值的循环复制

2.S的初始置换

用T产生S的初始置换,置换伪码如下

j = 0;

  for (i = 0 ; i < 256 ; i++){

    j = (j + S[i] + T[i]) mod 256;

    swap(S[i] , S[j]);

  }

因为对S的操作仅是交换,S仍然包含所有值为0-255的元素。

3.密钥流的生成

 i , j = 0;

  while (true){

    i = (i + 1) mod 256;

    j = (j + S[i]) mod 256;

    swap(S[i] , S[j]);

    t = (S[i] + S[j]) mod 256;

    k = S[t];

  }

k即为密钥流的一个字节


WEP加密、RC4算法

RC4                                                                 

RSA实验室研发的对称加密 流 算法                                     

    实现简单                                                       

    速度快                                                         

加密: 对明文流和密钥流进行XOR计算                                   

解密: 对密文流和密钥流进行XOR计算                                   

RC4算法key由两个过程生成                                             

    合并IV和PSK,利用Key Scheduling Algorithm (KSA)算法生成起始状态表

    Pseudo-Random Generation Algorithm (PRGA)算法生成最终密钥流


rc4算法中加密用的key就是key本身,一般长度16字节128位

rc4md5中加密用的key是md5(key+iv)得到结果位16字节hash值128位

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CTF中那些脑洞大开的编码和加密 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问...
    查无此人asdasd阅读 6,482评论 0 19
  • 0x01 目录 常见编码: ASCII编码 Base64/32/16编码 shellcode编码 Quoted-p...
    H0f_9阅读 13,538评论 2 17
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,168评论 0 2
  • (一)准备阶段 1、获取本机的杀毒软件信息 2、获取本机信息 勒索Id的生成方法和之前版本一样,都是利用RtlCo...
    陈小帅不帅阅读 2,162评论 0 1
  • 很久没有看见养蜂人了,五年了吧! 今天坐车回家,突然就看见车窗外的蜂箱,孤独的养蜂人和他的幼子…在...
    小麦86阅读 398评论 0 5

友情链接更多精彩内容