Chiffrement affine

Définition, fonctionnement et outil interactif.

• Lecture : ~6 min

Qu’est-ce que le chiffrement affine ?

Le chiffrement affine est une substitution monoalphabétique qui généralise le chiffre de César. Chaque lettre de l’alphabet (convertie en indice 0..25) est transformée par une fonction linéaire modulo 26 avec deux paramètres : a (pente) et b (décalage).

En pratique : on convertit les lettres en nombres, on applique la transformation affine, puis on reconvertit en lettres. Si a et 26 ne sont pas premiers entre eux, la fonction n’est pas inversible et le déchiffrement devient impossible.

Formules

Chiffrement :   C = (a·P + b) mod 26
Déchiffrement : P = a⁻¹·(C - b) mod 26

Condition :     a doit être premier avec 26 (pgcd(a,26)=1) pour que a⁻¹ existe.
Valeurs valides : a ∈ {1,3,5,7,9,11,15,17,19,21,23,25},  b ∈ {0..25}
  

Ici a⁻¹ est l’inverse modulaire de a dans ℤ26, c’est-à-dire que a·a⁻¹ ≡ 1 (mod 26).

Comment ça marche

1) Choisis un a premier avec 26 et un b compris entre 0 et 25. 2) Normalise le texte (accents → base). Tu peux choisir de conserver ñ/Ñ sans les chiffrer pour la compatibilité, mais il faut le documenter. 3) Convertis chaque lettre en indice (A=0, …, Z=25), applique C = (a·P + b) mod 26, puis reconvertis en lettres.

Pour déchiffrer, calcule a⁻¹ (par l’algorithme d’Euclide étendu) et applique P = a⁻¹·(C - b) mod 26.

Exemple

Exemple rapide

Paramètres : a=5, b=8E(x) = (5x + 8) mod 26
Texte : ATAQUE → indices A=0, T=19, A=0, Q=16, U=20, E=4

Calcul : A : (5·0+8)=8 → I  |  T : (5·19+8)=103≡25 → Z  |  A : 8 → I  |  Q : 88≡10 → K  |  U : 108≡4 → E  |  E : 28≡2 → C

Texte chiffré : IZIKEC

Pour déchiffrer avec a=5, l’inverse est a⁻¹=21 (car 5·21=105≡1 mod 26).

Histoire

  • Formalise et généralise les substitutions classiques (comme César) à l’aide de l’algèbre modulaire.
  • Utilisé pour introduire les inverses modulaires et les fonctions linéaires sur ℤn dans l’enseignement.

Attaques classiques

  • Fréquence + paires connues : deux paires texte clair/chiffré (P₁,C₁), (P₂,C₂) suffisent pour déterminer a et b.
  • Force brute : l’espace des clés est petit (12 valeurs de a × 26 valeurs de b = 312 combinaisons).
  • Indices linguistiques : deviner les correspondances probables (par ex. que E devienne une lettre fréquente) accélère la rupture.

C’est toujours un chiffrement monoalphabétique : les fréquences globales des lettres sont préservées, ce qui le rend vulnérable.

Avantages et inconvénients

Avantages

  • Généralise César ; excellent pour enseigner l’arithmétique modulaire et les inverses.
  • Paramètres flexibles (a, b) et implémentation simple.
  • Idéal pour des outils interactifs et des démonstrations pédagogiques.

Inconvénients

  • Monoalphabétique : vulnérable à l’analyse de fréquence et à la force brute (312 clés possibles).
  • Si a n’est pas premier avec 26, aucun inverse n’existe, donc le déchiffrement est impossible.
  • N’offre ni intégrité ni authenticité ; il ne fait que réordonner les lettres selon une fonction linéaire.

Affine Encryption & Decryption Tool

Options

Valeurs autorisées pour a : 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.

b accepte des valeurs négatives et grandes ; normalisé modulo 26 (ex. 27→1, −1→25).