Elliptic_curve_digital_signature - Kasimashi/Systemes-embarques GitHub Wiki

Elliptic Curve Digital Signature Algorithm

L'algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) permet de signer des messages ; en lui même, il n'a pas grand intérêt, donc pas la peine d'en faire des tartines.

image

Signature d'un message

Imaginez que vous souhaitiez signer quelque chose, n'importe quelle suite de bits (une phrase, un fichier, on s'en fout). Voici comment on signe ce bazar avec la courbe (A, B, P, G, n) :

  • (m = H(message)) ou H est un algo de hash, par exemple SHA-256.
  • Soit k un entier au hasard entre 1 et n - 1
  • Soit r l'abscisse du point k * G (mod n)
  • Soit s = k-1 (m + kr) (mod n)

La signature est donnée par le couple r, s.

Vérifier la signature

Idem, le processus de vérification de la signature est relativement simple. Soient m notre hash de message, et la signature (r, s).

  • Vérifier que la clé publique Q est valide.
  • Vérifier que n * Q = 0.
  • Vérifier que r et s sont dans [1, n - 1]
  • w = s-1 (mod n)
  • (i, j) = m * w * G + r * w * Q
  • Si i = r (mod n), alors la signature est valide