logo
MethodFull

Потоковые шифры

Потоковые шифры преобразуют открытый текст в шифротекст по одному биту за операцию. Простейшая реализация потокового шифра показана на 3-й. Генератор потока ключей (иногда называемый генератором с бегущим ключом) выдает поток битов: k1, k2, k3, ..., Ki. Этот поток ключей (иногда называемый бегущим ключом) и поток битов открытого текста, P1,P2, P3, —,Pi, подвергаются операции "исключающее или", и в ре­зультате получаетсяы поток битов шифротекста.

Ci =pt XOR kt

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

Pi = C, XOR kt

Так как

Pi XOR ki XOR ki=pi

это работает правильно.

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

На деле безопасность потокового шифра находится где-то между простым XOR и одноразовым блокнотом.

Генератор потока ключей создает битовый поток, который похож на случайный, но в действительности детерминирован и может быть безошибочно воспроизведен при дешифрировании. Чем ближе выход генератора по­тока ключей к случайному, тем больше времени потребуется криптоаналитику, чтобы взломать

Потоковый шифр

Однако, если генератор потока ключей при каждом включении создает один и тот же битовый поток , то ис­пользующую его криптосистему взломать нетрудно. Покажем на примере, почему это так.

Если к Еве попал шифротекст и соответствующий открытый текст, то она, выполняя операцию XOR над от­крытым текстом и шифротекстом, раскрывает поток ключей. Или, если у нее есть два различных шифротекста, зашифрованных одинаковым ключом, она может выполнить над ними операцию XOR, получая два открытых текста сообщений, над которыми выполнена операция XOR. Это нетрудно взломать, и затем она может полу­чить поток ключей, выполняя операцию XOR над одним из открытых текстов и шифротекстом.

Теперь, перехватив любое другое шифрованное сообщение, она сможет расшифровать его, используя пол у-ченный поток ключей. Кроме того, она может расшифровать и прочитать любое из ранее перехваченных соо б-щений. Когда Ева получит пару открытый текст/шифротекст, она сможет читать все .

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

Генератор потока ключей состоит из трех основных частей (см. 2nd). Внутреннее состояние описывает теку­щее состояние генератора потока ключей. Два генератора потока ключей, с одинаковым ключом и одинаковым внутренним состоянием, выдают одинаковые потоки ключей. Функция выхода по внутреннему состоянию гене­рирует бит потока ключей. Функция следующего состояния по внутреннему состоянию генерирует новое вну т-реннее состояние.