Szyfr RSA
Jest to, tak jak szyfr plecakowy, szyfr asymetryczny.
Oprócz tego warto zobaczyć:
Małe twierdzenie Fermata
Jeśli jest liczbą pierwszą, to dla dowolnej liczby całkowitej liczba jest podzielna przez .
Wnioski:
Generowanie kluczy
W przypadku RSA, każda para kluczy posiada dwie liczby:
- Klucz publiczny
- Klucz prywatny
Gdzie od encryption a od decryption.
W celu wygenerowania kluczy potrzebujemy pary dwóch liczb pierwszych oraz .
Niech a
- Wyznaczamy i
- Obliczamy
- Obliczamy
- Wyznaczamy takie , które oraz , np.
- Wyznaczamy takie , które , np.
- Definiujemy parę kluczy asymetrycznych - publiczny: - prywatny:
- Usuwamy wszystko to czego użyliśmy do stworzenia kluczy by nie dało ich się odtworzyć, tzn.
Szyfrowanie
Szyfrowanie polega na podstawieniu wartości jawnej do następującego wzoru:
Przykład szyfrowania
Deszyfrowanie
Deszyfrowanie polega podobnemu wzorowi co przy okazji szyfrowania, jednak zamiast podstawiamy
Jak obliczyć d?
Liczymy , podobnie jak z plecakowym (dla którego liczyliśmy )
Przykład obliczania d
Bezpieczeństwo
Dlaczego RSA jest skutecznym algorytmem?
- Próba odczytania wiadomości wymaga znalezienia
- Aby znaleźć trzeba znaleźć i
- Liczby i są jednoznacznym wynikiem faktoryzacji

Przykład użycia RSA
Więc co tu się dzieje? Chcemy wysłać odbiorcy wiadomość, ale RSA nie jest najszybszym algorytmem, a szyfrowanie całej wiadomości może trochę potrwać.
W tym celu:
- Pobieramy od odbiorcy jego klucz publiczny do RSA
- Wybieramy jakiś symetryczny szyfr (który po prostu jest dużo szybszy od asymetrycznego RSA)
- Szyfrujemy naszą wiadomość tym szyfrem symetrycznym
- Kluczem RSA szyfrujemy nasz klucz symetryczny
- Wysyłamy zaszyfrowaną wiadomość i zaszyfrowany klucz symetryczny
- Odbiorca odszyfrowuje klucz symetryczny swoim kluczem prywatnym
- Odszyfrowanym kluczem symetrycznym odszyfrowuje wiadomość
