AES 与流密码中的 XOR
追踪 XOR 如何用于实际的加密算法
AES 与流密码中的 XOR 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
XOR 是每种现代密码中的基础构件。本课将追踪 XOR 如何出现在 AES 的 AddRoundKey 和流密码的密钥流混合中。
XOR 在 AES 中:AddRoundKey
AES 有 10–14 轮。每一轮都从 AddRoundKey 开始:将 16 字节的状态与 16 字节的轮密钥进行 XOR。这是唯一真正引入秘密密钥的步骤。
AES 轮密钥派生
原始的 128/192/256 位密钥会通过密钥调度扩展为 11/13/15 个轮密钥。每个 AddRoundKey 步骤都会使用不同的派生轮密钥。
XOR 为何能在 AES 中发挥作用
在 AES 中,XOR 运算发生在 GF(2^8) 算术内部。周围的非线性运算(SubBytes、MixColumns)赋予 XOR Claude Shannon 所描述的扩散和混淆性质。
流密码密钥流
流密码根据密钥和随机数生成伪随机密钥流:
keystream = CSPRNG(key, nonce)
ciphertext = plaintext XOR keystream
ChaCha20 使用其四分之一轮函数,以 64 字节的数据块生成密钥流。
ChaCha20 四分之一轮
ChaCha20 的混合函数:
a += b; d ^= a; d <<<= 16
c += d; b ^= c; b <<<= 12
a += b; d ^= a; d <<<= 8
c += d; b ^= c; b <<<= 7
XOR(^)和旋转(<<<)是其中的关键运算。
流密码中的随机数与计数器
ChaCha20 使用:256 位密钥 + 96 位随机数 + 32 位计数器。不同的计数器会生成不同的密钥流数据块。重复使用(密钥、随机数)组合会造成灾难性后果——绝不能这样做。
AES-CTR 模式:将分组密码用作流密码
AES-CTR 使用 AES 加密连续的计数器值,然后将结果与明文进行 XOR。这样就能把 AES(一种分组密码)转换为流密码,从而生成任意长度的输出。
OFB 和 CFB 模式中的 XOR
OFB:keystream = AES(AES(AES(IV)...))。明文 XOR 密钥流 = 密文。
CFB:密文块 = 明文 XOR AES(上一个密文块)。
两者都使用 XOR 作为混合步骤。
通过 XOR + S 盒实现混淆与扩散
Shannon 的混淆:S 盒(SubBytes)使密钥与密文之间的关系变得复杂。扩散:ShiftRows+MixColumns 传播每个字节的影响。XOR 将这两者与密钥连接起来。
绝不要自行设计密码算法
理解 XOR 的作用有助于您明白业余密码设计为何会失败:它们使用 XOR,却没有非线性层。没有 S 盒和扩散,基于 XOR 的密码在代数上很容易破解。
快速检查
哪个 AES 运算会直接将状态与轮密钥进行 XOR?
回顾
现在您已经理解了 XOR 在真实密码中的作用。接下来我们将学习哈希函数,从 MD5 开始,直到 SHA-256。
常见问题解答
「AES 与流密码中的 XOR」课时是免费的吗?
是的 — 「AES 与流密码中的 XOR」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「AES 与流密码中的 XOR」这节课中我会学到什么?
追踪 XOR 如何用于实际的加密算法 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「AES 与流密码中的 XOR」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 位运算复习
- XOR 加密与一次一密
- 为什么单独使用 XOR 并不安全
- AES 与流密码中的 XOR