CTF Write-Up

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

View on GitHub

Write-Up

title: Cicéron

category: Cryptographie

difficulty: Facile

point: 25

author: Maestran

description:

Cicéron c’est pas carré.

En décodant ce challenge, vous allez trouver une chaine : cybnxxxxxxxxxxxxxxxx

Le flag est alors CYBN{XXXXXXXXX}

Analyse du fichier et recherches

Une chose saute aux yeux en ouvrant le fichier : ce ne sont que des nombre à 2 chiffres.

La description nous disant Cicéron c'est pas carré, on peut rechercher sur google carré cryptographie. On tombe alors sur le Carré de Polybe. Il s’agit simplement d’une méthode de chiffrement par substitution qui s’appuie sur un matrice 5x5 avec l’alphabet à l’intérieur. Cette mattrice ressemble à cela :

1 2 3 4 5
1 A B C D E
2 F G H I/J K
3 L M N O P
4 Q R S T U
5 V W X Y Z

Le texte chiffré à l’aide de cette méthode ressemble étrangement à notre texte, partons là dessus.

Déchiffrement

Petit script python pour déchiffrer tout ça :

with open('./ciceron.txt') as f:
  # On récupère les nombres et on les parse en tuple de 2 chiffres
  msg = [(int(i[0]), int(i[1])) for i in f.read().split(' ')]

# La matrice de substitution
matrix = ['ABCDE', 'FGHIK', 'LMNOP', 'QRSTU', 'VWXYZ']

# Récupère les lettres dans la matrice et les assemble
print(''.join([matrix[code[0]-1][code[1]-1] for code in msg]))
Output: HLLUHSUEEHTALORSDYAPPROEONDHRSONAFONHSANTERANFHNPOURVOHRSACCOMPLHRSONEOREAHTQUHPARSURCROHTPROEHTAAUPAYSPUHSQUUNMOHSPLUSTARDTOUTUNCGACUNSACCORDAHTPOURNANTHRLHNTRHFANTELUXQUHSOURDAHTDUPUHTSDUNEORTPOUVOHRCURATHESURTOUTANTHCATARRGALMAHSSAPPLHQUANTAUSSHALALBUFOALANCGHLOPSAUXBUBONSAUXCALCULSAUXCGALAZHONSAUTRHSMUSAUPHTYRHASHSAUMALBLANCAUPRURHFOAUMALCADUCAUFLOSSANTGRAXELAFCYBNBRAVOTOTOLOTODODO

On trouve tout à la fin : CYBNBRAVOTOTOLOTODODO

Le flag : CYBN{BRAVOTOTOLOTODODO}