Introduction
Prérequis :
Congruences
Résolution d'équations diophantiennes
Durée : 90 minutes
Niveau : difficile
Objectifs :
Il s'agit d'illustrer l'emploi de quelques notions et résultats d'arithmétique en cryptographie, science qui s'occupe de chiffrer et déchiffrer des messages à l'aide d'une clé.
Nous allons travailler sur une méthode à clés cachées, c'est-à-dire que les clés ne sont connues que des personnes qui codent et décodent le message.
On assimile les lettres A, B, C, ..., Z aux nombres 0, 1, 2, ..., 25 et on code ces nombres entiers
par
,
est appelée la fonction de codage, en définissant
comme le reste de la division euclidienne de
par
, où
est un entier donné.
est la clé du codage.
Prenons par exemple
.
1) Coder le mot SECRET.
On affecte à chaque lettre de l'alphabet un nombre entier entre
et
, suivant l'ordre alphabétique.
Lettre | A | B | C | ... | Z |
Nombre |
|
|
| ... |
|
La fonction de codage
est définie par :
avec
.
Pour coder la lettre R, assimilée au nombre
:
donc
soit
avec
et finalement
donc le lettre R est codée par G.
1) On affecte à chaque lettre de l'alphabet un nombre entier entre
et
, suivant l'ordre alphabétique.
Lettre | A | B | C |
| Z |
Nombre |
|
|
|
|
|
La fonction de codage
est définie par :
avec
.
Pour coder la lettre C par exemple, on calcule
:
avec
, donc
; la lettre C est donc codée par la lettre portant le numéro 17, c'est-à-dire R.
Pour coder le lettre R, assimilée au nombre 17 : donc
et
donc
avec
d'où finalement
. La lettre R est codée par G.
Lettre | A | B | C | ... | Z |
Nombre |
|
|
|
|
|
|
|
|
|
|
|
On remarque que ce codage consiste à décaler les lettres de l'alphabet de 15 rangs dans le sens de A vers Z.
Le mot SECRET se code HTRGTI.
2) Décoder le mot TJRAXST.
2) Pour décoder on décale les lettres de l'alphabet de 15 rangs dans le sens de Z vers A. Le mot TJRAXST se décode EUCLIDE.
Avec les notations de la partie A, on utilise la fonction de codage définie par : , avec
. Les clés de ce codage sont
et
.
1) a. Coder le mot HUIT.
b. Montrer que si
alors
. En déduire que deux lettres distinctes ne peuvent pas être codées par la même lettre.
b. Utiliser les propriétés sur les congruences pour montrer que si
alors
divise
.
b. Montrer que si
alors
. Remarquer que
et
sont premiers entre eux.
b.
divise
. Penser à des encadrements de
et
qui n'ont pas encore été utilisés.
1) a. La lettre H est assimilée au nombre 7. avec
d'où
c'est-à-dire que la lettre H se code par L.
On a ainsi que le mot HUIT se code en LYCH.
1) b.
,
,
et
sont des entiers,
est un entier supérieur ou égal à
.
1/ si alors
.
2/ alors
.
1) b.
Si
alors
.
Si
alors
d'après la propriété 1 sur les congruences avec
.
Si
alors
.
Si
alors
est divisible par
.
Si
alors
est divisible par
.
et
sont premiers entre eux donc d'après le théorème de Gauss,
divise
. Or
et
donc
.
On en déduit que . Le seul multiple de
compris entre
et
est
. On a donc que si
alors
, c'est-à-dire
.
Nous devons ensuite prouver que deux lettres distinctes assimilées aux nombres
et
ne peuvent pas être codées par la même lettre, c'est-à-dire : si
alors
. Cette propriété est la contraposée de la proposition : si
alors
démontrée ci-dessus. Nous savons que si une proposition est vraie, sa contraposée est vraie aussi, donc ici deux lettres distinctes ne peuvent pas être codées par la même lettre. Le codage est donc un bon codage.
1) b. Nous avons utilisé que les nombres
et
sont premiers entre eux. Cette condition est importante. Prenons la fonction de codage
définie par
, avec
.
et
ne sont pas premiers entre eux. Un calcul rapide montre que
, c'est-à-dire que H et U se codent toutes les deux en Y. Cette fonction de codage ne peut donc pas être utilisée.
2) Pour pouvoir décoder un message, nous allons définir une fonction de décodage.
a. Déterminer un entier
tel que
.
b. En déduire l'expression d'une fonction de décodage
telle que : si
alors
.
c. Déchiffrer le mot NMFAYH.
a.
« il existe
entier tel que
».
b. Soit
le nombre codé en
.
.
Utiliser les propriétés sur les congruences pour isoler
.
a. Pour trouver une solution particulière de l'équation
, écrire l'algorithme d'Euclide pour la recherche du
de
et
.
b. et
donc
.
Utiliser ensuite que .
2) a. «
est divisible par
».
« il existe
tel que
».
Il suffit donc de trouver un entier
tel que
.
On reconnaît une identité de Bézout car
et
sont premiers entre eux, on sait donc que cette équation a des solutions entières. Pour trouver une solution particulière nous allons écrire l'algorithme d'Euclide pour la recherche du
de
et
, puis « remonter » cet algorithme pour arriver à une solution particulière.
Le dernier reste
est le
de
et
.
Partons de (
) :
.
De (
) l'on tire
que l'on reporte dans (
) :
.
De (
) l'on tire
que l'on reporte dans (
) :
, soit
. Une solution particulière de l'équation
est donc
et
.
Nous prendrons
(remarque :
peut prendre une infinité de valeurs, toutes celles solutions de l'équation
).
b. Il s'agit maintenant de décoder une lettre correspondant au nombre
avec
. On cherche donc
tel que :
et
soit
.
donc
.
Utilisons
et
.
On a et
, donc d'après la propriété 2 sur les congruences
, soit encore
d'où
(encore la propriété 2 avec
et
).
Donc si
alors
avec
où
et
.
c. Pour décoder la lettre N assimilée au nombre
on calcule
.
soit
d'où
et
donc
.
N est donc la lettre codée B. Le mot NMFAYH se décode BEZOUT.