Шемякин лекции 2023 / Алфёров А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии
.pdfЬлочные системы шифрования
СМ Х— сумматор по модулю 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