Алгоритм DES

Одним из самых распространенных алгоритмов блочного шифрования, рекомендованных Национальным бюро стандартов США совместно с АНБ в качестве основного средства криптографической защиты информации как в государственных, так и в коммерческих структурах, является Data Encryption Standard (DES). Он был разработан в 1977 г., однако уже в 1988 г. АНБ рекомендовало использовать DES только в системах электронного перевода. С учетом выявленных недостатков DES в начальный вариант стандарта постоянно вносятся изменения; появляются также и новые алгоритмы, использующие в качестве основы DES - NewDES, TripleDES и др. Необходимость разработки новых алгоритмов обусловлена большим количеством атак, которым подвергался DES за долгие годы своего существования. Кроме того, бурное развитие средств вычислительной и микропроцессорной техники привело к тому, что 56-битного ключа, используемого в оригинальном варианте DES, стало недостаточно, чтобы противостоять атакам, совершаемым методом «грубой силы». Тем не менее в коммерческой сфере и в системах электронных расчетов DES и на сегодняшний день остается одним из самых популярных алгоритмов блочного шифрования.
DES является блочным алгоритмом шифрования с длиной блока 64 бита и симметричными ключами длиной 56 бит. На практике ключ обычно имеет длину 64 бита, где каждый восьмой бит используется для контроля четности остальных битов ключа.
Структура алгоритма приведена на рис. 1.9 и отражает последовательность действий, совершаемых в одном раунде; всего для получения блока зашифрованного сообщения проходит 16 раундов. Эта величина используется в DES по следующим причинам:
• 12 раундов являются минимально необходимыми для обеспечения должного уровня криптографической защиты;
• при аппаратной реализации использование 16 раундов позволяет вернуть преобразованный ключ в исходное состояние для дальнейших преобразований;
• данное количество раундов необходимо, чтобы исключить возможность проведения атаки на блок зашифрованного текста с двух сторон.
В некоторых реализациях DES блоки открытого сообщения перед тем, как они будут загружены в регистр сдвига длиной две ячейки и размером ячейки 32 бита, проходят процедуру начальной перестановки, которая применяется для того, чтобы осуществить начальное рассеивание статистической структуры сообщения.
В случае использования начальной перестановки после завершения 16 раундов к полученному блоку применяется обратная перестановка. Работа алгоритма заключается в следующем:
1. Входной блок разбивается на две части по 32 бита в каждой (Ls - левая половина, R, - правая половина).
2. Правая половина преобразуется функцией f с использованием текущей ключевой последовательности длиной 48 бит, снятой с выхода блока выработки ключевой последовательности.
3. Результат преобразования правой части складывается по модулю 2 с левой частью, а результат сложения записывается в исходный регистр, при этом исходная правая часть при помощи операции сдвига записывается на место исходной левой части.

Тэги:

Рекомендуем почитать