Table des matières
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.