Lekcja 1 z 4 · 9 min
Szyfrowanie symetryczne, szyfrowanie asymetryczne i funkcje skrótu
Trzy różne narzędzia kryptograficzne gwarantują trzy różne rzeczy. Mylenie ich to najczęstsze źródło fałszywego poczucia bezpieczeństwa.
Ludzie często mówią „to jest zaszyfrowane”, jakby to rozstrzygało kwestię bezpieczeństwa. Nie rozstrzyga, ponieważ szyfrowanie nie jest jedną rzeczą. Ta lekcja omawia trzy elementy składowe stojące za niemal każdym twierdzeniem o cyfrowej ochronie: szyfrowanie symetryczne, szyfrowanie asymetryczne i funkcje skrótu. Każde gwarantuje coś innego, a wiedza, które z nich jest w grze, mówi, co faktycznie jest chronione.
Szyfrowanie symetryczne: jeden współdzielony klucz
Cloudflare Learning Center opisuje szyfrowanie symetryczne prosto: „istnieje tylko jeden klucz, a wszystkie komunikujące się strony używają tego samego (tajnego) klucza zarówno do szyfrowania, jak i odszyfrowywania”. Advanced Encryption Standard (AES) jest dziś standardowym przykładem, po tym jak zastąpił starszy Data Encryption Standard (DES), którego krótka długość klucza uczyniła go łamalnym metodą brute force. Szyfrowanie symetryczne jest szybkie i to ono faktycznie miesza większość twoich danych, czy to plik na dysku, czy treść strony internetowej wczytywanej przez HTTPS. Jego głównym problemem jest dystrybucja: obie strony potrzebują tego samego tajnego klucza, a dostarczenie go drugiej stronie tak, by nikt inny go nie zobaczył, to dokładnie problem, który rozwiązuje szyfrowanie asymetryczne.
Szyfrowanie asymetryczne: dwa klucze działające jako para
W szyfrowaniu asymetrycznym, czyli szyfrowaniu z kluczem publicznym, istnieją dwa matematycznie powiązane klucze: „jeden klucz służy do szyfrowania, a inny klucz do odszyfrowywania”, według Cloudflare. Klucz szyfrujący można opublikować dla każdego — stąd „klucz publiczny” — podczas gdy pasujący klucz odszyfrowujący pozostaje prywatny. Dane zablokowane kluczem publicznym można odblokować wyłącznie kluczem prywatnym. To właśnie to pozwala dwóm osobom, które nigdy się nie spotkały, uzgodnić wspólny sekret przez otwartą sieć, co dokładnie dzieje się na początku każdego połączenia HTTPS (kolejna lekcja szczegółowo omawia to uzgadnianie). RSA i kryptografia krzywych eliptycznych to popularne algorytmy stojące dziś za tym mechanizmem.
Funkcje skrótu: odcisk palca, a nie zamek
Funkcja skrótu nie jest żadną z powyższych rzeczy: niczego nie zamyka i nie ma klucza, którym można by ją otworzyć. NIST definiuje ją jako funkcję, która „odwzorowuje ciąg bitów o dowolnej długości na ciąg bitów o stałej długości” — mówiąc prościej, zamienia dowolny plik lub wiadomość w krótki odcisk palca o stałym rozmiarze. NIST określa właściwości, jakie musi mieć zatwierdzona funkcja skrótu: musi być obliczeniowo niewykonalne znalezienie danych wejściowych dających określony wynik (jednokierunkowość) oraz niewykonalne znalezienie dwóch różnych danych wejściowych dających ten sam wynik (odporność na kolizje). Dlatego funkcje skrótu sprawdzają integralność — czy ten plik się zmienił? — i chronią przechowywane hasła: usługa może sprawdzić hasło względem przechowywanego skrótu, nigdy nie przechowując samego hasła. Starsze funkcje skrótu, takie jak MD5 i SHA-1, nie są już uznawane za bezpieczne wobec zdeterminowanego atakującego, dlatego nowoczesne systemy używają zamiast nich rodzin SHA-2 lub SHA-3.
Co każde z nich faktycznie gwarantuje
| Narzędzie | Co gwarantuje | Czego nie gwarantuje |
|---|---|---|
| Szyfrowanie symetryczne | Poufność, jeśli współdzielony klucz pozostaje tajny | Bezpiecznego sposobu na wymianę tego klucza w pierwszej kolejności |
| Szyfrowanie asymetryczne | Sposób na wymianę sekretu i weryfikację tożsamości (zobacz kolejną lekcję o podpisach) | Szybkości; jest znacznie wolniejsze niż szyfrowanie symetryczne dla dużych ilości danych |
| Funkcje skrótu | Integralność: dowód, że dane nie zostały zmienione, oraz sposób sprawdzania sekretów bez ich przechowywania | Poufności; skrót nie jest zaprojektowany do odwracania, ale też nie jest zaprojektowany, by ukrywać rozmiar czy obecność danych |
Jak łączą się w praktyce
Niemal nic nie korzysta tylko z jednego z nich. Typowe bezpieczne połączenie krótko używa szyfrowania asymetrycznego, by uzgodnić wspólny sekret, a potem przechodzi na szybkie szyfrowanie symetryczne dla właściwych danych, podczas gdy funkcja skrótu działa przez cały czas, by upewnić się, że nic wysłanego nie zostało zmienione po drodze. Rozpoznanie tych trzech ról sprawia, że reszta tego kursu — podpisy, certyfikaty, TLS i szyfrowanie end-to-end — ma sens jako kombinacje tego samego niewielkiego zestawu narzędzi, a nie jako osobna magia.
Najważniejsze
- Szyfrowanie symetryczne używa jednego współdzielonego klucza zarówno do szyfrowania, jak i odszyfrowywania; jest szybkie, ale wymaga sposobu na bezpieczne udostępnienie klucza.
- Szyfrowanie asymetryczne używa pary klucza publicznego i prywatnego, rozwiązując problem dystrybucji kluczy, jaki ma szyfrowanie symetryczne.
- Funkcje skrótu tworzą odcisk palca danych o stałym rozmiarze; chronią integralność i przechowywane sekrety, a nie poufność — nie ma klucza, który odblokowałby skrót.
- Prawdziwe systemy łączą wszystkie trzy: szyfrowanie asymetryczne do uzgodnienia sekretu, szyfrowanie symetryczne dla szybkości, funkcje skrótu do wykrywania manipulacji.
- Starsze algorytmy (DES, MD5, SHA-1) mają znane słabości; AES oraz rodziny SHA-2/SHA-3 to obecne standardy.
Sprawdź się
1. Jaka jest cecha definiująca szyfrowanie symetryczne?
- Używa klucza publicznego i prywatnego
- Używa jednego współdzielonego tajnego klucza zarówno do szyfrowania, jak i odszyfrowywania — Dobrze.
- Nie może być używane dla dużych ilości danych
- Nigdy nie wymaga żadnego klucza
Szyfrowanie symetryczne opiera się na jednym współdzielonym kluczu, który obie strony już posiadają; wyzwaniem jest bezpieczna dystrybucja tego klucza.
2. Jaki problem rozwiązuje szyfrowanie asymetryczne, którego szyfrowanie symetryczne nie rozwiąże samo?
- Przyspieszenie szyfrowania
- Umożliwienie dwóm stronom uzgodnienia wspólnego sekretu bez wcześniejszego spotkania — Dobrze.
- Ułatwienie zapamiętywania haseł
- Zapobieganie kiedykolwiek usunięciu danych
Kryptografia klucza publicznego pozwala udostępnić klucz publiczny otwarcie, podczas gdy odszyfrować może tylko pasujący klucz prywatny, umożliwiając bezpieczną wymianę kluczy przez otwartą sieć.
3. Dlaczego funkcji skrótu nie można użyć, by utrzymać wiadomość w tajemnicy?
- Skróty są zawsze zbyt krótkie, by pomieścić wiadomość
- Skrót jest z założenia jednokierunkowy; nie ma klucza, który odwróciłby go z powrotem do oryginalnych danych — Dobrze.
- Funkcje skrótu są nielegalne do użycia w szyfrowaniu
- Skróty działają tylko na obrazach, nie na tekście
Funkcje skrótu są zbudowane tak, że odzyskanie oryginalnych danych wejściowych z wyniku jest obliczeniowo niewykonalne — ta właściwość (jednokierunkowość) czyni je przydatnymi do sprawdzania integralności i przechowywania haseł, a nie do poufności.
4. Która para algorytmów jest uznawana za przestarzałą z powodu znanych słabości?
- AES i RSA
- DES i MD5 — Dobrze.
- SHA-2 i kryptografia krzywych eliptycznych
- TLS i HTTPS
Krótka długość klucza DES i słabości kolizyjne MD5 sprawiają, że nowoczesne systemy używają zamiast nich AES oraz rodzin SHA-2/SHA-3.
Wypróbuj to z FireAI
Zastosuj tę lekcję w praktyce na swoim Macu.
- Głęboka inspekcja, bez odszyfrowywania czegokolwiek — Uzyskaj prawdziwe szczegóły o bezpiecznym połączeniu bez ryzyka, że FireAI kiedykolwiek odczyta jego zawartość.
- Co zostaje na twoim Macu i jedyne przypadki, gdy FireAI łączy się z internetem samodzielnie — Przeczytaj całą listę tego, co wysyła FireAI, zamiast wierzyć firewallowi na słowo.
Źródła
- Cloudflare Learning Center: What is encryption?
- NIST Computer Security Resource Center Glossary: hash function
Zastosuj to na swoim Macu
Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.