Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Digital Signature Algorithm — Wikipédia
Digital Signature Algorithm — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir DSA.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (mars 2016).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

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 faisait partie de la spécification DSS pour Digital Signature Standard (en) adoptée en 1993 avant d'être retiré en 2023 (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[1].

  • Choisir des longueurs L {\displaystyle L} {\displaystyle L} et N {\displaystyle N} {\displaystyle N} avec L {\displaystyle L} {\displaystyle L} divisible par 64. Ces longueurs définissent directement le niveau de sécurité de la clef. NIST 800-57 recommande de choisir L = 3072 {\displaystyle L=3072} {\displaystyle L=3072} et N = 256 {\displaystyle N=256} {\displaystyle N=256} pour une sécurité équivalente à 128 bit.
  • Choisir un nombre premier p {\displaystyle p} {\displaystyle p} de longueur L {\displaystyle L} {\displaystyle L}.
  • Choisir un nombre premier q {\displaystyle q} {\displaystyle q} de longueur N {\displaystyle N} {\displaystyle N}, de telle façon que p − 1 = q z {\displaystyle p-1=qz} {\displaystyle p-1=qz}, avec z {\displaystyle z} {\displaystyle z} un entier.
  • Choisir h {\displaystyle h} {\displaystyle h}, avec 1 < h < p − 1 {\displaystyle 1<h<p-1} {\displaystyle 1<h<p-1} de manière que g = h z mod p > 1 {\displaystyle g=h^{z}{\bmod {p}}>1} {\displaystyle g=h^{z}{\bmod {p}}>1}.
  • Générer aléatoirement un x {\displaystyle x} {\displaystyle x}, avec 0 < x < q {\displaystyle 0<x<q} {\displaystyle 0<x<q}.
  • Calculer y = g x mod p {\displaystyle y=g^{x}{\bmod {p}}} {\displaystyle y=g^{x}{\bmod {p}}}.
  • La clé publique est ( p , q , g , y ) {\displaystyle (p,q,g,y)} {\displaystyle (p,q,g,y)}. La clé privée est x {\displaystyle x} {\displaystyle x}.

Signature

[modifier | modifier le code]
  • Choisir un nombre aléatoire s {\displaystyle s} {\displaystyle s} tel que 1 < s < q {\displaystyle 1<s<q} {\displaystyle 1<s<q}
  • Calculer s 1 = ( g s mod p ) mod q {\displaystyle s_{1}=(g^{s}\mod p)\mod q} {\displaystyle s_{1}=(g^{s}\mod p)\mod q}
  • Si s 1 = 0 {\displaystyle s1=0} {\displaystyle s1=0} recommencer avec un autre s {\displaystyle s} {\displaystyle s}
  • Calculer s 2 = ( H ( m ) + s 1 x ) s − 1 mod q {\displaystyle s_{2}=(H(m)+s_{1}x)s^{-1}\mod q} {\displaystyle s_{2}=(H(m)+s_{1}x)s^{-1}\mod q}, où H ( m ) {\displaystyle H(m)} {\displaystyle H(m)} est le résultat d'un hachage cryptographique, par exemple avec SHA-256, sur le message m {\displaystyle m} {\displaystyle m}
  • Si s 2 = 0 {\displaystyle s2=0} {\displaystyle s2=0} recommencer avec un autre s {\displaystyle s} {\displaystyle s}
  • La signature est ( s 1 , s 2 ) {\displaystyle (s_{1},s_{2})} {\displaystyle (s_{1},s_{2})}

Vérification

[modifier | modifier le code]
  • Rejeter la signature si 0 < s 1 < q {\displaystyle 0<s_{1}<q} {\displaystyle 0<s_{1}<q} ou 0 < s 2 < q {\displaystyle 0<s_{2}<q} {\displaystyle 0<s_{2}<q} n'est pas vérifié
  • Calculer w = s 2 − 1 mod q {\displaystyle w=s_{2}^{-1}{\bmod {q}}} {\displaystyle w=s_{2}^{-1}{\bmod {q}}}
  • Calculer u 1 = H ( m ) ⋅ w mod q {\displaystyle u_{1}=H(m)\cdot w{\bmod {q}}} {\displaystyle u_{1}=H(m)\cdot w{\bmod {q}}}
  • Calculer u 2 = s 1 ⋅ w mod q {\displaystyle u_{2}=s_{1}\cdot w{\bmod {q}}} {\displaystyle u_{2}=s_{1}\cdot w{\bmod {q}}}
  • Calculer v = ( g u 1 ⋅ y u 2 mod p ) mod q {\displaystyle v=(g^{u_{1}}\cdot y^{u_{2}}{\bmod {p}}){\bmod {q}}} {\displaystyle v=(g^{u_{1}}\cdot y^{u_{2}}{\bmod {p}}){\bmod {q}}}
  • La signature est valide si v = s 1 {\displaystyle v=s_{1}} {\displaystyle v=s_{1}}

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 p − 1 = q z {\displaystyle p-1=qz} {\displaystyle p-1=qz} et g = h z mod p {\displaystyle g=h^{z}{\bmod {p}}} {\displaystyle g=h^{z}{\bmod {p}}} découle :

