Trois chiffrements historiques, encore omniprésents dans les challenges CTF débutants — pas pour leur robustesse (ils n'en ont aucune face à une attaque moderne), mais parce qu'ils enseignent les bases de la cryptanalyse.
Le chiffrement de César décale chaque lettre de l'alphabet d'un nombre fixe de positions (la clé). ROT13 est un cas particulier où ce décalage vaut exactement 13 — la moitié de l'alphabet latin (26 lettres), ce qui le rend auto-réciproque : appliquer ROT13 deux fois redonne le texte original. Sa faiblesse est totale : il n'existe que 26 décalages possibles, un ordinateur les teste tous en une fraction de seconde.
Le XOR à un octet applique la même opération bit-à-bit (^) avec une seule valeur (0 à 255) sur chaque octet du message. Comme pour César, l'espace des clés est minuscule (256 possibilités) — largement bruteforçable. La méthode pour identifier la bonne clé sans connaître le texte clair à l'avance : déchiffrer avec chacune des 256 clés, puis garder le résultat qui ressemble le plus à du texte lisible (lettres et espaces en proportion plausible, peu de caractères de contrôle).
XOR devient réellement solide uniquement quand la clé est aussi longue que le message et utilisée une seule fois (le "masque jetable" ou One-Time Pad) — c'est la répétition d'une clé courte qui rend XOR cassable, pas l'opération elle-même.
Vigenère applique un décalage César différent à chaque lettre, déterminé par une clé textuelle répétée tout au long du message (ex : clé "CTF" → décalages 2, 19, 5, puis on recommence). Sans la clé, il résiste à une attaque triviale par essai exhaustif (trop de combinaisons) — mais reste cassable par analyse de fréquence si l'on devine d'abord la longueur de la clé (test de Kasiski), une étape que ce solveur ne fait pas automatiquement : il faut connaître ou deviner la clé en amont.
Les trois chiffrements ci-dessus préservent la structure statistique du texte clair (la lettre la plus fréquente reste la plus fréquente, juste sous une autre forme) — c'est exactement ce que l'analyse de fréquence exploite : comparer la distribution des lettres du texte déchiffré candidat à celle attendue d'une langue naturelle (en anglais, "E" est la lettre la plus commune, suivie de "T", "A"...). Plus le candidat colle à cette distribution, plus il a de chances d'être le bon déchiffrement.
Tester un chiffrement maintenant →Parce que l'identification automatique du "bon" résultat n'est jamais garantie à 100% (un texte court ou inhabituel peut tromper le score) — afficher tous les décalages avec le plus probable mis en avant permet de vérifier visuellement si le score automatique s'est trompé.
Le score de vraisemblance est calibré sur les fréquences de lettres de l'anglais (proche du français) — il fonctionne raisonnablement sur la plupart des langues latines, mais peut se tromper sur des textes très courts ou des langues aux fréquences de lettres très différentes.
Oui, des techniques comme le test de Kasiski ou l'indice de coïncidence existent pour cela, mais elles sortent du cadre de cet outil — pour un challenge CTF, la clé est généralement donnée ou déductible du contexte de l'énoncé.
Outils similaires