CTF Write-Up

entièrement en français et réalisé par ThaySan.

View on GitHub

[Cryptanalyse] ASCON Marchombre - 878pts

title: ASCON Marchombre

category: Cryptanalyse

difficulty: Facile

point: 878

author: Phengar#8046

description: Cela fait maintenant quelques semaines que vous voyagez avec Salim, mais ce que vous attendez le plus chaque jour ce ne sont plus les palpitantes aventures mais plutôt la poésie marchombre que partage avec vous Salim.

Vous avez en effet pris goût à écouter les courts poèmes propres à cette guilde qui vous rappellent les haïkus de votre monde.

Ce soir cependant Salim vous met au défi de déchiffrer le code marchombre qui permet de dissimuler les messages qu’il échange avec Ellana et il vous semble alors reconnaitre un chiffrement pas tout-à-fait inconnu …

clef : 00456c6c616e61206427416c2d466172

nonce : 0

message chiffré :

ac6679386ffcc3f82d6fec9556202a1be26b8af8eecab98783d08235bfca263793b61997244e785f5cf96e419a23f9b29137d820aab766ce986092180f1f5a690dc7767ef1df76e13315a5c8b04fb782

Données associées : 80400c0600000000


Solution

Le titre nous donne le nom du chiffrement : Ascon.

En python on utilise la lib ascon (pip install ascon)

On traduit les données qui nous sont données dans l’énoncé et on déchiffre :

import ascon

key = bytes.fromhex("00456c6c616e61206427416c2d466172")
nonce = (0).to_bytes(length=16, byteorder='big')
ciphertext = bytes.fromhex("ac6679386ffcc3f82d6fec9556202a1be26b8af8eecab98783d08235bfca263793b61997244e785f5cf96e419a23f9b29137d820aab766ce986092180f1f5a690dc7767ef1df76e13315a5c8b04fb782")
associateddata = bytes.fromhex("80400c0600000000")
print(ascon.decrypt(key, nonce, associateddata, ciphertext).decode('latin-1'))
# La voie de l'ombre
# Et du silence
# 404CTF{V3r5_l4_lum1èr3.}
# Ellana

FLAG : 404CTF{V3r5_l4_lum1èr3.}