基本原理
RC4属于对称密码算法中的流密码加密算法
什么是对称密码?
使用同一个密钥进行加密和解密
什么是流密码?
一个字节一个字节的进行加密/解密
RC4密钥长度是可以变的,面向字节操作
它以一个足够大的表s为基础
对表进行非线性变换,产生密钥流
什么是非线性?
可以这么理解
x变量经过一个函数到y
是否是线性变换,取决于这个函数,直观的可以看x,y图
非线性变换一定比线性变换更难以找到方式破解的
加密过程
一、初始化s表
- 对s表进行线性填充,一般为256个字节
- 用种子密钥填充另一个256字节的K表
- 用K表对S表进行初始置换
S表:
s[0]=0
s[1]=1
…
s[255]=255
K表:
例如种子密钥为1234,只有4个数
那么使用循环将K表填满
就是
123412341234…
K表对S表进行置换
二、密钥流的生成(为每个待加密的字节生成一个伪随机数,用来异或)
注:表s一旦完成初始化,种子密钥就不再被使用
看完到这里再去看CTFshow re2