Aller au contenu

Chiffre affine

Codez et décodez avec E(x) = (ax + b) mod 26. Saisissez a et b : l'outil vérifie que a peut être inversé, trouve son inverse modulaire et détaille le calcul de chaque lettre ; si vous ne connaissez pas la clé, le mode décodage essaie les 312 clés et les classe selon la ressemblance des résultats avec l'anglais.

Mode

Ne doit avoir aucun facteur commun avec 26 — choisissez l'une des 12 valeurs ci-dessous.

N'importe quel nombre entier ; il est pris modulo 26.

Les 12 valeurs valides de a
Conserver

Détail du calcul pour cette clé

Codage : E(x) = (5x + 8) mod 26

Décodage : D(y) = 21(y − 8) mod 26

21 est l'inverse de 5 parce que 5 × 21 = 105, ce qui dépasse de 1 un multiple de 26.

Chaque valeur valide de a et son inverse

a1357911151719212325
a⁻¹1921153197231151725

Lettre par lettre — les 12 premières lettres

Lettrexa·x + bmod 26Résultat
A088I
F5337H
F5337H
I84822W
N137321V
E4282C
C21818S
I84822W
P15835F
H74317R
E4282C
R179315P

Comment utiliser le chiffre affine

  1. 1. Choisissez un mode et saisissez votre texte. Coder transforme le texte clair en texte chiffré ; Décoder fait l'inverse.
  2. 2. Réglez la clé. Saisissez a, le multiplicateur, et b, le décalage. a doit être l'une des 12 valeurs listées sous les champs — cliquez sur l'une d'elles pour l'utiliser. b peut être n'importe quel nombre entier ; il est réduit modulo 26.
  3. 3. Lisez le détail du calcul. Le panneau sous le résultat donne les deux formules pour votre clé, l'inverse de a et l'arithmétique de chaque lettre.
  4. 4. Pas de clé ? Essayez-les toutes. En mode Décoder, cochez Essayer les 312 clés. Les résultats sont classés selon la proximité de leurs comptages de lettres avec ceux de l'anglais, et Utiliser cette clé charge n'importe laquelle d'entre elles.

La formule du chiffre affine

Numérotez les lettres à partir de zéro : A = 0, B = 1 … Z = 25. Pour chiffrer une lettre x, multipliez-la par a, ajoutez b et gardez le reste de la division par 26 : E(x) = (a·x + b) mod 26. Pour déchiffrer une lettre y, défaites ces étapes dans l'ordre inverse — soustrayez b, puis multipliez par a⁻¹, l'inverse modulaire de a : D(y) = a⁻¹·(y − b) mod 26. L'inverse est le nombre qui, multiplié par a, laisse un reste de 1. Pour a = 5, c'est 21, car 5 × 21 = 105 = 4 × 26 + 1.

Pourquoi seules 12 valeurs de a fonctionnent

La multiplication par a ne doit jamais envoyer deux lettres au même endroit, sinon le décodage aurait deux réponses. C'est ce qui arrive dès que a a un facteur commun avec 26 = 2 × 13. Avec a = 2, par exemple, A (0) et N (13) tombent tous deux sur b, car 2 × 13 = 26, soit 0 modulo 26. Il faut donc que a soit impair et différent de 13, ce qui laisse les douze nombres ci-dessous — exactement ceux qui ont un inverse modulo 26. Avec 26 choix pour b, cela donne 12 × 26 = 312 clés, dont l'une (a = 1, b = 0) ne change rien.

Les valeurs valides de a et leurs inverses modulo 26
a1357911151719212325
a⁻¹1921153197231151725

Exemple détaillé : a = 5, b = 8

Avec a = 5 et b = 8, AFFINE CIPHER se chiffre en IHHWVC SWFRCP — l'exemple de l'outil. Les lettres de AFFINE, détaillées :

Lettrex5x + 8mod 26Résultat
A088I
F5337H
I84822W
N137321V
E4282C

Pour décoder, l'outil multiplie par a⁻¹ = 21. Le I (8) devient 21 × (8 − 8) = 0, soit A ; le H (7) devient 21 × (7 − 8) = −21, soit 5 modulo 26, c'est-à-dire F. Les valeurs négatives sont normales à ce stade — modulo 26 signifie simplement ajouter ou retirer 26 jusqu'à ce que le nombre tombe entre 0 et 25.

