Kat*_*ige 6 encryption aes cbc-mode
我目前正在学习加密,我希望能找到更多关于我学到的东西的说明。
假设消息“100 美元应该从账户 123456 转移到 555555”是使用 aes-128-cbc 和随机 IV 加密的。我的教授说可以更改加密文本,以便在再次解密时,消息显示“应将 900 美元从帐户 123456 转移到 555555”。你打算怎么做?
我尝试通过生成我自己的密钥和 iv,对消息进行加密,然后将其转换为十六进制字符来自行解决。从那里我可以换出一些字符然后解密吗?我试着玩这个,但似乎总是出错。
我们为此使用了一个基本的 linux 命令行。
任何帮助或解释都会很棒!
假设使用一次性密码本对字符串进行加密,生成的密文为“B8B7D8CB9860EBD0163507FD00A9F923D45...”。我们知道明文的第一个字节,即数字 1,其 ASCII 码为 0x31。密文的第一个字节是0xB8。如果 k0 表示密钥的第一个字节,则 0x31 xor k0 = 0xB8。解码一次性密码本只是将密文与密钥进行异或运算。因此,解码者得到明文的第一个字节为 0x31 = 0xB8 xor k0。如果我们将密文的第一个字节与 m0 进行异或,那么解码密文的人将得到 (0xB8 xor m0) xor k0。但这只是 (0xB8 xor k0) xor m0 因为 xor 是可交换和结合的。最后一个表达式可以简化为 0x31 xor m0。现在我们想要将结果字节更改为 0x39,即数字 9 的 ASCII 代码。因此我们需要求解 0x31 xor m0 = 0x39。但这很简单,只需将两边与 0x31 进行异或即可。
使用 CBC 模式时也适用相同的原理。您可以用类似的方式修改 IV 来更改解码的消息。
| 归档时间: |
|
| 查看次数: |
3621 次 |
| 最近记录: |