Vous êtes sur la page 1sur 2

U NIVERSITÉ S ULTAN M OULAY S LIMANE A.U.

: 2019/2020
FACULTÉ P OLYDISCIPLINAIRE DE B ENI M ELLAL Master : STRI
D ÉPARTEMENT DE M ATHÉMATIQUES - I NFORMATIQUES Semestre 2

C HIFFREMENT DE H ILL
30 mars 2020

Le chiffrement ou le cryptage est un procédé de cryptographie grâce auquel on souhaite


rendre la compréhension d’un document impossible à toute personne qui n’a pas la clé de
(dé)chiffrement. Ce principe est généralement lié au principe d’accès conditionnel. Il y a de
nombreuses méthodes utilisées pour le chiffrement, nous présentons ici la méthode dite de
Hill.
Historiquement, les premières méthodes de chiffrement étaient des méthodes monoalpha-
bétiques, c’est à dire que pour coder un message on remplaçait toujours une lettre par une
même lettre, par exemple
A B C ... Z
E M K ... L
et alors pour coder le mot ”BAC” on obtient ”KEM”. Le problème de cette méthode est quelle
est très facile à déchiffrer dés que vous avez un texte assez long, car dans un tel texte on peut
analyser les fréquences. Dans la longue française, la lettre la plus fréquente est le ”E”, donc
dans votre message codé si vous regarder la lettre la plus fréquente, vous pouvez alors pa-
rier que cette lettre code pour le ”E”, et ainsi de suite, après le ”E”, la deuxième lettre la plus
fréquente est le ”S”, donc en regardant la deuxième lettre la plus fréquente dans le message
chiffré et bien vous pouvez peut-être avoir une idée sur la lettre qui code pour le ”S”. On peut
même s’appuyer sur le mot technique ”ESARINTULO” qui donne, dans cet ordre, les lettres
les plus fréquentes.
Pour rendre la méthode de déchiffrement par analyse des fréquences beaucoup plus diffi-
cile, on a ensuite passer au chiffrement polyalphabétiques. Dans ces méthodes, les lettres
ne sont pas (dé)chiffrées les unes après les autres mais par paquets. Parmi ces méthodes de
chiffrement il y a la méthode dite de Hill (1891-1961) dans laquelle le chiffrement des lettres
se fait par paquets de deux lettres. Chaque lettre A, B,. . ., Z est codée par son rang entre 0 et
25.
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13
O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25
On choisit quatre nombres a, b, c et d . (On peut se restreindre entre 0 etµ25 au¶sens large car
a b
on retrouve ensuite les même résultats). La matrice de codage est alors .
c d
On écrite tout d’abord le message à chiffrer sans espaces et sans ponctuation. Le codage du
message s’effectue par groupe de deux lettres.
On note x 1 et x 2 les rangs de deux lettres et on calcule
µ ¶ µ ¶µ ¶
y1 a b x1
≡ [26]
y2 c d x2
avec (y 1 , y 2 ) ∈ {0, . . . , 25}2 . Les lettres correspondantes sont les lettres codées.
Exemple : On se fixe a = 3,µ b = ¶ 3, c = 5 et d = 8. On veut coder le groupe de lettres ”OK” elles
14
correspondent au couple
10
µ ¶µ ¶ µ ¶
3 3 14 20
≡ [26]
5 8 10 20
Le groupe de lettres ”OK” est codé ”UU”.
Pour décoder (quand cela est possible, voir remarque) :
Soit ∆ = ad − bc. On suppose ici que ∆ ∧ 26 = 1 (voir plus bas). Il existe alors un entier ∆0 ∈
{1, . . . , 25} tel que ∆∆0 ≡ 1[26] (ce nombre ∆0 est appelé inverse de ∆ modulo 26).
Dans l’exemple la matrice A est inversible et on a ∆ ∧ 26 = 1. La matrice A −1 n’est pas en
général à coefficients entiers mais B = ∆A −1 , elle l’est. On va donc se servir de cette matrice
B pour décoder. On a
µ ¶ µ ¶ µ ¶ µ ¶
y1 x1 y1 x
≡A [26] ⇐⇒ ∆ B 0
≡ ∆ B A 1 [26]
0
y2 x2 y2 x2
µ
¶ µ ¶
y1 x
⇐⇒ ∆ B 0
≡ 1 [26].
y2 x2

En fait, n’importe quelle matrice congrue à ∆0 B modulo 26 permet le décodage. En pra-


tique, on prendra celle dont les coefficients sont entre 0 et 25 (pour faciliterµ les calculs).

3 3
Pour décodé le message reçu ”UU” et en connaissant bien sur la clé A = , on a ∆ = 9
5 8
µ ¶
1 8 −3
−1
et A = 9 . Puisque ∆ ∧ 26 = 1, on pourra calculer ∆0 . Pour cela, on applique l’algo-
−5 3
rithme d’Euclide. On obtient 1 = 9 × 3 − 1 × 26. Donc 9 × 3 ≡ 1[26] et alors ∆0 = 3. D’où
µ ¶ µ ¶
24 −9 24 17
∆B=
0
≡ [26]
−15 9 11 9
µ ¶
20
Si on veut décoder le groupe de lettres ”UU” cela correspond au couple .
20
µ ¶µ ¶ µ ¶
24 17 20 14
≡ [26]
11 9 20 10
Le groupe décodé est donc ”OK”.

Remarques :
• Si ∆ est premier avec 26, deux groupes de lettres différentes ne peuvent pas être codés
de manière identique, le décodage est donc possible et celui-ci est unique. Sinon, deux
groupes de lettres différents peuvent avoir le même codage. Dans ce cas, cela ne permet-
tra pas un décodage.
• Si le message à chiffrer a un nombre impair de lettres, on ajoute la lettre Z à la fin du
message.