Na czym polega Symetryczna Kryptografia Kluczy?

Udostępnij
Copied to clipboard!
Na czym polega Symetryczna Kryptografia Kluczy?
Posłuchaj tego artykułu
00:00 / 00:00

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

Szyfrowanie symetryczne jest obecnie jednym z dwóch najpopularniejszych metod szyfrowania danych w nowoczesnych systemach komputerowych. Drugą metodą jest szyfrowanie asymetryczne, czasami nazywane również kryptografią klucza publicznego. Główną różnicą pomiędzy tymi dwoma metodami jest fakt, iż w do szyfrowania symetrycznego wykorzystywany jest tylko jeden klucz, a dane zaszyfrowane asymetrycznie odkodowuje się innym kluczem niż zostały one pierwotnie zaszyfrowane. Jeden z tych kluczy może zostać publicznie udostępniony (klucz publiczny - ang. public key), a z kolei drugi z nich pozostaje nieudostępniony i prywatny (klucz prywatny - ang. Private key).

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. 

Przy tej okazji warto zauważyć, że sieć blockchain Bitcoina tak na prawdę nie wykorzystuje algorytmów szyfrowania, jak by wielu mogło się wydawać. Zamiast tego, sieć oparta jest o algorytm cyfrowych sygnatur (DSA) znany pod nazwą Elliptic Curve Signature Algorithm (ECDSA) który generuje cyfrowe sygnatury bez zaangażowania do tego szyfrowania. Przeświadczenie o szeroko obecnym szyfrowaniu w sieci blockchain Bitcoina podchodzi z faktu iż ECDSA opiera się na eliptycznej kryptografii (ECC), którą można zastosować do wielu zadań jak np. Szyfrowania, sygnatur cyfrowych i tzw. Generatorów pseudolosowych danych. ECDSA nie da się jednak wykorzystać do przeprowadzenia szyfrowania.  


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.

Chociaż szyfrowanie symetryczne dostarcza szeroką gamę plusów, z tą techniką szyfrowania wiąże się jednak jeden duży minus: odwieczny problem bezpiecznego przekazywania (transferu) kluczy służących do odkodowania danych. W momencie kiedy klucz deszyfrujący zostanie przesłany do odbiorcy za pośrednictwem niezabezpieczonej sieci (czyt. połączenia), to wysoce prawdopodobnym staje się możliwość jego przechwycenia przez osoby trzecie. W momencie uzyskania nieautoryzowanego dostępu do takiego klucza, dane zaszyfrowane za jego pomocą przestają być bezpieczne. Wiele protokołów sieciowych wykorzystuje obecnie miks algorytmów symetrycznych jak i asymetrycznych aby zapewnić bezpieczne połączenie. Najbardziej znanym przykładem takiego hybrydowego systemu jest protokół TLS - Transport Layer Security - protokół kryptograficzny na którym oparta jest zdecydowana większość sieci Internet.  

Z tego miejsca warto jednak podkreślić fakt, iż wszystkie istniejące rodzaje szyfrów komputerowych są podatne na niebezpieczeństwa wynikające z ich błędnej implementacji do systemu. Chociaż wystarczająco długi klucz może skutecznie uniemożliwić przeprowadzenie ataku typu brute-force, błędy związane z implementacją szyfru, których autorami są programiści bardzo często otwierają szeroko drzwi do danego systemu dla cyber przestępców.


Zakończenie

Szyfrowanie symetryczne biorąc pod uwagę jego szybkość, prostotę i wysoki poziom bezpieczeństwa jest stosowane w wielu różnych gałęziach nowoczesnego Internetu i systemów komputerowch. Począwszy od serwerów przetwarzających dane, po dane przechowywane w serwerach typu cloud. Pomimo tego, że algorytmy szyfrowania symetrycznego są obecnie coraz częściej wykorzystywane w połączeniu z ich asymetrycznymi odpowiednikami, to w dalszym ciągu są one jednymi z podstawowych elementów odpowiadających za bezpieczeństwo nowoczesnych systemów komputerowch. 

Loading