Wprowadzenie do algorytmu wymiany kluczy Diffie Hellman

Algorytm wymiany kluczy Diffie Hellman jest jedną z pierwszych praktycznych implementacji wymiany kluczy publicznych w dziedzinie kryptografii. Algorytm wymiany kluczy Diffiego Hellmana jest jednym ze sposobów generowania klucza wspólnego i dzielenia się tajnym kodem między dwiema stronami w taki sposób, że możemy być pewni, że nikt nie będzie w stanie wtargnąć w komunikację. Należy pamiętać o jednym ważnym fakcie na temat algorytmu, że nie udostępniamy informacji w ramach wymiany, zamiast tego tworzymy klucz, który można później wykorzystać do wymiany informacji. Ponieważ ta technika pozwala nam utworzyć klucz szyfrujący z drugą stroną, możemy zacząć szyfrować bieżące i odbierać wiadomości. Jeden ustanowiony, nawet jeśli ktoś rejestruje dane transmisji, nie ma możliwości, aby dane zostały odszyfrowane.

Algorytm wymiany kluczy Diffie Hellman do generowania kluczy

Algorytm oparty jest na kryptografii krzywych eliptycznych, która jest metodą wykonywania kryptografii klucza publicznego opartej na strukturze algebry krzywych eliptycznych na polach skończonych. DH używa również funkcji zapadni, podobnie jak wiele innych sposobów wykonywania kryptografii z kluczem publicznym. Prosty pomysł zrozumienia algorytmu DH jest następujący

1. Pierwsza strona wybiera dwie liczby pierwsze gip i przekazuje je drugiej stronie.

2. Druga strona wybiera następnie tajny numer (nazwijmy go a), a następnie oblicza mod mod p i wysyła wynik z powrotem do pierwszej strony, nazwijmy wynik A. Pamiętaj, że tajny numer nie jest wysyłany każdemu, tylko wynik jest.

3. Następnie pierwsza strona robi to samo, wybiera tajną liczbę b i oblicza wynik B podobny do

4. krok 2. Następnie ten wynik jest wysyłany do drugiej strony.

5. Druga strona bierze otrzymaną liczbę B i oblicza B mod p

6. Pierwsza strona bierze otrzymaną liczbę A i oblicza A b mod p

W tym momencie staje się interesująca, odpowiedź w kroku 5 jest taka sama jak odpowiedź w kroku 4. Oznacza to, że obie strony otrzymają tę samą odpowiedź bez względu na kolejność potęgowania.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

Liczba, którą znaleźliśmy w krokach 4 i 5, zostanie uznana za wspólny tajny klucz. Teraz ten klucz może być używany do szyfrowania danych, które będą przesyłane, takich jak blowfish, AES itp.

Algorytm Diffiego Hellmana

1. klucz = (Y A ) XB mod q -> to jest to samo, co obliczone przez B

2. Globalne elementy publiczne

  • q: q jest liczbą pierwszą
  • a: a <q i α jest pierwotnym pierwiastkiem q

3. Generowanie klucza dla użytkownika A

  • Wybierz klucz prywatny X A Tutaj, X A

Teraz obliczenie klucza publicznego Y A Y A = mod XA q

4. Generowanie klucza dla użytkownika B

  • Wybierz klucz prywatny X B Tutaj, X B
  • Teraz obliczenie klucza publicznego Y B Y B = a mod Xb q

5. Obliczenie tajnego klucza przez A.

  • klawisz = (Y B ) XA mod q

6. Obliczanie tajnego klucza przez B.

  • klawisz = (Y A ) XB mod q

Przykład

1. Alice i Bob używają numerów publicznych P = 23, G = 5

2. Alice wybrała klucz prywatny a = 4, a Bob wybrał b = 3 jako klucz prywatny

3. Zarówno Alice, jak i Bob obliczają teraz wartość xiy w następujący sposób:

  • Alice: x = (5 4 mod 23) = 4
  • Bob: y = (5 3 mod 23) = 10

4. Teraz zarówno Alice, jak i Bob wymieniają się numerami publicznymi.

5. Alice i Bob obliczają teraz klucze symetryczne

  • Alice: k a = y a mod p = 10 4 mod 23 = 18
  • Bob: k b = x b mod p = 4 3 mod 23 = 18

6. 18 to wspólny tajny klucz.

Wykorzystuje algorytm Diffie Hellman

Oprócz korzystania z algorytmu do generowania kluczy publicznych istnieją jeszcze inne miejsca, w których można zastosować algorytm DH:

  • Szyfrowanie: Do szyfrowania można użyć algorytmu wymiany kluczy Diffie Hellman, jednym z pierwszych schematów było szyfrowanie ElGamal. Jednym z jego nowoczesnych przykładów jest Schemat zintegrowanego szyfrowania, który zapewnia bezpieczeństwo przeciwko wybranym atakom zwykłego tekstu i atakom ze schowka.
  • Umowa uwierzytelniona hasłem : gdy dwie strony współużytkują hasło, można użyć umowy klucza uwierzytelnionego hasłem, aby zapobiec atakowi Man in the middle. Ta kluczowa umowa może mieć formę Diffie-Hellman. Protokół bezpiecznego zdalnego hasła jest dobrym przykładem opartym na tej technice.
  • Forward Secrecy: Protokoły oparte na tajemnicy forward mogą generować nowe pary kluczy dla każdej nowej sesji i mogą automatycznie odrzucać je pod koniec, gdy sesja jest również zakończona. W tych przekazywanych protokołach tajności najczęściej używana jest wymiana kluczy Diffie Hellman.

Zalety algorytmu Diffie Hellman

  • Nadawca i odbiorca nie potrzebują wzajemnej wiedzy.
  • Po wymianie kluczy transmisja danych może odbywać się za pośrednictwem niezabezpieczonego kanału.
  • Udostępnianie tajnego klucza jest bezpieczne.

Wady algorytmu Diffie Hellman

  • Algorytmu nie można pozwać za żadną asymetryczną wymianę klucza.
  • Podobnie nie można go używać do podpisywania podpisów cyfrowych.
  • Ponieważ nie uwierzytelnia żadnej strony w transmisji, wymiana kluczy Diffie Hellman jest podatna na atak man-in-the-middle.

Wniosek

Ze względu na swoje zalety wymiana kluczy Diffie Hellman okazała się przydatnym systemem wymiany kluczy. Chociaż naprawdę trudno jest osobie szpiegującej sieć odszyfrować dane i zdobyć klucze, nadal jest możliwe, jeśli wygenerowane liczby nie są całkowicie losowe. Ponadto system wymiany kluczy umożliwia wykonanie ataku w środku człowieka, aby tego uniknąć, obie strony powinny być bardzo ostrożne na początku wymiany.

Polecany artykuł

Jest to przewodnik po algorytmie wymiany kluczy Diffie Hellman. Tutaj omawiamy zastosowania, różne algorytmy, zalety i wady. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Algorytmy uczenia maszynowego
  2. Algorytm szyfrowania
  3. Algorytmy klasyfikacji
  4. Rodzaje algorytmów