ПОИСК
ВЫБЕРИТЕ НОМЕР
         
Показать все
статьи из этой
рубрики
Показать все
статьи этого
автора
Показать все
статьи по этой теме
НАШИ ИЗДАНИЯ
Connect! Мир Связи
Каталог-справочник
НАШИ ПРОЕКТЫ
Наши авторы о важном
СОТРУДНИЧЕСТВО
Выставки и конференции
Connect Conferences
РЕКЛАМА



Яндекс Цитирования





Rambler's Top100 Rambler's Top100


Информационная безопасность
Алгоритм шифрования DES и его варианты   Сергей Панасенко

Часть 1
Прошло уже почти 30 лет с момента принятия алгоритма DES в качестве стандарта шифрования США. DES – алгоритм шифрования с наиболее богатой и интересной историей.

Основные характеристики и структура алгоритма
DES шифрует информацию блоками по 64 бита с помощью 64-битного ключа шифрования, в котором используется только 56 бит (процедура расширения ключа подробно описана ниже).
Шифрование информации выполняется следующим образом (рис. 1):
Этап 1. Над 64-битным блоком данных выполняется начальная перестановка согласно следующей таблице:
Данная таблица означает, что значение входного бита 58 (здесь и далее все биты нумеруются слева направо, начиная с 1-го) помещается в выходной бит 1, значение 50-го бита – в бит 2 и т. д.
Этап 2. Результат предыдущей операции делится на 2 субблока по 32 бита (на рис. 1 обозначены A0 и B0), над которыми производятся 16 раундов следующих преобразований:
Ai = Bi-1,
Bi = Ai-1 +О f(Bi-1, Ki),
где i – номер текущего раунда,
Ki – ключ раунда, а +О – побитовая логическая операция «исключающее или» (XOR).
Структура функции раунда f() приведена на рис. 2. Данная функция выполняется в несколько шагов:
Шаг 1. Над 32-битным входом выполняется расширяющая перестановка EP (рис. 3). Данная операция решает две задачи: во-первых, расширяет входное значение до 48 бит для последующего сложения с ключом раунда; во-вторых, обеспечивает влияние «размножаемых» бит на 2 таблицы замен (описаны ниже) вместо одной, что ускоряет возникновение зависимости каждого бита шифртекста от каждого входного бита (2 [4]), что называется лавинным эффектом.
Шаг 2. Результат предыдущего шага складывается с ключом раунда Ki операцией XOR.
Шаг 3. Результат сложения разбивается на 8 фрагментов по 6 бит, каждый из которых прогоняется через соответствующую таблицу замен (S1 … S8). Таблицы замен являются фиксированными и описаны в стандарте (3 [24]). Каждая таблица содержит по 4 строки, содержащих по 16 значений от 0 до 15. Входное значение интерпретируется следующим образом: два крайних бита формируют номер строки (от 0 до 3), из которой выбирается число, расположенное в столбце, номер которого соответствует значению четырех остальных бит входа. Например, при двоичном входе 101100 (десятичное число 44) выбирается значение шестой ячейки второго столбца.
Шаг 4. На последнем шаге 4-битные значения, полученные после выполнения замен, объединяются, после чего над ними выполняется операция P, представляющая собой простую перестановку согласно следующей таблице:
Стоит отметить, что в последнем раунде алгоритма субблоки не меняются местами.
Этап 3. Полученные субблоки A16 и B16 объединяются в 64-битный блок, над которым выполняется финальная перестановка данных согласно следующей таблице:
Финальная перестановка является инверсной по отношению к начальной перестановке, выполняемой на этапе 1. Результат финальной перестановки и является блоком зашифрованных данных.
Расшифрование данных алгоритмом DES выполняется абсолютно так же, как и зашифрование, однако с обратным порядком использования ключей раунда: в i-м раунде расшифрования используется ключ K(17-i).

Процедура расширения ключа
Схема процедуры расширения ключа показана на рис. 4. Ее задача – формирование 16 ключей раунда, которое выполняется следующим образом.
Как было сказано выше, из 64-битного ключа шифрования алгоритм DES использует только 56 бит. Каждый 8-й бит отбрасывается и никак не применяется в алгоритме, причем использование оставшихся бит ключа шифрования в реализациях алгоритма DES никак не лимитировано стандартом (3 [24]). Процедура извлечения 56 значащих бит 64-битного ключа на рис. 4 обозначена как E. Помимо извлечения, данная процедура выполняет еще и перестановку бит ключа согласно следующим таблицам:
В результате перестановки формируются два 28-битных значения C и D. Верхняя таблица определяет выборку бит ключа для C, нижняя – для D.
Затем выполняется 16 раундов преобразований, каждый из которых дает один из ключей раунда Ki. В каждом раунде производятся следующие действия:
1. Текущие значения C и D циклически сдвигаются влево на переменное число бит n. Для раундов 1, 2, 9 и 16 n = 1, в остальных раундах выполняется циклический сдвиг на 2 бита.
2. C и D объединяются в 56-битное значение, к которому применяется сжимающая перестановка CP, результатом которой является 48-битный ключ раунда Ki. Сжимающая перестановка выполняется согласно следующей таблице:
Сочетание циклического сдвига и сжимающей перестановки приводит к тому, что в каждом ключе раунда используется уникальный набор бит ключа шифрования.
При расшифровании данных можно использовать ту же процедуру расширения ключа, но применять ключи раунда в обратном порядке. Есть и другой вариант: в каждом раунде процедуры расширения ключа вместо циклического сдвига влево выполнять циклический сдвиг вправо на n' бит, где n' = 0 для первого раунда, n' = 1 для раундов 2, 9, 16 и n' = 2 для остальных раундов. Такая процедура расширения ключа сразу даст нужные для расшифрования ключи раунда K(17-i).
Стоит сказать, что возможность выполнения расширения ключа «на лету» (особенно если эта возможность существует как при зашифровании, так и при расшифровании) считается достоинством алгоритмов шифрования, поскольку в этом случае расширение ключа можно выполнять параллельно шифрованию и не тратить память на хранение ключей раундов, кроме текущего.

