Cryptographie/Cryptographie à clef publique
Principe
modifierLe destinataire d'un message crypté génère deux clés à partir de nombres (en général deux grands nombres premiers) :
- Une clé privée, qu’il garde secrète, lui servant à décoder les messages qu’il reçoit,
- Une clé publique qu’il publie afin que ceux qui lui envoient des messages puissent les coder.
L'algorithme utilisé ne doit pas permettre de déduire la clé privée à partir de la clé publique et vice versa.
Un exemple : RSA
modifierRSA repose sur l'hypothèse qu’il est très difficile de décomposer un grand nombre (de l’ordre de 200 chiffres minimum) en facteurs premiers.
L'algorithme pour générer les deux clés est le suivant :
- Choisir deux grands nombres premiers différents : et ,
- Leur produit détermine :
- Choisir un nombre entier premier (aucun facteur commun) avec
- Déterminer, par l'algorithme d'Euclide, tel que
- Le couple constitue la clé publique,
- Le couple constitue la clé privée.
Une fois les deux clés créées, le codage s'effectue de la manière suivante :
- Le message est représenté sous la forme de plusieurs entiers entre et ,
- Chaque entier est codé en un entier en utilisant la clé publique :
Le décodage s'effectue de la manière suivante :
- Chaque entier est décodé en utilisant la clé privée :
- D'après un théorème du mathématicien Euler, .