Sunteți pe pagina 1din 5

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII

MOLDOVA

CENTRUL DE EXCELENŢĂ ÎN INFORMATICĂ


ŞI TEHNOLOGII INFORMAŢIONALE

Tema:” Algoritmul El Gamal „


„Algoritmul DSA”

Disciplina: Securitatea informationala

Elevul :
Botezat Mihail, I-1546
Profesor:
Cerbu O.

Chişinău

2018
Sistemul de criptare El Gamal, prezentatin 1985 Taher ElGamal, se bazeaza pe problema logaritmului
discret, care este urmatoarea:

Fie p numar prim ¸si α,β ∈ Zp, β 6= 0. Sa


se determine a ∈ Zp−1 astfel ca
αa ≡ β (mod p).
Acestintreg a – daca exista – este unic ¸si se noteaza logαβ.
Fie p = 11 ¸si α = 6. Toate elementele din pot fi exprimate ca puteri ale lui α:
a 0 1 2 3 4 5 6 7 8 9

6a (mod 11) 1 6 3 7 9 10 5 8 4 2
De aici rezulta imediat tabelul logaritmilor in baza 6:
β 1 2 3 4 5 6 7 8 9 10

log6β 0 9 2 8 6 1 3 7 4 5
Pentru α = 3 insa nu vom avea totdeauna solutie. Deoarece
a 0 1 2 3 4 5 6 7 8 9
3a (mod 11) 1 3 9 5 4 1 3 9 5 4
valorile β ∈ {2,6,7,8,10} nu pot fi exprimate ca logaritmi in baza 3. Altfel spus, ecuatia log3x = β nu
are solutie in Z11 pentru aceste valori ale lui b
Pentru problema logaritmului discret, nu este obligatoriu ca p sa fie numar prim. Important este ca α
sa fie radacina primitiva de ordinul p − 1 a unita¸tii: ∀i (0 < i < p − 1), αi 6≡ 1 (mod p). Teorema lui
Fermat asigura αp−1 ≡ 1 (mod p).
La o alegere convenabila a lui p, problema este NP - completa. Pentru siguranta, p se alege de
minim 512 biti iar p−1 sa aiba cel putin un divizor prim ”mare”. Pentru un astfel de modul p, spunem
ca problema logaritmului discret este dificila in Zp. Utilitatea acestei cerinte rezida in faptul ca, de¸si
este foarte dificil de calculat un logaritm discret, operatia inversa – de exponentiere – este foarte
simpl˘a (dup˘a cum s-a v˘azut la sistemul RSA).
Sistemul de criptare El Gamal este urmatorul:

2
Fie p numar prim pentru care problema logaritmului discret in Zp este dificila, ¸si
primitiv.
Fie P= Zp∗, C= Zp∗ × Zp∗ ¸si
K= {(p,α,a,β)| β ≡ αa (mod p)}.
Valorile p,α,β sunt publice, iar a este secret.
Pentru K = (p,α,a,β) ¸si k ∈ Zp−1 aleator (secret) se define¸ste
eK(x,k) = (y1,y2)
unde y1 = αk (mod p), y2 = x · βk (mod p). Pentru
se defineste

Verificarea este imediata:

Sistemul este evident nedeterminist: criptarea depinde de x ¸si de o valoare aleatoare aleasa de
Alice. Exista deci mai multe texte criptate corespunzatoare unui anumit text clar.
Sa alegem p = 2579, α = 2, a = 765. Prin calcul se obtine β = 2765 (mod 2579) = 949.
Sa presupunem ca Alice vrea sa trimita mesajul x = 1299. Ea alege aleator k (sa spunem k = 853)
¸si calculeaza y1 = 2853 = 435, apoi y2 = 1299 · 949853 = 2396 (toate calculele se fac modulo 2579).
Cand Bob primeste mesajul criptat y = (435,2396), el va determina x = 2396 · (435765)−1 = 1299
(mod 2579).

3
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 incât el este prim si are o dimensiune de 160 de biti (2159 < q < 2160)
 Se alege p, astfel incât 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 (γ, δ).

4
Verificarea
 Se calculeaza w = δ-1 mod q.
 Se calculeaza e1 = (xw) mod q.
 Se calculeaza e2 = (γw) mod q.
 Se calculeaza v = ((αe1βe2) 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 + aγw
Deoarece α are ordinul q
αk ≡ αxwαaγwαk ≡ αxwβγwαk ≡ αe1βe2 (mod p).
in sfârsit, corectitudinea algoritmului vine din
γ = (αk mod p) mod q = (αe1βe2 mod p) mod q = v.
Securitate
Acest algoritm este considerat imposibil de spart, datorita sigurantei mari asigurate de câteva 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 câteva luni.

S-ar putea să vă placă și