ПОТОЧНЫЕ ШИФРЫ Самосинхронизирующиеся шифры Самосинхронизирующиеся шифры Синхронные шифры Синхронные шифры
Поточные шифры представляют собой разновидность гаммирования Поточные шифры применяются для шифрования непрерывных потоков данных, например в сетях передачи данных.
Поточные шифры - это криптосистемы с последовательным выполнением преобразований над элементами открытого текста При этом элементы открытого текста имеют небольшой размер. Такими элементами является буква алфавита естественного языка или 1 бит сообщения.
Общая схема поточного шифра Генератор ключевой последовательности, (генератор бегущего ключа) задаёт последовательность бит к 1, к 2,..., ki... Ключевая последовательность складывается по модулю 2 с последовательностью бит исходного текста р 1,р 2,...,рi... для получения шифртекста Ci=Pi Ki На приемной стороне шифрованный текст складывается по модулю 2 с идентичной ключевой последовательностью для получения шифртекста. Ci Ki =Pi Ki Ki = Pi
Стойкость поточных шифров Стойкость системы целиком зависит от внутренней структуры генератора ключевой последовательности. Если генератор выдает последовательность с небольшим периодом, то стойкость системы будет невелика Для увеличения стойкости все потоковые шифры предусматривают использование ключа для генерации ключевой последовательности
Поточные шифры Самосинхрони- зирующиеся Синхронные
Самосинхронизирующиеся шифры (с автоключом) Внутреннее состояние генератора является функцией фиксированного числа предшествующих битов шифрованного текста. Поскольку внутреннее состояние зависит только от n бит шифрованного текста, генератор на приемной стороне войдет в синхронизм с передающей стороной после получения n бит. Реализация этого подхода : Каждое сообщение предваряется случайным заголовком длиной n бит. Этот заголовок шифруется и передается в линию. На приемной стороне заголовок расшифровывается. Результат расшифрования будет неверным, но после обработки n бит заголовка оба генератора будут синхронизированы.
Недостаток самосинхронизирующихся шифров Распространение ошибок. При искажении одного бита генератор на приемной стороне выдаст n неверных бит ключевой последовательности, Уязвимы для атак типа "воспроизведение". Злоумышленник записывает некоторое количество бит шифрованного текста. Затем, позднее, он подменяет биты трафика записанными - "воспроизводит" их. После некоторого количества "мусора", пока приемная сторона не синхронизируется, старый шифрованный текст будет расшифровываться нормально. У приемной стороны нет никаких средств определения того, что принимаемые данные не являются актуальными.
Самосинхронизирующиеся потоковые шифры могут быть реализованы в виде блочных шифров, используемых в режиме обратной связи по шифрованному тексту При этом за один раз может шифроваться произвольное число бит, меньшее или равное длине блока.
Поточный шифр с ключевой гаммой, формируемой по обратной связи функции шифрования U 0 – указатель или вектор инициализации T - исходный текст C – шифртекст E – функция зашифрования
Поточный шифр с ключевой гаммой, формируемой по обратной связи функции шифрования Генерация ключевого потока начинается с подачи на вход блочного шифра некоторого начального значения U 0, называемого указателем или вектором инициализации. Указатель шифруется с использованием секретного ключа. Из выходного блока берется один бит (или r битов) для преобразования первого бита (или первого элемента) входного текста, а само выходное значение подается на вход блочного шифра и зашифровывается. Новое выходное значение задает очередной элемент ключевого потока и снова подается на вход блочного шифра и т. д.
Пример шифрования по одному байту за цикл Пример шифрования по одному байту за цикл (Число 8 взято только для примера) Блочный шифр работает над очередью размером, равным длине блока. Первоначально очередь заполняется синхропосылкой. Затем очередь шифруется и левые 8 бит складываются с первыми 8 битами исходного текста. Полученные 8 бит шифрованного текста передаются в линию, очередь сдвигается влево на 8 бит, левые биты отбрасываются, а правые заполняются 8 битами шифрованного текста, переданными в линию. Далее процедура повторяется. Ограничение: В режиме CFB синхропосылка должна быть уникальна для каждого сообщения в течение срока действия ключа. Если это будет не так, злоумышленник сможет восстановить исходный текст.
Синхронные шифры не зависят Выходные значения генератора не зависят от исходного или шифрованного текстов. Основная сложность в данном подходе заключается в необходимости синхронизации генераторов ключа на передающей и приемной сторонах. Если в процессе передачи произошло выпадение или вставка хотя бы одного бита, то вся последовательность битов шифрованного текста после ошибочного бита не сможет быть расшифрована. Если такое произойдет, стороны должны провести повторную синхронизацию. При этом синхронизация должна быть проведена так, чтобы никакой отрезок ключевой последовательности не повторился, так что очевидное решение возвратиться к некоторому предыдущему состоянию генератора не подходит.
Достоинства и недостатки Отсутствие эффекта распространения ошибок. Один искаженный бит при передаче приведет к искажению только одного бита текста при расшифровании. Защищают от вставок и выбрасываний отрезков шифрованного текста из потока. Такие операции приведут к нарушению синхронизации, что будет сразу же обнаружено на приемной стороне. Уязвимы к изменению отдельных бит. Если злоумышленник знает исходный текст, то он сможет изменять биты в потоке шифрованного текста таким образом, что он будет расшифровываться так, как необходимо злоумышленнику.
Примеры потоковых шифров Алгоритм RC4 - потоковый шифр с переменной длиной ключа, разработанный в 1987 г. Роном Ривестом для компании RSA Data Security, Inc. Алгоритм SEAL (Фил Рогвэй и Дон Копперсмит)– потоковый шифр, разработанный фирмой IBM для 32- разрядных процессоров Алгоритм WAKE Алгоритм WAKE – шифрование слов с автоключом предложен Дэвидом Уилером
Схема преобразований в шифре Blowflsh
Преобразования в режиме сцепления блоков шифра: а-шифрование, б -дешифрование
Преобразование в режиме усиленного сцепления
Схема поточного шифра с предсказуемым периодом ключевой гаммы
Поточный шифр с ключевой гаммой, формируемой по обратной связи функции шифрования