Deux chiffres bien connus sont des chiffres affines déguisés. Avec a = 1, la formule est x + b, un décalage de César de b ; avec a = 25 et b = 25, c'est le chiffre Atbash, l'alphabet lu à l'envers.

Comment casser un chiffre affine

Avec seulement 311 clés qui changent quelque chose, l'attaque la plus brutale consiste à toutes les essayer, ce que fait l'option de force brute en une fraction de seconde. Le plus difficile est de reconnaître la bonne réponse : l'outil classe donc chaque résultat à l'aide d'une comparaison par khi-deux entre ses comptages de lettres et ceux d'un anglais typique. Sur une phrase ou plus, la bonne clé arrive en tête ; sur une courte expression, ce n'est pas garanti — pour IHHWVC SWFRCP seul, la vraie clé (5, 8) se classe quatrième — parcourez donc la liste plutôt que de vous fier à la première ligne.

Les cryptanalystes peuvent faire mieux avec l'algèbre. Le chiffre affine est une substitution monoalphabétique — chaque lettre devient toujours la même lettre — si bien que l'analyse de fréquence indique quelles lettres chiffrées représentent E et T (dans un texte anglais), et deux hypothèses de ce genre donnent deux équations. Avec la clé ci-dessus, E (4) devient C (2) et T (19) devient Z (25), donc 4a + b ≡ 2 et 19a + b ≡ 25 (mod 26). En soustrayant la première de la seconde, on obtient 15a ≡ 23 ; en multipliant par 7, l'inverse de 15, on obtient a ≡ 161 ≡ 5, puis b ≡ 2 − 20 ≡ 8. Deux lettres de texte clair connu suffisent à retrouver toute la clé.

Questions fréquentes

Qu'est-ce qu'un chiffre affine ?
Un chiffre de substitution qui transforme le numéro x de chaque lettre en (a·x + b) mod 26 : chaque lettre est multipliée par a puis décalée de b. La clé est le couple (a, b). Comme une lettre donnée devient toujours la même lettre chiffrée, il est monoalphabétique — un cousin du chiffre de César à l'air plus solide, et pas plus difficile à casser.
Pourquoi a doit-il être premier avec 26 ?
Le décodage multiplie par l'inverse de a modulo 26, et cet inverse n'existe que si a et 26 n'ont aucun facteur commun. S'ils en ont un, deux lettres différentes sont chiffrées en la même lettre et le message ne peut pas être relu avec certitude. Cela exclut tous les nombres pairs et 13, et laisse 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 et 25.
Comment trouver l'inverse modulaire de a ?
Trouvez le nombre entre 1 et 25 qui, multiplié par a, laisse un reste de 1 dans la division par 26. Pour a = 7, c'est 15, car 7 × 15 = 105 = 4 × 26 + 1. Avec seulement douze cas, le plus rapide est de les lire dans le tableau ci-dessus ; pour de grands modules, l'algorithme d'Euclide étendu donne directement l'inverse.
Combien de clés le chiffre affine possède-t-il ?
312 — douze choix pour a fois 26 choix pour b. L'une d'elles, a = 1 avec b = 0, laisse le texte inchangé : 311 chiffrent donc réellement. C'est assez peu pour essayer chaque clé à la main en un après-midi, et par ordinateur en un instant.
Le chiffre de César est-il une sorte de chiffre affine ?
Oui. Avec a = 1, la formule devient x + b, c'est-à-dire un décalage de César de b ; ROT13 correspond à a = 1, b = 13. Atbash est affine lui aussi, avec a = 25 et b = 25. Les deux figurent parmi les 312 clés que la force brute essaie.
Le chiffre affine est-il sûr ?
Non. Il tombe devant la force brute, devant l'analyse de fréquence, et devant seulement deux lettres de texte clair connu, comme le montre l'algèbre ci-dessus. C'est un excellent entraînement à l'arithmétique modulaire, mais tout ce qui compte exige un chiffrement moderne.

Outils associés

Autres outils : Codes et chiffrements