g q ≡ h q z ≡ h p − 1 ≡ 1 mod p {\displaystyle g^{q}\equiv h^{qz}\equiv h^{p-1}\equiv 1{\bmod {p}}} {\displaystyle g^{q}\equiv h^{qz}\equiv h^{p-1}\equiv 1{\bmod {p}}} selon le petit théorème de Fermat. Puisque g > 1 {\displaystyle g>1} {\displaystyle g>1} et q {\displaystyle q} {\displaystyle q} est premier, il s'ensuit que g {\displaystyle g} {\displaystyle g} a un ordre égal à q {\displaystyle q} {\displaystyle q}.

Celui qui procède à la signature obtient :

s 2 = s − 1 ( H ( m ) + x s 1 ) mod q . {\displaystyle s_{2}=s^{-1}(H(m)+xs_{1})\mod {q}.} {\displaystyle s_{2}=s^{-1}(H(m)+xs_{1})\mod {q}.}

Ainsi

s ≡ H ( m ) s 2 − 1 + x s 1 s 2 − 1 ≡ H ( m ) w + x s 1 w ( mod q ) . {\displaystyle {\begin{matrix}s&\equiv &H(m)s_{2}^{-1}+xs_{1}s_{2}^{-1}\\&\equiv &H(m)w+xs_{1}w{\pmod {q}}.\\\end{matrix}}} {\displaystyle {\begin{matrix}s&\equiv &H(m)s_{2}^{-1}+xs_{1}s_{2}^{-1}\\&\equiv &H(m)w+xs_{1}w{\pmod {q}}.\\\end{matrix}}}

Comme g est d'ordre q, on a :

g s ≡ g H ( m ) w g x s 1 w ≡ g H ( m ) w y s 1 w ≡ g u 1 y u 2 ( mod p ) . {\displaystyle {\begin{matrix}g^{s}&\equiv &g^{{\rm {H}}(m)w}g^{xs_{1}w}\\&\equiv &g^{{\rm {H}}(m)w}y^{s_{1}w}\\&\equiv &g^{u1}y^{u2}{\pmod {p}}.\\\end{matrix}}} {\displaystyle {\begin{matrix}g^{s}&\equiv &g^{{\rm {H}}(m)w}g^{xs_{1}w}\\&\equiv &g^{{\rm {H}}(m)w}y^{s_{1}w}\\&\equiv &g^{u1}y^{u2}{\pmod {p}}.\\\end{matrix}}}

Finalement, on aboutit à la validité de DSA :

s 1 = ( g s mod p ) mod q = ( g u 1 y u 2 mod p ) mod q = v . {\displaystyle s_{1}=(g^{s}\mod p)\mod q=(g^{u1}y^{u2}\mod p)\mod q=v.} {\displaystyle s_{1}=(g^{s}\mod p)\mod q=(g^{u1}y^{u2}\mod p)\mod q=v.}

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).
  1. ↑ Guillot 2013, p. 60.

Annexes

[modifier | modifier le code]

Bibliographie

[modifier | modifier le code]
  • [Guillot 2013] Philippe. Guillot, La Cryptologie : L'Art des codes secrets, EDP Sciences, 2013, 196 p. (ISBN 978-2-7598-0995-0 et 2759809951, OCLC 854569776, lire en ligne).

Articles connexes

[modifier | modifier le code]
  • Rivest Shamir Adleman
  • Signature numérique
  • Cryptographie asymétrique
  • Elliptic curve digital signature algorithm
  • icône décorative Portail de la cryptologie
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Digital_Signature_Algorithm&oldid=201040402 ».
Catégorie :
  • Algorithme de cryptographie asymétrique
Catégories cachées :
  • Article manquant de références depuis mars 2016
  • Article manquant de références/Liste complète
  • Article contenant un appel à traduction en anglais
  • Portail:Cryptologie/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id