Le chiffrement affine est l’un des chiffrement les plus connus. Dans cet article, nous allons vous le présenter. C’est la suite logique après le chiffrement de César.
Prérequis
Présentation du chiffrement affine
Tout d’abord, il est nécessaire de faire une correspondance entre chiffres et lettres :
A | 0 |
B | 1 |
C | 2 |
D | 3 |
E | 4 |
F | 5 |
G | 6 |
H | 7 |
I | 8 |
J | 9 |
K | 10 |
L | 11 |
M | 12 |
N | 13 |
O | 14 |
P | 15 |
Q | 16 |
R | 17 |
S | 18 |
T | 19 |
U | 20 |
V | 21 |
W | 22 |
X | 23 |
Y | 24 |
Z | 25 |
Soit a un nombre premier avec 26 et b un entier. Le chiffrement affine de clé (a,b) envoie x sur ax+b\ mod \ 26
Si a = 1, alors on retrouve le chiffrement de César. Les raisonnements qui vont suivre fonctionneraient avec d’autres alphabets (cyrillique, grec, hébreu, …)
Ce chiffrement est surtout utilisé pour résoudre des énigmes mais n’a pas vraiment d’utilité pour créer de la sécurité.
Exemple corrigé de chiffrement affine
On va chiffre le mot chiffre avec la clé (3,2). On a :
- c : 2 \times 3 + 2 = 8 devient i
- h : 7 \times 3 + 2 = 23 devient x
- i : 8 \times 3 + 2 = 26 \equiv 0 [26] devient a
- f : 5 \times 3 + 2 = 17 devient r
- r : 17 \times 3 + 2 = 53 \equiv 1 [26] devient b
- e : 4 \times 3 + 2 = 14 devient o
CHIFFRE devient donc IXARRBO
Déchiffrement
Ce déchiffrement se fait sous condition que a et 26 soient premiers entre eux. On sait exprimer y en fonction de x : y \equiv ax+b[26] et on cherche à exprimer x en fonction de y.
On sait que : ax \equiv y - b [26]. Comme a est premier avec 26, le théorème de Bézout nous affirme qu’il existe a’ tel que aa' \equiv 1 [26]. On a donc
\begin{array}{llll} ax&\equiv& y - b& [26]\\ aa'x&\equiv& a'(y - b) &[26]\\ x&\equiv& a'y - a'b &[26] \end{array}
Exemple corrigé de calcul de clé de déchiffrement
On dispose de la clé (5,12). On a donc y \equiv 5x + 12[26]. Ce qui fait que 5x \equiv y -12 [26].
On cherche ensuite un a tel que 5a\equiv 1 [26] . Il y a plusieurs manières de le faire. Ici astuce, on remarque que 5 \times 5 \equiv -1 [26]. Donc 5 \times (-5) \equiv 5 \times 21 \equiv 1 [26]. Ainsi,
\begin{array}{llll} 5x&\equiv& y - 12& [26]\\ 21 \times 5 x&\equiv& 21(y - 12) &[26]\\ x&\equiv& 21y -21 \times 12 &[26]\\ x&\equiv& 21y -18 &[26] \end{array}
La clé de déchiffrement est donc (21,18)
Exercices
Exercice 1
- Chiffrer le mot CHIFFREMENT avec la clé (21,21)
- Chiffre le mot AFFINE avec la clé (17,6)
Exercice 2
- Trouver la clé de déchiffrement liée à la clé de chiffrement (11, 19)
- Déchiffrer CYRHY LJJLY LGVTU SJ avec la clé trouvée
Exercice 3
On a reçu le message suivant : HCXGIFPGXNVP
On sait que le chiffrement est affine et que la lettre U est codée par la lettre V et que la lettre T est codée par la lettre G.
- Etablir un système et trouver les paramètres a et b de l’équation affine
- Déchiffrer le message
Exercice 4
Ecrire une fonction Python qui prend en entrée une clé de chiffrement et donne en sortie sa clé de déchiffrement.