Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology-lectures_a4_10pt_2.docx
Скачиваний:
6
Добавлен:
22.12.2018
Размер:
678.28 Кб
Скачать

Глава 7

Математические основы блочных шифров

7.1. Блочные шифры

Блочные шифры имеют итеративную структуру. Рассмотрим преобразования ϕ(x, q), π(x, q), δ(x, q) - биективные

по переменной x. Также рассмотрим семейство преобразований qi = θi(k), i = 0, . . . r + 1. Тогда:

Ek (x) = πϕr . . . ϕ1δ(x)

(7.1)

−1

Ek (x)

= δ

−1

ϕ−1

. . . ϕ−1π−1(x)

(7.2)

Выполнение одного преобразования называется раундом или циклом. Каждый раунд выполняется как от x, так и

от q(q называется раундовым или цикловым ключом). π, δ, ϕ - раундовые(цикловые) функции шифра. π - выходное

преобразование, δ - входное. Преобразование θ называется ключевым расписанием или расписанием ключей. Выходные

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

т.е. x - вектор размерности n.

x ∈ Vn, q ∈ Q,

Vn × Q → Vn

(7.3)

(7.4)

Теорема. Если при ∀q ∈ Q подстановки δq и πq (x) взаимно обратны и при ∀q ∈ Q подстановка ϕq (x) есть инволю-

ция, то алгоритм шифрования итерационного шифра обратим и расшифрование отличается от зашифрования лишь

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

Здесь Q - множество ключей, которые используются во входных и выходных преобразованиях. Инволюция -

обратимое преобразование.

7.2. ГОСТ 28147-89

ГОСТ 28147-89 - советский и российский стандарт симметричного шифрования, введённый в 1990 году, также

является стандартом СНГ. Полное название - ГОСТ 28147-89 Системы обработки информации. Защита крипто-

графическая. Алгоритм криптографического преобразования . Блочный шифроалгоритм. При использовании метода

шифрования с гаммированием, может выполнять функции поточного шифроалгоритма.

ГОСТ 28147-89 - блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными

блоками. Основа алгоритма шифра - Сеть Фейстеля.

Базовым режимом шифрования по ГОСТ 28147-89 является режим простой замены (определены также более

сложные режимы гаммирование, гаммирование с обратной связью и режим имитовставки).

Для зашифрования открытый текст сначала разбивается на две половины (младшие биты - A, старшие биты - B).

На i-ом цикле используется подключ Ki:

Ai+1 = Bi ⊕ f (Ai, Ki)

Bi+1 = Ai

(7.5)

(7.6)

Функция f (Ki, Ai) вычисляется следующим образом:

Ai и Ki складываются по модулю 232. Результат разбивается на восемь 4-битовых подпоследовательностей, каждая

из которых поступает на вход своего узла таблицы замен. Выходы всех восьми S-блоков объединяются в 32-битное

слово, затем всё слово циклически сдвигается влево (к старшим разрядам) на 11 битов.

Достоинства алгоритма:

1. обладает очень простой с точки зрения реализации структурой, оперирует 32-битными блоками

2. простота формирования расписания ключей

Таблицы замен алгоритма ГОСТ не регламентированы. Блок замены(S-box, Substitution box) в терминологии ГОСТ -

таблица замены. Известно, что три раунда являются совершенными. Выполняется 32 раунда. Шифр используется 20

лет и за это время успешных атак проведено не было. Криптоаналитики не смогли опустить оценку в 1066 операций

для взлома алгоритма.

Входной ключ x представляется в виде восьми 32-битных блоков:

Раундовый ключ для зашифрования:

x256 = (x32 . . . x32)

(7.7)

0 7

r

7. Математические основы блочных шифров

Рис. 7. ГОСТ 28147-89: схема раундов и таблицы замен

28

7.3. Стандарт шифрования США

Номер S-блока

Значение

1

2

3

4

4

14

5

7

