DES
Материал из Википедии — свободной энциклопедии
| DES, Data Encryption Standard | |
| Создатель: | |
|---|---|
| Создан: |
1977 г. |
| Опубликован: |
1977 г. |
| Размер ключа: |
56 бит |
| Размер блока: |
64 бит |
| Число раундов: |
16 |
| Тип: | |
DES (Data Encryption Standard) — Симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных. DES разработан фирмой IBM и утвержден правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бит и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:
- режим электронной кодовой книги (ECB — Electronic Code Book),
- режим сцепления блоков (СВС — Cipher Block Chaining),
- режим обратной связи по шифротексту (CFB — Cipher Feed Back),
- режим обратной связи по выходу (OFB — Output Feed Back).
Содержание |
[править] История
В 1972 году, после проведения исследования потребностей правительства США в компьютерной безопасности, американское НБС (Национальное Бюро Стандартов) — теперь переименовано НИСТ (Национальный Институт Стандартов и Технологий) — определило необходимость в общеправительственном стандарте шифрования некритичной информации. 15 мая 1973 года, после консультации с АНБ (Агентством национальной безопасности), НБС объявило конкурс на шифр, который удовлетворит строгим критериям проекта, но ни один конкурсант не обеспечивал выполнение всех требований. Второй конкурс был начат 27 августа 1974. На сей раз, шифр Lucifer, представленный IBM и развитый в течение периода 1973—1974 сочли приемлемым, он был основан на более раннем алгоритме Хорста Фейстеля.
17 марта 1975 года предложенный алгоритм DES был издан в Федеральном Регистре. В следующем году было проведено 2 открытых симпозиума по обсуждению этого стандарта, где подверглись жёсткой критике изменения, внесённые АНБ в алгоритм: уменьшение первоначальной длины ключа и S-блоки (блоки подстановки), критерии проектирования которых не раскрывались. АНБ подозревалось в сознательном ослаблении алгоритма с целью, чтобы АНБ могло легко просматривать зашифрованные сообщения. После чего сенатом США была проведена проверка действий АНБ, результатом которой стало заявление, опубликованное в 1978, в котором говорилось о том, что в процессе разработки DES АНБ убедило IBM, что уменьшенной длины ключа более чем достаточно для всех коммерческих приложений, использующих DES, косвенно помогало в разработке S-перестановок, а также, что окончательный алгоритм DES был лучшим, по их мнению, алгоритмом шифрования и был лишён статистической или математической слабости. Также было обнаружено, что АНБ никогда не вмешивалось в разработку этого алгоритма.
Часть подозрений в скрытой слабости S-перестановок была снята в 1990, когда были опубликованы результаты независимых исследований Эли Бихама (Eli Biham) и Ади Шамира (Adi Shamir) по дифференциальному криптоанализу — основному методу взлома блочных алгоритмов шифрования с симметричным ключом. S-блоки алгоритма DES оказались намного более устойчивыми к атакам, чем, если бы их выбрали случайно. Это означает, что такая техника анализа была известна АНБ ещё в 70-х годах XX века.
DES является блочным шифром. Чтобы понять как работает DES прежде всего мы немного рассмотрим блочный шифр, сеть Фейстеля.
[править] Блочный шифр
Входными данными для блочного шифра служат блок размером n бит и k-битный ключ. На выходе, после применения шифрующего преобразования, получается n-битный зашифрованный блок, причём незначительные различия входных данных как правило приводят к существенному изменению результата. Блочные шифры реализуются путём многократного применения к блокам исходного текста некоторых базовых преобразований.
Базовые преобразования:
- Сложное преобразование на одной локальной части блока.
- Простое преобразование между частями блока.
Так как преобразование производится поблочно, как отдельный шаг требуется разделение исходных данных на блоки необходимого размера. При этом вне зависимости от формата исходных данных, будь то текстовые документы, изображения или другие файлы, они должны быть интерпретированы в бинарный вид и только после этого разбиты на блоки. Все вышеперечисленное может осуществляться как программными, так и аппаратными средствами.
[править] Преобразования Сетью Фейстеля
Это преобразование над векторами (блоками) представляющими собой левую и правую половины регистра сдвига. В алгоритме DES используются прямое преобразование сетью Фейстеля в шифровании (см. Рис.1) и обратное преобразование сетью Фейстеля в расшифровании (см. Рис.2).
[править] Схема шифрования алгоритма DES
Схема шифрования алгоритма DES указана на Рис.3
Исходный текст — блок 64 бит.
Процесс шифрования состоит в начальной перестановке, 16 циклах шифрования и конечной перестановке.
Шифрованный текст — блок 64 бит.
Рассмотрим подробную схему алгоритма DES:
левая и правая половины 64-битового блока LiRi
ki — 48 битовые ключи, f — функция шифрования, IP — начальная перестановка, IP − 1 — конечная перестановка.
[править] Начальная перестановка
— Исходный текст T (блок 64 бит)преобразуется c помощью начальной перестановки IP которая определяется таблицей 1:
| 58 | 50 | 42 | 34 | 26 | 18 | 10 | 2 | 60 | 52 | 44 | 36 | 28 | 20 | 12 | 4 |
| 62 | 54 | 46 | 38 | 30 | 22 | 14 | 6 | 64 | 56 | 48 | 40 | 32 | 24 | 16 | 8 |
| 57 | 49 | 41 | 33 | 25 | 17 | 9 | 1 | 59 | 51 | 43 | 35 | 27 | 19 | 11 | 3 |
| 61 | 53 | 45 | 37 | 29 | 21 | 13 | 5 | 63 | 55 | 47 | 39 | 31 | 23 | 15 | 7 |
По таблице первые 3 бита результирующего блока IP(T) после начальной перестановки IP являются битами 58, 50, 42 входного блока Т, а его 3 последние бита являются битами 23, 15, 7 входного блока.
[править] Циклы шифрования
Полученный после начальной перестановки 64-битовый блок IP(T) участвует в 16-циклах преобразования Фейстеля.
— 16 циклов преобразования Фейстеля:
Разбить IP(T) на две части L0,R0, где L0,R0 — соответственно 32 старших битов и 32 младших битов блока T0 IP(T)= L0R0
Пусть Ti − 1 = Li − 1Ri − 1 результат (i-1) итерации, тогда результат i-ой итерации Ti = LiRi определяется:
Li = Ri − 1

