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

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

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

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

Процесс дешифрования аналогичен процессу шифрования. На входе алгоритма используется зашифрованный текст, но ключи Ki используются в обратной последовательности. K16 используется на первом раунде, K1 используется на последнем раунде. Пусть выходом i-ого раунда шифрования будет Li||Ri. Тогда соответствующий вход (16-i)-ого раунда дешифрования будет Ri||Li.

После последнего раунда процесса расшифрования две половины выхода меняются местами так, чтобы вход заключительной перестановки IP-1 был R16||L16. Выходом этой стадии является незашифрованный текст.

Проверим корректность процесса дешифрования. Возьмем зашифрованный текст и ключ и используем их в качестве входа в алгоритм. На первом шаге выполним начальную перестановку IP и получим 64-битное значение Ld0||Rd0. Известно, что IP и IP-1 взаимно обратны. Следовательно

Ld0||Rd0 = IP (зашифрованный текст)
Зашифрованный текст = IP-1(R16||L16)
Ld0||Rd0 = IP(IP-1(R16||L16)) = R16||L16

Таким образом, вход первого раунда процесса дешифрования эквивалентен 32-битному выходу 16-ого раунда процесса шифрования, у которого левая и правая части записаны в обратном порядке.

Теперь мы должны показать, что выход первого раунда процесса дешифрования эквивалентен 32-битному входу 16-ого раунда процесса шифрования. Во-первых, рассмотрим процесс шифрования. Мы видим,что

L_{16} = R_{15}\\
R_{16} = L_{15} \oplus F(R_{15}, K_{16})

При дешифровании:

L^d_1 = R^d_0 = L_{16} = R_{15}\\
R^d_1 = L^d_0 \oplus F(R^d_0, K_{16}) =\\
= R_{16} \oplus F(R^d_0, K_{16} =\\
= (L_{15} \oplus F(R_{15}, K_{16})) \oplus F(R_{15}, K_{16})

XOR имеет следующие свойства:

(A \oplus B) \oplus C = A \oplus (B \oplus C)\\
D \oplus D = 0\\
E \oplus 0 = E

Таким образом, мы имеем Ld1 = R15 и Rd1 = L15. Следовательно, выход первого раунда процесса дешифрования есть L15||R15, который является перестановкой входа 16-го раунда шифрования. Легко показать, что данное соответствие выполняется все 16 раундов. Мы можем описать этот процесс в общих терминах. Для i-ого раунда шифрующего алгоритма:

L_i = R_{i-1}\\
R_i = L_{i-1} \oplus F(R_{i-1}, K_i)

Эти равенства можно записать по-другому:

R_{i-1}> = L_i\\
L_{i-1} = R_i \oplus F(R_{i-1}, K_i) = R_i  \oplus F(L_i, K_i)

Таким образом, мы описали входы i-ого раунда как функцию выходов.

Выход последней стадии процесса дешифрования есть R0||L0. Чтобы входом IP-1 стадии было R0||L0, необходимо поменять местами левую и правую части. Но

IP-1(R0||L0) = IP-1(IP (незашифрованный текст)) = незашифрованный текст

Т.е. получаем незашифрованный текст, что и демонстрирует возможность дешифрования DES.

Проблемы DES

Так как длина ключа равна 56 битам, существует 256 возможных ключей. На сегодня такая длина ключа недостаточна, поскольку допускает успешное применение лобовых атак. Альтернативой DES можно считать тройной DES, IDEA, а также алгоритм Rijndael, принятый в качестве нового стандарта на алгоритмы симметричного шифрования.

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

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

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

Недостатки двойного DES

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

C = Ek2 [Ek1 [P]]

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

P = Dk1 [Dk2 [C]]

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

Атака "встреча посередине"

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

С = Ek2 [Ek1 [P]]

Тогда

X = Ek1 [P] = Dk2 [C].

Атака состоит в следующем. Требуется, чтобы атакующий знал хотя бы одну пару незашифрованный текст и соответствующий ему зашифрованный текст: (Р, С). В этом случае, во-первых, шифруется Р для всех возможных 256 значений K1. Этот результат запоминается в таблице, и затем таблица упорядочивается по значению Х. Следующий шаг состоит в дешифровании С, с применением всех возможных 256 значений K2. Для каждого выполненного дешифрования ищется равное ему значение в первой таблице. Если соответствующее значение найдено, то считается, что эти ключи могут быть правильными, и они проверяются для следующей известной пары незашифрованный текст, зашифрованный текст.

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

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

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

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

C = EK1 [DK2 [EK1 [P]]]
Шифрование тройным DES

Рис. 2.6. Шифрование тройным DES
Дешифрование тройным DES

Рис. 2.7. Дешифрование тройным DES

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

C = EK1 [DK1 [EK1 [P]]] = EK1 [P]

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

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

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Татьяна Крыжановская
Татьяна Крыжановская
Украина, Одесса
Valeriya Gubareva
Valeriya Gubareva
Россия