10

11

8

13

9

4

1

10

2

12

13

1

13

6

10

0

8

13

3

8

0

15

4

9

14 6

10 2

2 14

15 14

11

3

15

4

1

8

12

6

12

1

7

12

7

0

6

11

15

7

0

2

5

5

9

5

3

9

11

3

5

6

12

7

1

5

15

13

8

4

10

9

14

0

3

11

2

6

4

11

10

0

7

2

1

13 3

6

8

5

9

12

15

14

7

8

13

1

11

15

4

13

1

0

3

5

15

7

5

10

9

4

0

9

10

2

14

3

7

14

6

6

8

11

2

8

12

12

Рис. 8. Таблица замен

x0, x1, . . . , x7, x0, x1, . . . , x7, x0, x1, . . . , x7, x7, x6, . . . , x0

Расшифрование отличается только порядком использования ключей:

x0, x1, . . . , x7, x7, x6, . . . , x0 x7, x6, . . . , x0 x7, x6, . . . , x0

Может возникнуть ситуация, при которой сообщение после шифрования не изменится:

x0, x1, . . . , x7, x0, x1, . . . , x7 . x7, x6, . . . , x0 x7, x6, . . . , x0

Было показано, что ГОСТ имеет 232 слабых ключей.

Пусть ϕ(x, q) - цикловая функция, ψ(x, q) - функция усложнения. Тогда преобразование можно записать в следу-

ющем виде

ϕ((x1, x2), q) = (x2, ψ(x2, q) ⊕ x1)

(7.11)

- одно циклическое преобразование. Вместо ⊕ - сложения по модулю два может использоваться любая левообратимая

бинарная операция.

Теорема. При любой функции усложнения ψ выполняется

ϕ−1 = T nϕq T n,

(7.12)

где T n - обратимая подстановка множества V2n векторов размерности 2n. Это свойство и доказывает обратимость

шифров типа сети Фейстеля.

7.3. Стандарт шифрования США

Историческая справка

2 января 1997 года NIST объявляет о намерении выбрать преемника для DES, являвшегося американским стандар-

том с 1977 года. Однако, вместо опубликования алгоритма, NIST принял различные предложения от заинтересованных

сторон о том, каким образом следует выбирать алгоритм. Бурные отклик со стороны открытого криптографического

сообщества привёл к объявлению конкурса (12 сентября 1997 года). Свой алгоритм могла предложить любая органи-

зация или группа исследователей.

20 августа 1998 года на 1-й конференции AES был объявлен список из 15 кандидатов: CAST-256, CRYPTON, DEAL,

DFC, E2, FPROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish.

2 октября 2000 года было объявлено, что победителем конкурса стал алгоритм Rijndael, и началась процедура

стандартизации. 28 февраля 2001 года был опубликован проект, а 26 ноября 2001 года AES был принят как FIPS 197.

DES морально устарел по причинам:

1. достаточно короткий ключ - 64 бита

2. изначально заточен на аппаратную реализацию

Технические данные

AES использует блоки переменной длины. Длина шифроключа K составляет 128, 192 или 256 бит. Алгоритм обла-

дает структурой типа квадрат, довольно нетрадиционной для того времени. Операции:

1. операция замены SubBytes(). Входной блок представляется в виде матрицы. Байт разбивается на старшие и

младшие биты и заменяется на соответствующий байт в выходном блоке.

2. сдвиг строк ShiftRows(). Первая строка не сдвигается. Вторая сдвигается на 1 байт. Третья - на два байта,

четвёртая - на три.

3. осуществляется перемешивание столбцов. Столбец входного квадрата представляется как многочлен и умножа-

ется на некоторый заданный многочлен.

4. добавление раундовых ключей RoundKey()

С материальной точки зрения AES имеет простую и понятную алгоритмическую структуру - одна из причин

победы в конкурсе. В алгоритме байты рассматриваются как элементы некоторого конечного поля GF (28). Байту

