Elliptic curve digital signature algorithm

Un article de Wikipédia, l'encyclopédie libre.

Elliptic Curve Digital Signature Algorithm (ECDSA) est un algorithme de signature numérique.

C'est une variante du standard DSA qui à la différence de l'algorithme d'origine utilise la cryptographie sur les courbes elliptiques. Les avantages de ECDSA sur DSA et RSA sont des longueurs de clés plus courtes et des opérations de signature et de chiffrement plus rapide.

ECDSA est définit par le standard X9.62-1998, Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA).

Sommaire

[modifier] Aperçu

Soit un élément G d'une courbe elliptique d'ordre n avec n un nombre premier plus grand que 2160. La courbe est également définie par deux éléments a et b qui sont des éléments d'un champ de Galois de cardinalité q. Soit le message m à signer.

[modifier] Préparation des clés

  • Choisir un entier s entre 1 et n-1.
  • Calculer Q= sG en utilisant l'élément de la courbe elliptique.
  • La clé publique est Q et la clé privée est s.

[modifier] Signature

  • Choisir de manière aléatoire un nombre k entre 1 et n-1
  • Calculer (i,j) = kG
  • Calculer x = integer(i)~mod~n
  • Calculer y= \frac{H(m) + sx}{k}~mod~n où H(m) est le résultat d'un hachage cryptographique avec SHA-1 sur le message m
  • Si x ou y sont nulles, recommencer
  • La signature est la paire (x,y).

[modifier] Vérification

  • Contrôler que x et y sont bien entre 1 et n-1
  • Vérifier que x = integer(i)~mod~n sachant que (i,j) = (\frac{H(m)}{y}~mod~n)G + (\frac{x}{y}~mod~n)Q.
  • Vérifier que Q est différent de (0,0) et que Q appartient bien à la courbe elliptique
  • Vérifier que nQ donne (0,0)
Autres langues