OFPPT-CTF的一道题,AES的中间相遇攻击,实际上也是任何对称密码加密两次的攻击方法。攻击思路就是把给的密文解密一次,已知的明文(或者遍历明文的所有组合)加密一次,来对照两者的结果,若相等则可以确定加解密的密钥。
Q:
1 | from random import randint |
DATA:
1 | Super strong encryption service approved by 2022 stansdards. |
这道题给了一对明文——密文对,那么可以通过遍历密钥空间来分别对明文加密一次,密文解密一次。只要取两者交集就能得到密钥。
hash的exp:
1 | from Crypto.Cipher import AES |
第二种思路应该算是非预期,加密选择的是ECB模式,每块之间无混淆,并且已知flag格式为:OFPPT-CTF{,那么可以考虑爆破后续的6字节,再将这16字节进行遍历密钥的加密;同时对密文进行遍历密钥的解密,对照前16字节,若两者前16字节相等则两者取得密钥就是先后加密两次的密钥。但是时间复杂度较高,不是好的方法。
1 |
|