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
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Digital_Signature_Algorithm
Digital_Signature_Algorithm
Digital Signature Algorithm - Teknopedia
Vai al contenuto
Menu principale
Navigazione
  • Pagina principale
  • Ultime modifiche
  • Una voce a caso
  • Nelle vicinanze
  • Vetrina
  • Aiuto
  • Sportello informazioni
  • Pagine speciali
Comunità
  • Portale Comunità
  • Bar
  • Il Teknopediano
  • Contatti
Teknopedia L'enciclopedia libera
Ricerca
  • Fai una donazione
  • registrati
  • entra
  • Fai una donazione
  • registrati
  • entra

Indice

  • Inizio
  • 1 Descrizione dell'algoritmo
    • 1.1 Generazione delle chiavi
    • 1.2 Calcolo della firma
    • 1.3 Verifica della firma
  • 2 Dimostrazione
  • 3 Sicurezza
  • 4 Note
  • 5 Voci correlate
  • 6 Collegamenti esterni

Digital Signature Algorithm

  • Català
  • Čeština
  • Deutsch
  • English
  • Español
  • فارسی
  • Suomi
  • Français
  • עברית
  • 日本語
  • 한국어
  • Lietuvių
  • Polski
  • Română
  • Русский
  • Slovenčina
  • Türkçe
  • Українська
  • Oʻzbekcha / ўзбекча
  • Tiếng Việt
  • 中文
Modifica collegamenti
  • Voce
  • Discussione
  • Leggi
  • Modifica
  • Modifica wikitesto
  • Cronologia
Strumenti
Azioni
  • Leggi
  • Modifica
  • Modifica wikitesto
  • Cronologia
Generale
  • Puntano qui
  • Modifiche correlate
  • Link permanente
  • Informazioni pagina
  • Cita questa voce
  • Ottieni URL breve
  • Scarica codice QR
Stampa/esporta
  • Crea un libro
  • Scarica come PDF
  • Versione stampabile
In altri progetti
  • Elemento Wikidata
Aspetto
Da Teknopedia, l'enciclopedia libera.

Digital Signature Algorithm (DSA) è uno standard FIPS per la firma digitale proposto dal National Institute of Standards and Technology (NIST) nell'agosto del 1991 per essere impiegato nel Digital Signature Standard (DSS), le sue specifiche sono contenute nel documento FIPS 186[1], viene definitivamente adottato nel 1993. In seguito è stato riveduto ulteriormente nel 1996 con FIPS 186-1[2], nel 2000 con FIPS 186-2[3], nel 2009 con FIPS 186-3[4], e nel 2013 con FIPS 186-4[5].

Negli Stati Uniti l'algoritmo DSA è coperto da brevetto[6] attribuito a David W. Kravitz, un ex-ricercatore della NSA; il NIST ha reso questo brevetto disponibile liberamente per qualsiasi uso[7].

Descrizione dell'algoritmo

[modifica | modifica wikitesto]

Di seguito vengono descritti i passi fondamentali per l'impiego di DSA, che fa uso di un sistema crittografico a chiave pubblica simile ad ElGamal.

Generazione delle chiavi

