Curba eliptică Protocolul Diffie-Hellman ( Eng. Elliptic curve Diffie–Hellman , ECDH ) este un protocol criptografic care permite două părți care au perechi de chei publice/private pe curbele eliptice să obțină o cheie secretă partajată folosind un canal de comunicare neprotejat [1] [ 2] . Această cheie secretă poate fi folosită atât pentru a cripta schimburi ulterioare, cât și pentru a forma o nouă cheie , care poate fi apoi utilizată pentru schimbul ulterior de informații folosind algoritmi de criptare simetrică . Aceasta este o variație a protocolului Diffie-Hellman folosind criptografia eliptică [3] .
Să fie doi abonați: Alice și Bob . Să presupunem că Alice dorește să partajeze o cheie secretă cu Bob, dar singurul canal disponibil între ei poate fi auzit de o terță parte. Inițial, trebuie convenit un set de parametri ( pentru cazul general și pentru domeniul caracteristic ). De asemenea, fiecare parte trebuie să aibă o pereche de chei, constând dintr-o cheie privată ( un număr întreg selectat aleatoriu din interval ) și o cheie publică (unde este rezultatul efectuării operației de sumă a elementelor o dată ). Fie atunci perechea de chei a lui Alice și perechea de chei a lui Bob . Înainte de a executa protocolul, părțile trebuie să facă schimb de chei publice.
calculează Alice . Bob calculează . Secret partajat - (coordonata x a punctului rezultat). Majoritatea protocoalelor standard bazate pe ECDH folosesc funcții de derivare a cheilor pentru a deriva o cheie simetrică dintr-o valoare [4] [5] .
Valorile calculate de participanți sunt egale, deoarece . Dintre toate informațiile asociate cu cheia ei privată, Alice dezvăluie doar cheia ei publică. Astfel, nimeni în afară de Alice nu poate determina cheia ei privată, cu excepția unui participant care este capabil să rezolve problema logaritmului discret pe o curbă eliptică . Cheia privată a lui Bob este la fel de sigură. Nimeni în afară de Alice sau Bob nu poate calcula secretul lor comun, cu excepția unui participant care este capabil să rezolve problema Diffie-Hellman [6] .
Cheile publice sunt fie statice (și susținute de un certificat), fie efemere (ECDHE pe scurt). Cheile efemere sunt folosite temporar și nu autentifică neapărat expeditorul, așa că dacă este necesară autentificarea, dovada autenticității trebuie obținută într-un alt mod [3] . Este necesară autentificarea pentru a elimina posibilitatea unui atac de tip om-in-the -middle . Dacă Alice sau Bob folosesc o cheie statică, amenințarea unui atac de tip man-in-the-middle este eliminată, dar nu pot fi furnizate nici secretul direct, nici rezistența la falsificare atunci când cheia este compromisă , precum și alte proprietăți de rezistență la atac. . Utilizatorii cheilor private statice sunt forțați să verifice cheia publică a altcuiva și să folosească funcția de derivare a cheii secrete partajate pentru a preveni scurgerea de informații despre cheia privată statică [7] . Pentru criptarea cu alte proprietăți, se folosește adesea protocolul MQV .
Atunci când se folosește un secret partajat ca cheie, este adesea de dorit să se hacheze secretul pentru a scăpa de vulnerabilitățile apărute după aplicarea protocolului [7] .
Curba eliptică E peste un câmp are ordinea , unde P49 este un număr prim , format din 49 de cifre în notație zecimală.
Alegem un polinom ireductibil
Și luați punctul curbei eliptice
.Să verificăm dacă ordinea sa nu este egală cu 2
.Prin urmare, ordinea sa este egală cu ordinea grupului , și anume numărul , și poate fi folosită pentru a construi o cheie. Să , . Apoi cheile publice ale participanților la protocol sunt calculate ca
. .Și secretul împărtășit va fi:
.Valoarea (sau o parte a acesteia) este folosită ca cheie a unui sistem simetric .