对称加密算法——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)得到了子密钥之后与原文进行异或运算得到密文。

 

posted @ 2017-07-15 20:10  _小北  阅读(885)  评论(0编辑  收藏  举报