Левая половина Li равна правой половине предыдущего вектора Li − 1Ri − 1. А правая половина Ri — это битовое сложение Li − 1 и f(Ri − 1,ki) по модулю 2.
В 16-циклах преобразования Фейстеля функция f играет роль шифрования. Рассмотрим подробно функцию f.
[править] Основная функция шифрования (функция Фейстеля)
Аргументы функции f являются 32 битовой вектор Ri − 1, 48 битовой ключ ki, которые являются результатом преобразования 56 битового исходного ключа шифра k.
Для вычисления функции f используются функция расширения Е, преобразование S, состоящее из 8 преобразований S-блоков
, и перестановка P.
Функция Е расширяет 32 битовой вектор Ri − 1 до 48 битового вектора E(Ri − 1) путём дублирования некоторых битов из Ri − 1 при этом порядок битов вектора E(Ri − 1) указан в таблице 2.
| 32 | 1 | 2 | 3 | 4 | 5 |
| 4 | 5 | 6 | 7 | 8 | 9 |
| 8 | 9 | 10 | 11 | 12 | 13 |
| 12 | 13 | 14 | 15 | 16 | 17 |
| 16 | 17 | 18 | 19 | 20 | 21 |
| 20 | 21 | 22 | 23 | 24 | 25 |
| 24 | 25 | 26 | 27 | 28 | 29 |
| 28 | 29 | 30 | 31 | 32 | 1 |
Первые три бита вектора E(Ri − 1) являются битами 32, 1, 2 вектора Ri − 1. По таблице 2 видно что биты 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 дублируются. Последние 3 биты вектора E(Ri − 1) — это биты 31, 32, 1 вектора Ri − 1. Полученный после перестановки блок E(Ri − 1) складывается по модулю 2 с ключами ki и затем представляются в виде восьми последовательных блоков B1,B2,...B8.
E(Ri − 1) = B1B2...B8
. Каждый Bj является 6-битовым блоком. Далее каждый из блоков Bj трансформируется в 4 битовой блок B'j с помощью преобразований Sj. Преобразования Sj определяется таблицей 3.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 14 | 4 | 13 | 1 | 2 | 15 | 11 | 8 | 3 | 10 | 6 | 12 | 5 | 9 | 0 | 7 | |
| 1 | 0 | 15 | 7 | 4 | 14 | 2 | 13 | 1 | 10 | 6 | 12 | 11 | 9 | 5 | 3 | 8 | S1 |
| 2 | 4 | 1 | 14 | 8 | 13 | 6 | 2 | 11 | 15 | 12 | 9 | 7 | 3 | 10 | 5 | 0 | |
| 3 | 15 | 12 | 8 | 2 | 4 | 9 | 1 | 7 | 5 | 11 | 3 | 14 | 10 | 0 | 6 | 13 | |
| 0 | 15 | 1 | 8 | 14 | 6 | 11 | 3 | 4 | 9 | 7 | 2 | 13 | 12 | 0 | 5 | 10 | |
| 1 | 3 | 13 | 4 | 7 | 15 | 2 | 8 | 14 | 12 | 0 | 1 | 10 | 6 | 9 | 11 | 5 | S2 |
| 2 | 0 | 14 | 7 | 11 | 10 | 4 | 13 | 1 | 5 | 8 | 12 | 6 | 9 | 3 | 2 | 15 | |
| 3 | 13 | 8 | 10 | 1 | 3 | 15 | 4 | 2 | 11 | 6 | 7 | 12 | 0 | 5 | 14 | 9 | |
| 0 | 10 | 0 | 9 | 14 | 6 | 3 | 15 | 5 | 1 | 13 | 12 | 7 | 11 | 4 | 2 | 8 | |
| 1 | 13 | 7 | 0 | 9 | 3 | 4 | 6 | 10 | 2 | 8 | 5 | 14 | 12 | 11 | 15 | 1 | S3 |
| 2 | 13 | 6 | 4 | 9 | 8 | 15 | 3 | 0 | 11 | 1 | 2 | 12 | 5 | 10 | 14 | 7 | |
| 3 | 1 | 10 | 13 | 0 | 6 | 9 | 8 | 7 | 4 | 15 | 14 | 3 | 11 | 5 | 2 | 12 | |
| 0 | 7 | 13 | 14 | 3 | 0 | 6 | 9 | 10 | 1 | 2 | 8 | 5 | 11 | 12 | 4 | 15 | |
| 1 | 13 | 8 | 11 | 5 | 6 | 15 | 0 | 3 | 4 | 7 | 2 | 12 | 1 | 10 | 14 | 9 | S4 |
| 2 | 10 | 6 | 9 | 0 | 12 | 11 | 7 | 13 | 15 | 1 | 3 | 14 | 5 | 2 | 8 | 4 | |
| 3 | 3 | 15 | 0 | 6 | 10 | 1 | 13 | 8 | 9 | 4 | 5 | 11 | 12 | 7 | 2 | 14 | |
| 0 | 2 | 12 | 4 | 1 | 7 | 10 | 11 | 6 | 8 | 5 | 3 | 15 | 13 | 0 | 14 | 9 | |
| 1 | 14 | 11 | 2 | 12 | 4 | 7 | 13 | 1 | 5 | 0 | 15 | 10 | 3 | 9 | 8 | 6 | S5 |
| 2 | 4 | 2 | 1 | 11 | 10 | 13 | 7 | 8 | 15 | 9 | 12 | 5 | 6 | 3 | 0 | 14 | |
| 3 | 11 | 8 | 12 | 7 | 1 | 14 | 2 | 13 | 6 | 15 | 0 | 9 | 10 | 4 | 5 | 3 | |
| 0 | 12 | 1 | 10 | 15 | 9 | 2 | 6 | 8 | 0 | 13 | 3 | 4 | 14 | 7 | 5 | 11 | |
| 1 | 10 | 15 | 4 | 2 | 7 | 12 | 9 | 5 | 6 | 1 | 13 | 14 | 0 | 11 | 3 | 8 | S6 |
| 2 | 9 | 14 | 15 | 5 | 2 | 8 | 12 | 3 | 7 | 0 | 4 | 10 | 1 | 13 | 11 | 6 | |
| 3 | 4 | 3 | 2 | 12 | 9 | 5 | 15 | 10 | 11 | 14 | 1 | 7 | 6 | 0 | 8 | 13 | |
| 0 | 4 | 11 | 2 | 14 | 15 | 0 | 8 | 13 | 3 | 12 | 9 | 7 | 5 | 10 | 6 | 1 | |
| 1 | 13 | 0 | 11 | 7 | 4 | 9 | 1 | 10 | 14 | 3 | 5 | 12 | 2 | 15 | 8 | 6 | S7 |
| 2 | 1 | 4 | 11 | 13 | 12 | 3 | 7 | 14 | 10 | 15 | 6 | 8 | 0 | 5 | 9 | 2 | |
| 3 | 6 | 11 | 13 | 8 | 1 | 4 | 10 | 7 | 9 | 5 | 0 | 15 | 14 | 2 | 3 | 12 | |
| 0 | 13 | 2 | 8 | 4 | 6 | 15 | 11 | 1 | 10 | 9 | 3 | 14 | 5 | 0 | 12 | 7 | |
| 1 | 1 | 15 | 13 | 8 | 10 | 3 | 7 | 4 | 12 | 5 | 6 | 11 | 0 | 14 | 9 | 2 | S8 |
| 2 | 7 | 11 | 4 | 1 | 9 | 12 | 14 | 2 | 0 | 6 | 10 | 13 | 15 | 3 | 5 | 8 | |
| 3 | 2 | 1 | 14 | 7 | 4 | 10 | 8 | 13 | 15 | 12 | 9 | 0 | 3 | 5 | 6 | 11 |
Предположим что B3 = 101111 и мы хотим найти B'3. Первый и последний разряды B3 являются двоичной записью числа а, 0<=a<=3, средние 4 разряды представляют число b, 0<=b<=15. Строки таблицы S3 нумеруются от 0 до 3, столбцы таблицы S3 нумеруются от 0 до 15.Пара числа(а,b) определяет число,находящее в пересечении строки а и столбцы b. Двоичное представление этого числа дает B'3 .В нашем случае a = 112 = 3,b = 01112 = 7, число определяется парой (3,7) равно 7, следует B'3=0111.
Значение функции f(Ri − 1,ki) (32 бит) получается перестановкой Р, применяемой к 32 битовому блоку B'1B'2...B'8. Перестановка Р задана таблицей 4.
| 16 | 7 | 20 | 21 | 29 | 12 | 28 | 17 |
| 1 | 15 | 23 | 26 | 5 | 18 | 31 | 10 |
| 2 | 8 | 24 | 14 | 32 | 27 | 3 | 9 |
| 19 | 13 | 30 | 6 | 22 | 11 | 4 | 25 |
f(Ri − 1,ki) = P(B'1B'2...B'8)
Согласно таблице 4, первые четыре бита результирующего вектора после действия функции f — это бита 16, 7, 20, 21 вектора B'1B'2...B'8
[править] Генерирование ключей ki
Ключи ki получаются из начального ключа k (64 бит = 8 байтов или 8 символов в АSCII) таким образом. Восемь битов, находящих в позициях 8, 16, 24, 32, 40, 48, 56, 64 добавляются в ключ k таким образом чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64). Такая перестановка определена как в таблице 5.
| 57 | 49 | 41 | 33 | 25 | 17 | 9 | 1 | 58 | 50 | 42 | 34 | 26 | 18 | C0 |
| 10 | 2 | 59 | 51 | 43 | 35 | 27 | 19 | 11 | 3 | 60 | 52 | 44 | 36 | |
| 63 | 55 | 47 | 39 | 31 | 23 | 15 | 7 | 62 | 54 | 46 | 38 | 30 | 22 | D0 |
| 14 | 6 | 61 | 53 | 45 | 37 | 29 | 21 | 13 | 5 | 28 | 20 | 12 | 4 |
Эта перестановка определяется двумя блоками C0 и D0 по 28 бит каждый. Первые 3 бита C0 есть биты 57, 49, 41 расширенного ключа. А первые три бита D0 есть биты 63, 55, 47 расширенного ключа. Ci,Di i=1,2,3…получаются из Ci − 1,Di − 1 одним или двумя левыми циклическими сдвигами согласно таблице 6.
| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Число сдвига | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
Ключ ki, i=1,…16 состоит из 48 бит, выбранных из битов вектора CiDi (56 бит) согласно таблице 7. Первый и второй биты ki есть биты 14, 17 вектора CiDi
| 14 | 17 | 11 | 24 | 1 | 5 | 3 | 28 | 15 | 6 | 21 | 10 | 23 | 19 | 12 | 4 |
| 26 | 8 | 16 | 7 | 27 | 20 | 13 | 2 | 41 | 52 | 31 | 37 | 47 | 55 | 30 | 40 |
| 51 | 45 | 33 | 48 | 44 | 49 | 39 | 56 | 34 | 53 | 46 | 42 | 50 | 36 | 29 | 32 |
[править] Конечная перестановка
Конечная перестановка IP − 1 действует на T16 и используется для восстановления позиции. Она является обратной к перестановке IP. Конечная перестановка определяется таблицей 8.
| 40 | 8 | 48 | 16 | 56 | 24 | 64 | 32 | 39 | 7 | 47 | 15 | 55 | 23 | 63 | 31 |
| 38 | 6 | 46 | 14 | 54 | 22 | 62 | 30 | 37 | 5 | 45 | 13 | 53 | 21 | 61 | 29 |
| 36 | 4 | 44 | 12 | 52 | 20 | 60 | 28 | 35 | 3 | 43 | 11 | 51 | 19 | 59 | 27 |
| 34 | 2 | 42 | 10 | 50 | 18 | 58 | 26 | 33 | 1 | 41 | 9 | 49 | 17 | 57 | 25 |
[править] Схема расшифрования
При расшифровании данных все действия выполняются в обратном порядке. В 16 циклах расшифрования, в отличие от шифрования c помощью прямого преобразования сетью Фейстеля, здесь используется обратное преобразование сетью Фейстеля.
Ri − 1 = Li

