AES 经典,权当复习
目录传送门:cryptohack 练习学习汇总(writeup index)
ECB CBC WTF
考察 CBC 模式原理。只需要注意 CBC 事实上是在 ECB 的基础上做了一点改动(异或 iv)并且 iv 我们也都知道即可
代码: cryptohack/mathematics symmetric-ciphers ECB-CBC-WTF.py
ECB Oracle
考虑到如果一个 block 中只有一个未知字节,那么可以通过一次 256 次的循环通过 AES ECB Encrypt Oracle 把未知字节爆出来。
那么做法也就显然了,只需要从 flag 的末尾开始爆即可
同样的,由于网络因素,一条查询大约需要 1s,整体查询完需要 1.5h 左右,因此采用多线程加速,实际用时 2min
代码: cryptohack/mathematics symmetric-ciphers ECB-Oracle.py
Flipping Cookie
控制 IV,略
代码: cryptohack/mathematics symmetric-ciphers Flipping-Cookie.py
Lazy CBC
记 表示不考虑 iv 的情况下加密 的结果
传入 encrypt: b'\0' * 16
可以得到
传入 receive: b'\0' * 16 + E[KEY]
可以在 error 中得到
代码: cryptohack/mathematics symmetric-ciphers Lazy-CBC.py
Triple DES
搜索 DES 弱密钥
查到以下弱密钥,满足
1 | \x00\x00\x00\x00\x00\x00\x00\x00 |
这题使用的 DES3 逻辑利用了两个 :
因此,在上面的弱密钥中选两个不同的即可。