对称加密算法——RC4
1:算法原理
(1)RC4首先使用的是密码调度算法,所谓的密码调度算法,是为了得到密钥流而设计的,代码如下,经过密码调度算法之后,可以得到一个256位的密钥流。
def initialize_S(K): S = range(256) j = 0 for i in range(256): j = (j + S[i] + K[i]) % 256 S[i], S[j] = S[j], S[i] return S
(2):在得到密钥流之后,在进行子密码的获得。
for x in range(length): i = (i + 1) % 256 j = (j + S[i]) % 256 S[i], S[j] = S[j], S[i] m = (S[i] + S[j]) % 256 X = S[m] if print_x: print (X) yield X
(3)得到了子密钥之后与原文进行异或运算得到密文。