Szyfr strumieniowy generuje kolejne elementy strumienia klucza w oparciu o stan wewnętrzny. Stan ten jest aktualizowany na dwa sposoby:
- Jeśli stan zmienia się niezależnie od komunikatów tekstowych lub szyfrujących, szyfr jest klasyfikowany jako szyfr strumieniowy synchroniczny.
- Jeżeli stan jest aktualizowany na podstawie wcześniejszych zmian cyfr szyfru, to jest on klasyfikowany jako samosynchronizujący się szyfr strumieniowy.
Synchroniczne szyfratory strumieniowe
W synchronicznym strumieniu szyfrującym generowany jest strumień pseudolosowych cyfr niezależnie od tekstu zwykłego i wiadomości szyfrujących, a następnie łączony z tekstem zwykłym (w celu zaszyfrowania) lub z szyfrem (w celu odszyfrowania). W najczęstszej formie używane są cyfry binarne (bity), a strumień klucza jest łączony z tekstem zwykłym za pomocą wyłączności lub operacji (XOR). Jest to określane jako binarny szyfr strumienia dodatków uszlachetniających.
W szyfrze strumienia synchronicznego nadawca i odbiornik muszą być w synchronizacji, aby odszyfrowanie zakończyło się sukcesem. W przypadku dodania lub usunięcia cyfr z wiadomości w trakcie transmisji, synchronizacja zostaje utracona. Aby przywrócić synchronizację, można systematycznie próbować różnych odsunięć w celu uzyskania prawidłowego deszyfrowania. Innym podejściem jest oznaczenie szyfru znacznikami w regularnych punktach na wyjściu.
Jeśli jednak jakaś cyfra zostanie uszkodzona podczas transmisji, a nie dodana lub zagubiona, będzie to dotyczyło tylko pojedynczej cyfry w prostym tekście, a błąd nie rozprzestrzeni się na inne części komunikatu. Właściwość ta jest przydatna, gdy poziom błędów w transmisji jest wysoki; sprawia ona jednak, że jest mniej prawdopodobne, że błąd zostanie wykryty bez dalszych mechanizmów. Co więcej, dzięki tej właściwości szyfry strumieniowe synchroniczne są bardzo podatne na aktywneataki - jeśli napastnik może zmienić cyfrę w szyfrze, może być w stanie dokonać przewidywalnych zmian w odpowiadającym jej bitu w tekście zwykłym; na przykład obrócenie bitu w szyfrze powoduje obrócenie tego samego bitu (Toggled) w tekście zwykłym.
Samosynchronizujące się szyfry strumieniowe
Samosynchronizujące się szyfry strumieniowe to kolejna technika, która wykorzystuje część poprzednich cyfr szyfru N do obliczania strumienia kluczy. Takie schematy znane są również jako asynchroniczne szyfry strumieniowe lub autokey szyfrujący (CTAK). Pomysł samosynchronizacji został opatentowany w 1946 roku i ma tę zaletę, że odbiornik będzie automatycznie synchronizował się z generatorem strumienia kluczy po otrzymaniu N cyfr szyfrujących, co ułatwi jego odzyskanie w przypadku upuszczenia lub dodania cyfr do strumienia wiadomości. Błędy jednocyfrowe są ograniczone w swoim działaniu i dotyczą tylko do N-cyfrowego szyfru. Nieco trudniej jest przeprowadzać aktywne ataki na samosynchronizujące się szyfry strumieniowe niż na ich synchroniczne odpowiedniki.
Przykładem samosynchronizującego się szyfru strumieniowego jest szyfr blokowy w trybie cipher-feedback (CFB).