RC4加密关键变量及算法特点原理详解
作者:青花鲤鱼
什么是RC4
RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务。
RC4 流密码是使用最广泛的流密码之一,它通过算法一次一个字节地加密消息,简单并且操作速度快。 RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权的用户才能享受该服务,使用 64 位或 128 位密钥大小。它通常用于安全套接层 (SSL)、传输层安全 (TLS) 等应用,也用于 IEEE 802.11 无线 LAN 标准。
RC4加密是一种典型的对称加密算法。
RC4算法特点
(1)、算法简洁易于软件实现,加密速度快,安全性比较高;
(2)、密钥长度可变,一般用256个字节。
RC4加密的几个关键变量
1、密钥流:RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节。当然,加密生成的密文也是500字节,因为密文第i字节=明文第i字节^密钥流第i字节;
2、状态向量S:长度为256,S[0],S[1].....S[255]。每个单元都是一个字节,算法运行的任何时候,S都包括0-255的8比特数的排列组合,只不过值的位置发生了变换;
3、临时向量T:长度也为256,每个单元也是一个字节。如果密钥的长度是256字节,就直接把密钥的值赋给T,否则,轮转地将密钥的每个字节赋给T;
4、密钥K:长度为1-256字节,注意密钥的长度keylen 与明文长度、密钥流的长度没有必然关系,通常密钥的长度取为16字节(128比特)。
RC4加密原理
1、初始化S和T
for i=0 to 255 do S[i] =i; T[i]=K[ imodkeylen ];
2、初始排列S
for i=0 to 255 do j= ( j+S[i]+T[i])mod256; swap(S[i],S[j]);
3、产生密钥流
for r=0 to len do //r为明文长度,r字节 i=(i+1) mod 256; j=(j+S[i])mod 256; swap(S[i],S[j]); t=(S[i]+S[j])mod 256; k[r]=S[t];
通过知道RC4加密的原理,可以根据具体情境写出加密或者解密的脚本
以上就是RC4加密关键变量及算法特点原理详解的详细内容,更多关于RC4加密关键变量算法的资料请关注脚本之家其它相关文章!