- •Вопрос №2. Des. Свойства, принцип работы (подробно). Режимы использования des. Модификации des. Криптоанализ des. Проблема последнего блока. Сравнить с гост.
- •Принцип работы алгоритма
- •Режимы использования шифра des
- •Криптостойкость алгоритма
- •Увеличение криптостойкости алгоритма (модификации des)
- •Сравнение шифров гост 28147-89 и des
Режимы использования шифра des
DES может используется в четырёх режимах.
1. Режим электронной кодовой книги (ЕСВ — Electronic Code Book): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом, каждый блок шифруется отдельно, не взаимодействуя с другими блоками (рисунок 1.5).
Рисунок 1.5 – Режим электронной кодовой книги – ECB
2. Режим сцепления блоков (СВС — Cipher Block Chaining)). Каждый очередной блок Ci i>=1, перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi+1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете (рисунок 1.6).
Рисунок 1.6 – Режим сцепления блоков — СВС
3. Режим обратной связи по шифротексту (CFB — Cipher Feed Back). В режиме СFB вырабатывается блочная «гамма» Z0,Z1,...Zi=DESk(Ci−1). Начальный вектор C0 сохраняется в секрете (рисунок 1.7).
Рисунок 1.7 – Режим обратной связи с шифротексту – CFB
4. Режим обратной связи по выходу (OFB — Output Feed Back). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,... , i>=1 (рисунок 1.8)
Рисунок 1.8 – Режим обратной связи по выходу – OFB
Достоинства и недостатки режимов:
Режим ECB прост в реализации, но возможно проведение криптоанализа
В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста Ci приводит к искажению после расшифрования только соответствующего открытого блока Mi, поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.
В режимах CBC и CFB искажение при передаче одного блока шифрованного текста Сi приводит к искажению на приёмнике не более двух блоков открытого текста Mi,Mi+1. Изменение Mi приводит к изменению всех остальных блоковMi+1,Mi+2… Это свойство используется для выработки кода аутентификации сообщения.
Криптостойкость алгоритма
Нелинейность преобразований в DES средствами только S-блоков, в случае, если они имеют слабину, позволяет осуществлять контроль над шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:
Каждая строка каждого блока должна быть перестановкой множества {0,1,2,……,15}
S-блоки не должны являться линейной или афинной функцией своих аргументов.
Изменение одного бита на входе S-блока должно приводить к изменению по крайней мере двух битов на выходе.
Для каждого S-блока и любого аргумента х значение и должны различаться по крайней мере двумя битами.
Из-за небольшого числа возможных ключей (всего 256), появляется возможность их полного перебора на быстродействующей вычислительной технике за реальное время.
В алгоритме DES существуют слабые и частично-слабые ключи. Слабыми ключами называется ключи k такие что DESk(DESk(x)) = x, x — блок 64 бит. Частично-слабые ключи — пары ключей (k1,k2) такие, что DESk1(DESk2(x))=x. Известны 4 слабых ключа. Для каждого слабого ключа существует 232 «постоянные точки», то есть таких 64-битовых блоков х, в которых DESk(x) = x. Существуют 6 частично-слабых пар ключей. Для каждого из 12 частично-слабых ключей существуют 232 «анти-постоянные точки», то есть такие блоки х, что .
Основными методами взлома алгоритма являются:
Метод полного поиска требует одну известную пару шифрованного и расшифрованного текста, незначительный объём памяти, и для его выполнения нужны 255 шагов.
Дифференциальный криптоанализ — эта атака требует шифрования 247 открытых текстов, выбранных нападающим, и для её выполнения нужны 247 шагов. Теоретически являясь точкой разрыва, эта атака непрактична из-за чрезмерных требований к подбору данных и сложности организации атаки по выбранному открытому тексту.
Линейный криптоанализ разработан Матсуи. Этот метод позволяет восстановить ключ DES с помощью анализа 243 известных открытых текстов, при этом требуется 243 шагов для выполнения.
Для линейной и дифференциальной атак требуется достаточно большой объём памяти для сохранения выбранных (известных) открытых текстов до начала атак.