Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000261.doc
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
1.3 Mб
Скачать
    1. Режим шифрованной обратной связи

Однако у метода сцепления блоков шифра есть и недостаток, заключающийся в том, что прежде чем может начаться шифрование или дешифрация, должен появиться целый 64-битовый блок данных. Для пользователей интерактивных терминалов, набирающих строки короче восьми символов и ждущих ответа, такой метод не подходит. Для побайтового шифрования может применяться режим шифрованной обратной связи с использованием (тройного) DES, как показано на рисунке 30. Для стандарта AES идея остается той же самой, только используется 128-разрядный сдвиговый регистр. На рисунке мы видим состояние шифрующей машины после того, как байты с 0 по 9 уже зашифрованы и посланы. Когда прибывает десятый байт открытого текста, как показано на рисунке 30, а, алгоритм DES обрабатывает 64-разрядный сдвиговый регистр, чтобы произвести 64-разрядный зашифрованный блок. Самый левый байт этого зашифрованного текста извлекается и складывается по модулю 2 с Р10. Этот байт передается по линии. Затем сдвиговый регистр сдвигается влево на 8 разрядов. При этом байт С2 извлекается с левого конца регистра, а байт Сю вставляется в него на освободившееся место справа от С9. Обратите внимание на то, что содержимое сдвигового регистра зависит от всей предыстории открытого текста, так что повторяющиеся фрагменты исходного текста будут кодироваться каждый раз по-разному. Как и для метода сцепленных блоков шифра, для начала шифрования этим методом требуется вектор инициализации.

Рис. 30. Режим шифрованной обратной связи

При использовании режима шифрованной обратной связи дешифрация аналогична шифрованию. В частности, содержимое сдвигового регистра шифруется, а не дешифруется, поэтому байт, который складывается по модулю 2 с С10 для получения Р10, равен тому байту, который складывается по модулю 2 с Р10 для получения С10. Пока содержимое двух сдвиговых регистров идентично, дешифрация выполняется корректно. Это показано на рис. 30.

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

    1. Режим группового шифра

Тем не менее, существуют приложения, в которых один испорченный при передаче бит приводит к порче 64 бит открытого текста, а это многовато. Для таких приложений существует четвертый вариант, называемый режимом группового (потокового) шифра. Суть его заключается в том, что выходной блок получается шифрацией вектора инициализации с использованием ключа. Затем этот выходной блок снова шифруется с использованием ключа, в результате чего получается второй выходной блок. Для получения третьего блока шифруется второй блок, и т. д. Последовательность (произвольной длины) выходных блоков, называемая ключевым потоком, воспринимается как одноразовый блокнот и складывается по модулю 2 с открытым текстом. В результате получается шифрованный текст, как показано на рис. 31. Обратите внимание: вектор инициализации используется только на первом шаге. После этого шифруются выходные блоки. Кроме того, ключевой поток не зависит от данных, поэтому он в случае необходимости может быть вычислен заранее и совершенно не чувствителен к ошибкам передачи. Процесс дешифрации также отражен на рис. 31.

Дешифрация осуществляется путем генерации точно такого же ключевого потока на принимающей стороне. Поскольку он зависит только от вектора инициализации и ключа, ошибки передачи шифрованного текста на него не влияют. Таким образом, ошибка в одном бите передаваемого шифра приводит к ошибке только одного бита расшифрованного текста.

Рис. 31. Шифрование с использованием ключа

Важно никогда не использовать одну и ту же пару ключ — вектор инициализации в одном и том же групповом шифре, поскольку при этом всякий раз будет получаться одинаковый ключевой поток. Повторное использование ключевого потока может привести к неприятному эффекту взлома шифра при помощи многократного использования ключевого потока. Допустим, блок открытого текста Р0 шифруется с помощью ключевого потока, в результате чего получается сумма по модулю 2 Р0 и К0. Затем берется второй блок открытого текста, QQ, И шифруется тем же ключевым потоком (получаем Q0 XOR К0). Криптоаналитик, перехвативший оба блока шифрованного текста, может просто сложить их вместе по модулю 2 и получить в результате Р0 XOR Q0, убирая тем самым ключ. Теперь у него есть сумма по модулю 2 двух блоков открытого текста. Если один из них известен (или его можно угадать), найти второй — не проблема. В любом случае, взломать сумму по модулю 2 двух блоков открытого текста можно, используя статистические свойства сообщения. Скажем, если передается английский текст, то наиболее часто встречающейся буквой в потоке будет «е», и т. д. Короче говоря, имея сумму по модулю 2 двух частей открытого текста, взломщик с высокой вероятностью сможет вычислить обе части.