Схема расшифрования указана на Рис.6.
Ключ ki, i=1,…,15, функция f, перестановка IP и IP − 1 такие же как и в процессе шифрования.
[править] Режимы использования DES
DES может используется в четырёх режимах.
- Режим электронной кодовой книги (ЕСВ — Electronic Code Book): обычное использование DES как блочного шифра (см. Рис.7).
- Режим сцепления блоков (СВС — Cipher Block Chaining) (см. Рис.8). Каждый очередной блок Ci i>=1, перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi + 1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете.
- Режим обратной связи по шифротексту (CFB — Cipher Feed Back) (см. Рис.9). В режиме СFB вырабатывается блочная «гамма» Z0,Z1,...Zi = DESk(Ci − 1)
. Начальный вектор C0 сохраняется в секрете.
- Режим обратной связи по выходу (OFB — Output Feed Back) (см. Рис.10). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,...
, i>=1
Достоинства и недостатки режимов:
- Режим ECB прост в реализации, но возможно проведение криптоанализа[источник не указан 52 дня].
- В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста Ci приводит к искажению после расшифрования только соответствующего открытого блока Mi , поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.
- В режимах CBC и CFB искажение при передаче одного блока шифрованного текста Сі приводит к искажению на приёмнике не более двух блоков открытого текста Mi,Mi + 1[источник не указан 52 дня]. Изменение Mi приводит к изменению всех остальных блоковMi + 1,Mi + 2… Это свойство используется для выработки кода аутентификации сообщения.
[править] Криптостойкость алгоритма DES
Нелинейность преобразований в DES средствами только S-блоков, в случае, если они имеют слабину, позволяет осуществлять контроль за шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:
- Каждая строка каждого блока должна быть перестановкой множества {0,1,2,……,15}
- S-блоки не должны являться линейной или афинной функцией своих аргументов.
- Изменение одного бита на входе S-блока должно приводить к изменению по крайней мере двух битов на выходе.
- Для каждого S-блока и любого аргумента х значение S(x) и
должны различаться по крайней мере двумя битами.
Из-за небольшого числа возможных ключей (всего 256), появляется возможность их полного перебора на быстродействующей вычислительной технике за реальное время. В 1998 году The Electronic Foundation используя специальный компьютер DES-Cracker, удалось взломать DES за 3 дня.
В алгоритме DES существуют слабые и частично-слабые ключи. Слабыми ключами называется ключи k такие что DESk(DESk(x)) = x, x — блок 64 бит. Частично-слабые ключи — пары ключей (k1,k2) такие что DESk1(DESk2(x)) = x
Известны 4 слабых ключа, они приведены в таблице 9. Для каждого слабого ключа существует 232 «постоянные точки», то есть таких 64-битовых блоков х, в которых DESk(x) = x
| Слабые ключи(hexadecimal) | C0 | D0 |
| 0101-0101-0101-0101 | [0]28 | [0]28 |
| FEFE-FEFE-FEFE-FEFE | [1]28 | [1]28 |
| 1F1F-1F1F-0E0E-0E0E | [0]28 | [1]28 |
| E0E0-E0E0-F1F1-F1F1 | [1]28 | [0]28 |
[0]28 обозначает вектор, состоящий из 28 нулевых битов.
Существуют 6 частично-слабых пар ключей, они приведены в таблице 10. Для каждого из 12 частично-слабых ключей существуют 232 «анти-постоянные точки», то есть такие блоки х, что

