Krzywa eliptyczna Diffiego-Hellmana

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Krzywa eliptyczna Diffiego–Hellmana (ang.Elliptic curve Diffie–Hellman – ECDH) jest anonimowym protokołem uzganiania kluczy. Pozwala on obu stronom (gdzie każda z nich posiada parę kluczy: prywatnego i publicznego, opartych na krzywych eliptycznych) na przesyłanie danych niejawnych poprzez niezabezpieczony kanał[1][2][3]. Te dane mogą zostać bezpośrednio użyte jako klucz, lub też można wydzielić z nich inne klucze. Mogą one następnie zostać użyte do odszyfrowania kolejnych komunikacji za pomocą Algorytmu symetrycznego. Jest to odmiana Protokołu Diffiego-Hellmana wykorzystująca Kryptografię krzywych eliptycznych.

Protokół ustanawiania Kluczy[edytuj]

Przypuśćmy, że Alicja chce ustanowić klucz, który będzie udostępniony Bobowi, lecz komunikacja na jedynym dostępnym kanale może być podsłuchana przez osobę trzecią. Początkowo, należy uzgodnić główne parametry (w zależności od przypadku, może to być zbiór lub ) . Ponadto, każda strona musi posiada parę kluczy którą można zastosować w Kryptografii krzywych eliptycznych, składającą się z klucza prywatnego (losowo wybrana liczba całkowita z przedziału ) oraz klucza publicznego (gdzie ). Niech Alicja posiada parę kluczy a Bob posiada parę . Przed wykonaniem protokołu, każda ze stron musi znać klucz publiczny tej drugiej.

Alicja oblicza . Bob oblicza . Udostępnione tajne dane to . Większość standaryzowanych protokołów bazujących na ECDH uzyskiwało klucz symetryczny z za pomocą niektórych odmian funkcji skrótu.

Udostępnione tajne dane, obliczone przez przez obie strony są zgodne, ponieważ .

Jedyną informacją o prywatnym kluczu Alicji jest jej klucz publiczny. Zatem nikt poza Alicją nie może obliczyć jej klucza prywatnego, o ile inna strona nie rozwiąże Logarytmu dyskretnego krzywej eliptycznej. Klucz prywatny Boba jest zabezpieczony analogicznie. Nikt – poza Alicją lub Bobem – nie odszyfruje udostępnionych pomiędzy nimi danych, o ile intruz nie rozwiąże tzw. problemu Diffiego–Hellmana.

Klucze publiczne są albo statyczne (i zaufane, np. poprzez certyfikat) albo efemeryczne (ECDHE). Tego typu klucze są tymczasowe i nie zawsze następuje ich uwierzytelnienie. Jeśli więc ten proces jest pożądany, zapewnienie autentyczności musi zostać uzsykane innymi środkami. Uwierzytelnienie jest niezbędne w celu uniknięcia ataków typu man in the middle. Jeżeli jeden z kluczy publicznych – Alicji, lub Boba – jest statyczny, wówczas wspomniane ataki zostaną udaremnione. W przeciwieństwie do innych zaawansowanych właściwości zabezpieczających, statyczne klucze publiczne nie zapewniają ani Utajnienia przekazywania ani odporności na ataki bazujące na wiarygodność klucza. Właściciele statycznych kluczy prywatnych powinni dokonywać walidacji kluczy publicznych innych stron, a także zastosować bezpieczną funkcję wyprowadzania klucza w stosunku do "surowych" danych Diffiego–Hellmana. Wówczas można uniknąć przecieku informacji o statycznym kluczu prywatnym.

O ile udostępnione tajne dane mogą być używane bezpośrednio w roli klucza, często pożądane jest stosowanie na nich funkcji skrótu w celu usunięcia tzw. słabych bitów, występujących w Protokole Diffiego-Hellmana[4]

Przypisy