Опубликован: 28.11.2014 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 1:

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

Лекция 1: 123456 || Лекция 2 >

Алгоритм тройной DES

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

Атака на двойной DES

Простейший способ увеличить длину ключа состоит в повторном при-менении алгоритма DES с двумя разными ключами. Используя незашифрованное сообщение P и два ключа K1 и K2, зашифрованное сообщение С можно получить следующим образом:

C = E_k_2[E_k_1[P]]

Для расшифрования требуется, чтобы два ключа применялись в обратном порядке:

P = D_k_1 [D_k_2[C]]

В этом случае длина ключа равна 56 * 2= 112 бит.

Опишем атаку "встреча посередине". Она основана на следующем свойстве алгоритма.

Требуется, чтобы атакующий знал хотя бы одну пару незашифрованное сообщение и соответствующее ему зашифрованное сообщение: (Р,С). В этом случае, во-первых, он шифрует Р на всех возможных 256 значений ключей.

X = E_K [P]

Этот результат запоминается в таблице, и затем таблица упорядочивается по значению Х. Затем нарушитель расшифровывает С, используя все возможные 256 значения ключа. Для каждого расшифрованного значения ищется равное ему значение в первой таблице. Если соответствующее значение найдено, то это возможные ключи.

Если известна еще одна пара 11), полученная с использованием этих же ключей, то найденные ключи проверяются на ней.

Если известна только одна пара незашифрованное сообщение, зашиф-рованное сообщение, то может быть получено достаточно большое число потенциальных ключей. Но если противник имеет возможность перехва-тить хотя бы две пары значений (незашифрованное сообщение - зашифрованное сообщение), то сложность взлома двойного DES фактически стано-вится равной сложности взлома обычного DES, т.е. 256.

Тройной DES с двумя ключами

Очевидное противодействие атаке "встреча посередине" состоит в использовании третьей стадии шифрования с тремя различными ключами. Это поднимает стоимость атаки с известным незашифрованным текстом до 2168, которая на сегодняшний день считается выше практических возможностей. Но при этом длина ключа равна 56 * 3 = 168 бит, что иногда бывает громоздко.

В качестве альтернативы можно использовать тройное шифрование с двумя ключами. В этом случае выполняется последовательность шифрова-ние-расшифрование-шифрование (EDE).

C = E_K_1 [D_K_2 [E_K_1 [P]]]
Шифрование тройным DES с двумя ключами

Рис. 1.6. Шифрование тройным DES с двумя ключами
Расшифрование тройным DES с двумя ключами

Рис. 1.7. Расшифрование тройным DES с двумя ключами

Не имеет большого значения, что используется на второй стадии: шифрование или расшифрование. В случае использования расшифрования существует только то преимущество, что можно тройной DES свести к обычному одиночному DES, используя K1=K2:

C = E_K_1 [D_K_1 [E_K_1 [P]]] = E_K_1 [P]

Тройной DES является достаточно популярной альтернативой DES и используется при управлении ключами в стандартах ANSIX9.17 и ISO 8732 и в PEM (Privacy Enhanced Mail).

Известных криптографических атак на тройной DES не существует. Цена подбора ключа в тройном DES с двумя ключами равна 2112.

1.10 Алгоритм ГОСТ 28147

Алгоритм ГОСТ 28147 является отечественным стандартом на алго-ритмы симметричного шифрования. ГОСТ 28147 разработан в 1989 году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32. Алгоритм представляет собой классическую сеть Фейштеля.

L_i = R_i
R_i = L_i \oplus F(R_i_-_1, K_i)

Функция F проста. Сначала правая половина и i-ый подключ склады-ваются по модулю 232. Затем результат разбивается на восемь 4-битовых значений, каждое из которых подается на вход S-box. ГОСТ 28147 использует восемь различных S-box, каждый из которых имеет 4-битовый вход и 4-битовый выход. Выходы всех S-box объединяются в 32-битное слово, которое затем циклически сдвигается на 11 битов влево. Наконец, с помощью XOR результат объединяется с левой половиной, в результате чего получается новая правая половина.

I- ый раунд алгоритма ГОСТ 28147

Рис. 1.8. I- ый раунд алгоритма ГОСТ 28147

Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных подключей. Алгоритм имеет 32 раунда, поэтому каждый подключ используется в четырех раундах по следующей схеме:

Таблица 1.1.
Раунд 1 2 3 4 5 6 7 8
Подключ 1 2 3 4 5 6 7 8
Раунд 9 10 11 12 13 14 15 16
Подключ 1 2 3 4 5 6 7 8
Раунд 17 18 19 20 21 22 23 24
Подключ 1 2 3 4 5 6 7 8
Раунд 25 26 27 28 29 30 31 32
Подключ 8 7 6 5 4 3 2 1

Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется структурой S-box. Долгое время структура S-box в открытой печати не публиковалась. В настоящее время известны S-box, которые используются в приложениях Центрального Банка РФ и считаются достаточно сильными. Напомню, что входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки цифр от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер цифры будет являться входным значением S-box, а сама цифра – выходным значением S-box.

Таблица 1.2.
1-ый S-box 4 10 9 2 13 8 0 14
6 11 1 12 7 15 5 3
2-ой S-box 14 11 4 12 6 13 15 10
2 3 8 1 0 7 5 9
3-ий S-box 5 8 1 13 10 3 4 2
14 15 12 7 6 0 9 11
4-ый S-box 7 13 10 1 0 8 9 15
14 4 6 12 11 2 5 3
5-ый S-box 6 12 7 1 5 15 13 8
4 10 9 14 0 3 11 2
6-ой S-box 4 11 10 0 7 2 1 13
3 6 8 5 9 12 15 14
7-ой S-box 13 11 4 1 3 15 5 9
0 10 14 7 6 8 2 12
8-ой S-box 1 15 13 0 5 7 10 4
9 2 3 14 6 11 8 12

Основные различия между алгоритмами DES и ГОСТ 28147 следующие:

  • DES использует гораздо более сложную процедуру создания подключей, чем ГОСТ 28147. В ГОСТ эта процедура очень проста.
  • В DES применяется 56-битный ключ, а в ГОСТ 28147 – 256-битный. При выборе сильных S-box ГОСТ 28147 считается очень стойким.
  • У S-box DES 6-битовые входы и 4-битовые выходы, а у S-box ГОСТ 28147 4-битовые входы и выходы. В обоих алгоритмах используется по восемь S-box, но размер S-box ГОСТ 28147 существенно меньше размера S-box DES.
  • В DESприменяются нерегулярные перестановки Р, в ГОСТ 28147 используется 11-битный циклический сдвиг влево. Пе-рестановка DES увеличивает лавинный эффект. В ГОСТ 28147 изменение одного входного бита влияет на один S-box одного раунда, который затем влияет на два S-box следующего раун-да, три S-box следующего и т.д. В ГОСТ 28147 требуется 8 ра-ундов прежде, чем изменение одного входного бита повлияет на каждый бит результата; DES для этого нужно только 5 ра-ундов.
  • В DES 16 раундов, в ГОСТ 28147 – 32 раунда, что делает его более стойким к дифференциальному и линейному криптоана-лизу.
Лекция 1: 123456 || Лекция 2 >
Андрей Викторов
Андрей Викторов
Россия, Санкт-Петербург, Северо-Западный заочный технический университет, 2007
Мария Шахрай
Мария Шахрай
Украина, НТУУ КПИ, 2013