Szyfrowanie (kryptografia) symetryczne i asymetryczne

5287

Obecnie kryptografia dzieli się na dwa główne obszary: kryptografia symetryczna i asymetryczna. Podczas gdy szyfrowanie symetryczne jest często używane jako synonim kryptografii symetrycznej, kryptografia asymetryczna obejmuje dwa podstawowe przypadki użycia: szyfrowanie asymetryczne i podpisy cyfrowe.

Biorąc powyższe pod uwagę, podział jest następujący:

W tym artykule skupimy się na algorytmach szyfrowania symetrycznego i asymetrycznego.

Szyfrowanie symetryczne vs. asymetryczne

Algorytmy szyfrowania, takie jak kryptografia, dzielą się na dwie kategorie: algorytmy szyfrowania symetrycznego i algorytmy szyfrowania asymetrycznego. Główna różnica między tymi dwiema metodami szyfrowania polega na tym, że algorytmy szyfrowania symetrycznego korzystają z jednego klucza, podczas gdy szyfrowanie asymetryczne wymaga użycia dwóch różnych, ale powiązanych kluczy. To rozróżnienie, choć na pozór proste, najlepiej tłumaczy funkcjonalne różnice między dwiema formami szyfrowania i sposobem ich użycia.

Klucze szyfrujące – jak je rozumieć

W kryptografii algorytmy szyfrowania generują klucze, które są niczym więcej niż serią bitów używanych do szyfrowania i deszyfrowania informacji. Sposób korzystania z tych kluczy zależy od wybranej metody szyfrowania.

Podczas gdy algorytmy szyfrowania symetrycznego używają tego samego klucza do wykonywania funkcji szyfrowania i deszyfrowania, algorytm szyfrowania asymetrycznego używa jednego klucza do szyfrowania danych, a drugiego klucza do odszyfrowywania. W systemach asymetrycznych pierwszym kluczem jest ten, który służy do szyfrowania danych. Ten klucz nazywa się kluczem publicznym. Jak sama nazwa wskazuje, możesz łatwo dzielić się nim z innymi. Drugi klucz to klucz prywatny używany do odszyfrowywania danych. Tylko właściciel powinien mieć dostęp do tego klucza.

Dla lepszego zrozumienia działania kluczy użyjemy przykładu

Jeśli Patrycja wyśle ​​Marcinowi wiadomość chronioną szyfrowaniem symetrycznym, musi podać mu ten sam klucz, którego użyła do szyfrowania danych, aby Marcin mógł odszyfrować swoją wiadomość. Oznacza to, że każdy, kto przechwyci ten klucz po drodze, może uzyskać dostęp do informacji zaszyfrowanych nim.

Jeżeli jednak Patrycja zaszyfruje wiadomość asymetrycznie, w tym celu użyje klucza publicznego Marcina, dzięki czemu Marcin będzie mógł odszyfrować taką zakodowaną wiadomość przy użyciu swojego klucza prywatnego. W rezultacie 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, nie będzie w stanie odszyfrować wiadomości.

Długość kluczy

Kolejna funkcjonalna różnica między szyfrowaniem symetrycznym i asymetrycznym związana jest z długością kluczy mierzonych 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ść wynosi zwykle 128 lub 256 bitów, w zależności od wymaganego poziomu bezpieczeństwa. Z kolei w przypadku szyfrowania asymetrycznego, aby miało miejsce szyfrowanie i deszyfrowanie, musi istnieć matematyczny związek między kluczem publicznym a prywatnym. Oznacza to, że musi istnieć między nimi unikalna formuła matematyczna. Z uwagi na fakt, że ten wzorzec może zostać potencjalnie wykorzystany przez osoby atakujące do złamania szyfrowania, klucze asymetryczne muszą być znacznie dłuższe, aby zapewnić równoważny poziom bezpieczeństwa. Ostatecznie 128-bitowy klucz symetryczny i 2048-bitowy klucz asymetryczny oferują w przybliżeniu podobny poziom bezpieczeństwa.

Zalety i wady

Oba typy szyfrowania mają zarówno zalety, jak i wady względem siebie. Algorytmy szyfrowania symetrycznego są znacznie szybsze i wymagają mniejszej mocy obliczeniowej, ale ich główną słabością jest właściwa i bezpieczna dystrybucja kluczy. Ponieważ ten sam klucz służy do szyfrowania i deszyfrowania informacji, należy go rozdzielić każdemu, kto ma dostęp do danych zaszyfrowanych za jego pomocą, co oczywiście wiąże się z wieloma zagrożeniami.

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ą Advanced Encryption Standard (AES) używany przez rząd USA 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

Z kolei szyfrowanie asymetryczne jest stosowane w systemach, w których wielu użytkowników może wymagać dostępu zarówno do 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

Wiele aplikacji dostępnych obecnie na rynku wykorzystuje szyfrowanie symetryczne i asymetryczne. Typowymi przykładami takich systemów hybrydowych są protokoły Security Sockets Layer (SSL) i Transport Layer Security (TLS), które zostały zaprojektowane w celu zapewnienia bezpiecznej komunikacji przez Internet. SSL jest obecnie uważany za nie w pełni bezpieczny i zaleca się jego porzucenie. Z kolei protokół TLS jest uważany za bezpieczny i jest powszechnie używany we wszystkich najpopularniejszych przeglądarkach internetowych.

Czy kryptowaluty wykorzystują szyfrowanie?

Szyfrowanie służy między innymi do zapewnienia bezpieczeństwa środków (kryptowalut) zdeponowanych w portfelach. Algorytmy szyfrowania są używane, na przykład, gdy użytkownicy ustawiają hasło dostępu do swoich portfeli.

Jednak ze względu na fakt, że Bitcoin i inne kryptowaluty używają par kluczy publiczny-prywatny, powszechne jest błędne przekonanie, że systemy blockchain używają asymetrycznych algorytmów szyfrujących. Jak wspomniano wcześniej, szyfrowanie asymetryczne i podpisy cyfrowe to dwa główne zastosowania kryptografii asymetrycznej (kryptografia klucza publicznego).

Dlatego nie wszystkie systemy podpisów cyfrowych wykorzystują techniki szyfrowania, nawet jeśli używają kluczy publicznych i prywatnych. W rzeczywistości wiadomość może być podpisana cyfrowo bez szyfrowania. RSA jest jednym przykładem algorytmu, którego można użyć do podpisania zaszyfrowanych wiadomości. Algorytm podpisu cyfrowego zaimplementowany w Bitcoin (zwany ECDSA) w ogóle nie wykorzystuje mechanizmów szyfrowania.

Podsumowanie

Szyfrowanie symetryczne i asymetryczne odgrywa ważną rolę w zabezpieczaniu poufnych informacji i komunikacji w dzisiejszym cyfrowo zależnym świecie. Chociaż oba podejścia mogą być przydatne, każde ma swoje zalety i wady. Oznacza to, że są one wykorzystywane w różnych aplikacjach i na różne sposoby. Ponieważ sama kryptografia – jako dziedzina kryptologii – wciąż ewoluuje, aby bronić się przed nowszymi i bardziej wyrafinowanymi zagrożeniami, zarówno symetryczne, jak i asymetryczne algorytmy kryptograficzne prawdopodobnie nadal będą odgrywać ważną rolę w zapewnianiu bezpieczeństwa systemów komputerowych i aplikacji.