[modifica | modifica wikitesto]
  • Si scelga un numero primo di d {\displaystyle d} {\displaystyle d}-bit q {\displaystyle q} {\displaystyle q}[8].
  • Si scelga un numero primo p lungo L bit, tale che p = q z + 1 {\displaystyle p=qz+1} {\displaystyle p=qz+1} per un qualche numero intero z, con 512≤L≤1024 e divisibile per 64 (nell'ultima revisione dello standard si specifica che L deve corrispondere a 1024).
  • Si scelga h tale che 1 < h < p − 1 {\displaystyle 1<h<p-1} {\displaystyle 1<h<p-1} e g = h z mod p > 1 {\displaystyle g=h^{z}{\bmod {p}}>1} {\displaystyle g=h^{z}{\bmod {p}}>1}
  • Si generi un numero casuale x {\displaystyle x} {\displaystyle x} tale che 0 < x < q {\displaystyle 0<x<q} {\displaystyle 0<x<q}
  • Calcolare y = g x mod p {\displaystyle y=g^{x}{\bmod {p}}} {\displaystyle y=g^{x}{\bmod {p}}}

La chiave pubblica è y, la chiave privata è x.
I parametri (p, q, g) sono pubblici e possono essere condivisi da diversi utenti.

Esistono algoritmi efficienti per il calcolo delle esponenziazioni modulari h z mod p {\displaystyle h^{z}{\bmod {p}}} {\displaystyle h^{z}{\bmod {p}}} e g x mod p {\displaystyle g^{x}{\bmod {p}}} {\displaystyle g^{x}{\bmod {p}}}.

Calcolo della firma

[modifica | modifica wikitesto]
  • Si generi un numero casuale k tale che 0 < k < q {\displaystyle 0<k<q} {\displaystyle 0<k<q}
  • Calcolare r = ( g k mod p ) mod q {\displaystyle r=(g^{k}{\bmod {p}}){\bmod {q}}} {\displaystyle r=(g^{k}{\bmod {p}}){\bmod {q}}}
  • Calcolare s = ( k − 1 ( H ( m ) + x ∗ r ) ) mod q {\displaystyle s=(k^{-1}(H(m)+x*r)){\bmod {q}}} {\displaystyle s=(k^{-1}(H(m)+x*r)){\bmod {q}}} dove H(m)[8] è una funzione di hash SHA-d applicata al messaggio m
  • Nel caso in cui r = 0 {\displaystyle r=0} {\displaystyle r=0} o s = 0 {\displaystyle s=0} {\displaystyle s=0} bisogna ricalcolare la firma
  • La firma è (r,s)

L'algoritmo esteso di Euclide può essere usato per calcolare l'inverso modulare k − 1 mod q {\displaystyle k^{-1}{\bmod {q}}} {\displaystyle k^{-1}{\bmod {q}}}.

Verifica della firma

[modifica | modifica wikitesto]
  • Rifiutare firme se non sono soddisfatte le condizioni 0 < r < q {\displaystyle 0<r<q} {\displaystyle 0<r<q} e 0 < s < q {\displaystyle 0<s<q} {\displaystyle 0<s<q}
  • Calcolare w = s − 1 mod q {\displaystyle w=s^{-1}{\bmod {q}}} {\displaystyle w=s^{-1}{\bmod {q}}}
  • Calcolare u 1 = ( H ( m ) ∗ w ) mod q {\displaystyle u_{1}=(H(m)*w){\bmod {q}}} {\displaystyle u_{1}=(H(m)*w){\bmod {q}}}
  • Calcolare u 2 = ( r ∗ w ) mod q {\displaystyle u_{2}=(r*w){\bmod {q}}} {\displaystyle u_{2}=(r*w){\bmod {q}}}
  • Calcolare v = ( ( g u 1 ∗ y u 2 ) mod p ) mod q {\displaystyle v=((g^{u_{1}}*y^{u_{2}}){\bmod {p}}){\bmod {q}}} {\displaystyle v=((g^{u_{1}}*y^{u_{2}}){\bmod {p}}){\bmod {q}}}
  • La firma è verificata se v = r {\displaystyle v=r} {\displaystyle v=r}

Dimostrazione

[modifica | modifica wikitesto]

L'algoritmo è corretto nel senso che il destinatario verificherà sempre le firme valide.

Da g = h z mod p ⇒ g q ≡ h q z ≡ h p − 1 ≡ 1 ( mod p ) {\displaystyle g=h^{z}{\bmod {p}}\Rightarrow g^{q}\equiv h^{qz}\equiv h^{p-1}\equiv 1{\pmod {p}}} {\displaystyle g=h^{z}{\bmod {p}}\Rightarrow g^{q}\equiv h^{qz}\equiv h^{p-1}\equiv 1{\pmod {p}}} per il piccolo teorema di Fermat. Dato che g > 1 {\displaystyle g>1} {\displaystyle g>1} e q è primo segue che g è di ordine q.

Il firmatario calcola: s = k − 1 ( H ( m ) + x r ) mod q {\displaystyle s=k^{-1}(H(m)+xr){\bmod {q}}} {\displaystyle s=k^{-1}(H(m)+xr){\bmod {q}}}

quindi

k ≡ H ( m ) s − 1 + x r s − 1 ≡ H ( m ) w + x r w ( mod q ) {\displaystyle {\begin{matrix}k&\equiv &H(m)s^{-1}+xrs^{-1}\\&\equiv &H(m)w+xrw{\pmod {q}}\\\end{matrix}}} {\displaystyle {\begin{matrix}k&\equiv &H(m)s^{-1}+xrs^{-1}\\&\equiv &H(m)w+xrw{\pmod {q}}\\\end{matrix}}}

visto che g è di ordine q

g k ≡ g H ( m ) w g x r w ≡ g H ( m ) w y r w ≡ g u 1 y u 2 ( mod p ) {\displaystyle {\begin{matrix}g^{k}&\equiv &g^{H(m)w}g^{xrw}\\&\equiv &g^{H(m)w}y^{rw}\\&\equiv &g^{u_{1}}y^{u_{2}}{\pmod {p}}\\\end{matrix}}} {\displaystyle {\begin{matrix}g^{k}&\equiv &g^{H(m)w}g^{xrw}\\&\equiv &g^{H(m)w}y^{rw}\\&\equiv &g^{u_{1}}y^{u_{2}}{\pmod {p}}\\\end{matrix}}}

La correttezza di DSA è provata da: r = ( g k mod p ) mod q = ( g u 1 y u 2 mod p ) mod q = v {\displaystyle r=(g^{k}{\bmod {p}}){\bmod {q}}=(g^{u_{1}}y^{u_{2}}{\bmod {p}}){\bmod {q}}=v} {\displaystyle r=(g^{k}{\bmod {p}}){\bmod {q}}=(g^{u_{1}}y^{u_{2}}{\bmod {p}}){\bmod {q}}=v}.

Sicurezza

[modifica | modifica wikitesto]

Come molti sistemi di crittografia a chiave pubblica, la sicurezza di DSA si basa sull'intrattabilità di un problema matematico, in questo caso sull'inesistenza di un algoritmo efficiente per il calcolo del logaritmo discreto.

Particolare attenzione va posta al calcolo della quantità k: deve essere generata casualmente in modo che non sia possibile risalirvi, nel qual caso sarebbe possibile risalire facilmente ad x (la chiave privata) a partire dalla firma.

Note

[modifica | modifica wikitesto]
  1. ^ (EN) FIPS 186, su itl.nist.gov. URL consultato il 19 agosto 2021 (archiviato dall'url originale il 7 aprile 2012).
  2. ^ (EN) (PDF)FIPS 186-1
  3. ^ (EN) (PDF)FIPS 186-2 Archiviato il 18 maggio 2009 in Internet Archive.
  4. ^ FIPS-186-3 (PDF), su csrc.nist.gov.
  5. ^ FIPS 186-4 (PDF), su nvlpubs.nist.gov.
  6. ^ (EN) US5,231,668, United States Patent and Trademark Office, Stati Uniti d'America.
  7. ^ Claus P. Schnorr sostiene che un suo brevetto antecedente ((EN) US4,995,082, United States Patent and Trademark Office, Stati Uniti d'America.) include DSA, questa affermazione è oggetto di disputa.[senza fonte]
  8. ^ a b In origine d = 160 {\displaystyle d=160} {\displaystyle d=160} e H ( m ) ≡ SHA-1 ( m ) {\displaystyle H(m)\equiv {\mbox{SHA-1}}(m)} {\displaystyle H(m)\equiv {\mbox{SHA-1}}(m)}, ma con la terza revisione dello standard (FIPS 186-3), chiamato comunemente DSA2 si potrà fare uso delle funzioni di hash SHA-224/256/384/512, con q di dimensione 224, 256, 384, e 512 bit, e L pari a 2048, 3072, 7680, e 15360 rispettivamente.

Voci correlate

[modifica | modifica wikitesto]
  • Firma digitale
  • Crittografia asimmetrica
  • RSA

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Denis Howe, Digital Signature Standard, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
  • (EN) FIPS-186, le specifiche originali di DSA.
  • (EN) FIPS-186, change notice No.1, il primo aggiornamento alle specifiche.
  • (EN) FIPS-186-1, prima revisione dello standard.
  • (EN) FIPS-186-2, seconda revisione dello standard.
  • (EN) FIPS-186-3, terza revisione dello standard.
  • (EN) FIPS-186-4, quarta revisione dello standard.
  Portale Crittografia
  Portale Sicurezza informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Digital_Signature_Algorithm&oldid=138883608"
Categorie:
  • Crittosistemi di firma digitale
  • Standard informatici
Categorie nascoste:
  • Template Webarchive - collegamenti all'Internet Archive
  • Informazioni senza fonte
  • Questa pagina è stata modificata per l'ultima volta il 18 apr 2024 alle 12:29.
  • Il testo è disponibile secondo la licenza Creative Commons Attribuzione-Condividi allo stesso modo; possono applicarsi condizioni ulteriori. Vedi le condizioni d'uso per i dettagli.
  • Informativa sulla privacy
  • Informazioni su Teknopedia
  • Avvertenze
  • Contatti legali e di sicurezza
  • Codice di condotta
  • Sviluppatori
  • Statistiche
  • Dichiarazione sui cookie
  • Versione mobile
  • Wikimedia Foundation
  • Powered by MediaWiki
Digital Signature Algorithm
Aggiungi argomento

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
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