Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Режимы работы блочных шифров.





- Режим сцепления шифровальных блоков

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

Режим электронной кодовой книги ECB (Electronic Codebook Mode) – наиболее очевидный способ использования блочного крптоалгоритма.

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

Обычно, размер блока равен 64 битам, следовательно, в «кодовой книге» достаточно много записей – 264. Структура каждой «кодовой книги» определяется своим ключом.

Достоинством ECB является независимое шифрование блоков. Это важно для шифрования совокупности файлов со случайным доступом, например, базы данных. Шифрованные записи можно удалять и добавлять в любой произвольной участок БД, если считать, что запись состоит из целого числа блоков.

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

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



В частности, рассмотрим систему электронных банковских расчетов, сообщения в которой шифруются блочным алгоритмом в режиме ECB. Стандартный формат сообщений может иметь вид 13 блоков по 64 бита (рис. 6).

 

 

Рис. 6. Формат сообщения о транзакции

 

Пусть злоумышленник контролирует линию связи между двумя банками. Он посылает некоторую сумму (например, $100) из одного банка в другой, затем еще раз. Далее, просмотрев все сообщения, он находит пару совпадающих сообщений. Если таких много, то операцию нужно повторить для выявления «своего» перевода.

Послав выявленное сообщение еще раз, можно получить на счет дохода +$100. Если проделать это с суммами больше $100 и несколько раз, то можно получить достаточный куш.

Эта атака носит название «повторение блока» (block replay).

На первый взгляд, должна помочь выявить подобную атаку отметка времени передачи сообщения (timestamp), однако это не всегда помогает.

Банки могут уменьшить риск, чаще меняя ключи, но это значит только то, что злоумышленнику необходимо работать быстрее.

Адекватным ответом системы защиты на атаки подобного рода является преобразование, называемое сцеплением (chaining), которому соответствует режим СВС (Cipher Block Chaining Mode).

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

В этом режиме блок текста, перед шифрованием с помощью алгоритма Е(×), складывается по модулю 2 с предыдущим шифрованным блоком или вектором инициализации IV (рис. 7).

Рис. 7. Режим шифрования CBC для трех символов текста

 

Расшифрование выполняется аналогично.

Большинство сообщений не делятся нацело на 64-битовые блоки, обычно остается короткий блок в конце текста. Можно по-разному бороться с этим.

Простейший метод – это дополнение до полного блока (padding) несмысловым набором символов. Для удаления «мусора» при восстановлении сообщения достаточно в последнем байте указать количество лишних символов. Также с этой целью можно использовать в качестве последнего байта текста символ конца файла, но иногда это невозможно реализовать, например, в случае, когда расшифрованный блок немедленно отправляется в память.

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

Это и есть шифр для неполного блока (рис. 8).

 

Рис.8. Шифрование последнего короткого блока

 

 

-Режим восстановление после ошибок в СВС (сцеплении шифрованных блоков)

Режим СВС может быть охарактеризован как процедура с обратной связью по шифртексту (feedback) при шифровании и с упреждающей связью (feedforward) по шифртексту при расшифровании.

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

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

В режиме СВС, ошибка одного бита в шифрованном тексте целиком портит этот блок и еще один бит следующего блока (в той же позиции, что и предыдущий). Последующие блоки не повреждаются, т.е. СВС является самовосстанавливающимся режимом (self-recovering).

Несмотря на то, что режим СВС восстанавливается при наличии искажений, он совсем не защищен от ошибок синхронизации. Если добавить или потерять бит, то система будет формировать бессмысленные сообщения.

Поэтому любая система, использующая режим СВС должна обеспечить сохранение структуры исходного текста (framing).

Свойство превращения маленькой ошибки в шифре в большую ошибку текста называется распространением ошибки (error extention).

Для борьбы с таким явлением необходимо применение механизма выявления и исправления ошибок (error detection & recovery). Причем, такая процедура должна выполняться как после зашифрования, так и до расшифрования. Полная схема механизма выявления и исправления ошибок (error control) приведена на рис.9.

 

 

Рис. 9. Простая (а) и улучшенная (б) схемы контроля ошибок

 

 

- Режим обратной связи с шифром (CFB)

Одной из проблем использования режима СВС является невозможность начать шифрование до получения целого блока данных. Это обстоятельство может усложнить работу приложений с удаленным терминалом.

Режим CFB (Cipher Feedback Mode) предусматривает возможность шифрования данных записями, меньшими, чем целый блок.

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

На рис. 10 показан 8-битный режим CFB в случае 64-битного блочного алгоритма. В этом варианте блочный алгоритм работает с очередью (стеком) с размером, равным длине входного блока – 64 бита.

 

Рис. 10. Режим 8-битный CFB-mode, (а) зашифрование, (б) расшифрование

 

Перед началом шифрования стек, как и в режиме СВС, заполняется вектором инициализации IV.

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

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

Расшифрование осуществляется в обратном порядке. Отметим, что на обеих сторонах блочный алгоритм работает в режиме зашифрования.

Как и в СВС, в режиме CFB шифрованный текст зависит от всего предыдущего текста.

Ошибка в шифрованном тексте более интересна. Первый эффект однобитовой ошибки – ошибка в исходном тексте.

При расшифровании ошибочный бит попадает на регистр сдвига и портит результат расшифрования до тех пор, пока не выйдет с другого конца регистра.

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

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

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

 

- Режим обратной связи по выходу (OFB)

Режим OFB (Output Feedback Mode, рис. 11) похож на CFB за исключением того, что в регистр сдвига помещается Si-1, а не Si.

Поэтому данный режим еще называется внутренней обратной связью (internal feedback), т.к. механизм обратной связи не зависит от исходного текста и зашифрованного текста.

 

Рис. 11. Режим OFB, (а) зашифрование, (б) расшифрование

 

Главным преимуществом режима OFB является нераспространение ошибок или отсутствие явления error extension. Ошибка одного бита в шифрованном блоке вызывает однобитную ошибку при восстановлении текста.

Это важное качество для передачи оцифрованных видео- или аудио файлов, где допустимы одиночные ошибки, а эффект распространения ошибок – нет.

С другой стороны, потеря синхронизации будет иметь неустранимые последствия. Поэтому шифрсистема в режиме OFB должна иметь механизм обнаружения потери синхронизации и механизм загрузки регистров сдвига новым вектором инициализации IV для восстановления синхронизации.

Проведенные в последние годы исследования режима OFB доказали, что этот режим должен быть использован только в том случае, когда размер блока равен размеру замещаемого элемента по обратной связи (feedback), т.е. 64-битовый блочный алгоритм должен быть использован с 64-битовым OFB.

Выбор подходящего режима использования блочного алгоритма следует делать исходя из следующих соображений.

ECB – простейший и слабейший. CBC немного сложнее, но много надежнее. СFB и OFB сильнее, но медленнее; CFB обычно используется для удаленных терминалов, OFB – для высокоскоростных синхронных систем передачи. DES разрешено использовать с любым из этих четырех режимов. Прочие режимы применять не рекомендуется.









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.