cryptographie - Colegio Francia

publicité
CRYPTOGRAPHIE
FICHE 22
Le chiffrement de César
Ex 22.1 On assimile les lettres A, B, C, ..., Z aux nombres 0, 1, 2, ..., 25 et on code un nombre
x par f (x) en définissant f (x) comme le reste de la division euclidienne de x  k par 26, où
k est un entier donné.
Prenons par exemple k  17 .
Coder le mot SECRET. Décoder le mot VLTCZUV.
Le chiffrement affine
Ex 22.2 On définit maintenant définissant f (x) comme le reste de la division euclidienne de
11x  315 par 26.
a) Coder le mot CHAT.
b) On se propose de décoder le mot FBNQVDP.
Résoudre l'équation 11a  26b  1 , a et b désignant des entiers.
Montrer que si y  f (x) , alors x est g ( y ) , le reste de la division euclidienne de  7 y  21 par
26.
Décoder le mot FBNQVDP.
Un autre chiffrement affine
Ex 22.3 On définit maintenant définissant f (x) comme le reste de la division euclidienne de
17 x  40 par 26.
a) Coder le mot NUAGE.
b) On se propose de décoder le mot SQROMOB. S'inspirer de l'exercice précédent.
Le chiffrement de Lester Hill
Ex 22.4 Dans ce chiffrement, la fonction de codage agit sur des couples de nombres entre 0 et
 y  5 x1  11x2 26
25 : f : ( x1 ; x2 )  ( y1 ; y2 ) avec, par exemple :  1
.
 y 2  8 x1  3x2 26
Il faut grouper les lettres par deux (quitte à ajouter une lettre quelconque à la fin du message).
Les lettres KL, par exemple, fournissent ( x1 ; x2 )  (10 ; 11) , d'où ( y1 ; y2 )  (15 ; 9) et se
codent donc par PJ.
a) Coder le mot REQUIN.
b) Montrer que pour le décodage on peut utiliser la fonction g : ( y1 ; y2 )  ( x1 ; x2 )
 x  11y1  3 y 2 26
73x  3 y1  11y 2 26
définie par  1
c'est-à-dire  1
.
 x2  14 y1  y 2 26
 73x2  8 y1  5 y 2 26
c) Décoder le mot FIJIMI.
Principe du système RSA (inventé en 1978 par Rivest, Shamir et Adleman)
La personne A qui veut recevoir des messages codés qu'elle est la seule à pouvoir décoder
procède ainsi :
1. Elle choisit deux grands nombres premiers distincts p et q et effectue le produit n  pq .
2. Elle choisit un entier e compris entre 2 et ( p  1)( q  1) et premier avec ( p  1)( q  1) .
3. Elle détermine un entier d tel que ed  1 ( p  1)(q  1).
A "publie" les nombres n et e, mais garde secret le nombre d.
Exemple : n  19 050 724 489 et e  37 .
La fonction de codage f ( x)  x e mod . n (reste de la division euclidienne de x e par n) peut
donc être utilisée par tous pour envoyer des messages à A. Plus précisément, on peut montrer
que f réalise une bijection de 0 ; n  1 dans 0 ; n  1 et que la bijection réciproque (fonction
de décodage) est g ( x)  x d mod . n .
Une personne ne connaissant que n et e ne peut pas facilement découvrir d et donc g. En effet,
pour trouver d il faudrait connaître p et q, or si p et q sont assez grands (100 chiffres chacun
par exemple) un ordinateur même puissant est incapable de décomposer le produit
n  pq pour trouver p et q.
Tout le monde peut donc coder, mais seule A peut décoder. Ce type de système de codage est
appelé chiffrement à clé publique.
Bien entendu, avant de procéder au chiffrement, il faut convenir d'un encodage simple du
texte en une suite de nombres compris entre 0 et n  1 .
Téléchargement