CoderTools

RC加密套件加密解密工具

Ron Rivest设计的RC2/RC4/RC5/RC6对称加密算法

⚠️ 安全提示

RC4存在已知漏洞,已从TLS/SSL中弃用。为获得最高安全性,建议使用AES-256。所有数据均在浏览器本地处理。

RC2密钥长度: 1-128字节。分组大小: 64位。建议有效密钥位: 128
格式选项

关于RC加密套件

RC(Rivest 密码,也称“Ron's Code”)家族由 Ron Rivest 在 MIT 和 RSA Security 历经数十年设计。RC2(1987 年,1998 年通过 RFC 2268 发布)是一种 64 位分组密码,密钥长度为 64 到 128 位,最初为出口级别使用而创建,至今仍在某些 S/MIME 实现中存在。RC4(1987 年,1994 年泄露到 Cypherpunks 邮件列表)是一种流密码,因 WEP 密钥调度漏洞和 Fluhrer-Mantin-Shamir(FMS)攻击而臭名昭著。

RC5(1994,Rivest)引入了完全参数化的分组密码——RC5-w/r/b 选择字宽(16、32 或 64 位)、轮数(0-255)和密钥长度(0-255 字节);RC5-32/12/16(32 位字、12 轮、16 字节密钥)是参考实现。RC6(1998,Rivest/Gupta/Shamir/Yin)用整数乘法和四寄存器扩展了 RC5,作为最终 AES 候选;RC6-32/20/b 使用 20 轮和 128/192/256 位密钥。

算法对比

算法 类型 密钥长度 分组大小 安全性 状态
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: RC2/RC5/RC6 的密码块链接模式——RC2 的 64 位分组面临 Sweet32 生日界风险(同密钥 CBC 数据约 32 GB 后显著);RC5-32/RC6-32 同样使用 64 位分组。RC4 没有块链接模式;它直接生成连续的字节级 PRGA 密钥流。
  • ECB: RC2/RC5/RC6 的电子密码本模式——每个块独立通过所有密码轮,使用相同的子密钥。RC2/RC5-32/RC6-32 均操作 64 位块;两个相同的 8 字节输入块总是产生相同密文,使 ECB 不适合单块令牌加密或密钥封装以外的任何用途。
  • CFB: RC2/RC5/RC6 的密码反馈模式——块密码函数对前一密文段(从 IV 开始)加密,高 n 位与 n 位明文异或,将块密码转换为自同步流模式。RC4 通过其本机 PRGA 流完全绕过此模式。
  • OFB: RC2/RC5/RC6 的输出反馈模式——块密码以密钥流生成模式运行,迭代加密 IV 初始化的反馈寄存器。输出密钥流与明文异或,无错误传播。

安全建议

  • RC4 绝对不能用于任何新应用。RFC 7465(2015)正式禁止在 TLS 中使用 RC4;Fluhrer-Mantin-Shamir 攻击(2001)从捕获的 IV 中在不到一分钟内恢复了 WEP 密钥,多个后续攻击在少于 2²⁵ 字节密钥流时即可破解 RC4。此处的 RC4 支持仅用于遗留解密任务。
  • RC4-Drop 缓解措施(丢弃 PRGA 输出的前 768-3072 字节)减少但不能消除 RC4 的密钥流偏差漏洞。RC4 NOMORE 攻击(2015,Black Hat)在 75 小时内演示了对仍活跃的 RC4 TLS 会话的 Cookie 恢复。任何配置的 RC4 对新的认证数据交换都不安全。
  • RC5 和 RC6 没有已发表的完整轮次实际攻击,但其 64 位分组大小为 CBC 模式下大量数据创建了 Sweet32 生日界暴露。在 CBC 模式中使用同一密钥加密超过约 32 GB 的数据会通过密文块碰撞泄露明文。
  • RC2 明确设计为出口管制级别(40 位有效密钥强度),应视为弱加密。RFC 2268 中的"有效密钥位"参数是出口合规的 T1 参数;完整 128 位密钥和 T1=128 时,RC2 超过旧出口限制,但仍缺乏现代密码的分组大小余量。仅用于遗留 S/MIME 兼容性。

使用场景

  • WEP/WPA 遗留取证:基于 RC4 的 WEP 和早期 WPA-TKIP 数据从捕获的 802.11 帧恢复需要原始 RC4 密钥流——该工具根据三字节 IV 和网络密钥重建每包 RC4 输出
  • S/MIME 兼容性解密:旧版邮件客户端和 X.509 证书工具使用 RFC 2268 下的 RC2/40 或 RC2/128 进行签名和加密;解密这些档案需要符合 RFC 的 RC2 实现
  • RC5 参数化研究:比较 RC5-32/12/16 与 RC5-64/20/16 和 RC5-16/16/8 变体,演示 ARX 字旋转结构如何跨字宽扩展——对理解参数化密码设计有价值
  • AES 候选评估研究:RC6-32/20 是五个 AES 决赛之一;重现其 128 位分组、20 轮、基于乘法的轮函数,可与 Rijndael、Serpent、Twofish 和 MARS 进行相同测试向量的对比

参考资料

快捷菜单

暂无访问记录