Blog - Jak działa szyfrowanie asymetryczne
Klucz publiczny i prywatny, RSA w skrócie, podpis cyfrowy, wymiana kluczy i typowe pułapki implementacji.
- Autor
- 2code
- Opublikowano
- Tagi
- kryptografia
- RSA
- security
Szyfrowanie asymetryczne (public-key cryptography) opiera się na parze kluczy: publicznym (można udostępniać) i prywatnym (trzymamy w tajemnicy). Operacja łatwa w jedną stronę jest praktycznie nieodwracalna bez sekretu.
Intuicja
Wyobraź skrzynkę z dwoma zamkami:
- każdy może wrzucić list, zamykając kluczem publicznym,
- otworzyć skrzynkę potrafi tylko właściciel klucza prywatnego.
Matematycznie mamy funkcję jednokierunkową z „trapdoor”: łatwe, trudne — chyba że znasz sekret .
RSA w skrócie
Wybieramy duże liczby pierwsze , , . Publiczny wykładnik (np. ), prywatny taki, że:
Szyfrowanie wiadomości (po dopełnieniu / padding):
Odszyfrowanie:
Bezpieczeństwo opiera się m.in. na trudności faktoryzacji .
Dwa główne zastosowania
…
…
- Poufność — szyfrujemy kluczem publicznym odbiorcy.
- Podpis cyfrowy — podpisujemy kluczem prywatnym; każdy weryfikuje kluczem publicznym.
W TLS/HTTPS asymetria zwykle nie szyfruje całego ruchu: służy do uwierzytelnienia i uzgodnienia klucza sesji (AES itd.), bo symetria jest tańsza.
ECDH — wymiana sekretu
Przy krzywych eliptycznych strony ustalają wspólny sekret bez przesyłania go wprost. Alice ma , Bob , punkt bazowy :
Obserwator widzi i , ale bez logarytmu dyskretnego nie odzyska .
Typowe pułapki
- Brak paddingu (np. surowe RSA) — podatne na ataki; używaj OAEP / PSS.
- Mieszanie ról kluczy — klucz do podpisu ≠ klucz do szyfrowania (w praktyce osobne pary / certyfikaty).
- Słaba entropia przy generowaniu lub seedzie RNG.
- „Security through obscurity” — algorytm może być publiczny; sekret to klucz prywatny.
Wniosek
Asymetria rozwiązuje dystrybucję zaufania (kto jest kim, jak bezpiecznie zacząć rozmowę), a niekoniecznie masowe szyfrowanie danych. W systemach produkcyjnych zwykle: asymetria na starcie + symetria w sesji.