| C0 | D0 | Пары частично-слабых ключей | C0 | D0 |
| [01]14 | [01]14 | 01FE-01FE-01FE-01FE,----FE01-FE01-FE01-FE01 | [10]14 | [10]14 |
| [01]14 | [01]14 | 1FE0-1FE0-1FE0-1FE0,----E0F1-E0F1-E0F1-E0F1 | [10]14 | [10]14 |
| [01]14 | [0]28 | 01E0-01E0-01F1-01F1,----E001-E001-F101-F101 | [10]14 | [0]28 |
| [01]14 | [1]28 | 1FFE-1FFE-0EFE-0EFE,----FE1F-FE1F-FE0E-FE0E | [0]28 | [1]28 |
| [0]28 | [01]14 | O11F-011F-010E-010E,----1F01-1F01-0E01-0E01 | [0]28 | [10]14 |
| [1]28 | [01]14 | E0FE-E0FE-F1FE-F1FE,----FEE0-FEE0-FEF1-FEF1 | [1]28 | [10]14 |
| Методы атаки | Известные откр. тексты | Выбранные отк. тексты | Объём памяти | Количество операций |
| Полный поиск | 1 | - | Незначительный | 255 |
| Линейный Криптоанализ | 243(85%) | - | Для текста | 243 |
| Линейный Криптоанализ | 238(10%) | - | Для текста | 250 |
| Диффер. Криптоанализ | - | 247 | Для текста | 247 |
| Диффер. Критоанализ | 255 | - | Для текста | 255 |
- Метод полного поиска требует одну известную пару шифрованного и расшифрованного текста, незначительный объём памяти, и для его выполнения нужны 255 шагов.
- Дифференциальный критоанализ — первую такую атаку на DES заявили Biham и Shamir. Эта атака требует шифрования 247 открытых текстов выбранных нападающим, и для её выполнения нужны 247 шагов. Теоретически являясь точкой разрыва, эта атака непрактична из-за чрезмерных требований к подбору данных и сложности организации атаки по выбранному открытому тексту. Сами авторы этой атаки Biham и Shamir заявили, что считают DES защищенным для такой атаки.
- Линейный криптоанализ разработан Matsui. Этот метод позволяет восстановить ключ DES с помощью анализа 243 известных открытых текстов, при этом требуется 243 шагов для выполнения. Первый экспериментальный криптоанализ DES, основанный на открытии Matsui, был успешно выполнен в течение 50 дней на автоматизированных рабочих местах 12 HP 9735.
Для линейной и дифференциальной атак требуется достаточно большой объём памяти для сохранения выбранных (известных) открытых текстов до начала атак.
[править] Увеличение криптостойкости DES
Чтобы увеличивать криптостойкость DES появляются несколько вариантов: double DES (2DES), triple DES (3DES), DESX, G-DES.
- Методы 2DES и 3DES основаны на DES, но увеличивают длину ключей (2DES — 112 бит, 3DES — 168 бит) и поэтому увеличить криптостойкость.
- Схема 3DES имеет вид DES(k3,DES(k2,DES(k1,M))), где k1,k2,k3 ключи для каждого шифра DES. Это вариант известен как в ЕЕЕ так как три DES операции являюся шифрованием. Существует 3 типа алгоритма 3DES:
- Самый популярный тип при использовании 3DES — это DES-EDE3, для него алгоритм выглядит так:
- Шифровка:
. - Расшифровка:

