RC4算法原理

RC4算法原理RC4加密算法之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节

该算法的速度可以达到DES加密的10倍左右

RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分

假设S-box长度和密钥长度均为n

先来看看算法的初始化部分(用类C伪代码表示):for (i=0; i

而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的:i=j=0;while (明文未结束){++i%=n;j=(j+s)%n;swap(s, s[j]);sub_k=s((s+s[j])%n);}得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同

由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解

关于如何破解xor加密,请参看Bruce Schneier的Applied Cryptography一书的1.4节Simple XOR

那么,RC4算法生成的子密钥序列是否会出现重复呢?经过我的测试,存在部分弱密钥,使得子密钥序列在不到100万字节内就发生了完全的重复,如果是部分重复,则可能在不到10万字节内就能发生重复,因此,推荐在使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关