Strona główna Kryptografia Wymiana kluczy RSA

🔑 Wymiana kluczy RSA

Przejdź przez RSA krok po kroku: wybierz dwie liczby pierwsze, oblicz n i φ(n), znajdź e oraz d. Zobacz szyfrowanie i deszyfrowanie wiadomości parą kluczy publiczny/prywatny.

Kryptografia2DŁatwy60 FPS
rsa-encryption ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O wymianie kluczy RSA

Ta symulacja krok po kroku przedstawia kryptosystem klucza publicznego RSA. Wybierasz dwie różne liczby pierwsze p i q, a symulacja oblicza moduł n = p×q oraz funkcję Eulera φ(n) = (p−1)(q−1). Następnie wypisuje prawidłowe wykładniki publiczne e, które są względnie pierwsze z φ(n), wyprowadza wykładnik prywatny d jako odwrotność modularną e⁻¹ mod φ(n) za pomocą rozszerzonego algorytmu Euklidesa i pozwala zaszyfrować oraz odszyfrować liczbę.

Rozwijane listy p i q wybierają liczby pierwsze (od 2 do 97), przycisk Oblicz klucze przelicza wszystko od nowa, a przełączniki e pozwalają wybrać prawidłowy wykładnik publiczny. Szyfrowanie wykorzystuje C = Me mod n, a deszyfrowanie M = Cd mod n, oba za pomocą szybkiego potęgowania modularnego. RSA stanowi podstawę HTTPS, podpisów cyfrowych i bezpiecznej poczty elektronicznej, a rzeczywiste klucze wykorzystują liczby pierwsze o setkach cyfr.

Najczęściej zadawane pytania

Co pokazuje ta symulacja?

Pełny przepływ RSA na małych, czytelnych liczbach: generowanie kluczy z dwóch liczb pierwszych, wybór wykładnika publicznego, wyprowadzenie wykładnika prywatnego, a następnie szyfrowanie i odszyfrowanie wiadomości. Każdy wzór i wartość pośrednia są pokazane, dzięki czemu matematyka pozostaje przejrzysta.

Jak faktycznie generowane są klucze?

Z wybranych liczb pierwszych p i q oblicza n = p×q oraz φ(n) = (p−1)(q−1). Wybierasz wykładnik publiczny e względnie pierwszy z φ(n), a symulator znajduje wykładnik prywatny d spełniający d×e ≡ 1 (mod φ(n)) za pomocą rozszerzonego algorytmu Euklidesa.

Co robią elementy sterujące?

Listy p i q ustawiają dwie liczby pierwsze z zakresu 2–97, a Oblicz klucze przelicza moduł, funkcję Eulera i wykładniki. Przełączniki e pozwalają wybrać prawidłowy wykładnik publiczny, a pole wiadomości pozwala wpisać liczbę całkowitą M do zaszyfrowania i odszyfrowania.

Jaki jest wzór szyfrowania?

Szyfrowanie oblicza szyfrogram jako C = M^e mod n, gdzie M to wiadomość, e wykładnik publiczny, a n moduł. Odszyfrowanie odwraca to za pomocą M = C^d mod n, wykorzystując wykładnik prywatny d. Oba wykorzystują potęgowanie modularne, zaimplementowane tutaj z użyciem BigInt, aby uniknąć przepełnienia.

Dlaczego e musi być względnie pierwsze z φ(n)?

Wykładnik publiczny e musi spełniać NWD(e, φ(n)) = 1, aby istniała odwrotność modularna d. Bez względnej pierwszości nie istnieje unikalne d, a odszyfrowanie zawiodłoby. Symulacja oferuje tylko wartości e spełniające ten warunek.

Dlaczego wiadomość M musi być mniejsza niż n?

RSA działa w arytmetyce modulo n, więc każda wiadomość musi być liczbą całkowitą w zakresie 0 ≤ M < n, aby dało się ją jednoznacznie odzyskać. Gdyby M było równe lub większe od n, operacja modulo mapowałaby różne wiadomości na tę samą wartość i odszyfrowanie nie zwróciłoby oryginału.

Czy to prawdziwe RSA czy uproszczona wersja?

Algorytm to prawdziwe RSA: te same równania generowania kluczy, szyfrowania i odszyfrowania używane w produkcji. Jedynym uproszczeniem jest skala — prawdziwe RSA wykorzystuje liczby pierwsze o setkach cyfr (klucze 2048-bitowe lub większe), podczas gdy tutaj małe liczby pierwsze utrzymują czytelność każdego kroku.

Dlaczego RSA uważane jest za bezpieczne?

Jego bezpieczeństwo opiera się na trudności rozłożenia n z powrotem na p i q. Obliczenie φ(n), a więc i d, jest łatwe, jeśli znasz liczby pierwsze, ale uważane za niewykonalne, jeśli znasz tylko n. Przy wystarczająco dużych kluczach żaden znany algorytm klasyczny nie potrafi rozłożyć n w rozsądnym czasie.

Dlaczego odszyfrowanie zwraca oryginalną wiadomość?

Ponieważ d jest odwrotnością modularną e, podniesienie szyfrogramu do potęgi d odwraca podniesienie wiadomości do potęgi e. Zgodnie z twierdzeniem Eulera, M^(e×d) ≡ M (mod n), więc (M^e)^d mod n dokładnie odzyskuje M. Symulacja weryfikuje tę zgodność.

Gdzie RSA jest wykorzystywane w praktyce?

RSA zabezpiecza połączenia HTTPS, podpisuje oprogramowanie i certyfikaty, chroni pocztę elektroniczną standardami takimi jak PGP i stanowi podstawę wielu protokołów wymiany kluczy i uwierzytelniania. Często służy do wymiany symetrycznego klucza sesji, który następnie efektywniej szyfruje większość danych.

Czy komputer kwantowy mógłby złamać RSA?

W zasadzie tak. Algorytm Shora potrafi efektywnie rozłożyć duże liczby całkowite na czynniki na wystarczająco potężnym komputerze kwantowym, co złamałoby RSA. Dlatego badacze rozwijają kryptografię postkwantową, choć obecnie nie istnieje maszyna kwantowa wystarczająco duża, by zagrozić prawdziwym kluczom.

Podobne symulacje