Алгоритм шифрирование DES
Реферат, 30 Ноября 2011, автор: пользователь скрыл имя
Краткое описание
DES (Data Encryption Standard) — симметричный алгоритм шифрования, разработанный фирмой IBM и утвержденный правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бита и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:
Содержание работы
1 История
2 Блочный шифр
3 Преобразования Сетью Фейстеля
4 Схема шифрования алгоритма DES
4.1 Начальная перестановка
4.2 Циклы шифрования
4.3 Основная функция шифрования (функция Фейстеля)
4.4 Генерирование ключей ki
4.5 Конечная перестановка
5 Схема расшифрования
6 Режимы использования DES
7 Криптостойкость алгоритма DES
7.1 Слабые ключи
7.2 Частично слабые ключи
7.3 Известные атаки на DES
8 Увеличение криптостойкости DES
9 Применение
10 Литература
Содержимое работы - 1 файл
Алгоритм шифрирование DES.doc
— 592.50 Кб (Скачать файл)Схема расшифрования
При расшифровании данных все действия выполняются в обратном порядке. В 16 циклах расшифрования, в отличие от шифрования c помощью прямого преобразования сетью Фейстеля, здесь используется обратное преобразование сетью Фейстеля.
Ri −
1 = Li
Схема расшифрования
указана на Рис.6.
Ключ ki, i=1,…,16, функция f,
перестановка IP и IP − 1 такие
же как и в процессе шифрования.
Режимы использования DES
DES может использоваться в четырёх режимах.
- Режим электронной кодовой книги (ECB — Electronic Code Book): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом, каждый блок шифруется отдельно, не взаимодействуя с другими блоками (см. Рис.7).
Рис.7
Режим электронной кодовой
- Режим сцепления блоков (СВС — Cipher Block Chaining) (см. Рис.8). Каждый очередной блок Ci i>=1, перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi + 1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете.
Рис.8 Режим сцепления блоков — СВС
- Режим обратной связи по шифротексту (англ. Cipher Feed Back) (см. Рис.9). В режиме CFB вырабатывается блочная «гамма» Z0,Z1,...Zi = DESk(Ci − 1) . Начальный вектор C0 является синхропосылкой и предназначен для того, чтобы разные наборы данных шифровались по-разному с использованием одного и того же секретного ключа. Синхропосылка посылается получателю в открытом виде вместе с зашифрованным файлом.
Рис.9 Режим обратной связи по шифротексту — CFB
- Режим обратной связи по выходу (OFB — Output Feed Back) (см. Рис.10). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,... , i>=1
Рис.10 Режим обратной связи по выходу — OFB
Достоинства и недостатки режимов:
- В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста Ci приводит к искажению после расшифрования только соответствующего открытого блока Mi, поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.
Криптостойкость алгоритма DES
Нелинейность преобразований в DES средствами только S-блоков, и использование слабых S-блоков позволяет осуществлять контроль за шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:
- Каждая строка каждого блока должна быть перестановкой множества {0, 1, 2, …, 15}
- S-блоки не должны являться линейной или афинной функцией своих аргументов.
- Изменение одного бита на входе S-блока должно приводить к изменению по крайней мере двух битов на выходе.
- Для каждого S-блока и любого аргумента х значение S(x) и должны различаться по крайней мере двумя битами.
Из-за небольшого числа возможных ключей (всего 256), появляется возможность их полного перебора на быстродействующей вычислительной технике за реальное время. В 1998 году Electronic Frontier Foundation используя специальный компьютер DES-Cracker, удалось взломать DES за 3 дня.
Слабые ключи
Слабыми ключами называется ключи k такие, что DESk(DESk(x)) = x, где x — 64-битный блок.
Известны 4 слабых ключа, они приведены в таблице 9. Для каждого слабого ключа существует 232 неподвижные точки, то есть, таких 64-битных блоков х, для которых DESk(x) = x.
| Таблица 9. DES-Слабые ключи | ||
| Слабые ключи(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 нулевых битов.
Частично слабые ключи
В алгоритме DES существуют слабые и частично слабые ключи. Частично-слабые ключи — это такие пары ключей (k1,k2), что DESk1(DESk2(x)) = x.
Существуют 6 частично-слабых пар ключей, они приведены в таблице 10. Для каждого из 12 частично-слабых ключей существуют 232 «анти-неподвижные точки», то есть такие блоки х, что
| Таблица 10. Частично-слабые ключи | ||||
| C0 | D0 | Пары частично-слабых ключей | C0 | D0 |
| [01]14 | [01]14 | 01FE-01FE-01FE-01FE,----FE01- |
[10]14 | [10]14 |
| [01]14 | [01]14 | 1FE0-1FE0-1FE0-1FE0,----E0F1- |
[10]14 | [10]14 |
| [01]14 | [0]28 | 01E0-01E0-01F1-01F1,----E001- |
[10]14 | [0]28 |
| [01]14 | [1]28 | 1FFE-1FFE-0EFE-0EFE,----FE1F- |
[0]28 | [1]28 |
| [0]28 | [01]14 | O11F-011F-010E-010E,----1F01- |
[0]28 | [10]14 |
| [1]28 | [01]14 | E0FE-E0FE-F1FE-F1FE,----FEE0- |
[1]28 | [10]14 |
Известные атаки на DES
| Таблица 11. Известные атаки на DES. | ||||
| Методы атаки | Известные откр. тексты | Выбранные отк. тексты | Объём памяти | Количество операций |
| Полный поиск | 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:
- DES-EEE3: Шифруется три раза с 3 разными ключами.
- DES-EDE3: 3DES операции шифровка-расшифровка-шифровка с 3 разными ключами.
- DES-EEE2 и DES-EDE2: Как и предыдущие, за исключением того, что первая и третья операции используют одинаковый ключ.
Самый популярный тип при использовании 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 известных открытых текстов.