Solution de FrenchPhalange pour À l'aise

intro crypto

20 janvier 2025

Description du challenge

Le challenge consiste à déchiffrer un message encodé avec le chiffrement de Vigenère en utilisant la clé FCSC.

Message chiffré :

Gqfltwj emgj clgfv ! Aqltj rjqhjsksg ekxuaqs, ua xtwk
n'feuguvwb gkwp xwj, ujts f'npxkqvjgw nw tjuwcz
ugwygjtfkf qz uw efezg sqk gspwonu. Jgsfwb-aqmu f
Pspygk nj 29 cntnn hqzt dg igtwy fw xtvjg rkkunqf.

Solution détaillée

1. Principe du chiffrement de Vigenère

Le chiffrement de Vigenère est une méthode de chiffrement par substitution polyalphabétique. Pour chaque lettre du message, on utilise une lettre de la clé pour déterminer le décalage à appliquer. La clé est répétée autant de fois que nécessaire pour couvrir tout le message.

2. Implémentation de la solution

Voici l’algorithme utilisé pour déchiffrer le message :

def vigenere_decrypt(ciphertext, key):
    plaintext = ""
    key_length = len(key)
    key_index = 0

    for char in ciphertext:
        # Si le caractère est une lettre
        if char.isalpha():
            # Gestion des majuscules/minuscules
            is_upper = char.isupper()
            char_num = ord(char.lower()) - ord('a')
            key_num = ord(key[key_index].lower()) - ord('a')

            # Déchiffrement : P = (C - K) mod 26
            decrypted_num = (char_num - key_num) % 26
            decrypted_char = chr(decrypted_num + ord('a'))

            # Restauration de la casse
            if is_upper:
                decrypted_char = decrypted_char.upper()

            plaintext += decrypted_char
            key_index = (key_index + 1) % key_length
        else:
            # Conservation des caractères non alphabétiques
            plaintext += char

    return plaintext

3. Déchiffrement et résultat

En appliquant l’algorithme avec la clé FCSC, nous obtenons le message suivant :

Bonjour cher agent ! Votre prochaine mission, si vous
l'acceptez bien sur, sera d'infiltrer le reseau
souterrain ou se cache nos ennemis. Rendez-vous a
Nantes le 29 avril pour le debut de votre mission.

Conclusion

Le message déchiffré révèle des instructions pour une mission d’infiltration, avec un rendez-vous prévu à Nantes le 29 avril.