RC4对称加密技术
MD DocUmEnT: 3/14/2016 04:57:54 AM by Jimbowhy
背景资料
1987年,Ron Rivest 为他的公司 RSA Data Security, Inc. 发明了 RC4 加密系统,加密过
程十分简洁明了,以致可以用大多数据语言重新编写。纳德·李维斯特 Ronald L.
Rivest,就是 RSA 非对称加密算法的主要作者。和DES算法一样,RC4 是一种对称加密
算法,也就是说使用同一个密钥来实现加密与解密,或者说对明文进行一次加密得到
密文,对密文进行一次加密就可以得到明文。和DES不同于的是,RC4不是对明文进行
分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对
密文中的每一个字节进行解密。这种加密方式又称流式加密,RC4 是应用最广泛的流
加密算法,应用在安全套接字层 SSL Security Socket layer 来保护网络上传输的数据,
也应用于网络数据保护 WEP Wired Equivalent Privacy,而新的无线网络数据保护 WPA
Wi-Fi Protected Access 已经取代了它在这方面的应用。
RC4官方名是“Rivest Cipher 4”,RC4是商业密码,是在94年9月份的时候,被人匿名公
开在了Cypherpunks 邮件列表上,很快它就被发到了sci.crypt 新闻组上,随后从这儿
传播到了互联网的许多站点。随之贴出的代码后来被证明是很有水平的,因为它的输
出跟取得了RC4版权的私有软件的输出是完全的。由于算法已经公开,RC4也就不再是
商 业 秘 密 了 , 只 是 它 的 名 字 “RC4” 仍 然 是 一 个 注 册 商 标 。 RC4 经 常 被 称 作
是“ARCFOUR”或者”ARC4”,因为RSA从来没有官方公布这个算法,这样来避免商标使
用的问题。
它的最大亮点是算法的简单性和快速处理,因此它可以很容易多种语言上实现。设有
一个256字节的数组,用它来加密明文 plaintext,每使用一次,数组的就要交换其中
两个字节。被交换的两个字节通过变量 i j 来指定,它们初始值为 0。计算 i 的新值
时,直接加一,计算 j 的新值时,将 i 数值对应的数组字节值和密钥字节值相加得到。
要得到密文 ciphertext,将明文和 i j 求和后指示的字节相异或 XOR,加密 encrypt 和解
密 decrypt 的过程一样。然后交换 i j 指示的数组字节,所有操作都对256求模,数组使
用前经过初始化,值依次为 0-255。密钥长度在 1-256字节,以下就是C语言实现的RC4
算法:
评论0