Aussi disponible en : English · Español · Português · العربية
Chiffre de César et ROT13
Décale un texte de la valeur que vous voulez et casse un décalage inconnu, avec l’attaque entière sous les yeux et son coût mesuré.
Qu’est-ce que le chiffre de César ?
Il remplace chaque lettre par celle située un nombre fixe de rangs plus loin dans l’alphabet. Avec un décalage de trois, A devient D, B devient E, et Z revient à C. Déchiffrer, c’est la même opération à l’envers. Il porte le nom de Jules César, dont on rapporte qu’il l’employait pour sa correspondance militaire, et c’est le premier chiffrement que presque tout le monde rencontre.
ROT13 est la même chose avec un décalage de treize. On s’en sert sur les forums et les sites d’énigmes pour masquer un spoiler ou une chute au vu de tous : cela ne protège rien, cela empêche seulement l’œil de lire par inadvertance.
Cet outil fait les trois : chiffrer avec le décalage de votre choix, déchiffrer avec un décalage connu, et casser un message quand vous ignorez totalement le décalage. Tout tourne dans votre navigateur.
Comment utiliser l’outil
- Choisissez ce que vous voulez faire. Chiffrer, déchiffrer ou casser. Casser ne demande aucun décalage : c’est à cela que sert le troisième bouton.
- Saisissez ou collez votre texte. Les lettres se décalent ; chiffres, ponctuation et espaces passent intacts. Les lettres accentuées sont laissées telles quelles, car le chiffre est défini sur l’alphabet de vingt-six lettres et transformer discrètement é en e modifierait votre texte au lieu de le chiffrer.
- Lisez le résultat, ou la liste classée. En mode cassage, le panneau affiche les vingt-six décalages candidats, notés et triés, le meilleur en tête. Quand la réponse est la bonne, elle saute généralement aux yeux.
Le casser coûte trente lettres
Ce qu’on dit toujours du chiffre de César, c’est que l’analyse de fréquences le casse. C’est vrai, et cela laisse de côté le plus intéressant : la quantité. Nous l’avons donc mesurée.
L’attaque procède ainsi : essayez les vingt-six décalages. Pour chaque candidat, comptez la fréquence de chaque lettre et comparez-la à celle de l’anglais courant, au moyen d’un score du khi-deux. Le candidat qui colle le mieux est presque toujours le message. Aucune finesse là-dedans, et aucune recherche : vingt-six candidats ne forment pas un espace de recherche, mais une liste qui tient sur un écran.
Les fréquences de lettres contre lesquelles cet outil note ont été mesurées et non recopiées : 5 329 782 lettres réparties sur douze livres du domaine public. Elles ressortent dans l’ordre que chacun retient à moitié : e à 12,85 %, puis t à 9,45 %, a à 7,84 %, o à 7,52 %, n à 7,03 % et i à 7,02 %. Retrouver cet ordre familier, c’est la vérification que le corpus était de la prose ordinaire et non quelque chose d’étrange.
Vient ensuite le balayage. En tirant des passages au hasard, en chiffrant chacun avec un décalage aléatoire et en demandant à l’attaque de le retrouver : à 15 lettres elle a raison 90 % du temps, et à 30 lettres 99 %. Trente lettres, c’est plus court que cette phrase. Tout message assez long pour valoir la peine d’être envoyé est assez long pour être cassé, ce qui est plus utile que de dire « il n’y a que vingt-six clés ».
Le résultat qui a décidé de l’interface est celui des langues. Tous les chiffres ci-dessus proviennent de la table de fréquences anglaise, et nous avons passé le même balayage sur du texte chiffré en français, espagnol et portugais sans la changer. Tous tombent également, en réclamant seulement plus de texte : les 90 % de réussite arrivent vers 60 lettres pour l’espagnol et 40 pour le portugais et le français. Cet outil n’a donc pas de sélecteur de langue, et c’est une décision mesurée plutôt qu’un raccourci : les distributions des langues européennes en alphabet latin se ressemblent assez pour qu’une seule table suffise. (Les chiffres anglais viennent de livres entiers, les trois autres des pages traduites de ce site, plus petites : prenez les valeurs non anglaises comme indicatives.)
Limites assumées
Ce n’est pas du chiffrement et rien ici ne doit servir à protéger quoi que ce soit. Ce n’est pas une réserve sur cette implémentation, c’est ce qu’est le chiffre : une clé à vingt-six possibilités, que l’outil de cette page épuise dans le temps qu’il met à dessiner un tableau. Servez-vous-en pour des énigmes, pour enseigner, pour masquer un spoiler ; jamais pour un secret.
Le mode cassage demande assez de texte. En dessous d’une trentaine de lettres, la réponse de tête est une supposition, et l’outil le dit plutôt que de présenter un décalage faux avec aplomb. Les messages très courts sont réellement incassables ainsi, et c’est la seule situation où un chiffre de César tient : il tient parce que le message ne contient pas assez d’information, non parce que le chiffre fasse quoi que ce soit.
La notation replie les accents, si bien que á compte comme a, et c’est ce qui permet à une seule table anglaise de noter quatre langues. Le chiffre, lui, ne replie rien : votre ç revient en ç. Ces comportements diffèrent délibérément et il vaut la peine de savoir lequel est lequel.
Seules les vingt-six lettres latines se décalent. Le cyrillique, le grec, l’arabe et tout le reste passent sans changement : un chiffre de César sur du texte arabe n’est tout simplement pas quelque chose que cet outil fait. La longueur des mots et la ponctuation survivent aussi intactes, ce qui explique une bonne part de ce que ce chiffre laisse fuir : avant même de compter les lettres, la forme de la phrase est déjà visible.
Le moteur porte 58 assertions. Celle qui mérite d’être nommée énumère les vingt-cinq décalages non nuls et confirme qu’exactement un s’annule lui-même, à savoir ROT13 — un fait d’ordinaire affirmé et ici vérifié. Une autre fixe le calcul du khi-deux contre un calcul fait à la main, après qu’un sabotage délibéré l’ayant remplacé par une distance plus grossière a passé tous les autres tests du fichier. Que ce sabotage ait survécu était instructif en soi : l’attaque ne dépend pas d’une statistique astucieuse, elle marche aussi avec une assez rudimentaire.
Pourquoi est-ce gratuit ?
Décaler des lettres et les compter, c’est de l’arithmétique que votre machine fait instantanément. Rien n’est envoyé, il n’y a pas de compte, et rien à filigraner.
Si vous voulez encoder plutôt que chiffrer, les pages Base64 et encodeur d’URL de ce site s’en chargent, sans rien envoyer non plus.