1
0
Files
cryptopal_rs/cryptopal_book/src/challenge_27.md
2025-08-31 16:03:40 +08:00

1.1 KiB
Raw Blame History

挑战二十七从IV=Key的CBC中恢复密钥

题目描述

取用你在CBC练习中的代码并修改它使其将CBC加密的密钥重新用作IV。

应用程序有时会将密钥用作IV理由是发送方和接收方都必须知道密钥通过同时用作密钥和IV可以节省一些空间。

将密钥用作IV是不安全的能够修改传输中密文的攻击者可以让接收方解密一个值该值将泄露密钥。

攻击步骤

练习16中的CBC代码加密一个URL字符串。验证明文的每个字节是否符合ASCII标准查找高ASCII值。不符合标准的消息应该引发异常或返回包含解密明文的错误在现实系统中这种情况经常发生

使用你的代码加密至少3个块长的消息

AES-CBC(P_1, P_2, P_3) -> C_1, C_2, C_3

修改消息(你现在是攻击者):

C_1, C_2, C_3 -> C_1, 0, C_1

解密消息你现在是接收方并在发现高ASCII时引发适当的错误。

作为攻击者,从错误中恢复明文,提取密钥:

P'_1 XOR P'_3