RC加密套件加密解密工具
Ron Rivest设计的RC2/RC4/RC5/RC6对称加密算法
⚠️ 安全提示
RC4存在已知漏洞,已从TLS/SSL中弃用。为获得最高安全性,建议使用AES-256。所有数据均在浏览器本地处理。
关于RC加密套件
RC系列密码由MIT和RSA Security的Ron Rivest设计。'RC'最初代表'Rivest Cipher'或'Ron's Code'。该系列包括RC2、RC4、RC5和RC6,各具特点。
RC2是1987年设计的64位分组密码。RC4是曾广泛用于SSL/TLS和WEP的流密码。RC5引入了新颖的参数化结构。RC6作为AES候选算法设计,通过整数乘法增强扩散。
算法对比
| 算法 | 类型 | 密钥长度 | 分组大小 | 安全性 | 状态 |
|---|---|---|---|---|---|
| RC2 | 分组密码 | 1-128字节 | 64位 | 较弱 | 已弃用 |
| RC4 | 流密码 | 1-256字节 | 不适用(流) | 较弱 | 已弃用 |
| RC5 | 分组密码 | 0-255字节 | 32/64/128位 | 良好 | 安全 |
| RC6 | 分组密码 | 16/24/32字节 | 128位 | 优秀 | AES决赛 |
RC2 (Rivest Cipher 2)
RC2是1987年设计的64位分组密码。它使用可变长度密钥(1-128字节),并具有独特的'有效密钥位'参数,可以限制密钥搜索空间。
最初作为机密设计,RC2旨在实现40位有效密钥长度的出口兼容性。由于已知漏洞,它应仅用于旧系统兼容性。
RC4 (Rivest Cipher 4)
RC4是1987年设计的流密码。它生成伪随机字节流(密钥流),与明文进行XOR运算。以简单和快速著称,曾广泛用于SSL/TLS、WEP和WPA协议。
由于发现的漏洞(特别是密钥流的前几个字节),RC4已从现代安全协议中弃用。'RC4-Drop'变体通过丢弃初始密钥流字节来缓解这些问题。
RC5 (Rivest Cipher 5)
RC5于1994年发布,引入了参数化设计,包含三个变量:字长(w)、轮数(r)和密钥长度(b)。这种灵活性使RC5可以适应不同的安全需求。
RC5使用数据相关旋转作为主要非线性运算,简单而有效。常见配置包括RC5-32/12/16(32位字长,12轮,16字节密钥)。
RC6 (Rivest Cipher 6)
RC6于1998年作为AES候选提交,是五个决赛算法之一。它通过整数乘法扩展RC5以获得更好的扩散,并使用四个工作寄存器而不是两个。
RC6具有固定的128位分组大小,支持128/192/256位密钥,提供优秀的安全性。虽然Rijndael被选为AES,但RC6仍然是一个受尊敬且安全的算法。
主要特点
- RC2: 可变密钥长度的传统分组密码,仅用于兼容旧系统
- RC4: 极快的流密码,适合实时应用
- RC5: 参数化设计允许灵活的安全/性能权衡
- RC6: 具有强大安全保证的现代分组密码
- 所有算法均无专利,可免费用于任何用途
加密模式 (RC5/RC6)
- CBC: 密码分组链接 - 每个块与前一个密文块XOR。推荐用于大多数场景。
- ECB: 电子密码本 - 每个块独立加密。不推荐用于敏感数据。
- CFB: 密码反馈 - 将分组密码转换为流密码。自同步。
- OFB: 输出反馈 - 独立生成密钥流。无错误传播。
安全建议
- RC4不应用于新应用,因为存在已知漏洞
- RC4-Drop(丢弃前768-3072字节)可以缓解某些攻击,但不推荐使用
- 具有足够轮数(12+)和密钥长度(128+位)的RC5被认为是安全的
- RC6提供与AES相当的优秀安全性
使用场景
- 旧系统兼容性和迁移
- 教育和研究目的
- 嵌入式系统使用RC5(实现简单)
- 高安全性应用使用RC6