Режимы использования шифров.
Для решения разнообразных криптографических задач блочные шифры используют в нескольких режимах работы. Рассмотрим этот вопрос на примере шифра DES.
Алгоритм DES может использоваться в следующих четырех режимах:
—режим электронной кодовой книги (ЕСВ — Electronic Code Book);
—режим сцепления блоков (СВС — Cipher Block Chaining);
— режим обратной связи по шифртексту (CFB — Cipher Feed Back);
—режим обратной связи по выходу (OFB — Output Feed Back).
Режим электронной кодовой книги (ЕСВ) отвечает обычному использованию DES как блочного шифра, осуществляющего некоторую простую замену блоков открытого текста. В режиме сцепления блоков (СВС) каждый блок Ci, i>1, шифртекста перед очередным зашифрованием складывается по модулю 2 со следующим блоком открытого текста Мi . При этом вектор С0 полагается равным начальному вектору IV (Initial Vector). Начальный вектор меняется ежедневно и хранится в секрете. Блоки С,,С2,... вырабатываются по рекуррентной формуле
Сi = DESk (Ci-1 Å Mi).
Рис.27. Режим CBC.
В режимах CFB и OFB алгоритм DES функционирует по аналогии с "шифром Вернама", в режиме OFB — как синхронный шифр, в режиме CFB — как шифр с самосинхронизацией.
В режиме CFB вырабатывается блочная "гамма" Z0,Z1,..., причем Z0 полагается равным начальному вектору IV, а при i ≥ 1 блоки гаммы удовлетворяют соотношению Zi = DESk(Ci-1). Блоки открытого текста шифруются по правилу Ci = Mi Å Zi, i ≥ 1.
Рис.28. Режим CFB.
В режиме OFB вырабатывается блочная "гамма" Z0,Z1, ..., причем Z0 полагается равным начальному вектору IV, а при i ≥ 1 блоки гаммы удовлетворяют соотношению Zi = DESk (Zi-1). Блоки открытого текста шифруются по правилу Ci=Mi Å Zi, i ≥ 1.
Рис.29. Рис.29. Режим OFB.
Кроме перечисленных режимов, DES имеет также "режим т-битовой обратной связи", 1 ≤ т ≤ 64 . Этот режим оперирует с m-битовыми блоками. Входной блок (64-битовый регистр сдвига) вначале содержит вектор инициализации IV, "выровненный по правому краю".
Рис.30. Режим m-битовой обратной связи.
Блоки открытого текста шифруются по правилу Сi = Mi Å Pi, где Pi — вектор, состоящий из т старших битов блока DESk (Сi-1). Обновление заполнения регистра сдвига осуществляется путем отбрасывания старших т битов и дописывания справа вектора Pi.
Указанные режимы имеют свои достоинства и недостатки. Основное достоинство режима ЕСВ — простота реализации. Недостаток — в возможности проведения криптоанализа "со словарем ". Дело в том что вследствие большой избыточности в открытом тексте вполне возможны повторения 64-битовых блоков. Это приводит к тому, что одинаковые блоки открытого текста будут представлены идентичными блоками шифртекста, что дает криптоаналитику возможность при наличии достаточно большого числа пар открытого и шифрованного текста восстанавливать с большой вероятностью блоки открытого текста по шифртексту.
В режимах ЕСВ и OFB искажение при передаче одного 64-битового блока шифртекста С, приводит к искажению после расшифрования соответствующего блока Mi открытого текста, но не влияет на следующие блоки. Это свойство используется для шифрования информации, предназначенной для передачи по каналам связи с большим числом искажений. Вместе с тем при использовании режима OFB остается открытым вопрос о периоде получаемой выходной гаммы, который в некоторых предположениях может составлять величину порядка 232.
В режимах СВС и CFB искажение при передаче одного блока шифртекста Сi приводит к искажению на приеме не более двух блоков открытого текста — Мi, Mj+1. В то же время изменение блока Mi приводит к тому, что Ci и все последующие блоки шифртекста будут искажены. Это свойство оказывается полезным для целей аутентификации. Такие режимы применяются для выработки кода аутентификации сообщения. Так, в режиме СВС берется вектор инициализации, состоящий из одних нулей. Затем с помощью ключа k вырабатываются блоки Ci,...,Cn шифртекста. Кодом аутентификации сообщения (КАС) служит блок Сп.
Если требуется обеспечить лишь целостность сообщения, отправитель передает блоки М1,...,Мп вместе с Сп. Тогда противнику, желающему изменить сообщение, нужно соответствующим образом изменить и блок Сп. Возможность этого маловероятна, если только противник не располагает секретным ключом k.
Если же нужно обеспечить шифрование и аутентификацию, то отправитель сначала использует ключ k1для выработки КАС, затем шифрует последовательность блоков М1,...,Мп, Мп+1 = КАС на втором ключе k2, и получает последовательность блоков С1,...,Сn,Сn+1. Получатель должен сначала расшифровать С1,...,Сп,Сп+1на ключе k2, а затем проверить (с помощью k ), что Мп+1— это КАС для М0, ... , Мn.
Можно поступить и иначе: сначала использовать k для зашифрования М1,..., Мn, получая С1,..., Сn, а затем k2— для получения КАС. Получатель же будет использовать k2 для проверки КАС, а затем k — для расшифрования C1, .. ,Cn.
Во всех перечисленных режимах вместо алгоритма DES может быть использован любой алгоритм блочного шифрования, в частности российский стандарт ГОСТ 28147-89.
В российском стандарте также предусмотрено несколько режимов использования: режим простой замены, режим шифрования с обратной связью и режим гаммирования с обратной связью, которые являются аналогами соответственно режимов ЕСВ, СВС и CFB. Для того чтобы избавиться от указанной выше проблемы неопределенности длины периода гаммы в режиме OFB, в российском стандарте введен режим гаммирования, при котором блочный шифр используется в качестве узла усложнения некоторой последовательности гарантированного периода. Для выработки этой последовательности обычно применяются линейные регистры сдвига или счетчики по некоторому модулю.
Рис.31. Режим гаммирования.
Уравнение шифрования имеет вид
Ci = Mi.Å F(γi), i = 1,2,...,
где F — преобразование, осуществляемое блочным шифром, γi - блоки, сформированные узлом выработки исходной гаммы из начального вектора γ1, который передается в начале сообщения в открытом или зашифрованном виде.
Ошибка при передаче, состоящая в искажении символа, приводит при расшифровании к искажению только одного блока, поэтому сохраняются все преимущества шифра гаммирования.
Контрольные вопросы
1. В чем различие между поточными и блочными шифрами?
2. Какие шифры удобнее в программной, а какие в аппаратной реализации?
3. Какие требования предъявляются к шифрующим преобразованиям блочных шифров?
4. В чем суть рассеивающих и перемешивающих преобразований при блочном шифровании?
5. Назовите основные параметры блочных шифров.
6. Какие виды поточных шифров могут быть эффективно реализованы программно?
7. Какие требования предъявляются к генераторам псевдослучайной последовательности?
8. Какие требования предъявляются к функции шифрования поточного шифра?
9. Какие режимы шифрования не распространяют искажений?
Дата добавления: 2016-02-13; просмотров: 2444;