0Pricing
Cryptology Academy · Lekcja

Generowanie kluczy RSA krok po kroku

Generuj p, q, n, e i d oraz poznaj rolę każdego parametru.

Generowanie kluczy RSA krok po kroku 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 wygenerujemy parę kluczy RSA od podstaw, przechodząc przez każdy etap matematyczny — od wyboru liczb pierwszych po parametry klucza.

Krok 1: Wybór dwóch dużych liczb pierwszych

Należy wybrać duże losowe liczby pierwsze p i q. W środowisku produkcyjnym: p,q ≥ 2^1023 (dla RSA o długości 2048 bitów). W celach demonstracyjnych: p=61, q=53.

Krok 2: Obliczanie modułu

n = p × q = 61 × 53 = 3233. Moduł n jest elementem publicznym. W RSA-2048 używa się n ≈ 2^2048. Faktoryzacja n dla dużych wartości jest obliczeniowo niewykonalna.

Krok 3: Obliczanie funkcji Eulera

φ(n) = (p-1)(q-1) = 60 × 52 = 3120. Wartość ta jest utrzymywana w tajemnicy po wygenerowaniu klucza — razem z faktoryzacją umożliwia obliczenie klucza prywatnego.

Krok 4: Wybór wykładnika publicznego e

Należy wybrać e tak, aby 1 < e < φ(n) oraz GCD(e, φ(n)) = 1. Standardowy wybór: e = 65537 (0x10001). Jest to liczba pierwsza o małej wadze Hamminga (co przyspiesza szyfrowanie) i jest szeroko obsługiwana.

Krok 5: Obliczanie wykładnika prywatnego d

d = e^(-1) mod φ(n): należy znaleźć d takie, że e×d ≡ 1 (mod 3120). Dla e=17, φ=3120: d=2753 (weryfikacja: 17×2753 = 46801 = 15×3120 + 1 ✓). Python: d = pow(e, -1, phi_n)

Para kluczy

Klucz publiczny: (e=17, n=3233) — można udostępniać Klucz prywatny: (d=2753, n=3233) — tajny Można swobodnie udostępniać (e, n). Wartość d należy chronić za wszelką cenę. Po wygenerowaniu klucza nigdy nie należy ujawniać p, q ani φ(n).

Długości kluczy w praktyce

RSA-1024: przestarzały od 2010 roku. RSA-2048: minimalnie zalecana długość. RSA-4096: wysoki poziom bezpieczeństwa, ale szyfrowanie jest 4 razy wolniejsze. Większość certyfikatów TLS korzysta z RSA-2048 lub ECDSA-256 (równoważny poziom bezpieczeństwa, ale znacznie większa szybkość).

Optymalizacja CRT

Chińskie twierdzenie o resztach (CRT) przyspiesza odszyfrowywanie RSA około 4 razy. Klucz prywatny należy przechowywać jako (p, q, dp, dq, qInv), a nie tylko jako d. Obliczenia wykonuje się osobno modulo p i modulo q, a następnie łączy wyniki.

Generowanie kluczy w Pythonie

from cryptography.hazmat.primitives.asymmetric import rsa private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) public_key = private_key.public_key()

Serializacja kluczy

from cryptography.hazmat.primitives import serialization pem = private_key.private_bytes( serialization.Encoding.PEM, serialization.PrivateFormat.PKCS8, serialization.BestAvailableEncryption(b'passphrase') )

Szybkie sprawdzenie

Podczas generowania klucza RSA dla p=7 i q=11: jaka jest prawidłowa wartość n?

Podsumowanie

Można już generować klucze RSA od podstaw. Następnie użyjemy tych kluczy do szyfrowania i odszyfrowywania wiadomości za pomocą potęgowania modularnego.

Często zadawane pytania

Czy lekcja „Generowanie kluczy RSA krok po kroku” jest bezpłatna?

Tak — pełny tekst „Generowanie kluczy RSA krok po kroku” 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 „Generowanie kluczy RSA krok po kroku”?

Generuj p, q, n, e i d oraz poznaj rolę każdego parametru. Ć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 „Generowanie kluczy RSA krok po kroku”?

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. Koncepcje kryptografii klucza publicznego
  2. Generowanie kluczy RSA krok po kroku
  3. Matematyka szyfrowania i deszyfrowania RSA
  4. Zastosowania RSA w praktyce i rozmiary kluczy
← Powrót do Cryptology Academy