Generator pary kluczy RSA — klucz publiczny i prywatny
Generuj parę kluczy RSA (publiczny + prywatny) do szyfrowania asymetrycznego. 1024/2048/4096 bit. PEM format. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator Pary Kluczy RSA – Matematyczne podstawy i rola w kryptografii
Kryptografia asymetryczna stanowi fundament bezpieczeństwa w internecie. Protokół HTTPS zabezpieczający transakcje bankowe, połączenia SSH wykorzystywane do administracji serwerami oraz certyfikaty SSL – wszystkie te technologie opierają się na algorytmach klucza publicznego. Najpopularniejszym, najdłużej stosowanym i najlepiej przetestowanym z nich jest **algorytm RSA** (nazwany od nazwisk twórców: Ronalda Rivesta, Adi Shamira i Leonarda Adlemana, którzy opisali go w 1977 roku). RSA bazuje na trudności obliczeniowej problemu faktoryzacji, czyli rozkładu dużych liczb złożonych na czynniki pierwsze.
Nasz **Generator pary kluczy RSA online** to bezpłatne, działające lokalnie narzędzie. Pozwala ono na błyskawiczne wygenerowanie pary kluczy (klucza publicznego oraz klucza prywatnego) w standardowym formacie PEM (PKCS#1 lub PKCS#8). Dzięki wykorzystaniu WebCrypto API, generowanie kluczy przebiega bezpośrednio w Twojej przeglądarce, co gwarantuje pełną ochronę przed wyciekiem danych do sieci.
Matematyczny algorytm działania RSA
Działanie algorytmu RSA opiera się na arytmetyce modularnej oraz teorii liczb. Oto uproszczony schemat powstawania kluczy:
- Wybiera się dwie bardzo duże, różne liczby pierwsze \( p \) oraz \( q \).
- Oblicza się ich iloczyn: \[ n = p \times q \] Liczba \( n \) (zwana modułem) określa długość klucza (np. 2048 bitów) i jest częścią zarówno klucza publicznego, jak i prywatnego.
- Oblicza się wartość funkcji Eulera (\( \phi \)) dla modułu \( n \): \[ \phi(n) = (p-1) \times (q-1) \]
- Wybiera się liczbę \( e \) (wykładnik publiczny) taką, aby była względnie pierwsza z \( \phi(n) \) (czyli \( \gcd(e, \phi(n)) = 1 \)) oraz spełniała warunek: \( 1 < e < \phi(n) \). Najczęściej stosowaną wartością w praktyce jest liczba \( 65537 \).
- Oblicza się liczbę \( d \) (wykładnik prywatny), która jest odwrotnością modularną liczby \( e \): \[ d \times e \equiv 1 \pmod{\phi(n)} \]
Klucz publiczny składa się z pary liczb \( (e, n) \), natomiast klucz prywatny z pary \( (d, n) \) lub dodatkowych parametrów ułatwiających obliczenia (algorytm chińskiego twierdzenia o resztach - CRT).
Tabela: Długość klucza RSA a poziom bezpieczeństwa
Wraz ze wzrostem mocy obliczeniowej komputerów, krótsze klucze RSA stają się podatne na złamanie. Poniższa tabela przedstawia porównanie długości kluczy:
| Długość klucza (bity) | Poziom bezpieczeństwa | Zalecenie i status zastosowania | Czas generowania online |
|---|---|---|---|
| 1024 bity | Niski (niebezpieczny) | Wycofany. Podatny na ataki przy użyciu zaawansowanych superkomputerów. Nie stosować! | Natychmiastowy (< 50 ms) |
| 2048 bitów | Standardowy (bezpieczny) | Domyślny standard dla większości certyfikatów SSL oraz kluczy SSH. Zapewnia ochronę do ok. 2030 roku. | Bardzo krótki (50 - 200 ms) |
| 4096 bitów | Bardzo wysoki (maksymalne bezpieczeństwo) | Zalecany do długoterminowej ochrony danych, urzędów certyfikacji (CA) i systemów rządowych. | Krótki (200 - 1500 ms) |
Jak krok po kroku wygenerować parę kluczy RSA?
- Wybierz długość klucza: Wybierz poziom bezpieczeństwa (2048 lub 4096 bitów). Długość 4096 bitów oferuje maksymalną ochronę kosztem nieznacznie dłuższego czasu obliczeń.
- Kliknij „Generuj klucze”: Przeglądarka uruchomi wbudowany generator liczb losowych o wysokiej entropii i wyznaczy parametry kryptograficzne.
- Odczytaj wyniki: Otrzymasz dwa bloki danych w formacie tekstowym PEM. Blok zaczynający się od
-----BEGIN PUBLIC KEY-----to Twój klucz publiczny. Blok zaczynający się od-----BEGIN PRIVATE KEY-----to klucz prywatny. - Zapisz pliki: Skopiuj klucze do schowka lub pobierz je jako pliki tekstowe (np.
id_rsa.puborazid_rsa).
Często zadawane pytania (FAQ)
Jaka jest różnica między formatami kluczy PKCS#1 a PKCS#8?
Format PKCS#1 jest specyficznym standardem dla algorytmu RSA (nagłówki zawierają zwykle frazę BEGIN RSA PRIVATE KEY). Z kolei PKCS#8 to nowszy, uniwersalny standard opisywania kluczy prywatnych dla różnych algorytmów kryptograficznych (nagłówek to BEGIN PRIVATE KEY). Nasz generator domyślnie dostarcza klucze w standardowym, szeroko kompatybilnym formacie PKCS#8.
Czy wygenerowane klucze RSA można wykorzystać w protokole SSH?
Tak. Wygenerowane klucze są w pełni kompatybilne z systemem SSH (Secure Shell). Możesz zapisać klucz publiczny na serwerze zdalnym w pliku ~/.ssh/authorized_keys, a klucz prywatny zaimportować w swoim kliencie SSH (np. OpenSSH, PuTTY), co pozwoli na bezpieczne logowanie bez wpisywania hasła.
Czy istnieje możliwość odtworzenia klucza prywatnego na podstawie publicznego?
Teoretycznie tak, ponieważ klucz publiczny i prywatny są powiązane matematycznie. W praktyce wymagałoby to dokonania faktoryzacji liczby \( n \) o długości 2048 lub 4096 bitów na czynniki pierwsze. Dla klucza 2048-bitowego zadanie to wymagałoby pracy najpotężniejszych komputerów świata przez tysiące lat, co czyni ten algorytm praktycznie nie do złamania przy obecnym stanie technologii.
Czy algorytm RSA jest odporny na komputery kwantowe?
Nie. Zastosowanie algorytmu Shora na wystarczająco silnym komputerze kwantowym umożliwiłoby przeprowadzenie faktoryzacji dużych liczb w czasie wielomianowym. Oznacza to, że po wejściu do powszechnego użytku komputerów kwantowych, szyfry RSA oraz ECC zostaną złamane. Z tego powodu już teraz trwają prace nad kryptografią postkwantową (PQC).
Jakie są zalety algorytmu RSA w porównaniu do ECC?
Główną zaletą RSA jest jego ogromna popularność i kompatybilność wsteczna. Niemal każda biblioteka programistyczna, system operacyjny czy urządzenie sieciowe na świecie obsługuje RSA. Algorytm ECC (krzywe eliptyczne) oferuje mniejsze rozmiary kluczy i szybsze operacje, ale w niektórych starszych środowiskach systemowych może nie być w pełni wspierany.