Криптография 2018. Симметричное шифрование

Содержание

Слайд 2

Симметричное шифрование Алгоритм шифрования: Вход: исходное незашифрованное сообщение (plaintext) и ключ.

Симметричное шифрование

Алгоритм шифрования:
Вход: исходное незашифрованное сообщение (plaintext) и ключ.
Выход:

зашифрованное сообщение (ciphertext).
Алгоритм расшифрования:
Вход: исходное зашифрованное сообщение (ciphertext) и ключ.
Выход: незашифрованное сообщение (plaintext).
В обоих алгоритмах используется один и тот же ключ.
Слайд 3

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

Безопасность, обеспечиваемая симметричной или традиционной криптографией, зависит от нескольких факторов.

Криптографический алгоритм

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

Безопасность передаваемого сообщения должна зависеть от секретности ключа, но не от секретности алгоритма.

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

Слайд 4

Определения Диффузия - это рассеяние статистических особенностей незашифрованного текста в широком

Определения

Диффузия - это рассеяние статистических особенностей незашифрованного текста в широком диапазоне

статистических особенностей зашифрованного текста. Это достигается тем, что значение каждого элемента незашифрованного текста влияет на значения многих элементов зашифрованного текста или, что то же самое, любой элемент зашифрованного текста зависит от многих элементов незашифрованного текста.

Конфузия - это уничтожение статистической взаимосвязи между зашифрованным текстом и ключом.

Если Х - это исходное сообщение и K - криптографический ключ, то зашифрованный передаваемый текст можно записать в виде Y = EK[X]. Обратное преобразование в этом случае будет выглядеть так: X = DK[Y].

Слайд 5

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

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

блоками или шифрование потоком.

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

В большинстве блочных алгоритмов симметричного шифрования используются следующие типы операций:

Табличная подстановка, при которой группа бит отображается в другую группу бит. Это так называемые S-box.

Перемещение, с помощью которого биты сообщения переупорядочиваются.

Операция сложения по модулю 2, обозначаемая XOR.

Операция сложения по модулю 232 или по модулю 216.

Циклический сдвиг на некоторое число бит.

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

Слайд 6

Входом каждого раунда является выход предыдущего раунда и ключ, который получен

Входом каждого раунда является выход предыдущего раунда и ключ, который получен

по определенному алгоритму из ключа шифрования K.
Ключ раунда называется подключом.

Каждый алгоритм шифрования может быть представлен следующим образом:

Слайд 7

Блочный алгоритм Блочный алгоритм преобразовывает n-битный блок незашифрованного текста в n-битный

Блочный алгоритм

Блочный алгоритм преобразовывает n-битный блок незашифрованного текста в n-битный блок

зашифрованного текста.

Число блоков длины n равно 2n. Для того чтобы преобразование было обратимым, каждый из таких блоков должен преобразовываться в свой уникальный блок зашифрованного текста.

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

Слайд 8

Наиболее широкое распространение получили сети Фейстеля, так как, с одной стороны,

Наиболее широкое распространение получили сети Фейстеля, так как, с одной стороны,

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

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

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

Такое преобразование выполняется несколько циклов или раундов.

Функция F называется образующей.

Слайд 9

Каждый раунд состоит из вычисления функции F для одной ветви и

Каждый раунд состоит из вычисления функции F для одной ветви и

побитового выполнения операции XOR результата F с другой ветвью. После этого ветви меняются местами.

Считается, что оптимальное число раундов - от 8 до 32.

Важно то, что увеличение количества раундов значительно увеличивает криптостойкость алгоритма.

Сеть Фейстеля является обратимой даже в том случае, если функция F не является таковой.

В настоящее время все чаще используются различные разновидности сети Фейстеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются 32-разрядные процессоры.

Основной характеристикой алгоритма, построенного на основе сети Фейстеля, является функция F. Различные варианты касаются также начального и конечного преобразований. Подобные преобразования, называемые забеливанием (whitening), осуществляются для того, чтобы выполнить начальную рандомизацию входного текста.

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

Слайд 10

Алгоритм DES DES является классической сетью Фейстеля с двумя ветвями. Данные

Алгоритм DES

DES является классической сетью Фейстеля с двумя ветвями.

Данные шифруются 64-битными

блоками, используя 56-битный ключ.

Процесс шифрования состоит из четырех этапов.

На первом из них выполняется начальная перестановка ( IP ) 64-битного исходного текста (забеливание), во время которой биты переупорядочиваются в соответствии со стандартной таблицей.

Следующий этап состоит из 16 раундов одной и той же функции, которая использует операции сдвига и подстановки.

