Kryptografia klucza symetrycznego (lub szyfrowanie symetryczne) to rodzaj schematu szyfrowania, w którym ten sam klucz jest używany zarówno do szyfrowania, jak i deszyfrowania wiadomości. Taki sposób kodowania informacji był w dużej mierze stosowany w ostatnich dziesięcioleciach w celu ułatwienia tajnej komunikacji między rządami a wojskami. Obecnie algorytmy klucza symetrycznego są szeroko stosowane w różnych typach systemów komputerowych, aby zwiększyć bezpieczeństwo danych.
Jak działa szyfrowanie symetryczne?
Schematy szyfrowania symetrycznego opierają się na pojedynczym kluczu, który jest dzielony pomiędzy dwóch lub więcej użytkowników. Ten sam klucz jest używany do szyfrowania i deszyfrowania tzw. tekstu jawnego (który reprezentuje wiadomość lub fragment danych, które są kodowane). Proces szyfrowania polega na przetworzeniu tekstu jawnego (wejścia) przez algorytm szyfrujący zwany szyfrem, który z kolei generuje tekst zaszyfrowany (wyjście).
Jeśli schemat szyfrowania jest wystarczająco silny, jedynym sposobem dla osoby na odczytanie lub uzyskanie dostępu do informacji zawartych w zaszyfrowanym tekście jest użycie odpowiedniego klucza do jego deszyfrowania. Proces deszyfrowania polega zasadniczo na konwersji zaszyfrowanego tekstu z powrotem na tekst jawny.
Bezpieczeństwo systemów szyfrowania symetrycznego opiera się na tym, jak trudno jest losowo odgadnąć odpowiedni klucz, aby je złamać. Klucz 128-bitowy, na przykład, zajmie miliardy lat, aby go odgadnąć przy użyciu typowego sprzętu komputerowego. Im dłuższy jest klucz szyfrowania, tym trudniej go złamać. Klucze o długości 256 bitów są powszechnie uważane za wysoce bezpieczne i teoretycznie odporne na ataki brutalnej siły z wykorzystaniem komputerów kwantowych.
Dwa z najpopularniejszych schematów szyfrowania symetrycznego używanych dzisiaj opierają się na szyfrach blokowych i strumieniowych. Szyfry blokowe grupują dane w bloki o określonym rozmiarze, a każdy blok jest szyfrowany przy użyciu odpowiedniego klucza i algorytmu szyfrowania (np. tekst jawny 128-bitowy jest szyfrowany na tekst zaszyfrowany 128-bitowy). Z drugiej strony, szyfry strumieniowe nie szyfrują danych tekstu jawnego w blokach, ale raczej w przyrostach 1-bitowych (1-bitowy tekst jawny jest szyfrowany na 1-bitowy tekst zaszyfrowany w danym momencie).
Szyfrowanie symetryczne vs. asymetryczne
Szyfrowanie symetryczne jest jedną z dwóch głównych metod szyfrowania danych w nowoczesnych systemach komputerowych. Drugą jest szyfrowanie asymetryczne, które jest główną aplikacją kryptografii klucza publicznego. Główna różnica między tymi metodami polega na tym, że systemy asymetryczne używają dwóch kluczy, zamiast jednego stosowanego przez schematy symetryczne. Jeden z kluczy może być publicznie udostępniany (klucz publiczny), podczas gdy drugi musi być przechowywany w tajemnicy (klucz prywatny).
Użycie dwóch kluczy zamiast jednego również wprowadza różnorodność funkcjonalnych różnic między szyfrowaniem symetrycznym a asymetrycznym. Algorytmy asymetryczne są bardziej złożone i wolniejsze niż symetryczne. Ponieważ klucze publiczne i prywatne stosowane w szyfrowaniu asymetrycznym są w pewnym stopniu matematycznie związane, same klucze muszą być również znacznie dłuższe, aby zapewnić podobny poziom bezpieczeństwa oferowany przez krótsze klucze symetryczne.
Zastosowania w nowoczesnych systemach komputerowych
Algorytmy szyfrowania symetrycznego są stosowane w wielu nowoczesnych systemach komputerowych w celu zwiększenia bezpieczeństwa danych i prywatności użytkowników. Standard Szyfrowania Zaawansowanego (AES), który jest szeroko stosowany zarówno w aplikacjach do bezpiecznej komunikacji, jak i w chmurze, jest jednym z prominentnych przykładów szyfru symetrycznego.
Oprócz wdrożeń programowych, AES może być również wdrożony bezpośrednio w sprzęcie komputerowym. Schematy szyfrowania symetrycznego oparte na sprzęcie zazwyczaj wykorzystują AES 256, który jest konkretną odmianą Standardu Szyfrowania Zaawansowanego, mającą rozmiar klucza 256 bitów.
Warto zauważyć, że blockchain Bitcoina nie wykorzystuje szyfrowania, jak wielu uważa. Zamiast tego używa specyficznego rodzaju algorytmu podpisów cyfrowych (DSA), znanego jako Algorytm Podpisu Cyfrowego Krzywej Eliptycznej (ECDSA), który generuje podpisy cyfrowe bez użycia szyfrowania.
Powszechnym punktem nieporozumienia jest to, że ECDSA opiera się na kryptografii krzywej eliptycznej (ECC), która z kolei może być stosowana do wielu zadań, w tym szyfrowania, podpisów cyfrowych i generatorów pseudo-losowych. Jednak ECDSA sam w sobie nie może być używany do szyfrowania.
Zalety i wady
Algorytmy symetryczne zapewniają stosunkowo wysoki poziom bezpieczeństwa, jednocześnie umożliwiając szybkie szyfrowanie i deszyfrowanie wiadomości. Stosunkowo prosta konstrukcja systemów symetrycznych jest również logistyczną zaletą, ponieważ wymagają one mniej mocy obliczeniowej niż systemy asymetryczne. Ponadto, bezpieczeństwo zapewniane przez szyfrowanie symetryczne można łatwo zwiększyć, po prostu zwiększając długości kluczy. Dla każdego pojedynczego bitu dodanego do długości klucza symetrycznego, trudność złamania szyfrowania za pomocą ataku brutalnej siły rośnie wykładniczo.
Chociaż szyfrowanie symetryczne oferuje szeroki zakres korzyści, istnieje jedna główna wada związana z nim: inherentny problem z przesyłaniem kluczy używanych do szyfrowania i deszyfrowania danych. Gdy te klucze są udostępniane przez niezabezpieczone połączenie, są narażone na przechwycenie przez złośliwe strony trzecie. Jeśli nieautoryzowany użytkownik uzyska dostęp do konkretnego klucza symetrycznego, bezpieczeństwo wszelkich danych szyfrowanych przy użyciu tego klucza jest zagrożone. Aby rozwiązać ten problem, wiele protokołów internetowych wykorzystuje kombinację szyfrowania symetrycznego i asymetrycznego do ustanawiania bezpiecznych połączeń. Wśród najbardziej prominentnych przykładów takiego systemu hybrydowego znajduje się protokół kryptograficzny Transport Layer Security (TLS), który służy do zabezpieczania dużych części nowoczesnego internetu.
Należy również zauważyć, że wszystkie rodzaje szyfrowania komputerowego są podatne na luki z powodu niewłaściwej implementacji. Chociaż wystarczająco długi klucz może sprawić, że atak brutalnej siły będzie matematycznie niemożliwy, błędy w implementacji popełniane przez programistów często tworzą słabości, które otwierają drogę do ataków cybernetycznych.
Zakończenie
Dzięki swojej względnej prędkości, prostocie i bezpieczeństwu, szyfrowanie symetryczne jest szeroko stosowane w aplikacjach, od zabezpieczania ruchu internetowego po ochronę danych przechowywanych na serwerach w chmurze. Chociaż często jest łączone z szyfrowaniem asymetrycznym w celu rozwiązania problemu bezpiecznego przesyłania kluczy, schematy szyfrowania symetrycznego pozostają kluczowym elementem nowoczesnego bezpieczeństwa komputerowego.



