În criptografie , schimbul de chei Diffie-Hellman , numit după autorii săi Whitfield Diffie și Martin Hellman , este o metodă, publicată în 1976, prin care doi agenți , numiți în mod convențional Alice și Bob , pot conveni asupra unui număr (pe care îl pot folosi ca cheie pentru a cripta următoarea conversație) fără ca un al treilea agent numit Eve să poată descoperi numărul, chiar și după ce le-a ascultat toate schimburile. Această idee a câștigat celor doi autori Premiul Turing în 2015 .
Să oferim mai întâi o explicație intuitivă făcând o analogie cu culorile. Scopul este ca Alice și Bob să fie de acord cu o culoare secretă, fără ca Eva să o poată cunoaște. Această explicație este picturală și nu are sens practic, dar ajută la înțelegerea esenței schimbului de chei Diffie-Hellman. Presupunem că agenții pot amesteca culorile, dar că este dificil (mai ales pentru Eva!) Extragerea culorilor folosite pentru a face un amestec. Principiul este după cum urmează.
La sfârșitul protocolului, Alice și Bob au aceeași culoare maro, care reprezintă culoarea secretă comună. Presupunând că Eva este dificil să extragă culorile folosite pentru a obține culorile publice portocaliu și albastru, Eve nu cunoaște culoarea maro finală.
În principiul original descris mai jos, se alege un număr prim p . Cele mai „culori“ sunt numere p modulo. Amestecarea a două culori constă în creșterea unui număr la o anumită putere modulo p. Găsirea culorilor utilizate într-un amestec corespunde inversării exponențierii, care este o problemă algoritmică dificilă.
Descriem principiul original.
La sfârșitul protocolului, Alice și Bob știu amândoi numărul g ab [mod p ], dar nu Eva. Deoarece este dificil să se inverseze exponențierea într-un câmp finit (sau pe o curbă eliptică), adică pentru a calcula logaritmul discret , Eva nu poate afla, prin urmare nu poate calcula g ab [mod p ].
În descrierea de mai sus, Alice și Bob lucrează în câmpul finit Z / p Z , vor schimba numerele modulo p . În general vorbind, schimbul de chei Diffie-Hellman se generalizează la orice grup ciclic finit (în loc să cadă de acord asupra unui număr prim p, sunt de acord asupra unui grup finit). Acest grup finit poate fi un câmp finit , din care utilizează doar înmulțirea sau o curbă eliptică .
În practică, putem lua un prim Sophie Germain p (astfel încât q = 2p + 1 prim prea) de dimensiuni mari și un generator g în Z / pZ (g este deci prim cu p-1).
Metoda folosește noțiunea de grup , de exemplu grupul multiplicativ al numărului întreg modulo p , unde p este un număr prim: în acest caz, operațiile matematice (înmulțire, putere, diviziune) sunt efectuate modulo p, adică - să spunem de păstrând doar restul diviziunii euclidiene cu p. Deoarece grupurile au proprietatea asociativității , egalitatea ( g b ) a = ( g a ) b este valabilă și ambele părți obțin într-adevăr aceeași cheie secretă.
Securitatea acestui protocol rezidă în dificultatea problemei logaritmului discret: pentru ca Eva să găsească g ab din g a și g b , ea trebuie să ridice una sau alta la puterea b sau respectiv la puterea a . Dar deducerea a (resp. B ) din g a (resp. G b ) este o problemă pe care nu o putem rezolva eficient în cazul general. Prin urmare, Eva nu poate (din punct de vedere computerizat) să deducă din informațiile g a , g b , g și p , valoarea g ab .
Cu toate acestea, grupul de pornire trebuie să fie bine ales, iar numerele utilizate trebuie să fie suficient de mari, de exemplu pentru a evita un atac exhaustiv de căutare . În prezent, sunt utilizate în general numere prime p de dimensiunea 2048 biți (de ordinul a 600 de cifre în scriere zecimală), pentru care rezoluția logaritmului discret nu este considerată fezabilă. Dacă ar apărea o soluție practică pentru rezolvarea unui logaritm discret, ar putea cădea alte sisteme criptografice , în special sistemul ElGamal , care se bazează pe același principiu.
Acest protocol este vulnerabil la „atacul om-în-mijloc ”, care implică un atacator capabil să citească și să modifice toate mesajele schimbate între Alice și Bob.
Acest atac se bazează pe interceptarea lui g a și g b , ceea ce este ușor, deoarece acestea sunt schimbate în clar; elementul g fiind presupus a fi cunoscut de toți atacatorii. Pentru a găsi numerele a și b și astfel să întrerupă complet schimbul, ar fi necesar să se calculeze logaritmul discret de g a și g b , care este imposibilă în practică.
Dar un atacator se poate așeza între Alice și Bob, poate intercepta cheia g a trimisă de Alice și îi trimite lui Bob o altă cheie g a ' , pretinzând că este Alice. La fel, el poate înlocui cheia g b trimisă de Bob lui Alice cu o cheie g b ' , pretinzând că este Bob. Atacatorul comunică astfel cu Alice folosind cheia partajată g ab ' și comunică cu Bob folosind cheia partajată g a'b , Alice și Bob cred că comunică direct. Aceasta se numește „atac om-în-mijloc”.
Alice și Bob cred că au schimbat o cheie secretă atunci când în realitate au schimbat fiecare o cheie secretă cu atacatorul, omul din mijloc.
Soluția clasică pentru acest atac este de a semna schimburi de valori mobiliare utilizând o pereche de chei asimetrice certificată de o terță parte de încredere sau ale cărei jumătăți publice au fost schimbate anterior de ambii participanți.
Alice poate fi astfel asigurată că cheia pe care o primește vine de fapt de la Bob, și invers pentru Bob.