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=8 ⇒ E(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étermineraetb. - Force brute : l’espace des clés est petit (12 valeurs de
a× 26 valeurs deb= 312 combinaisons). - Indices linguistiques : deviner les correspondances probables (par ex. que
Edevienne 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
an’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
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).