Le but de cette partie est d’expliquer comment deux utilisateurs Alice et Bob vont pouvoir se mettre
d’accord sur un secret partagé en utilisant l’algorithme ECDH qui repose sur les courbes elliptiques
sans qu’il soit possible pour un attaquant Eve d’intercepter ce secret
Étape 1 : choix des paramètres
A, B et P qui définiront la courbe (C) : y2 = x3+ Ax + B mod P avec P nombre premier (compris entre 7 et 1000) et A et B tels que 4A3+27B2 non nul
Étape 2 : sélection aléatoire d'un point G de la courbe (C)
Étape 3 : générations des clés privées (< P - 1)
Ayant connaissance des paramètres choisis aux étapes 1 et 2, Alice et Bob vont respectivement choisir un
nombre
aléatoire kalice et kbob tels que kalice < P - 1 et kbob < P
- 1.
Ces deux nombres constitueront leurs clés privées
respectives. Ces clés sont la garantie de la sécurité de la communication à venir, elles doivent rester
secrètes.
Étape 4 : calcul des clés publiques à partir des clés privées
Alice et Bob vont ensuite générer leurs clés publiques respectives en utilisant leurs clés privées
respectives de la manière suivante.
Le calcul des clés publiques est dit "facile", cependant retrouver kalice et kbob
à partir
de G et pubalice/pubbob est difficile (problème du logarithme discret). Ces clés
publiques sont comme leur nom
l’indique publiques. Alice et Bob vont se les échanger sur un canal non sécurisé. On peut imaginer
qu’Eve
parvienne à intercepter cet échange de clés et a donc connaissance de pubalice et
pubbob.
Étape 5 : calcul du secret partagé
Après cet échange, Alice et Bob vont respectivement calculer le secret partagé de la manière suivante :
La multiplication est commutative sur l’ensemble utilisé, on a donc sbob = sbob.
Alice et Bob ont donc chacun en leur possession un secret partagé.