Kryptografia współcześnie podzielona jest dwie główne dziedziny: kryptografię symetryczną i asymetryczną. Podczas gdy szyfrowanie symetryczne często jest wykorzystywane jako synonim dla kryptografii symetrycznej, kryptografia asymetryczna obejmuje dwa podstawowe przypadki użycia: szyfrowanie asymetryczne oraz podpisy cyfrowe.
Biorąc powyższe pod uwagę, podział wygląda następująco
Symetryczna kryptografia kluczy
Szyfrowanie symetryczne
- Kryptografia asymetryczna (inaczej kryptografia klucza publicznego)
Szyfrowanie asymetryczne (inaczej szyfrowanie kluczem publicznym)
Podpisy cyfrowe (mogą obejmować szyfrowanie)
W tym artykule skupimy się na algorytmach szyfrowania symetrycznego i asymetrycznego.
Szyfrowanie symetryczne vs asymetryczne
Algorytmy szyfrowania podobnie jak kryptografia dzielą się na dwie kategorie: algorytmy szyfrowania symetrycznego i algorytmy szyfrowania asymetrycznego. Podstawowa różnica między tymi dwiema metodami szyfrowania polega na tym, że algorytmy szyfrowania symetrycznego opierają się na pojedynczym klucz, podczas gdy szyfrowanie asymetryczne polega na wykorzystaniu dwóch różnych, ale powiązanych ze sobą kluczy. Takie rozróżnienie, choć pozornie proste, najlepiej wyjaśnia różnice funkcjonalne występujące między tymi dwiema formami szyfrowania oraz sposobem ich wykorzystania.
Klucze szyfrujące - jak je rozumieć
Jeśli Patrycja wyśle Marcinowi wiadomość chronioną przez szyfrowanie symetryczne, musi udostępnić mu ten sam klucz, którego użyła do szyfrowania danych, aby Marcin mógł odszyfrować jej wiadomość. Oznacza to, że ktokolwiek, kto przechwyci ten klucz po drodze, może uzyskać dostęp do zaszyfrowanych za jego pomocą informacji.
Jeśli jednak Patrycja zaszyfruje swoją wiadomość asymetrycznie, to wykorzysta do tego celu klucz publiczny Marcina, dzięki czemu Marcin będzie w stanie odszyfrować tak zakodowaną wiadomość za pomocą swojego klucza prywatnego. Co za tym idzie, szyfrowanie asymetryczne zapewnia wyższy poziom bezpieczeństwa, ponieważ nawet jeśli ktoś przechwyci wiadomość wysłaną przez Patrycję do Marcina i znajdzie klucz publiczny Marcina, to i tak nie będzie w stanie odszyfrować tej wiadomości.
Długość kluczy
Inna funkcjonalna różnica występująca pomiędzy szyfrowaniem symetrycznym, a asymetrycznym jest związana z długością kluczy, które są mierzone w bitach. Długość klucza jest bezpośrednio związana z poziomem bezpieczeństwa zapewnianym przez każdy z algorytmów kryptograficznych.
W algorytmach symetrycznych klucze są wybierane losowo, a ich długość zazwyczaj wynosi 128 lub 256 bitów, w zależności od wymaganego poziomu bezpieczeństwa. W przypadku szyfrowania asymetrycznego z kolei, aby szyfrowanie i odszyfrowywanie mogło się odbyć, pomiędzy kluczem publicznym, a prywatnym musi istnieć matematyczna zależność. Oznacza to, że pomiędzy nimi musi istnieć pewien unikalny wzór matematyczny. Ze względu na fakt, że ten wzór może być potencjalnie wykorzystany przez atakujących do złamania szyfrowania, klucze asymetryczne muszą być znacznie dłuższe, aby móc zapewnić równoważny poziom bezpieczeństwa. Koniec końców, 128-bitowy klucz symetryczny i 2048-bitowy klucz asymetryczny oferują mniej więcej podobny poziom bezpieczeństwa.
Zalety i wady
Przykładowe zastosowania
Szyfrowanie symetryczne
Ze względu na większą szybkość, szyfrowanie symetryczne jest szeroko stosowane do ochrony informacji w wielu nowoczesnych systemach komputerowych. Najbardziej znanymi przykładami są m.in Advanced Encryption Standard (AES) wykorzystywany przez rząd Stanów Zjednoczonych do szyfrowania poufnych i tajnych informacji. AES zastąpił wcześniejszy standard szyfrowania danych (DES), który został opracowany w latach siedemdziesiątych jako jeden ze standardów szyfrowania symetrycznego.
Szyfrowanie asymetryczne
Szyfrowanie asymetryczne z kolei jest wykorzystywane w systemach, w których wielu użytkowników może wymagać dostępu do zarówno szyfrowania, jak i deszyfrowania wiadomości lub zestawu danych. Jednym z przykładów takiego systemu jest zaszyfrowana wiadomość e-mail, w której klucz publiczny może być użyty do zaszyfrowania wiadomości, a klucz prywatny może zostać użyty do jej odszyfrowania.
Systemy hybrydowe
W wielu obecnie dostępnych na rynku aplikacjach wykorzystuje się już zarówno szyfrowanie symetryczne jak i asymetryczne. Typowymi przykładami takich systemów hybrydowych są protokoły Security Sockets Layer (SSL) i Transport Layer Security (TLS), które zaprojektowano w celu zapewnienia bezpiecznej komunikacji w sieci Internet. Protokół SSL jest obecnie uważany za nie w pełni bezpieczny i sugerowane jest jego porzucenie. Protokół TLS z kolei uważany jest za bezpieczny i jest szeroko stosowany przez wszystkie z najpopularniejszych przeglądarek internetowych.
Czy kryptowaluty wykorzystują szyfrowanie?
Szyfrowanie jest wykorzystywane m.in aby zapewnić bezpieczeństwo środków (kryptowalut) zdeponowanych w portfelach. Algorytmy szyfrowania są stosowane, na przykład, gdy użytkownicy ustanawiają hasło dostępowe do swoich portfeli.
Tym samym nie wszystkie systemy podpisów cyfrowych korzystają z technik szyfrowania, nawet jeśli wykorzystywane w nich są klucze publiczne i prywatne. W rzeczywistości wiadomość może zostać podpisana cyfrowo bez szyfrowania. RSA jest jednym z przykładów algorytmu, który może zostać wykorzystany do podpisywania zaszyfrowanych wiadomości. Algorytm podpisu cyfrowego zaimplementowany w Bitcoinie (o nazwie ECDSA) w ogóle nie wykorzystuje mechanizmów szyfrowania.
Zakończenie
Szyfrowanie symetryczne jak i asymetryczne odgrywa ważną rolę w zabezpieczaniu poufnych informacji i komunikacji w dzisiejszym cyfrowo zależnym świecie. Chociaż oba podejścia mogą być użyteczne, każdy z nich ma swoje zalety i wady. To sprawia, że są one wykorzystywane w różnych aplikacjach i na różny sposób. Ponieważ sama kryptografia - jako dziedzina kryptologii - nadal ewoluuje, aby bronić się przed nowszymi i coraz bardziej wyrafinowanymi zagrożeniami, zarówno symetryczne, jak i asymetryczne algorytmy kryptograficzne prawdopodobnie w dalszym ciągu będą odgrywały istotną rolę w zapewnieniu bezpieczeństwa systemów i aplikacji komputerowych.