Алгоритм DES имеет ряд существенных недостанков. Основные их них:
² Битовые операции в узлах замены неэффективно реализуются программным путем.
² Короткая длина ключа (56 битов), что, собственно, и помогло организовать полный перебор.
² Обнаружена теоретическая возможность уменьшить пространство перебора с помощью дифференциального криптоанализа (с выбором шифрограммы) и линейного криптоанализа (с известным сообщением), если известно достаточно много (порядка 247) пар сообщение — шифрограмма.
Известно, что независимый выбор подключей практически не увеличивает стойкости алгоритма.
Криптостойкость DES
В январе 1997г. компания RSA Data Security опубликовала зашифрованный с помощью DES текст и назначила приз в 10 тыс. долларов тому, кто его расшифрует. Результат был получен за 4 месяца «грубой силой», путем полного перебора ключей, в котором участвовало около 78 000 компьютеров в США и Канаде, в основном обычных персональных (в среднем 14 000 компьютеров ежедневно). Пользователи этих машин получали по интернету программу для перебора и интервалы пространства ключей. Всего было испробовано около 18х1015 вариантов из примерно 72х1015 возможных. Пик производительности составил 7х109 вариантов в секунду. Результат был получен на компьютере с процессором Рentium-90 и 16 мегабайт памяти. Таким образом, DES нельзя считать надежным шифром, тем более при многократно увеличевшейся с тех тор мощности компьтеров. Однако, DES оказал большое влияние на развитие криптосистем с секретным ключом и до сих пор используется для защиты информации невысокого уровня секретности.
Способы улучшения DES. Тройной DES
Преобразования DES не образуют группы, то есть композиция двух операций шифрования с разными ключами не является в общем случае DES-шифрованием с некоторым третьим ключом. Следовательно, можно пытаться увеличить пространство ключей за счет многократного применения DES.
Ключ DES имеет длину 56 бит, поэтому существует 256 возможных вариантов такого ключа.
Двойной DES:
c = DES k 1(DES k 2(m)),
нe обеспечивает увеличения в 256 раз объема перебора, необходимого для определения ключа, поскольку при атаке с известным сообщением можно подбирать параллельно ключи k 1 и k 2, накапливать в хэш-таблице значения DES k 2(m) и DES K 1-1(с) и искать совпадения между ними.
Специалистами рекомендуется тройной DES:
• в режиме ЕСВ: c = DES k 1(DES k 2(DES k 3(m)))
или c = DES k 1(DES k 2-1(DES k 3(m)),
• в других режимах: c = DES k 1(DES k 2-1(DES k 1(m)).
Применение функции дешифрования на втором шаге объясняется желанием достичь совместимости с однократным алгоритмом DES в случае, если все ключи равны.
Тройное шифрование с двумя ключами все равно сводится к однократному при использовании атаки с выбором сообщения.
Сновные режимы работы алгоритма DES
Алгоритм DES вполне подходит как для шифрования, так и для аутентификации данных. Он позволяет непосредственно преобразовывать 64-битовый входной открытый текст в 64-битовый выходной шифрованный текст, однако данные редко ограничиваются 64 разрядами.
Чтобы воспользоваться алгоритмом DES для решения разнообразных криптографических задач, разработаны четыре рабочих режима:
• электронная кодовая книга ЕСВ (Electronic Code Book);
• сцепление блоков шифра СВС (Ciрher Block Chaining);
• обратная связь по шифртексту CFB (Ciрher Feed Back);
• обратная связь по выходу OFB (Outрut Feed Back).
Эти режимы могут быть использованы для шифрования с помощью произвольного блочного шифра (не только DES) потока данных, который в общем случае длиннее блока шифрования, хотя впервые они введены в стандарте DES.