Schema lui ElGamal

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 10 mai 2018; verificările necesită 43 de modificări .

Schema Elgamal este un criptosistem cu cheie publică bazat pe dificultatea de a calcula logaritmi discreti într-un câmp finit . Criptosistemul include un algoritm de criptare și un algoritm de semnătură digitală. Schema ElGamal stă la baza fostelor standarde de semnătură digitală din Statele Unite ( DSA ) și Rusia ( GOST R 34.10-94 ).

Schema a fost propusă de Taher El-Gamal în 1985 . [1] ElGamal a dezvoltat o variantă a algoritmului Diffie-Hellman . El a îmbunătățit sistemul Diffie-Hellman și a obținut doi algoritmi care au fost folosiți pentru criptare și pentru autentificare. Spre deosebire de RSA, algoritmul ElGamal nu a fost brevetat și, prin urmare, a devenit o alternativă mai ieftină, deoarece nu erau necesare taxe de licență. Se crede că algoritmul este acoperit de brevetul Diffie-Hellman.

Generare cheie

  1. Se generează un număr prim aleatoriu .
  2. Se alege un număr întreg - rădăcina primitivă .
  3. Un număr întreg aleatoriu este ales astfel încât .
  4. Calculat .
  5. Cheia publică este , cheia privată este .

Lucrul în modul criptat

Sistemul de criptare ElGamal este de fapt una dintre modalitățile de a genera chei publice Diffie-Hellman . Criptarea ElGamal nu trebuie confundată cu algoritmul de semnătură digitală ElGamal.

Criptare

Mesajul trebuie să fie mai mic de . Mesajul este criptat după cum urmează:

  1. Se alege cheia de sesiune — un întreg coprim aleatoriu cu , astfel încât .
  2. Numerele și sunt calculate .
  3. O pereche de numere este un text cifrat .

Este ușor de observat că lungimea textului cifrat în schema ElGamal este de două ori mai mare decât lungimea mesajului original .

Decriptare

Cunoscând cheia privată , mesajul original poate fi calculat din textul cifrat folosind formula:

În același timp, este ușor de verificat

prin urmare

.

Pentru calcule practice, următoarea formulă este mai potrivită:

Schema de criptare

Exemplu

Deoarece o variabilă aleatorie este introdusă în schema ElGamal , cifrul ElGamal poate fi numit cifr de substituție cu mai multe valori. Datorită caracterului aleatoriu al alegerii numărului, o astfel de schemă este numită și schemă de criptare probabilistică. Natura probabilistică a criptării este un avantaj pentru schema ElGamal, deoarece schemele de criptare probabilistică prezintă o putere mai mare în comparație cu schemele cu un proces de criptare specific. Dezavantajul schemei de criptare ElGamal este că textul cifrat este de două ori mai lung decât textul simplu. Pentru o schemă de criptare probabilistică, mesajul în sine și cheia nu definesc în mod unic textul cifrat. În schema ElGamal, este necesar să folosiți diferite valori ale unei variabile aleatorii pentru a cripta diferite mesaje și . Dacă utilizați același lucru , atunci pentru textele cifrate corespunzătoare și relația este îndeplinită . Din această expresie se poate calcula cu ușurință , dacă se știe .

Lucrul în modul semnătură

Semnătura digitală servește pentru a permite identificarea modificărilor datelor și pentru a stabili identitatea semnatarului. Destinatarul unui mesaj semnat poate folosi o semnătură digitală pentru a dovedi unei terțe părți că semnătura a fost într-adevăr făcută de expeditor. Când lucrați în modul semnătură, se presupune că există o funcție hash fixă , ale cărei valori se află în intervalul .

Semnături mesaj

Pentru a semna un mesaj , se efectuează următoarele operații:

  1. Rezumatul mesajului este calculat : (funcția Hash poate fi oricare).
  2. Un număr aleator coprim cu este ales și calculat
  3. Se calculează numărul , unde este modul invers multiplicativ , care poate fi găsit, de exemplu, folosind algoritmul Euclid extins .
  4. Semnătura mesajului este perechea .

Verificarea semnăturii

Cunoscând cheia publică , semnătura mesajului este verificată după cum urmează:

  1. Se verifică fezabilitatea condiţiilor: şi .
  2. Dacă cel puțin unul dintre ele eșuează, atunci semnătura este considerată nevalidă.
  3. Rezumatul este calculat
  4. O semnătură este considerată validă dacă se face o comparație:

Verificarea corectitudinii

Algoritmul considerat este corect în sensul că semnătura calculată conform regulilor de mai sus va fi acceptată în momentul verificării.

Transformând definiția , avem

Mai mult, din Mica Teoremă a lui Fermat rezultă că

Exemplu

Principalul avantaj al schemei de semnătură digitală ElGamal este capacitatea de a genera semnături digitale pentru un număr mare de mesaje folosind o singură cheie secretă. Pentru ca un atacator să falsească o semnătură, el trebuie să rezolve probleme matematice complexe cu găsirea logaritmului în câmp . Ar trebui făcute mai multe comentarii:

Numărul trebuie să fie aleatoriu și nu trebuie să fie duplicat pentru semnături diferite obținute cu aceeași valoare a cheii secrete.

este ușor să verificați dacă perechea este semnătura digitală corectă pentru mesaj .

Puterea și caracteristicile criptografice

În prezent, criptosistemele cu cheie publică sunt considerate cele mai promițătoare. Acestea includ schema ElGamal, a cărei putere criptografică se bazează pe complexitatea de calcul a problemei logaritmului discret , unde, având în vedere p , g și y , este necesar să se calculeze x care satisface comparația:

GOST R34.10-1994 , adoptat în 1994 în Federația Rusă, care reglementa procedurile de generare și verificare a semnăturii digitale electronice, se baza pe schema ElGamal. Din 2001, noul GOST R 34.10-2001 a fost utilizat, folosind aritmetica curbelor eliptice definite pe câmpuri Galois simple . Există un număr mare de algoritmi bazați pe schema ElGamal: acestea sunt DSA , ECDSA , algoritmi KCDSA, schema Schnorr .

Comparația unor algoritmi:

Algoritm Cheie Scop Rezistență criptografică, MIPS Note
RSA Până la 4096 de biți Criptare și semnare 2.7•10 28 pentru cheie de 1300 de biți Bazat pe dificultatea problemei de factorizare a numărului mare ; unul dintre primii algoritmi asimetrici. Inclus în multe standarde
ElGamal Până la 4096 de biți Criptare și semnare Pentru aceeași lungime a cheii, puterea criptografică este egală cu RSA, adică 2.7•10 28 pentru cheie de 1300 de biți Bazat pe problema dificilă a calculării logaritmilor discreti într-un câmp finit; vă permite să generați rapid chei fără a compromite securitatea. Folosit în algoritmul de semnătură digitală al standardului DSA DSS
DSA Până la 1024 de biți Doar semnătura Bazat pe dificultatea problemei logaritmului discret într-un câmp finit ; acceptat ca stat standard american; utilizat pentru comunicații secrete și neclasificate; Dezvoltatorul este NSA.
ECDSA Până la 4096 de biți Criptare și semnare Rezistența criptografică și viteza de operare sunt mai mari decât cele ale RSA Direcția modernă. Dezvoltat de mulți matematicieni de seamă

Note

  1. Elgamal, 1985 .

Literatură