RC4对称加密技术

RC4是一种由Ronald Rivest在1987年发明的对称加密算法,以其简洁快速的特点广泛应用于SSL、WEP等领域。尽管存在安全漏洞,RC4仍然因其简单性和效率在轻量级加密中占据一席之地。文章介绍了RC4的加密原理、安全性问题以及常见的加密模式如ECB、CBC、CFB、OFB和CTR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RC4对称加密技术

背景资料

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算法:

/*
 * RC4 encryption by Jimbowhy
 * @key : password whin 256 bytes
 * @p   : plaintext/chipher to encrypt/decrypt, MODIFIED
 */
string RC4(string key, string &p){
    unsigned int k = 0, lk = key.length(), lp = p.length(), mod = 256;
    unsigned char *sbox = (unsigned char *)malloc(mod);
    unsigned char i = 0, j = 0;

    for(i=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值