Istnieje wiele różnych części kryptografii. Jeśli jednak chcesz zaszyfrować niektóre dane, możesz użyć dwóch rodzajów algorytmów: algorytmów szyfrowania symetrycznego i algorytmów szyfrowania asymetrycznego. Ogólna koncepcja jest taka sama, mogą szyfrować dane, ale działają na innych zasadach i mają różne zastosowania. Tytułowa różnica opisuje jednak klucze szyfrujące. Algorytm szyfrowania symetrycznego wykorzystuje jeden wspólny klucz zarówno do szyfrowania, jak i odszyfrowywania danych. Algorytm szyfrowania asymetrycznego wykorzystuje dwa połączone klucze, jeden do odszyfrowania, a drugi do odszyfrowania.
Własności algorytmów szyfrowania symetrycznego
Jak wspomniano powyżej, kluczową cechą wyróżniającą algorytm szyfrowania symetrycznego jest fakt, że używasz jednego klucza zarówno do szyfrowania, jak i deszyfrowania danych. Nie oznacza to, że istnieje tylko jeden możliwy klucz szyfrowania, po prostu jeśli szyfrujesz coś jednym kluczem, musisz użyć tego samego klucza, aby to odszyfrować. Jest to czasami określane jako szyfrowanie z kluczem współdzielonym. Wynika to z faktu, że każdy uczestnik musi znać ten sam klucz, więc musisz go udostępnić.
Ta właściwość używania tego samego klucza do szyfrowania i odszyfrowywania może stanowić pewien problem. Aby korzystać z algorytmu szyfrowania symetrycznego, musisz mieć możliwość bezpiecznego komunikowania się. Ale nie możesz tego zrobić bez bezpiecznego środka komunikacji. Na szczęście ten problem można rozwiązać za pomocą szyfrowania asymetrycznego, ale warto to zrozumieć.
Klucze do algorytmów szyfrowania symetrycznego wydają się być dość małe, przynajmniej w porównaniu z szyfrowaniem asymetrycznym. Dzięki temu są stosunkowo łatwe do przesyłania nawet przez wolne połączenie sieciowe i mniej podatne na błędy w zawodnej sieci. Algorytmy szyfrowania symetrycznego są również szybkie w porównaniu z algorytmami asymetrycznymi.
Wszystkie te właściwości sprawiają, że algorytmy szyfrowania symetrycznego są szczególnie przydatne do masowego szyfrowania danych. Jest to szczególnie ważne, gdy prędkość jest problemem.
Szyfry strumieniowe i szyfry blokowe
AES jest prawdopodobnie najbardziej znanym algorytmem szyfrowania symetrycznego. Jest używany w prawie wszystkim, co szyfruje wiele danych i jest standardową częścią pakietów szyfrujących używanych w HTTPS. AES to szyfr blokowy z blokami 128-bitowymi. Szyfr blokowy działa poprzez szyfrowanie bloków danych naraz. Każdy blok musi być tego samego rozmiaru. Jest to dobre, gdy pozostałe dane są większe niż rozmiar bloku, ale oznacza to, że do uzupełnienia bloku należy użyć jakiejś formy dopełnienia.
Szyfr strumieniowy działa poprzez szyfrowanie znacznie mniejszych ilości danych na raz, zwykle po jednym bajcie na raz. Odmianą tej koncepcji jest szyfr podstawieniowy działający na literach. Szyfry podstawieniowe są podatne na analizę częstotliwości, dlatego zazwyczaj są zawodne i nieużywane. Jednak szyfry strumieniowe nie mają tego problemu.
Algorytmy symetryczne są zwykle podatne na ataki ze znanym tekstem jawnym, ataki z wybranym tekstem jawnym, kryptoanalizę różnicową i kryptoanalizę liniową. Nowoczesne algorytmy zostały jednak starannie zaprojektowane z myślą o tym, więc te problemy nie stanowią problemu.
Wniosek
Szyfrowanie symetryczne to forma szyfrowania, która wykorzystuje ten sam klucz zarówno do szyfrowania, jak i odszyfrowywania danych. W niektórych przypadkach sam algorytm jest taki sam zarówno do szyfrowania, jak i deszyfrowania, chociaż niekoniecznie tak jest. Klucze szyfrujące są zwykle stosunkowo krótkie i łatwe do przesłania. Klucz musi jednak zostać przesłany bezpiecznym kanałem, ponieważ musi być przekazywany między wszystkimi zaangażowanymi stronami. Algorytmy szyfrowania symetrycznego są zwykle znacznie szybsze niż algorytmy szyfrowania asymetrycznego.