Vigenère [Crypto][CTF Hack-Dat-Kiwi][100pts]

ce challenge faisait partie du CTF Hack-Dat-Kiwi , il était dans la catégorie cryptographie et valait 100 points.

lorsqu’on clique sur ce challenge une page apparaît , elle nous permets de chiffrer un texte choisi sans en connaître la clé .

Le flag à trouver est simplement la clé utilisée par la page Web pour chiffrer notre texte.

Je décide de chiffrer « ASCOPECTF » et j’obtiens « KAYWZMMBB »

pour chiffrer un caractère avec le chiffrement vigenere on utilise la formule suivante :

CnPn+Kn %26

Avec Cn le caractère chiffré , Pn le caractère non chiffré et Kn le caractère de la clé.

Donc pour retrouver le caractère n de la clé on utilise la formule suivante :

Kn=CnPn%26

Je décide donc d’écrire un script python pour retrouver la clé à partir du texte clair et chiffrer récupéré plus haut :

#!/usr/bin/env python2

def findkey(cyphertext,plaintext):
    key=[]
    for i in range(len(plaintext)):
        key.append((ord(cyphertext[i])-(ord(plaintext[i])))%26)
        key[i]=unichr(key[i]+ord('A'))
    print("".join(key))

findkey("KAYWZMMBB","ASCOPECTF")

 

Je l’exécute et j’obtiens « KIWIKIW » puisque la clé se répète avec le chiffrement Vigenère la clé est donc « KIWIKI ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.