a7, a6, . . . a0 можно поставить в соответствие многочлен a7x7 + a6x6 + . . . + a0. Пример байта:

q

(7.10)

(7.9)

(7.8)

29

7. Математические основы блочных шифров

{(11001011)}2 = {cb}16 ↔ x7 + x6 + x3 + x + 1

(7.13)

В этом поле вводят две операции:

1. ⊕ сложение по модулю два, аддитивная операция. Для этой операции существует нулевой элемент. Также можно

определить обратный элемент относительно аддитивной операции(например, каждый байт является обратным

относительно самого себя):

{00}16

α ⊕ α−1 = 0

(7.14)

2. Мультипликативная операция * - произведение полиномов по модулю полинома ϕ(x). Выбран полином ϕ(x) =

x8 + x4 + x3 + x + 1 ↔ 1{1b}16, старший бит - лишний.

Примеры аддитивных и мультипликативных операций:

(x6 + x4 + x2 + x + 1) ⊕ (x7 + x + 1) = x7 + x4 + x2

(x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1) mod (x8 + x4 + x3 + x + 1) = x7 + x6 + 1

{01}16 - единица по мультипликативной операции, α ∗ 1 = α

Структура AES

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

begin

byte state[4,Nb]

state = in

AddRoundKey(state, w[0, Nb-1])

for round = 1 step 1 to Nr-1

SubBytes(state)

ShiftRows(state)

MixColumns(state)

AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])

end for

SubBytes(state)

ShiftRows(state)

AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

out = state

end

Nb = 4 для input и State, Nk = 4, 6, 8 для Cipher Key

соответственно для разных длин ключей.

7.4. Другие Шифры

· Блочные шифры: CAST-128, CAST-256, Blowfish, Twofish, DES, DESX, Triple DES, IDEA, MARS, RC2, RC5, RC6,

Serpent, Safer+, TEA, 3-WAY, WAKE, FROG, Skipjack

· Потоковые шифры: RC4, A5

7.5. Режимы работы симметрических криптографических алгоритмов

Рассмотрим следующие режимы:

Режим простой замены или ECB - Electronic Code Book

Здесь вход и выход имеют фиксированный размер.

Как правило, входной текст имеет размер более, чем зафиксированный в алгоритме. Тогда

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

дополняется некоторой заданной последовательностью.

Недостаток - уязвимость к атакам по словарю.

Режим “Сцепление блоков шифра” или CBC - Cipher Block Chaining

Данный режим работы базируется на ECB, однако перед применением простой замены над

входным блоком производится преобразование ⊕ с предыдущим зашифрованным блоком. Для

преобразования над первым блоком служит синхропосылка (она же вектор инициализации - IV

(initialization vector)). Она является несекретным значением криптографического преобразования.

30

7.5. Режимы работы симметрических криптографических алгоритмов

Рис. 9. Режим “Обратная связь по шифротексту” или CFB - Cipher Feed Backwards

Рис. 10. Режим “Обратная связь по выходу” или OFB - Output Feed Backwards

Под ⊕ не обязательно понимается Исключающее ИЛИ, хотя именно оно было впервые приме-

нено в данной схеме в IBM в 1976 году.

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

теперь не являются независимыми.

На схемах 9, 10 так же показан принцип работы двух других режимов.

ГОСТ-28147-89

ГОСТ-28147-89 поддерживает четыре режима работы:

1. Простая замена. Данный режим может применяться только для данных без избыточности

2. Гаммирование.

3. Гаммирование с обратной связью.

4. Выработка имитовставки.

Значение синхропосылки

Применение неодинаковых синхропосылок позволяет выбирать различные гаммы.

Так же синхропосылка позволяет защититься от атак, связанных с отправкой перехваченных сообщений. Для

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

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

синхропосылка открытой. Если является, то проверка на приемнике выполняется явным образом. Если нет, то при

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

31

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]