Режимы работы
Несколько позже, в 1980 году был принят стандарт (4 [25]), определяющий режимы работы алгоритма DES. Можно сказать, что данный стандарт уточнял подробности реализации DES для различных применений.
В стандарте были определены следующие режимы работы алгоритма DES:
- электронная кодовая книга ECB (Electronic Code Book);
- сцепление блоков шифра CBC (Cipher Block Chaining);
- обратная связь по шифртексту CFB (Cipher Feed Back);
- обратная связь по выходу OFB (Output Feed Back).
Наиболее простым из них является режим ECB. Суть его состоит в том (рис. 5), что каждый блок шифруемых данных «прогоняется» через алгоритм шифрования отдельно и независимо от других блоков:
Ci = Ek(Mi),
где Ek – функция зашифрования на ключе k,
Mi и Ci – блоки открытого текста и соответствующие им блоки шифртекста.
Аналогично выполняется и расшифрование – блоки шифртекста обрабатываются поочередно и независимо.
Данный режим плох тем, что если открытый текст содержит какое-либо количество блоков с одинаковым содержимым (например, некий большой массив, проинициализированный нулевыми или единичными битами), то и шифртекст будет содержать такое же количество одинаковых блоков. Это непозволительно, поскольку дает криптоаналитику информацию о структуре зашифрованной информации, что может существенно облегчить вскрытие алгоритма шифрования (т. е. получение открытого текста из зашифрованного или вычисление ключа шифрования). Поэтому данный режим должен использоваться только для шифрования ключей друг на друге в многоключевых схемах (1 [2]). Допускается также шифрование режимом ECB небольших фрагментов данных при условии их неповторяемости (5 [39]).
Есть и еще один недостаток – в данном режиме алгоритм шифрует данные только поблочно. При необходимости, например, зашифровать алгоритмом DES 8 бит придется дополнить эти данные до 64-битного размера блока, зашифровать блок целиком, а при расшифровании отбросить дополняющие биты. Такое не всегда возможно.
Достоинство режима ECB – простота реализации по сравнению с другими режимами. Однако, по словам Брюса Шнайера, «из-за своей простоты в большинстве существующих коммерческих программ используется режим ECB, хотя этот режим наиболее уязвим к в




Заказать полную PDF-версию свежего номера Connect!



Показать все статьи по теме Информационная безопасность

Поставьте свою оценку:
   1   2   3   4   5   

< Предыдущая статья

  
Следующая статья >

НАШИ ПРОЕКТЫ
ПРОСМОТР ПО ТЕМАМ
IP-телефония
Беспроводная связь
Бизнес-аналитика
Биллинг и OSS/BSS решения
Видеоконференцсвязь
Измерительная техника
Инфокоммунникации регионов
Информационная безопасность
ИТ-услуги
КИС (Корпоративные информационные системы)
Контакт-центры
КСПД (Корпоративные сети передачи данных)
Мобильная связь
Облачные технологии
Профессиональная радиосвязь
Серверные решения
Системы бесперебойного питания
Системы хранения данных
Ситуационные центры
Спутниковая связь
УПАТС
Фиксированная связь
Цифровое телевидение
TOP 20 СТАТЕЙ
Роль государства в обеспечении информационной безопасности
Консолидация телекоммуникационных ресурсов отраслей топливно-энергетического комплекса
Реквием по SoftSwitch
Трехсайтовая архитектура – реальная защита от катастроф
В Тулу за кальяноваром, или Что такое адаптивный call-центр
Ненадежность IP-телефонии: мифы и реальность
Четвертым будешь?
Путеводитель по рынку OSS-решений
В жизни все бывает, поэтому сделайте резервную копию…
Оптимизация энергопотребления в современном ЦОД
VSATизация России – промежуточные итоги
Современные программные телефоны
Аккумуляторные батареи для современных ИБП
Особенности информатизации телекоммуникационных компаний в России
Отечественные производители телекоммуникационного оборудования
Проблемы нормативно-правового, организационно-технического и программного обеспечения защиты информационных систем
Смена поколений в стандартизации СКС
Проблемы и перспективы формирования мобильной медиасреды в России
Принципы организации сетевой инфраструктуры ООО «ЛУКОЙЛ-ИНФОРМ»
Модульные отказоустойчивые системы бесперебойного питания: за и против
Все ТОПовые статьи >>