Типы алгоритмов и криптографические режимы

Существует два основных типа симметричных алгоритмов : блочные шифры и потоковые шифры. Блочные шифрыработают с блоками открытого текста и шифротекста - обычно длиной 64 бита, но иногда длиннее. По­токовые шифрыработают с битовыми или байтовыми потоками открытого текста и шифротекста (иногда да­же с потоками 32-битных слов). Блочный шифр, использующий один и тот же ключ, при шифровании всегда превращает один и тот же блок открытого текста в один и тот же блок шифротекста . Потоковый шифр при каж­дом шифровании превращает один и тот же бит или байт открытого текста в различные биты или байты ши ф-ротекста.

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

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

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

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

9.1 Режим электронной шифровальной книги

Режим электронной шифровальной книги(electronic codebook, ECB) - это наиболее очевидный способ ис­пользовать блочный шифр: блок открытого текста заменяется блоком шифротекста. Так как один и тот же блок открытого текста заменяется одним и тем же блоком шифротекста, то теоретически возможно создать шифр о-вальную книгу блоков открытого текста и соответствующих шифротекстов . Однако, если размер блока - 64 би­та, то кодовая книга будет состоять из 2м записей - слишком много для предварительного вычисления и хран е-ния. И не забывайте, для каждого ключа понадобится отдельная шифровальная книга .

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

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

Если криптоаналитик знает, что блок открытого текста "5е081Ьс5" при шифровании превращается в блок шифротекста "7еа593а4," то он может мгновенно расшифровать этот блок шифротекста, в каком-бы другом с о-общении он не появился. Если в шифрованном сообщении много повторов, которые имеют тенденцию занимать одинаковое место в различных сообщениях, криптоаналитик может получить много информации . Он может попытаться статистически вскрыть используемый открытый текст, независимо от силы блочного шифра .

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

Положительной стороной является возможность шифровать несколько сообщений одним ключом без сниж е-


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