RC4算法
·RSA实验室研发的对称加密流算法(分为块加密与流加密)
·实现简单
·速度快
·加密:对明文流和密钥流进行XOR计算(异或运算a⊕b = (¬a ∧ b) ∨ (a ∧¬b) a与b不一样就为1)
·解密:对密文流和密钥流进行XOR计算
·RC4算法key由两个过程生成
·合成IV(客户端随机生成的)和SKA(key wep的密钥(无线密码)) 利用key Scheduling Algorirhm(KSA)算法生成起始状态表
·把起始状态表利用Pseudo-Random Generation Algorithm(PRGA)算法生成最终密钥流keystream
另一方面 把明文消息值32位的CRC摘要计算算出 然后结合明文 形成数据流Plaintext 然后进行XOR加密
形成一个密文消息 (密文的数据部分Encryption data) 其实是这样的IV+Key ID +Encryption data+ICV 密文太大需要进行拆包 IV值 每一段需要一个密钥流对应当前该数据的key的ID号
以上为发送 到接收端后
IV+Key ID +Encryption data+ICV
首先IV值提取 提取Key ID的key 两者结合 进行KSA计算生成起始状态表然后PRGA生成最终密钥流keystream 然后与Encryption data异或运算生成Plaintext messege 进行32位的CRC计算生成ICV摘要值 与之前的ICV比较 不一样丢弃 一样进行还原
·Encryption加密
·Plaintext与Keysteam长度一样 将其进行异或运算 到Encryption data
·Decryption解密
·倒序过去就能得到明文