Режимы использования шифров

Для решения разнообразных криптографических задач блочные шифры используют в нескольких режимах работы. Рассмотрим этот вопрос на примере шифра 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. Режим 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 = MiF(γi), i = 1,2,...,

где F — преобразование, осуществляемое блочным шифром, γi - блоки, сформированные узлом выработки исходной гаммы из начального вектора γ1, который передается в начале сообщения в открытом или зашифрованном виде.

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