Symetryczna Kryptografia Klucza (inaczej szyfrowanie symetryczne) jest rodzajem algorytmu szyfrowania, w którym ten sam klucz jest używany zarówno do szyfrowania, jak i deszyfrowania wiadomości. Taki sposób kodowania informacji został już w dużej mierze wykorzystany w ostatnich dziesięcioleciach w celu ułatwienia i zabezpieczenia tajnej komunikacji między rządami, a ich siłami zbrojnymi. Obecnie algorytmy klucza symetrycznego są szeroko stosowane w różnych typach systemów komputerowych w celu zwiększenia bezpieczeństwa przechowywanych w nich danych.
Jak działa Szyfrowanie Symetryczne?
Algorytmy szyfrowania symetrycznego opierają się na jednym kluczu, który jest współdzielony przez dwóch lub więcej użytkowników. Ten sam klucz jest używany do szyfrowania i deszyfrowania tak zwanego tekstu jawnego (ang. plaintext), który reprezentuje wiadomość lub dane, które są kodowane. Proces szyfrowania polega na dosłownym przepuszczeniu zwykłego tekstu (dane wejściowe) za pomocą algorytmu szyfrowania zwanego szyfrem, który z kolei generuje zaszyfrowany tekst (dane wyjściowe).
Jeśli algorytm szyfrowania jest wystarczająco silny, jedyną możliwością odczytania wiadomości lub uzyskania dostępu do informacji zawartych w zaszyfrowanym tekście jest użycie odpowiedniego klucza odszyfrowującego. Proces deszyfrowania zasadniczo polega na konwersji zaszyfrowanego tekstu z powrotem na jawny tekst.
Bezpieczeństwo algorytmów symetrycznego szyfrowania związane jest bezpośrednio z tym, jak trudno jest losowo odgadnąć odpowiadający im klucz. Dla przykładu, w przypadku 128-bitowego klucza, aby móc go poprawnie odgadnąć (wykorzystując wspołcześnie dostępny sprzęt komputerowy) potrzeba milardów lat. Generalnie rzecz ujmując Im dłuższy jest klucz, tym trudniej go złamać. Klucze o długości 256 bitów są ogólnie uważane za wysoce bezpieczne i teoretycznie odporne na ataki siłowe wykonywane przy użyciu komputera kwantowego.
Dwa najczęściej stosowane obecnie schematy szyfrowania symetrycznego oparte są na tzw. mechanizmach szyfrów blokowych i strumieniowych. W szyfrze blokowym dane grupowane są w tzw. bloki o określonym rozmiarze, a następnie każdy z tak powstałych bloków jest szyfrowany przy użyciu odpowiedniego klucza i algorytmu szyfrowania (np. 128-bitowy tekst jest szyfrowany w 128-bitowym szyfr). Z kolei w przypadku szyfrów strumieniowych, tekst kodowany jest w ?? (1 bitowe dane wejściowe są szyfrowane w 1 bitowy szyfr).
On the other hand, stream ciphers do not encrypt plaintext data by blocks, but rather by 1-bit increments (1-bit plaintext is encrypted into 1-bit ciphertext at a time).
Szyfrowanie symetryczne vs. asymetryczne
Wykorzystanie dwóch kluczy zamiast jednego powoduje również, że pomiędzy tymi obiema metodami występują znaczące funkcjonalne różnice. Algorytmy asymetrycznego szyfrowania są zdecydowanie bardziej skomplikowane i wolniejsze od swoich symetrycznych odpowiedników. Co więcej, z uwagi na fakt iż klucz publiczny i klucz prywatny są ze sobą matematycznie powiązane, klucze te aby zapewniać taki sam poziom bezpieczeństwa jak klucze asymetryczne muszą również być odpowiednio dłuższe od krótszego klucza symetrycznego.
Przykłady zastosowania w nowoczesnych systemach komputerowych
Algorytmy symetrycznego szyfrowania danych są obecnie wykorzystywane w wielu nowoczesnych systemach komputerowych w celu zwiększenia bezpieczeństwa danych w nich przechowywanych i zwiększenia bezpieczeństwa ich użytkowników. Algorytm AES jest jednym z najpopularniejszych przykładów szyfru symetrycznego, który jest stosowany zarówno w wielu bezpiecznych komunikatorach tesktowych jak i rozwiązaniach typu dysk w chmurze.
AES poza możliwością zaimplementowania go w oprogramowaniu można również zaimplementować bezpośrednio do poszczególnych komponentów systemu komputerowego (ang. hardware). Sprzętowe mechanizmy szyfrowania zazwyczaj wykorzystują algorytm AES 256, który jest specyficzną odmianą AES w której klucz ma długość 256 bitów.
Wady i zalety
Algorytmy symetryczne zapewniają stosunkowo wysoki poziom bezpieczeństwa przy jednoczesnej możliwości szybkiego zaszyfrowania i odszyfrowania wiadomości. Co więcej, wymagają one znacznie mniej mocy obliczeniowej od swoich asymetrycznych odpowiedników. Samo bezpieczeństwo każdego z kluczy wygenerowanych przy pomocy symetrycznego algorytmu szyfrowania może zostać zwiększone poprzez wygenerowanie dłuższego klucza. Z każdym kolejnym dodanym bajtem do długości klucza, trudność związana z jego złamaniem rośnie wykładniczo.