Un chiffrement avec xor. On connait un bout du message (le debut FCSC
).
Or la clé est de longueur 4 bytes et elle est répétée 20 fois. Donc il suffit de:
- Prendre le texte chiffré (
output.txt
) - Appliquer un strxor avec comme clé le texte connu (
FCSC
) - Récupérer les 4 premiers qui du coup correspondent à la clé…
- Déchiffrer le message complet
from Crypto.Util.strxor import strxor
FLAG = bytes.fromhex(open("output.txt", "rb").read().decode())
# compute the key from the known plaintext
c = strxor(FLAG[:4], b"FCSC")
key = c * 20
c = strxor(FLAG, key[: len(FLAG)])
print(c)