- При выполнении алгоритма 3DES ключи могут выбрать так:
- k1,k2,k3 независимы.
- k1,k2 независимы, а k1 = k3
- k1 = k2 = k3.
- Метод DESX создан Рональдом Ривестом и формально продемонстрирована Killian и Rogaway. Этод метод — усиленный вариант DES, поддерживаемый инструментарием RSA Security. DESX отличается от DES тем, что каждый бит входного открытого текста DESX логически суммируется по модулью 2 с 64 битами дополнительного ключа, а затем шифруется по алгоритму DES. Каждый бит результата также логически суммируется по модулью 2 с другими 64 битами ключа. Главной причиной использования DESX является простой в вычислительном смысле способ значительного повысить стойкость DES к атакам полного перебора ключа.
- Метод G-DES разработан Schaumuller-Bichl для повышения производительности DES на основе увеличения размером шфрованного блока. Заявлялось, что G-DES защищен так же как и DES. Однако, Biham и Shamir показали, что G-DES с рекомендуемыми параметрами легко взламывается, а при любых изменениях параметров шифр становится ещё менее защищен чем DES.
- Ещё другой вариант DES использует независимые суб-ключи. Различно от алгоритма DES, в котором на основе 56-битного секретного ключа пользователя алгоритм DES получает шестнадцать 48-битных суб-ключей для использования в каждом из 16 раундов, в этом варианте использует 768-битного ключа (разделенного на 16 48-битных подключей) вместо 16 зависимых 48-битных ключей, создаваемых по ключевому графику алгоритма DES. Хотя очевидно, что использование независимых суб-ключей значительно усложнит полный поиск ключа, но стойкость к атаке дифференциальным или линейным криптоанализом не намного превысит стойкость обычного DES. По оценке Biham для дифференциального криптоанализа DES с независимыми подключами требуется 261 выбранных открытых текстов, в то время как для линейного криптоанализа требуется 260 известных открытых текстов.
[править] Применение
DES был национальным стандартом США в 1977—1980 гг., но в настоящее время DES используется (с ключом длины 56 бит) только для устаревших систем, чаще всего используют его более криптоустойчивый вид (3DES, 2DES). 3DES является простой эффективной заменой DES, и сейчас он расмотрен как стандарт. В ближайшее время DES и Triple DES будут заменены алгоритмом AES (Advanced Encryption Standard — Расширенный Стандарт Шифрования). Алгоритм DES широко применяется для защиты финансовой информации: так, модуль THALES (Racal) HSM RG7000 полностью поддерживает операции TripleDES для эмиссии и обработки кредитных карт VISA, EuroPay и проч. Канальные шифраторы THALES (Racal) DataDryptor 2000 используют TripleDES для прозрачного шифрования потоков информации. Также алгогритм DES используется во многих других устройствах и решениях THALES-eSECURITY.
[править] Литература
- А. П. Алферов, А. Ю. Зубов, А. С. Кузьмин, А. В. Черемушкин Основы криптографии.
- A. Menezes, Pvan Oorschot, S. Vanstone Handbook of Applied Cruptography.
- Семенов Ю. А. Алгоритм DES.
- Query for DES
|
|
|
|---|---|
| Сеть Фейстеля |
|
| SP-сеть | |
| Другие | |
| Эта статья или раздел нуждается в переработке.
Пожалуйста, улучшите её в соответствии с правилами написания статей.
|

