Распространение ошибки

Врежиме CFB ошибка в открытом тексте влияет на весь последующий шифротекст, но самоустраняется при дешифрировании. Гораздо интереснее ошибка в шифротексте. Первым эффектом сбоя бита шифротекста явля­ется сбой одного бита открытого текста. Затем ошибка попадает в сдвиговый регистр, и пока сбойный бит не выйдет из регистра, будет формироваться неправильный шифротекст. В 8-битовом режиме CFB из-за сбоя единственного бита портятся 9 байтов расшифрованного открытого текста. Потом система восстанавливается, и весь последующий шифротекст расшифровывается правильно. В общем случай в и-битовом режиме CFB одна ошибка шифротекста влияет на дешифрирование текущего и следующих т/п- блоков, где т - размер блока.

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

CFB самовосстанавливается и после ошибок синхронизации . Ошибка попадает в сдвиговый регистр и, пока она находится там, портит 8 байтов данных. CFB представляет собой пример блочного шифра, который можно использовать как самосинхронизирующийся потоковый шифр (на уровне блоков ).

9.7 Синхронные потоковые шифры

В синхронном потоковом шифрепоток ключей генерируется независимо от потока сообщения. Военные называют этот шифр ключевым автоключом(Key Auto-Key, КАК). При шифровании генератор потока клю­чей один за другим выдает биты потока ключей. При дешифрировании другой генератор потока ключей один за другим выдает идентичные биты потока ключей. Это работает, если оба генератора синхронизированы. Если один из них пропускает один из циклов, или если бит шифротекста теряется при передаче , то после ошибки ка­ждый символ шифротекста будет расшифрован неправильно .

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

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

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

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

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

Синхронные потоковые шифры также предохраняют от любых вставок и удалений шифротекста , так как они приводят к потере синхронизации и будут немедленно обнаружены. Однако, они не защищают полностью от битовых сбоев. Как и при блоковых шифрах в режиме CFB, Мэллори может изменить отдельные биты потока. Если ему известен открытый текст, он может изменить эти биты так, чтобы эти биты дешифрировались так, как ему надо. Дальнейшие биты при дешифрировании превратятся в чепуху (пока система не восстановится) , но в определенных приложениях Мэллори может принести заметный ущерб .