Digital Signature Algorithm

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le Digital Signature Algorithm, plus connu sous le sigle DSA, est un algorithme de signature numérique standardisé par le NIST aux États-Unis, du temps où le RSA était encore breveté. Cet algorithme fait partie de la spécification DSS pour Digital Signature Standard adoptée en 1993 (FIPS 186). Une révision mineure a été publiée en 1996 (FIPS 186-1) et le standard a été amélioré en 2002 dans FIPS 186-2. Il est couvert par le brevet n° 5 231 668 aux USA (26 juin 1991) attribué à David Kravitz, ancien employé de la NSA, et il peut être utilisé gratuitement.

Aperçu[modifier | modifier le code]

Le DSA est similaire à un autre type de signature développée par Claus-Peter Schnorr (en) en 1989. Il a aussi des points communs avec la signature ElGamal. Le processus se fait en trois étapes :

  • génération des clés
  • signature du document
  • vérification du document signé

Générations des clés[modifier | modifier le code]

Leur sécurité repose sur la difficulté du problème du logarithme discret dans un groupe fini.

  • Choisir des longueurs et avec divisible par 64. Ces longueurs définissent directement le niveau de sécurité de la clef. NIST 800-57 recommande de choisir et pour une sécurité équivalente à 128 bit.
  • Choisir un nombre premier de longueur .
  • Choisir un nombre premier de longueur , de telle façon que , avec un entier
  • Choisir , avec de manière que
  • Générer aléatoirement un , avec
  • Calculer
  • La clé publique est . La clé privée est .

Signature[modifier | modifier le code]

  • Choisir un nombre aléatoire tel que
  • Calculer
  • Si recommencer avec un autre
  • Calculer , où est le résultat d'un hachage cryptographique, par exemple avec SHA-256, sur le message
  • Si recommencer avec un autre
  • La signature est

Vérification[modifier | modifier le code]

  • Rejeter la signature si ou n'est pas vérifié
  • Calculer
  • Calculer
  • Calculer
  • Calculer
  • La signature est valide si

Validité de l'algorithme[modifier | modifier le code]

Ce principe de signature est correct dans le sens où le vérificateur acceptera toujours des signatures authentiques. Ceci peut être démontré comme suit avec un exemple pratique :

À partir de et découle :

selon le petit théorème de Fermat. Puisque et est premier, il s'ensuit que a un ordre égal à .

Celui qui procède à la signature obtient:

Ainsi

Comme g a un ordre q, on a :

Finalement, on aboutit à la validité de DSA :

Notes et références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Digital Signature Algorithm » (voir la liste des auteurs).

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]