Потоковые шифры
Потоковые шифры преобразуют открытый текст в шифротекст по одному биту за операцию.Генератор потока ключей (иногда называемый генератором с бегущим ключом) выдает поток битов: k1, k2, k3, ..., ki. Этот поток ключей (иногда называемый бегущим ключом) и поток битов открытого текста, p1, p2, p3, ..., pi, подвергаются операции "исключающее или", и в результате получаетсяы поток битов шифротекста.

При дешифрировании операция XOR выполняется над битами шифротекста и тем же самым потоком кл ю-чей для восстановления битов открытого текста.

Так как

это работает правильно.
Безопасность системы полностью зависит от свойств генератора потока ключей . Если генератор потока ключей выдает бесконечную строку нулей, шифротекст будет совпадать с открытым текстом, и все операция будет бессмысленна. Если генератор потока ключей выплевывает повторяющийся 16-битовый шаблон, алгоритм б у-дет являться простым XOR с пренебрежимо малой безопасностью . Если генератор потока ключей выплевывает бесконечный поток случайных битов, вы получаете одноразовый блокнот и идеальную безопасность .
На деле безопасность потокового шифра находится где-то между простым XOR и одноразовым блокнотом.
Генератор потока ключей создает битовый поток, который похож на случайный, но в действительности детерминирован и может быть безошибочно воспроизведен при дешифрировании . Чем ближе выход генератора потока ключей к случайному, тем больше времени потребуется криптоаналитику, чтобы взломать шифр .

Рис. 9-6. Потоковый шифр
Однако, если генератор потока ключей при каждом включении создает один и тот же битовый поток, то использующую его криптосистему взломать нетрудно. Покажем на примере, почему это так.
Если к Еве попал шифротекст и соответствующий открытый текст, то она, выполняя операцию XOR над открытым текстом и шифротекстом, раскрывает поток ключей. Или, если у нее есть два различных шифротекста, зашифрованных одинаковым ключом, она может выполнить над ними операцию XOR, получая два открытых текста сообщений, над которыми выполнена операция XOR. Это нетрудно взломать, и затем она может получить поток ключей, выполняя операцию XOR над одним из открытых текстов и шифротекстом.
Теперь, перехватив любое другое шифрованное сообщение, она сможет расшифровать его, используя полученный поток ключей. Кроме того, она может расшифровать и прочитать любое из ранее перехваченных сообщений. Когда Ева получит пару открытый текст/шифротекст, она сможет читать все .
Поэтому для всех потоковых шифров используются ключи. Выход генератора потока ключей является функцией ключа. Теперь, если Ева получит пару открытый текст/шифротекст, она сможет читать только те сообщения, которые зашифрованы тем же ключом. Измените ключ, и противнику придется начать все сначала. Потоковые шифры особенно полезны для шифрования бесконечных потоков коммуникационного трафика, например, канала Т1, связывающего два компьютера.

Рис. 9-7. Устройство генератора потока ключей.
Генератор потока ключей состоит из трех основных частей . Внутреннее состояние описывает текущее состояние генератора потока ключей. Два генератора потока ключей, с одинаковым ключом и одинаковым внутренним состоянием, выдают одинаковые потоки ключей. Функция выхода по внутреннему состоянию генерирует бит потока ключей. Функция следующего состояния по внутреннему состоянию генерирует новое внутреннее состояние.