Table des matières
Analyse du code
Le code qui nous est donné chiffre le flag en utilisant AES. On remarque que la clé et le vecteur d’initialisation sont connus.
Résolution
Comme la clé et l’IV sont donnés, il suffit d’écrire un programme de déchiffrement, ce qui se fait grosso modo en mettant le texte chiffré sous forme de bytes et en remplaçant cipher.encrypt par cipher.decrypt :
from Crypto.Cipher import AES
key = bytes([i for i in range(60, 76)])
cipher = AES.new(key, AES.MODE_CBC, iv = b"\x00" * 16)
ciphertext = 0x1417c97254a837b486e829faab5628df.to_bytes(len("1417c97254a837b486e829faab5628df")//2)
cleartext = cipher.decrypt(ciphertext)
print(cleartext.decode("ascii"))