ASCON Marchombre

Catégorie: Cryptanalyse - Difficulté: Facile

Description:

  • Clef : 00456c6c616e61206427416c2d466172

  • Nonce : 0

  • Message chiffré : ac6679386ffcc3f82d6fec9556202a1be26b8af8eecab98783d08235bfca263793b61997244e785f5cf96e419a23f9b29137d820aab766ce986092180f1f5a690dc7767ef1df76e13315a5c8b04fb782

  • Données associées : 80400c0600000000

Solution:

Pour ce challenge, quelques données nous sont fournies ainsi que le nom de la méthode de chiffrement : ASCON.

En cherchant rapidement sur internet, nous trouvons un package pypi à installer pour pouvoir l'utiliser dans un programme python.

Il n'y a pas grand chose à détailler ici à part donner le script utilisé. Voici donc le code que j'ai utilisé pour résoudre ce challenge en suivant des exemples trouvés sur internet :

import ascon


key = bytes.fromhex("00456c6c616e61206427416c2d466172")
nonce = bytes.fromhex("00000000000000000000000000000000")
data = bytes.fromhex("80400c0600000000")
cipher = bytes.fromhex("ac6679386ffcc3f82d6fec9556202a1be26b8af8eecab98783d08235bfca263793b61997244e785f5cf96e419a23f9b29137d820aab766ce986092180f1f5a690dc7767ef1df76e13315a5c8b04fb782")

print(f"Key: {key}")
print(f"Nonce: {nonce}")
print(f"Ciphertext: {cipher}")
print(f"Data: {data}")

# Decrypt
plaintext = ascon.decrypt(key, nonce, data, cipher, variant="Ascon-128")
print(f"Plaintext: {plaintext}")

Lorsque nous exécutons ce script, voici le résultat :

Nous pouvons donc récupérer le flag en fin d'exécution en remplaçant le \xe8 par son caractère unicode : è

🚩 FLAG
404CTF{V3r5_l4_lum1èr3.}

Last updated