Алгоритмы шифрования des и 3-des
Алгоритм шифрования данных DES (Data Encryption Standard) был опубликован в 1977 году. Блочный симметричный алгоритм DES до сих пор остается распространенным алгоритмом, используемым в системах защиты коммерческой информации.
Алгоритм DES состоит из чередующейся последовательности перестановок и подстановок. Алгоритм DES осуществляет шифрование 64-битных блоков данных с помощью 64-битного ключа, в котором значащими являются 56 бит (остальные 8 бит – проверочные биты для контроля на четность). Обобщенная схема процесса шифрования в блочном алгоритме DES показана на рис. 4.5.
Процесс шифрования заключается в начальной перестановке битов 64-битного блока, шестнадцати циклах (раундах) шифрования и в конечной перестановке битов.
Расшифрование в DES является операцией, обратной шифрованию, и выполняется путем повторения операций шифрования в обратной последовательности.
Основные достоинства алгоритма DES:
¨ используется только один ключ длиной 56 бит;
¨ относительная простота алгоритма обеспечивает высокую скорость обработки;
¨ зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий алгоритму DES;
¨ криптостойкость алгоритма достаточна для обеспечения информационной безопасности большинства коммерческих приложений.
Рис. 4.5. Обобщенная схема шифрования в алгоритме DES
Современная микропроцессорная техника позволяет уже сегодня за достаточно приемлемое время взламывать симметричные блочные шифры с длиной ключа 40 бит. Для такого взламывания используется метод полного перебора – тотального опробования всех возможных значений ключа (метод «грубой силы»).
До недавнего времени блочный алгоритм DES, имеющий ключ с эффективной длиной 56 бит, считался относительно безопасным алгоритмом шифрования. Он многократно подвергался тщательному криптоанализу в течение 20 лет, и самым практичным способом его взламывания является метод перебора всех возможных значений ключа. Ключ шифра DES имеет 256 возможных значений.
В настоящее время на рынке имеются FPGA-чипы, обладающие возможностью перебирать до 30 миллионов значений ключа в секунду. Еще большие возможности меют ASIC-чипы – они реализуют скорость перебора до 200 миллионов ключей в секунду. Стоимость этих чипов составляет десятки долларов. Поэтому вполне актуальны оценки криптостойкости шифра DES, включающие ориентировочные расчеты времени и материальных средств, которые необходимо затратить на взламывание этого шифра методом полного перебора всех возможных значений ключа с использованием как стандартных компьютеров, так и специализированных криптоаналитических аппаратных средств. Анализ трудоемкости взламывания приведен в таблице 4.2.
Таблица 4.2. Сравнительный анализ трудоемкости взлома криптоалгоритма DES
Тип атакующего | Бюджет атакующего | Средство атаки | Затраты времени на успешную атаку |
Хакер | До 500 $ | ПК | Несколько десятков лет |
Небольшие фирмы | До 10 тыс. $ | FPGA | 18 месяцев |
Корпоративные департаменты | До 300 тыс. $ | FPGA ASIC | 19 дней 3 дня |
Большие корпорации | До 1 0 млн $ | FPGA, ASIC Супер-ЭВМ | 13 ч 6 мин |
Специальные агентства | ? | ? | ? |
Комбинирование блочных алгоритмов. Существует много способов комбинирования блочных алгоритмов для получения новых алгоритмов. Одним из таких способов комбинирования является многократное шифрование, то есть использование блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста.
Например, можно шифровать блок открытого текста Р три раза с помощью двух ключей K1 и К2 (рис. 4.6). Процедура шифрования:
, (4.5)
тo есть блок открытого текста Р сначала шифруется ключом K1,затем расшифровывается ключом К2и окончательно зашифровывается ключом K1.
Рис. 4.6. Схемы трехкратного применения блочного алгоритма
симметричного шифрования с двумя различными ключами
Этот режим называют режимом EDE (Encrypt-Decrypt-Encrypt). Введение в данную схему операции расшифрования DK2 позволяет обеспечить совместимость этой схемы со схемой однократного использования блочного алгоритма DES. Если в схеме трехкратного использования DES выбрать все ключи одинаковыми, то она превращается в схему однократного использования DES. Процедура расшифрования выполняется в обратном порядке:
(4.6)
то есть блок шифртекста С сначала расшифровывается ключом К1, затем зашифровывается ключом К2 и окончательно расшифровывается ключом К1.
Если исходный блочный алгоритм имеет n-битный ключ, то схема трехкратного шифрования имеет 2n-битный ключ. Чередование ключей К1 и К2 позволяет предотвратить криптоаналитическую атаку «человек-в-середине». Данная схема приводится в стандартах Х9.17 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES.
При трехкратном шифровании можно применить три различных ключа. При этом возрастает общая длина результирующего ключа. Процедуры шифрования и расшифрования описываются следующими выражениями:
, (4.7)
(4.6)
Трехключевой вариант имеет еще большую стойкость. Алгоритм 3-DES (Triple DES – тройной DES) используется в ситуациях, когда надежность алгоритма DES считается недостаточной. Чаще всего используется вариант шифрования на трех ключах: открытый текст шифруется на первом ключе, полученный шифр-текст – на втором и наконец данные, полученные после второго шага, шифруются на третьем ключе. Все три ключа выбираются независимо друг от друга. Этот криптоалгоритм достаточно стоек ко всем атакам.