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 .