Sunteți pe pagina 1din 2

Algoritmul de criptografie DSA

Algoritmul pentru semnaturi digitale (engleza: Digital Signature Algorithm), cunoscut si


sub acronimul DSA, este un standard al guvernului Statelor Unite ale Americii pentru
semnaturile digitale. A fost propus de National Institute of Standards and Technology (NIST) in
august 1991 pentru utilizare in cadrul standardului Digital Signature Standard (DSS), adoptat in
1993.
O revizie minora a fost emisa in 1996 sub numele de FIPS 186-1, iar standardul a fost extins in
2000 sub numele FIPS 186-2.

Algoritmul este format din trei proceduri: generarea cheii, semnarea, verificarea semnaturii.

Generarea cheii

Se alege q, astfel inct el este prim si are o dimensiune de 160 de biti (2159 < q < 2160)
Se alege p, astfel inct el este prim si p = 2qz+1 (2512< p < 21024)
Ultimele reglementari specifica faptul ca p ar trebui sa fie pe fix 1024 de biti, ceea ce
inseamna ca z trebuie sa fie pe 864 de biti.
Se alege h Zp*, unde h este o radacina primitiva in Zp*.
= hz mod p, unde z = (p-1)/q .
Se alege arbitrar Zp*.
Se calculeaza = a mod p.
Cheia publica este (p, q, , ).
Cheia privata este a.
Semnarea
Se alege arbitrar k Zq*.
Se calculeaza x=SHA-1(mesaj), cu x pe 160 de biti; SHA-1 este functia de hash, care
realizeaza rezumatul mesajului (returneaza un numar in functie de continutul mesajului).
Se calculeaza = ( k mod p).
Se calculeaza = ( k-1(x + a)) mod q.
Daca vreuna dintre cele doua valori ( sau ) este egala cu zero, atunci se reia calculul cu
generarea unui alt k.
Cheia de semnare este (, ).
Verificarea
Se calculeaza w = -1 mod q.
Se calculeaza e1 = (xw) mod q.
Se calculeaza e2 = (w) mod q.
Se calculeaza v = ((e1e2) mod p) mod q.
Semnatura este valida daca si numai daca v = .
Algoritmul Semnaturii Digitale este similar Schemei de semnatura ElGamal.

Corectitudine
Algoritmul este corect in sensul ca destinatarul va accepta intotdeauna doar semnaturi originale.
Acest lucru poate fi demonstrat dupa cum urmeaza:

Din = hz mod p rezulta q hqz hp-1 1 (mod p) din Teorema lui Fermat. Deoarece > 1
si q este prim, are ordinul q.
Expeditorul calculeaza

= (k-1 (x + ))
Deci

k x-1 + a 1k xw + aw
Deoarece are ordinul q
k xwawk xwwk e1e2 (mod p).
in sfrsit, corectitudinea algoritmului vine din

= (k mod p) mod q = (e1e2 mod p) mod q = v.

Securitate

Acest algoritm este considerat imposibil de spart, datorita sigurantei mari asigurate de cteva
puncte, cum ar fi generarea aleatoare a lui p, q, a si k. Pentru a se afla k, de exemplu, ar trebui
rezolvata o problema de tipul logaritmilor discreti, care este o problema dificila, in sensul ca
ajungerea la o solutie poate dura cteva luni.