На третьем этапе левая и правая половины выхода последней (16-й) итерации меняются местами.

Наконец, на четвертом этапе выполняется перестановка IP-1 результата, полученного на третьем этапе. Перестановка IP-1 инверсна начальной перестановке.

Слайд 11

Алгоритм DES 64-битный входной блок проходит через 16 раундов. При этом

Алгоритм DES

64-битный входной блок проходит через 16 раундов.
При этом на каждой

итерации получается промежуточное 64-битное значение.
Левая и правая части каждого промежуточного значения трактуются как отдельные 32-битные значения, обозначенные L и R.
Слайд 12

Шифрование Начальная перестановка и ее инверсия определяются стандартной таблицей. Если М

Шифрование

Начальная перестановка и ее инверсия определяются стандартной таблицей.
Если М - это

произвольные 64 бита, то
X = IP(M) - переставленные 64 бита.
Если применить обратную функцию перестановки Y = IP-1(X) = IP-1(IP(M)), то получится первоначальная последовательность бит.

Первоначально ключ подается на вход функции перестановки.
Затем для каждого из 16 раундов подключ Ki является комбинацией левого циклического сдвига и перестановки.
Функция перестановки одна и та же для каждого раунда, но подключи Ki для каждого раунда получаются разные вследствие повторяющегося сдвига битов ключа.

Слайд 13

Слайд 14

Создание подключей Ключ для отдельного раунда Ki состоит из 48 бит.

Создание подключей

Ключ для отдельного раунда Ki состоит из 48 бит.
Ключи Ki

получаются по следующему алгоритму:

Для 56-битного ключа, используемого на входе алгоритма, вначале выполняется перестановка в соответствии с таблицей (РС-1).

Полученный 56-битный ключ разделяется на две 28-битные части, обозначаемые как C0 и D0 соответственно.

На каждом раунде Ci и Di независимо циклически сдвигаются влево на 1 или 2 бита, в зависимости от номера раунда.

Полученные значения являются входом следующего раунда. Они также представляют собой вход в табличную перестановку (РС-2), которая и создает 48-битное выходное значение, являющееся подключем раунда.

Слайд 15

Расшифрование Процесс расшифрования аналогичен процессу шифрования. На входе алгоритма используется зашифрованный

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

Процесс расшифрования аналогичен процессу шифрования.
На входе алгоритма используется зашифрованный текст, но

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

Проверим корректность процесса расшифрования. Возьмем зашифрованный текст и ключ и используем

Проверим корректность процесса расшифрования.

Возьмем зашифрованный текст и ключ и используем их

в качестве входа в алгоритм.

Известно, что IP и IP-1 взаимно обратны.
Следовательно, Ld0||Rd0 = IP (ciphertext)
Ciphertext = IP-1(R16||L16) Ld0||Rd0 = IP(IP-1(R16||L16)) = R16||L16
Таким образом, вход первого раунда процесса расшифрования эквивалентен выходу 16-ого раунда процесса шифрования, у которого левая и правая части записаны в обратном порядке.

IP-1(R0||L0) = IP-1(IP (plaintext)) = plaintext, что и демонстрирует возможность расшифрования DES.

Слайд 17

Проблемы DES Так как длина ключа равна 56 битам, существует 256

Проблемы DES

Так как длина ключа равна 56 битам, существует 256 возможных

ключей.

Простейший способ увеличить длину ключа состоит в повторном применении DES с двумя разными ключами. Используя незашифрованное сообщение P и два ключа K1 и K2, зашифрованное сообщение С можно получить следующим образом:
C = Ek2 [Ek1 [P]]
Для расшифрования требуется, чтобы два ключа применялись в обратном порядке:
P = Dk1 [Dk2 [C]]
В этом случае длина ключа равна 56 * 2 = 112 бит.

Слайд 18

Атака “встреча посередине” Для приведенного выше алгоритма двойного DES существует так

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

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

атака "встреча посередине". Она основана на следующем свойстве алгоритма. Мы имеем
С = Ek2 [Ek1 [P]] Тогда X = Ek1 [P] = Dk2 [C].
Требуется, чтобы атакующий знал хотя бы одну пару незашифрованный текст и соответствующий ему зашифрованный текст: (Р, С).
В этом случае, во-первых, шифруется Р для всех возможных K1, и упорядочивается по значению Х.
Следующий шаг состоит в расшифровании С, с применением всех K2.
Для каждого выполненного расшифрования ищется равное ему значение в первой таблице. Если соответствующее значение найдено, то считается, что эти ключи могут быть правильными, и они проверяются для следующей известной пары незашифрованный текст, зашифрованный текст.