Автор работы: Пользователь скрыл имя, 24 Апреля 2013 в 00:50, реферат
DES (Data Encryption Standard) — Симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных (в документах национального института стандартизации США (ANSI) криптосистема DES называется алгоритмом шифрования данных (DEA), а международная организация по стандартизации, ссылаясь на шифр DES, пользуется аббревиатурой DEA-1).
DES (Data Encryption Standard) — Симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных (в документах национального института стандартизации США (ANSI) криптосистема DES называется алгоритмом шифрования данных (DEA), а международная организация по стандартизации, ссылаясь на шифр DES, пользуется аббревиатурой DEA-1). DES разработан фирмой IBM и утвержден правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бит и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:
В 1972 году, после проведения исследования потребностей правительства США в компьютерной безопасности, американское НБС (Национальное Бюро Стандартов) — теперь переименовано ANSI (Национальный Институт Стандартов и Технологий) — определило необходимость в общеправительственном стандарте шифрования некритичной информации. Позже, 15 мая 1973 года, после консультации с NSA (АНБ – Агентством национальной безопасности), НБС объявило конкурс на шифр, который удовлетворит строгим критериям проекта, но ни один конкурсант не обеспечивал выполнение всех требований. Второй конкурс был начат 27 августа 1974. На сей раз, шифр Lucifer, представленный IBM и развитый в течение периода 1973—1974 сочли приемлемым, он был основан на более раннем алгоритме Хорста Фейстеля.
17 марта 1975 года предложенный
алгоритм DES был издан в Федеральном
Регистре. В следующем году было
проведено 2 открытых симпозиума
по обсуждению этого стандарта,
Часть подозрений в скрытой слабости S-перестановок была снята в 1990, когда были опубликованы результаты независимых исследований Эли Бихама (Eli Biham) и Ади Шамира (Adi Shamir) по дифференциальному криптоанализу — основному методу взлома блочных алгоритмов шифрования с симметричным ключом. S-блоки алгоритма DES оказались намного более устойчивыми к атакам, чем, если бы их выбрали случайно. Это означает, что такая техника анализа была известна АНБ ещё в 70-х годах XX века.
Шифр DES является блочным шифром, основанном на шифре Фейстеля.
Входными данными для блочного шифра служат блок размером n бит и k-битный ключ. На выходе, после применения шифрующего преобразования, получается n-битный зашифрованный блок, причём незначительные различия входных данных как правило приводят к существенному изменению результата. Блочные шифры реализуются путём многократного применения к блокам исходного текста некоторых базовых преобразований.
Базовые преобразования:
Так как преобразование производится поблочно, как отдельный шаг требуется разделение исходных данных на блоки необходимого размера. При этом вне зависимости от формата исходных данных, будь то текстовые документы, изображения или другие файлы, они должны быть интерпретированы в бинарный вид и только после этого разбиты на блоки. Все вышеперечисленное может осуществляться как программными, так и аппаратными средствами.
Как уже было сказано, шифр DES является модификацией шифра Фейстеля, еще называемым преобразованием сетью Фейстеля. Это преобразование над векторами (блоками) представляющими собой левую (старшую, L) и правую (младшую, R) половины регистра сдвига. В алгоритме DES используются прямое преобразование сетью Фейстеля при шифровании (рисунок 1.1).
Рисунок 1.1 – Прямое преобразование сетью Фейстеля.
При расшифровании шифротекста используется обратное преобразование сетью Фейстеля (рисунок 1.2).
Рисунок 1.2 – Обратное преобразование сетью Фейстеля.
Полная схема работы шифра DES представлена на рисунке 1.3.
Рисунок 1.3 – Схема работы шифра DES.
Вначале из исходного текста выделяется блок T длиной 64 бита (8 символов в формате ASCII), к которому применяется перестановка IP. Эта перестановка битов задана стандартом, хотя в принципе они могут быть различными. В результате получается блок IP(T), который разбивается на 2 равные части L0,R0, где L0,R0 — соответственно 32 старших битов и 32 младших битов блока. Затем происходит 16 циклов (раундов) шифрования, на каждом из которых происходит прямое преобразование Фейстеля. Важную роль на этих этапах играет функция Фейстеля f, выполняющая шифрование. Аргументами функции f являются 32-битовый вектор Ri−1, 48 битовой ключ ki, которые являются результатом преобразования 56 битового исходного ключа шифра k.
Для вычисления функции f используются функция расширения Е, преобразование S, состоящее из 8 преобразований S-блоков S1, S2, …, S8, и перестановка P. Функция Е представляет собой 48-битовую таблицу. Она расширяет 32-битовый вектор Ri−1 до 48-битового вектора E(Ri−1) путём перестановки битов из Ri−1 и дублирования некоторых из них. Полученный после перестановки блок E(Ri−1) складывается по модулю 2 с ключами ki и затем представляются в виде восьми последовательных блоков B1,B2,...B8: E(Ri−1)= B1,B2,...B8. Каждый Bj является 6-битовым блоком. Далее каждый из блоков Bj трансформируется в 4-битовый блок B'j с помощью преобразований Sj. Значение функции f(Ri−1,ki) (32 бит) получается перестановкой Р, применяемой к 32-битовому блоку B'1B'2...B'8. Значения функции E, преобразований S1 – S8 и перестановки P заданы стандартом, как и в случае с перестановкой IP. Подробно схема работы функции f представлена на рисунке 1.4.
Рисунок 1.4 – Схема работы функции f.
Ключи ki получаются из начального ключа k (64 бит = 8 байтов или 8 символов в АSCII) таким образом. Восемь битов, находящих в позициях 8, 16, 24, 32, 40, 48, 56, 64 добавляются в ключ k таким образом чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64).
Конечная перестановка IP-1 является обратной к перестановке IP. Она действует на T16 и используется для восстановления позиций.
При расшифровке в раундах производятся обратные преобразования Фейстеля, т. е. схема работы алгоритма практически не меняется, главное – проследить за использованием подключей в обратном порядке.
DES может используется в четырёх режимах.
1. Режим электронной кодовой книги (ЕСВ — Electronic Code Book): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом, каждый блок шифруется отдельно, не взаимодействуя с другими блоками (рисунок 1.5).
Рисунок 1.5 – Режим электронной кодовой книги – ECB
2. Режим сцепления блоков (СВС — Cipher Block Chaining)). Каждый очередной блок Ci i>=1, перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi+1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете (рисунок 1.6).
Рисунок 1.6 – Режим сцепления блоков — СВС
3. Режим обратной связи по шифротексту (CFB — Cipher Feed Back). В режиме СFB вырабатывается блочная «гамма» Z0,Z1,...Zi=DESk(Ci−1). Начальный вектор C0 сохраняется в секрете (рисунок 1.7).
Рисунок 1.7 – Режим обратной связи с шифротексту – CFB
4. Режим обратной связи по выходу (OFB — Output Feed Back). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,... , i>=1 (рисунок 1.8)
Рисунок 1.8 – Режим обратной связи по выходу – OFB
Достоинства и недостатки режимов:
Нелинейность преобразований в DES средствами только S-блоков, в случае, если они имеют слабину, позволяет осуществлять контроль над шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:
Из-за небольшого числа возможных ключей (всего 256), появляется возможность их полного перебора на быстродействующей вычислительной технике за реальное время. В 1998 году The Electronic Foundation используя специальный компьютер DES-Cracker, удалось взломать DES за 3 дня. Это поставило под удар секретность правительственных документов, что заставило искать новые алгоритмы шифрования.
В алгоритме DES существуют слабые и частично-слабые ключи. Слабыми ключами называется ключи k такие что DESk(DESk(x)) = x, x — блок 64 бит. Частично-слабые ключи — пары ключей (k1,k2) такие, что DESk1(DESk2(x))=x. Известны 4 слабых ключа. Для каждого слабого ключа существует 232 «постоянные точки», то есть таких 64-битовых блоков х, в которых DESk(x) = x. Существуют 6 частично-слабых пар ключей. Для каждого из 12 частично-слабых ключей существуют 232 «анти-постоянные точки», то есть такие блоки х, что .
Основными методами взлома алгоритма являются:
Для линейной и дифференциальной атак требуется достаточно большой объём памяти для сохранения выбранных (известных) открытых текстов до начала атак.
С целью увеличения криптостойкости флгоритма 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:
DES-EEE3: Шифруется три раза с 3 разными ключами.
DES-EDE3: 3DES операции шифровка-расшифровка-шифровка с 3 разными ключами.
DES-EEE2 и DES-EDE2: Как и предыдущие, за исключением того, который первая и третья операции используют одинаковый ключ.