0Pricing
Cryptology Academy · Lekcja

Matematyka szyfrowania i deszyfrowania RSA

Zastosować modularne potęgowanie do szyfrowania i odszyfrowywania wiadomości

Matematyka szyfrowania i deszyfrowania RSA to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 3 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

Po wygenerowaniu kluczy RSA możemy ich teraz użyć. Szyfrowanie i odszyfrowywanie to potęgowanie modularne — łatwe do obliczenia, ale niezwykle trudne do odwrócenia bez klucza prywatnego.

Szyfrowanie podręcznikowym RSA

Szyfrowanie wiadomości M (jako liczby całkowitej) kluczem publicznym (e, n): C = M^e mod n Przykład: M=42, e=17, n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

Odszyfrowywanie podręcznikowego RSA

Odszyfrowywanie szyfrogramu C kluczem prywatnym (d, n): M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

Dlaczego to działa: twierdzenie Eulera

C^d mod n = (M^e)^d mod n = M^(ed) mod n. Ponieważ ed ≡ 1 (mod φ(n)), M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M.

Algorytm podnoszenia do kwadratu i mnożenia

Naiwne obliczenie M^e wymagałoby e mnożeń. Algorytm podnoszenia do kwadratu i mnożenia zmniejsza tę liczbę do O(log e) mnożeń: pow(base, exp, mod) in Python uses this automatically.

Ograniczenie rozmiaru wiadomości

Podręcznikowe RSA wymaga, aby M < n. W przypadku RSA-2048 wartość M może mieć najwyżej 256 bajtów. To wystarcza do szyfrowania krótkiego klucza AES, ale nie do bezpośredniego szyfrowania dużych plików.

Dlaczego podręcznikowe RSA jest niebezpieczne

Problemy z surowym RSA: 1. To samo M zawsze daje to samo C (deterministyczność) 2. Małe M przy małym e: C = M^e dosłownie (bez redukcji modularnej) 3. Własność multiplikatywna: Enc(M1)×Enc(M2) = Enc(M1×M2) Schematy wypełniania rozwiązują wszystkie te problemy.

Szyfrowanie RSA w Pythonie (OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

Odszyfrowywanie RSA w Pythonie

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

Schemat hybrydowy RSA + AES

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

Wydajność RSA w liczbach

Szyfrowanie RSA-2048 (kluczem publicznym): około 0,1 ms. Odszyfrowywanie RSA-2048 (kluczem prywatnym): około 1 ms. AES-256-GCM: około 100 MB/s. Szyfrowanie hybrydowe łączy szybkość wymiany kluczy RSA z przepustowością AES dla danych.

Szybkie sprawdzenie

Korzystając z podręcznikowego RSA dla e=3 i n=33: jaki jest wynik szyfrowania M=5?

Podsumowanie

Matematyka szyfrowania i odszyfrowywania RSA jest już jasna. Następnie zobaczymy, jak RSA chroni HTTPS, SSH i podpisywanie kodu w rzeczywistych systemach.

Często zadawane pytania

Czy lekcja „Matematyka szyfrowania i deszyfrowania RSA” jest bezpłatna?

Tak — pełny tekst „Matematyka szyfrowania i deszyfrowania RSA” 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 szyfrowania i deszyfrowania RSA”?

Zastosować modularne potęgowanie do szyfrowania i odszyfrowywania wiadomości Ć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 3 z 4.

Ile czasu zajmuje lekcja „Matematyka szyfrowania i deszyfrowania RSA”?

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