Przejdź do treściHisnLabs
← Kryptografia, na której możesz polegać

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ędzieCo gwarantujeCzego nie gwarantuje
Szyfrowanie symetrycznePoufność, jeśli współdzielony klucz pozostaje tajnyBezpiecznego sposobu na wymianę tego klucza w pierwszej kolejności
Szyfrowanie asymetryczneSposó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ótuIntegralność: dowód, że dane nie zostały zmienione, oraz sposób sprawdzania sekretów bez ich przechowywaniaPoufnoś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. 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. 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. 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. 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.

Źródła

Zastosuj to na swoim Macu

Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.

Pobierz na Maca Dokumentacja