Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шемякин лекции 2023 / Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии

.pdf
Скачиваний:
27
Добавлен:
30.05.2023
Размер:
7.75 Mб
Скачать

Ьлочные системы шифрования

СМ Х— сумматор по модулю 232 (операция +);

СМ 2 — сумматор по модулю 2 (операция ®);

К — 32-разрядный регистр циклического сдвига; КЗУ — ключевое запоминающее устройство объемом

256 бит, состоящее из восьми 32-разрядных накопителей;

5 — блок подстановки, состоящий из восьми узлов за­

мены (^-блоков замены)

, 8 2

$ 8.

 

Открытые данные, подлежащие зашифрованию, разби­

вают на 64-разрядные

блоки.

Процедура

зашифрования

64-разрядного блока Т0

включает 32 цикла

(У = 1,32). В

ключевое запоминающее устройство вводится 256 бит ключа

к, записанного в виде восьми 32-разрядных подключей кх:

к- кчк^кък^кък2кх.

Последовательность битов блока

Г0 = ( а 1 (0),...,а32(0) Л ( 0),...,*32(0))

разбивается на две половины по 32 бита (взятые в обратном порядке):

«(0) = (а32(0),а 31(0),...,а1(0) ) , В Д = (632(0) , М 0),...Л ( 0)).

Эти векторы вводятся в накопители и Ы2 перед на­

чалом первого цикла зашифрования. В результате начальным заполнением накопителя является вектор а (0) , а началь­

ным заполнением накопителя Л^2 — вектор Ъ{0). Пусть

«(У) = («з2(УХ-,«10')), Ь(Л = (Ь320'),..АО'))

221

 

\лава 8

— заполнения накопителей

и Ы2 после у-го цикла за­

шифрования и / — обозначение функции шифрования. То­ гда уравнения шифрования представляются в виде:

\ а Ц ) = / ( « 0

- 1 ) + *,-1(т(х18)) ® Ь( ]

~ !)•

\ ь и ) = а и - 1 ) ,

 

при у = 1, 24,

 

 

| а Ц ) = / 0 ( у

- 1 ) + ^32-Лтоё8)) ® Ю

- 1).

Ь(У) = в(7-1)»

при у = 25,31,

Га(32) = в(31),

> (3 2 ) = /(а (3 1 ) + * 0)Ф 6(31).

Вычисление значения функции / производится в два этапа. На первом этапе ее 32-битовый аргумент х , посту­ пающий на блок подстановки 5 , разбивается на восемь по­ следовательных 4-битовых вектора, каждый из которых пре­ образуется в некоторый 4-битовый вектор соответствующим

узлом замены 5,-, / = 1, 8 . Каждый узел замены можно пред­

ставить в виде таблицы-перестановки шестнадцати чисел от О до 15, представленных в виде двоичных векторов длины 4. Восемь преобразованных 5 -блоками векторов последова­ тельно соединяются в 32-битовый вектор ^ (х ). На втором этапе с помощью регистра сдвига К производится цикличе­ ский сдвиг вектора 8(х) влево на 11 позиций.

222

Ьлочные системы шифрования

8 -блоки представляют собой ключевые элементы, кото­ рые являются общими для каждой сети связи. Они должны храниться в секрете.

Результатом зашифрования блока Т0 является блок Гш,

составленный из заполнений накопителей

и Ы2 после 32-

го цикла шифрования. При этом биты блока Тш выводятся из

накопителей в следующем порядке:

Тш = (а, (32),а2(32),...,а32(32),6,(32),62(32),...,6з2 (32)).

Алгоритм шифрования, опеределяемый ГОСТом 2814789, из-за значительно большей длины ключа является суще­ ственно более стойким, нежели алгоритм шифрования ОЕ8.

§8.3. Режимы использования блочных шифров

Для решения разнообразных криптографических задач блочные шифры используют в нескольких режимах работы. Рассмотрим этот вопрос на примере шифра ОЕ8.

Алгоритм БЕ8 может использоваться в следующих че­ тырех режимах:

режим электронной кодовой книги (ЕСВ — Е1ес1готс Сос1е Воок);

режим сцепления блоков (СВС — СгрИег В1оск СИат-

тв)\

режим обратной связи по шифртексту (СРВ — С7- рНег Реес1Васк);

режим обратной связи по выходу (ОРВ — Ои1ри1 Реес1

Васк).

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

223

I лава в

Сп г > 1, шифртекста перед очередным зашифрованием складывается по модулю 2 со следующим блоком открытого текста М /+1. При этом вектор С0 полагается равным началь­ ному вектору IV (1пШа1 Уес1ог). Начальный вектор меняется ежедневно и хранится в секрете. Блоки СР С2,... вырабаты­ ваются по рекуррентной формуле С, = О Е8к (С/_| ® М 1).

Схематично этот режим изображен на рис. 30.

Расшифрование

Рис. 30

224

Ьлочные системы шифрования

В режимах СРВ и ОРВ алгоритм ОЕ8 функционирует по аналогии с “шифром Вернама”, в режиме ОРВ — как син­ хронный шифр (см. гл. 9), в режиме СРВ — как шифр с само­

синхронизацией.

 

 

 

В

режиме

СРВ

