Le but de cette partie est d’expliquer comment Alice peut certifier avoir lu et approuvé un document,
sans répudiation possible de sa part.
É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 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 de la clé privée de alice (< P - 1)
Ayant connaissance des paramètres choisis aux étapes 1 et 2, Alice va choisir un
nombre
aléatoire s tels s < P - 1.
Ce nombre constituera sa clé privée.
Cette clé est la garantie que la signature d'un message provient bien de Alice.
Toute personne trouvant cette clé pourrait s'en servir contre elle.
La clé doit donc resté secrète.
Étape 4 : calcul de la clé publique à partir de la clé privée
Alice va ensuite génèrer sa clé publique. C'est la clé qui permettra de vérifier un message signé.
Étape 5 : calcul de la signature
Le calcul de la clé publique est dit "facile", cependant retrouver s
à partir
de G et pub est difficile (problème du logarithme discret). Alice va la diffuser à toute personne voulant vérifier une de ses signatures. Elle pourrait mêmen
utiliser un certificat provenant d'un pki.
Ici, H est une fonction de hashage.
Après cet échange, Alice va choisir un nombre aléatoire k. Puis elle va calculer une signature sur un message donné:
(Le message est codé par un nombre)
Elle va ensuite calculer la signature de ce messages pour (i,j) = kG.
La signature est:
Étape 6 : vérification de la signature
Bob vérifie que la signature provient bien de alice en utilisant sa clé publique.
Il calcul:
(i,j) = (H(m)*1/y mod(n))G + (x* 1/y mod(n))Q.
Si la signature est bien construite, alors x = i mod(n).
Ce x doit être égal au x trouvé à l'étape de signature pour pouvoir valider le processus.