Digital Signature Algorithm
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] e nel 2000 con FIPS 186-2 [3].
Negli USA DSA è coperto da brevetto ((EN) US5,231,668, United States Patent and Trademark Office, Stati Uniti d'America.) attribuito a David W. Kravitz, un ex-ricercatore della NSA; il NIST ha reso questo brevetto disponibile liberamente per qualsiasi uso[1].
Descrizione dell'algoritmo
Di seguito vengono descritti i passi fondamentali per l'impiego di DSA, che fa uso di un sistema crittografico a chiave pubblica.
Generazione delle chiavi
- Si scelga un numero primo di a 160-bit q.
- Si scelga un numero primo p lungo L bit, tale che per un qualche numero intero z, con e divisibile per 64 (nell'ultima revisione dello standard si specifica che L non deve essere minore di 1024).
- Si scelga h tale che e
- Si generi un numero casuale x tale che
- Calcolare
La chiave pubblica è y, la chiave privata è x.
I parametri (p, q, g) sono pubblici e possono essere condivisi da diversi utenti.
Voci correlate
Collegamenti esterni
- (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.
Note
- ^ 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]