Algorytm symetryczny
Algorytmy z kluczem symetrycznym to metoda w kryptografii. To wtedy, gdy klucze do deszyfrowania i szyfrowania są dokładnie tą samą wspólną tajemnicą. Sekret można wygenerować losowo, z hasła lub za pomocą tajnej procedury wymiany kluczy, takiej jak Diffie-Hellman.
Algorytmy z kluczem symetrycznym są bardzo ważne, ponieważ są one szybsze na komputerach niż inne: algorytmy z kluczem publicznym. W kryptografii klucza publicznego (kryptografia klucza asymetrycznego) klucz do szyfrowania może być bez problemu podany do publicznej wiadomości, a każdy może wysyłać Ci tajne wiadomości. Klucz do szyfrowania jest "otwarty", ponieważ w praktyce nie można go użyć do uzyskania klucza do szyfrowania. Jest to bardzo użyteczne, ale algorytmy kryptografii klucza publicznego są bardzo powolne na komputerach, więc są one używane tylko do wysyłania tajnego klucza. Wtedy algorytmy klucza symetrycznego są używane do wszystkiego innego, ponieważ są szybsze.
Istnieją dwa rodzaje algorytmów symetryczno-kluczowych, zwanych szyframi strumieniowymi i blokowymi. Szyfr strumieniowy szyfruje wiadomość jako strumień bitów jeden po drugim. Szyfr blokowy przyjmuje bloki bitów, szyfruje je jako pojedynczą jednostkę, a czasami korzysta z odpowiedzi również później. Powszechnie stosowane są bloki 64-bitowe, choć nowoczesne szyfry, takie jak Advanced Encryption Standard, wykorzystują bloki 128-bitowe.
Przykładami popularnych cyprysów symetrycznych są Twofish, Serpent, AES (aka Rijndael), Blowfish, CAST5, RC4, TDES i IDEA.
W historii, niektóre metody kryptoanalizy wykorzystywały symetrię, więc systemy symetryczne były mniej bezpieczne. Niektóre ataki nazywane są atakami typu known-plaintext, wybranymi atakami typu plaintext, kryptoanalizą różnicową i kryptoanalizą liniową.
Inne terminy dotyczące szyfrowania za pomocą klucza symetrycznego to szyfrowanie tajne, jednokluczowe, akcyjne, jednokluczowe i ostatecznie prywatne. Ten ostatni termin nie ma tego samego znaczenia, co termin "klucz prywatny" w kryptografii klucza publicznego.
W algorytmie klucza symetrycznego klucz użyty do szyfrowania jest taki sam jak klucz użyty do odszyfrowania. Z tego powodu musi on być utrzymywany w tajemnicy.
Algorytmy symetryczne vs. asymetryczne
W przeciwieństwie do algorytmów symetrycznych, algorytmy klucza asymetrycznego używają innego klucza do szyfrowania niż do deszyfrowania. Oznacza to, że użytkownik znający klucz szyfrowania algorytmu asymetrycznego może szyfrować wiadomości, ale nie może obliczyć klucza szyfrowania i nie może odszyfrować wiadomości zaszyfrowanych tym kluczem. Poniżej znajduje się krótkie porównanie tych dwóch typów algorytmów:
Prędkość
Algorytmy z kluczami symetrycznymi są na ogół znacznie mniej wymagające obliczeniowo niż algorytmy z kluczami asymetrycznymi. W praktyce algorytmy z kluczem asymetrycznym są zazwyczaj setki do tysięcy razy wolniejsze niż algorytmy z kluczem symetrycznym.
Zarządzanie kluczami
Jedną z wad algorytmów klucza symetrycznego jest wymóg posiadania wspólnego tajnego klucza, przy czym obie strony posiadają na każdym końcu tę samą kopię. W celu zapewnienia bezpiecznej komunikacji pomiędzy wszystkimi w grupie n osób potrzebna jest łączna liczba n(n - 1)/2 kluczy, czyli łączna liczba możliwych kanałów komunikacji. Aby ograniczyć wpływ potencjalnego odkrycia przez napastnika kryptograficznego, powinny być one regularnie zmieniane i utrzymywane w bezpiecznym stanie podczas dystrybucji i użytkowania. Proces wyboru, dystrybucji i przechowywania kluczy nazywany jest zarządzaniem kluczami i jest trudny do osiągnięcia w sposób niezawodny i bezpieczny.
Hybrydowy kryptosystem
W nowoczesnych konstrukcjach kryptosystemów stosuje się zarówno algorytmy asymetryczne (klucz publiczny), jak i symetryczne, aby wykorzystać najlepsze z nich. Algorytmy asymetryczne są wykorzystywane do dystrybucji kluczy symetrycznych na początku sesji. Gdy klucz symetryczny jest już znany wszystkim stronom sesji, szybsze algorytmy klucza symetrycznego wykorzystujące ten klucz mogą zostać użyte do zaszyfrowania pozostałej części sesji. Upraszcza to problem dystrybucji klucza, ponieważ klucze asymetryczne muszą być dystrybuowane tylko autentycznie, podczas gdy klucze symetryczne muszą być dystrybuowane zarówno w sposób autentyczny, jak i poufny.
Systemy wykorzystujące takie hybrydowe podejście obejmują SSL, PGP i GPG itp.
Powiązane strony
- Kluczowe algorytmy asymetryczne
Pytania i odpowiedzi
P: Co to są algorytmy z kluczem symetrycznym?
O: Algorytmy z kluczem symetrycznym to metoda w kryptografii, w której klucze do deszyfrowania i szyfrowania są dokładnie tym samym wspólnym sekretem.
P: Jak można wygenerować sekret?
O: Sekret może być generowany losowo, z hasła lub poprzez tajną procedurę wymiany kluczy, taką jak Diffie-Hellman.
P: Dlaczego algorytmy z kluczem symetrycznym są ważne?
O: Algorytmy z kluczem symetrycznym są bardzo ważne, ponieważ są szybsze w komputerach niż algorytmy z kluczem publicznym.
P: Co to jest kryptografia z kluczem publicznym (kryptografia z kluczem asymetrycznym)?
O: W kryptografii z kluczem publicznym (kryptografia z kluczem asymetrycznym) klucz do szyfrowania można bez problemu podać publicznie i każdy może wysłać do Państwa tajne wiadomości. Klucz do szyfrowania jest "otwarty", ponieważ w praktyce nie można go użyć do uzyskania klucza do deszyfrowania.
P: Jakie są dwa rodzaje szyfrów symetrycznych?
O: Dwa rodzaje szyfrów symetrycznych to szyfry strumieniowe i szyfry blokowe. Szyfry strumieniowe szyfrują wiadomość jako strumień bitów jeden po drugim, natomiast szyfry blokowe biorą bloki bitów, szyfrują je jako jedną całość i czasami wykorzystują odpowiedź również później.
P: Jakiej wielkości bloki stosują nowoczesne szyfry?
O: Nowoczesne szyfry, takie jak Advanced Encryption Standard, wykorzystują bloki 128-bitowe.
P: Jakie rodzaje ataków były stosowane w historii w celu wykorzystania symetrii?
O: W historii niektóre metody kryptoanalizy wykorzystywały symetrię, dlatego systemy symetryczne były mniej bezpieczne. Niektóre ataki, które były stosowane, to m.in. ataki na znany tekst jawny, ataki na wybrany tekst jawny, kryptoanaliza różnicowa i kryptoanaliza liniowa.