Cryptology Academy · 课时

RC4:设计、弱点与 WEP 攻击

分析 RC4 的 KSA 和 PRGA,以及导致 WEP/TLS 失效的偏差

第 2 / 4 课13 个步骤

RC4:设计、弱点与 WEP 攻击 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

欢迎

RC4 曾是 20 年间使用最广泛的流密码,被用于 WEP、TLS 和 SSL。如今它已经完全失效。理解它失败的原因,有助于您掌握密码学设计中的重要经验。

RC4 历史

RC4(Rivest Cipher 4)由 Ron Rivest 于 1987 年为 RSA Security 设计。它一直作为商业机密保存,直到 1994 年被逆向分析,并以“Alleged RC4”(ARC4)的名称由匿名人士发布。

RC4 密钥调度(KSA)

KSA 初始化一个 256 字节的状态数组 S: 1. S[i] = i(对于 i = 0..255) 2. j = 0 3. 对于 i = 0..255:j = (j + S[i] + key[i % keylen]) % 256;交换 S[i]、S[j]

RC4 伪随机生成(PRGA)

PRGA 生成密钥流字节: i = j = 0 对于每个字节: i = (i+1) % 256 j = (j + S[i]) % 256 交换 S[i]、S[j] 输出 S[(S[i]+S[j]) % 256]

初始字节偏差

RC4 输出的最初几个字节存在明显偏差,并不随机。第一个字节为 0 的概率是正常情况的两倍。标准做法是丢弃最初的 1024 个字节,但许多实现并没有这样做。

Fluhrer-Mantin-Shamir 攻击(2001 年)

FMS 发现,当 RC4 的密钥字节部分已知时(例如 WEP 将 IV 添加到密钥前面的情况),对密钥流进行统计分析就可以揭示密钥字节。WEP 在几分钟内就会被破解。

WEP 的漏洞

WEP 使用 RC4,并采用:较短的 40 位密钥 + 添加在前面的 24 位 IV。IV 太短了(每约 5000 个数据包就会重复),而且密钥和 IV 的组合会被直接输入 RC4,从而触发 FMS 偏差。

WEP 破解演示

aircrack-ng 等工具可以通过以下方式破解 WEP 密钥: 1. 捕获约 40,000 个数据包 2. 选择使用弱 IV 的数据包 3. 应用 FMS 统计方法 4. 在几秒内恢复 40 位密钥 WEP 于 2004 年被弃用,并于 2012 年被移除。

TLS 中的 RC4:NOMORE 攻击(2015 年)

Bar-Mitzvah 攻击和 NOMORE 攻击表明,利用 RC4 的偏差可以解密使用 RC4 加密的 TLS Cookie。Firefox 和 Chrome 于 2015 年禁用了 RC4。RFC 7465 禁止在 TLS 中使用 RC4。

RC4 与现代流密码

RC4 的弱点: - 输出存在偏差 - 不支持随机数 - 状态大小限制为 2048 位 ChaCha20 通过简洁的设计、形式化安全证明和显式随机数解决了这些问题。

永远不要使用 RC4

所有现代标准都禁止使用 RC4。RFC 7465(TLS)、RFC 7435(机会式安全)、PCI-DSS 以及所有主要密码库都将 RC4 标记为已弃用或已移除。

快速检查

是什么根本性弱点让 FMS 攻击能够破解 WEP?

回顾

RC4 已经退出历史舞台。接下来,我们将学习它的安全继任者 ChaCha20——一种按照现代密码学原则设计的算法。
免费开始

用 AI 导师学习 Cryptology Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
67
课程
261

常见问题解答

「RC4:设计、弱点与 WEP 攻击」课时是免费的吗?

是的 — 「RC4:设计、弱点与 WEP 攻击」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「RC4:设计、弱点与 WEP 攻击」这节课中我会学到什么?

分析 RC4 的 KSA 和 PRGA,以及导致 WEP/TLS 失效的偏差 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「RC4:设计、弱点与 WEP 攻击」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 流密码概念与 PRNG
  2. RC4:设计、弱点与 WEP 攻击
  3. Salsa20 与 ChaCha20 设计
  4. TLS 1.3 中的 ChaCha20-Poly1305 AEAD
← 返回 Cryptology Academy