часть пар “открытый текст–шифрованный текст”, ему больше не понадобится
ключ: он сможет расшифровать сообщение или хотя бы его основную часть,
просто воспользовавшись таблицей соответствий для этих пар.
По определению атаку с проверкой четности можно было бы назвать три-
виальной, однако это было бы не совсем честно с нашей стороны. Вместо
этого мы изменим определение идеального блочного шифра и ограничим его
случайно выбранными
четными
перестановками.
Определение 3
Для каждого значения ключа идеальный блочный шифр ре-
ализует случайную четную перестановку, выбранную независимо от пере-
становок, соответствующих другим значениям ключа.
Данное определение несколько усложняет нашу концепцию “идеального”
шифра, однако в противном случае нам пришлось бы дисквалифицировать
практически все известные науке блочные шифры. Для подавляющего боль-
шинства случаев ограничение допустимых перестановок четными переста-
новками является несущественным. Поскольку мы никогда не позволим зло-
умышленнику вычислить все пары “открытый текст–шифрованный текст”,
70
Глава 4. Блочные шифры
определить различие между четными и нечетными перестановками будет
невозможно.
Если у вас когда-нибудь появится блочный шифр, который
будет
генери-
ровать нечетные перестановки, вам понадобится вернуться к первоначально-
му определению идеального блочного шифра. На практике атаки с проверкой
четности влияют скорее на формальное определение безопасности, нежели на
реальные системы, поэтому о четности перестановок можно вообще забыть.
4.5
Современные блочные шифры
На протяжении последних десятилетий мировой общественности были
представлены сотни блочных шифров. Создать новый блочный шифр проще
простого. Создать
хороший
новый блочный шифр чрезвычайно сложно. Мы
не имеем в виду безопасность: блочный шифр по умолчанию должен быть
безопасным. Хвастаться безопасностью нового шифра — это все равно что
кичиться новой крышей, которая не протекает, или машиной, у которой есть
фары. Самая большая сложность заключается в том, чтобы создать блочный
шифр, который бы оказался эффективным во многих областях применения.
Разработка нового шифра — весьма интересное и поучительное занятие,
но очень просим вас: ПОЖАЛУЙСТА, не используйте неизвестный шифр
в реальных системах! Мы ни за что не станем доверять шифру до тех пор,
пока его тщательно не исследуют другие эксперты. Основным требованием
к новому шифру является его повсеместная публикация, однако этого недо-
статочно. Существует так много шифров, что лишь некоторые из них под-
вергаются тщательным исследованиям. Намного проще использовать один
из широко известных шифров, которые уже были изучены и получили массу
положительных откликов.
Практически все блочные шифры представляют собой несколько после-
довательных применений слабого блочного шифра, называемого
раундом
(round)
. Некоторые из таких слабых раундов в совокупности образуют весьма
надежный блочный шифр. Подобные структуры значительно облегчают раз-
работку и реализацию шифра, как, впрочем, и его анализ. Большинство атак
на блочные шифры начинаются с атаки на версии шифров с минимальным
количеством раундов. По мере усовершенствования атаки могут применяться
для нападения на шифры с все б´ольшим и б´ольшим количеством раундов.
Далее в главе рассматривается несколько наиболее популярных блочных
шифров. Наш обзор будет не слишком обширным — полные спецификации
этих шифров можно найти по указанным нами ссылкам в Internet. Мы же
сконцентрируемся на общей структуре и свойствах каждого из них.
4.5. Современные блочные шифры
71
4.5.1
DES
Алгоритм шифрования DES (Data Encryption Standard — стандарт шиф-
рования данных) [69], незаменимая рабочая лошадка криптографии, наконец-
то перешагнул черту пенсионного возраста. Ограничения на размер ключа в
56 бит и размер блока в 64 бит делают DES непригодным для современ-
ных высокоскоростных компьютеров и огромных объемов данных. Он все
еще может применяться в виде “тройного” DES или 3DES [72] — блочного
шифра, образованного путем трех последовательных применений алгоритма
DES. Это решает наиболее острую проблему малого размера ключа, однако
не позволяет снять ограничение на малый размер блока. По современным
стандартам DES — не особенно быстрый шифр, а 3DES работает еще в три
раза медленнее. Несмотря на все это, DES до сих пор используется во многих
существующих системах, однако применять DES или 3DES в новых разра-
ботках не рекомендуется.
На рис. 4.1 приведена схема одного раунда DES. Это линейная диаграм-
ма вычислений, выполняемых в рамках алгоритма DES; подобные диаграм-
мы часто встречаются в криптографической литературе. Каждый прямо-
угольник соответствует вычислению значения конкретной функции, а стрел-
ки показывают, куда подается то или иное значение. Существует несколько
стандартных соглашений по поводу обозначений на диаграммах. Операция
XOR — “исключающее ИЛИ” (ее еще называют “побитовым сложением” или
“сложением без переноса”) — обозначается в формулах как оператор
⊕
, а на
рисунках — точно таким же символом, только большим. Иногда на схемах
встречается и обычная операция сложения, которую обозначают символом .
На вход алгоритма DES подается 64-битовый блок открытого текста, ко-
торый разбивается на две 32-битовые половины:
L
(левая) и
R
(правая). Пе-
Расширение
Перестановка битов
L
S
R
F
K
i
Рис. 4.1.
Структура одного раунда DES
|