0Pricing
Cryptology Academy · Lekcja

Matematyka wymiany kluczy Diffiego-Hellmana

Prześledzić protokół DH i założenie trudności problemu logarytmu dyskretnego

Matematyka wymiany kluczy Diffiego-Hellmana to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

W tej lekcji prześledzimy wymianę kluczy Diffiego-Hellmana krok po kroku — od parametrów publicznych, przez prywatne wykładniki Alice i Boba, aż po wspólny sekret.

Parametry publiczne

Alice i Bob publicznie uzgadniają: - p: dużą liczbę pierwszą (co najmniej 2048 bitów w środowisku produkcyjnym) - g: generator Z*p (zwykle g=2 lub g=5) Eve może znać p i g. Sama ich znajomość NIE łamie protokołu.

Klucz prywatny Alice

Alice generuje losową wartość tajną: a (1 < a < p-1) Alice oblicza swoją wartość publiczną: A = g^a mod p Alice wysyła A do Boba. Eve widzi A. Eve nie może znaleźć a na podstawie A — to problem logarytmu dyskretnego.

Klucz prywatny Boba

Bob generuje losową wartość tajną: b (1 < b < p-1) Bob oblicza swoją wartość publiczną: B = g^b mod p Bob wysyła B do Alice. Eve widzi B. Eve nie może znaleźć b na podstawie B.

Obliczanie wspólnego sekretu

Alice: S = B^a mod p = (g^b)^a mod p = g^(ab) mod p Bob: S = A^b mod p = (g^a)^b mod p = g^(ab) mod p Oboje obliczają tę samą wartość S = g^(ab) mod p, nie przesyłając jej nigdy bezpośrednio.

Przykład z małymi liczbami

p=23, g=5 Alice: a=6, A = 5^6 mod 23 = 8 Bob: b=15, B = 5^15 mod 23 = 19 Alice: S = 19^6 mod 23 = 2 Bob: S = 8^15 mod 23 = 2 ✓ Eve widzi: 23, 5, 8, 19, ale nie może łatwo znaleźć 2.

Problem logarytmu dyskretnego

Mając A = g^a mod p, znajdź a. Dla dużego p (2048 bitów) najlepszy znany algorytm (sito ciała liczbowego) wymaga czasu podwykładniczego, ale wciąż astronomicznie długiego: około 2^100 operacji dla 2048-bitowego DH.

Atak typu man-in-the-middle

DH jest podatny na atak MITM: Mallory przechwytuje A i B, a następnie podstawia własne wartości. Ustanawia jeden sekret z Alice i inny z Bobem. Rozwiązanie: uwierzytelnić wymianę (za pomocą certyfikatów lub wcześniej uzgodnionego uwierzytelniania).

Bezpieczne liczby pierwsze

Liczbę p trzeba wybrać starannie. Bezpieczna liczba pierwsza p=2q+1 (gdzie q jest liczbą pierwszą) gwarantuje, że grupa DH nie zawiera małych podgrup, które można wykorzystać w atakach na małe podgrupy. NIST określa zatwierdzone grupy DH.

Rozmiary parametrów DH

Zalecenia NIST: - 2048 bitów: minimum dla nowych wdrożeń - 3072 bity: poziom bezpieczeństwa równoważny RSA-3072 - 4096 bitów: wysoki poziom bezpieczeństwa Nigdy nie używaj wcześniej wygenerowanych grup Oakley 1/2 (768/1024 bitów) — zostały złamane przez podmioty państwowe (atak Logjam).

Atak Logjam (2015)

Atak Logjam wykazał, że wiele serwerów TLS używało tej samej 1024-bitowej liczby pierwszej DH. Podmioty państwowe mogły wstępnie obliczyć logarytm dyskretny dla tych konkretnych liczb pierwszych, co umożliwiało odszyfrowywanie w czasie rzeczywistym. Rozwiązanie: używać unikalnych liczb pierwszych o długości co najmniej 2048 bitów.

Szybki test

W DH z p=23, g=5, a=4 i b=3: jaki jest wspólny sekret?

Podsumowanie

Matematyka wymiany kluczy DH jest już jasna. Następnie zastosujemy tę samą koncepcję do krzywych eliptycznych, uzyskując ECDH — ten sam poziom bezpieczeństwa przy znacznie mniejszych kluczach.

Często zadawane pytania

Czy lekcja „Matematyka wymiany kluczy Diffiego-Hellmana” jest bezpłatna?

Tak — pełny tekst „Matematyka wymiany kluczy Diffiego-Hellmana” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Matematyka wymiany kluczy Diffiego-Hellmana”?

Prześledzić protokół DH i założenie trudności problemu logarytmu dyskretnego Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Matematyka wymiany kluczy Diffiego-Hellmana”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Problem dystrybucji kluczy
  2. Matematyka wymiany kluczy Diffiego-Hellmana
  3. ECDH: krzywe eliptyczne do wymiany kluczy
  4. Forward secrecy i efemeryczna wymiana kluczy
← Powrót do Cryptology Academy