Co to jest szyfr strumieniowy?

Szyfr strumieniowy to rodzaj algorytmu używanego w szyfrowaniu danych, w którym źródło, które wymaga zaszyfrowania, jest przetwarzane według sekwencji kluczy, która wydaje się losowa. Ten rodzaj szyfrowania jest dość elastyczny w tym sensie, że może zmieniać szyfrowanie podczas przetwarzania tekstu. Są one również czasami określane jako szyfr stanowy, ponieważ szyfrowanie zależy również od bieżącego stanu operacji. W przeciwieństwie do szyfrów blokowych, które działają na porcjach danych 64-bitowych na raz, szyfr strumieniowy może działać na pojedynczym bicie. Z tego powodu strumień może być przetwarzany z dużą szybkością przy bardzo małej mocy obliczeniowej.

Pierwszy szyfr strumieniowy został opracowany przez Gilberta Vernama w 1917 roku. Później Vernam pomógł również w stworzeniu szyfru znanego jako jednorazowa klawiatura, który jest formą szyfru strumieniowego, który wykorzystuje jednorazowy klucz do szyfrowania danych. W jednorazowej podkładce wygenerowany klucz ma taką samą długość jak dane, które muszą być zaszyfrowane, jest całkowicie losowy i nigdy więcej nie jest używany nigdzie indziej, stąd nazwa.

Podczas przetwarzania danych do zaszyfrowania, zwykle określanych jako tekst jawny, wynikowy tekst zaszyfrowany jest niemożliwy do odszyfrowania bez klucza. Jednorazowy pad jest trudny w obsłudze w większości scenariuszy i dlatego jest używany tylko w bardzo ekskluzywnych sytuacjach. Mimo to szyfr strumieniowy jest zwykle uważany za przydatny, więc klucze zostały skrócone i utworzone pseudolosowo, co oznacza, że ​​są statystycznie losowe, ale w rzeczywistości tak nie jest.

Szyfr strumieniowy ma możliwość szyfrowania w locie. W ten sposób proste szyfry strumieniowe mogą być nawet łatwo wykonywane przez ludzi na papierze i długopisie, podczas gdy szyfr blokowy zazwyczaj wymaga użycia komputera do przetworzenia. Zwykły tekst przepływa przez proces szyfrowania wraz ze strumieniem kluczy, pseudolosową sekwencją tworzącą klucz, gdzie jest konwertowany i wychodzi jako tekst zaszyfrowany.

Zazwyczaj to szyfrowanie odbywa się za pomocą operacji wykluczania lub (XOR) na poszczególnych bitach przechodzących przez szyfr. Prosty szyfr XOR wykorzystuje jako podstawę rodzaj logicznej alternatywy, która zasadniczo mówi, że wynik może być prawdziwy, jeśli jeden z argumentów jest prawdziwy, ale nie oba. Na przykład, jeśli bit przechodzący przez proces szyfrowania jest zerem lub jedynką, a sparowany bit strumienia klucza nie jest zgodny, wynikowym wynikiem jest jeden. Jeśli bit i sparowany bit strumienia klucza pasują do siebie, gdzie oba są jedynką lub oba są zerem, wynikiem jest zero. Zaszyfrowany strumień jedynek i zer jest następnie odszyfrowywany na drugim końcu transmisji przy użyciu tego samego strumienia klucza, aby przekonwertować bity z powrotem na ich oryginalny tekst jawny.

Istnieją dwa rodzaje szyfru strumieniowego. Przy użyciu metody synchronicznej strumień kluczy jest tworzony oddzielnie od zwykłego tekstu lub tekstu zaszyfrowanego, a następnie scalany w celu zapewnienia szyfrowania lub deszyfrowania. Dzięki tej metodzie zarówno wysyłający, jak i odbierający koniec transmisji muszą pozostać zsynchronizowane, gdy działają na tym samym kluczu i tej samej pozycji w kluczu. W przypadku wystąpienia problemu odszyfrowywanie musi albo zacząć się od nowa, albo w zaszyfrowanym tekście mogą pojawiać się sporadycznie flagi wskazujące nowe punkty początkowe. Z drugiej strony szyfr samosynchronizujący zaktualizuje strumień klucza na podstawie pewnej liczby poprzednich cyfr w zaszyfrowanym tekście.
Jeden z najczęściej używanych szyfrów strumieniowych, zwany RC4, został stworzony przez RSA Data Security®. Jest licencjonowany i używany w wielu produktach, a także w protokole Secure Socket Layer (SSL) używanym w bezpiecznej komunikacji internetowej oraz w szyfrowaniu WEP (Wired Equivalent Privacy) używanym w urządzeniach bezprzewodowych. Innym często używanym szyfrem jest znany jako ORYX, który znalazł zastosowanie w transmisjach danych telefonii komórkowej, które wymagają zaszyfrowania. IBM® opracował również metodę szyfrowania strumieniowego znaną jako SEAL, która znalazła zastosowanie w szyfrowaniu dysków twardych.