вырабатывается блочная “гамма”

2 0, 2 ]9...9причем

2 0 полагается равным начальному вектору

I V , а при / > 1

блоки гаммы удовлетворяют соотношению

21= ОЕ 8/с1_ |). Блоки

открытого текста шифруются по

правилу

С, = М г ®

,

г >1. Схематично этот режим изо­

бражен на рис. 31.

 

 

<

о

 

I! О

V7

ОЕ8*

М,

м,

>г БЕЗ*

с,

Зашифрование

>

п О о

\ /

^

г 4 ОЕ8к ( > 0

"> >

М,

м 2

 

Расшифрование

 

Рис. 31

225

 

Iлава 8

В режиме

ОРВ вырабатывается блочная “гамма”

2 0, 2 Х9..., причем

2 0 полагается равным начальному вектору

I V , а при / > 1

блоки гаммы удовлетворяют соотношению

2 { = ОЕ8к( 2 1_{) .

Блоки открытого текста шифруются по

правилу С, =

2 п г > 1.

Кроме перечисленных режимов, ЭЕ8 имеет также “ре­ жим т-битовой обратной связи”, 1 < т <64 . Этот режим оперирует с ш-битовыми блоками Входной блок (64битовый регистр сдвига) вначале содержит вектор инициали­ зации I V , “выровненный по правому краю"’ (см. рис. 32).

ШшШмшт

Расшифрование

Рис 32

226

Ьлочные системы шифрования

Блоки открытого текста шифруются по правилу С = М, Ф Р1, где Р1 — вектор, состоящий из т старших

битов блока ОЕ8к(С1_]) . Обновление заполнения регистра

сдвига осуществляется путем отбрасывания старших т битов

и дописывания справа вектора Р1.

Указанные режимы имеют свои достоинства и недостат­ ки. Основное достоинство режима ЕСВ — простота реализа­ ции. Недостаток — в возможности проведения криптоанали­ за “со словарем ”. Дело в том что вследствие большой избы­ точности в открытом тексте вполне возможны повторения 64битовых блоков. Это приводит к тому, что одинаковые блоки открытого текста будут представлены идентичными блоками шифртекста, что дает криптоаналитику возможность при на­ личии достаточно большого числа пар открытого и шифро­ ванного текста восстанавливать с большой вероятностью бло­ ки открытого текста по шифртексту.

В режимах ЕСВ и ОРВ искажение при передаче одного

64-битового блока шифртекста С( приводит к искажению

после расшифрования соответствующего блока М г открыто­

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

чину порядка 2 32.

В режимах СВС и СРВ искажение при передаче одного блока

шифртекста С ( приводит к искажению на приеме не более двух

блоков открытого текста — М 1, М [+]. В то же время изменение

блока М ( приводит к тому, что С/ и все последующие блоки

шифртекста будут искажены. Это свойство оказывается полезным

227

/ лава 8

для целей аутентификации. Такие режимы применяются для вы­ работки кода аутентификации сообщения (см. гл. 14).

Так, в режиме СВС берется вектор инициализации, со­

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

тываются блоки С19...,С„ шифртекста. Кодом аутентифика­ ции сообщения (КАС) служит блок Сп .

Если требуется обеспечить лишь целостность сообщения,

отправитель передает блоки М 19...,М„ вместе с Сп . Тогда

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

Если же нужно обеспечить шифрование и аутентифика­ цию, то отправитель сначала использует ключ к { для выра­

ботки К А С , затем шифрует последовательность блоков

М п+1 = КАС на втором ключе к2, и получает по­ следовательность блоков С 19...9Сл9С„+1 . Получатель должен

сначала расшифровать

С 1,...,С/|,С л+1 на ключе

к2, а затем

проверить (с

помощью

к ), что

М п+Х — это

КАС

для

А1\9...9 А/п.

 

 

 

 

 

 

Можно поступить и иначе: сначала использовать к

для

зашифрования

М ,9...9М „ 9 получая

С19...9СЙ, а затем к2

для получения

КАС . Получатель же будет использовать к2

для

проверки

К А С , а затем к

— для расшифрования

С

С

 

 

 

 

 

Во всех перечисленных режимах вместо алгоритма ОЕ8

может быть использован любой алгоритм блочного шифрова­ ния, в частности российский стандарт ГОСТ 28147-89.

228

Ьлочные системы шифрования

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

Рис. 33

Уравнение шифрования имеет вид

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

229

/ лава 8

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

§ 8.4. Комбинирование алгоритмов блочного шифрования

Как было указано выше, алгоритм шифрования БЕ 8 сего­ дня уже не является достаточно стойким. Возникает естест­ венный вопрос: нельзя ли использовать его в качестве строи­ тельного блока для создания другого алгоритма с более длин­ ным ключом? Уже в 80-х годах была предложена идея много­ кратного шифрования, т.е. использования блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста.

Рассмотрим двукратное шифрование блока открытого текста с помощью двух разных ключей. В этом случае снача­ ла шифруют блок М ключом к {9 а затем получившийся

шифртекст Е к (М ) шифруют ключом к2. В результате дву­ кратного шифрования получают криптограмму

С = Е к2 (Ек>(М )) .

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

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

230