Глава 4. Блочные шифры
ние открытого текста с помощью дополнения ключа, мы получим значение,
которое является дополнением шифрованного (исходного) текста.
Доказать данное свойство нетрудно. Посмотрите на рис. 4.1 и подумайте,
что случится, если изменить значения всех битов в
L
,
R
и
K
i
на противо-
положные. Функция расширения просто копирует биты, поэтому биты ре-
зультата функции расширения также будут изменены на противоположные.
У функции XOR будут изменены биты и первого и второго аргументов, по-
этому их сумма останется неизменной. На вход S-матриц будет подано то же
значение, что и раньше, а значит, и выходное значение не изменится. В по-
следней операции XOR один аргумент останется неизменным, а второй будет
изменен на противоположный. Поэтому в новом значении
L
(оно впослед-
ствии поменяется местами с
R
) биты также окажутся измененными на про-
тивоположные. Другими словами, если в начале раунда заменить значения
L
,
R
и
K
i
их дополнениями, результатом выполнения раунда будет значение,
являющееся дополнением того, которое было бы получено при использовании
исходных значений. Данное свойство передается из раунда в раунд.
Идеальный блочный шифр никогда бы не обладал подобным курьезным
свойством. Что еще более важно, это свойство шифра может привести к ата-
кам на системы, использующие DES.
Иными словами, алгоритм DES больше не выдерживает проверки на про-
фпригодность. Длина его ключа шифрования не отвечает современным тре-
бованиям. В мире уже совершено несколько успешных попыток определить
ключ DES путем простого перебора вариантов.
Алгоритм 3DES работает с ключом шифрования большего размера. К со-
жалению, от своего предшественника DES он унаследовал и слабые ключи,
и свойство комплементарности. Каждого из этих свойств вполне достаточ-
но, чтобы по нашим стандартам шифр считался небезопасным. Кроме того,
3DES обладает ограничением на размер блока, который не может превы-
шать 64 бит. Это существенно ограничивает объем данных, которые можно
зашифровать с помощью одного ключа. (Более подробно это рассматривается
в разделе 5.8.) Иногда 3DES все же приходится использовать для обеспече-
ния совместимости с существующими системами, но будьте осторожны — он
ведет себя отнюдь не как идеальный шифр.
4.5.2
AES
Несколько лет назад в США был принят новый правительственный стан-
дарт шифрования, который получил название AES (Advanced Encryption
Standard — улучшенный стандарт шифрования). Вместо того чтобы разра-
батывать новый шифр или поручать эту работу конкретным людям, Наци-
ональный институт стандартов и технологий (National Institute of Standards
4.5. Современные блочные шифры
75
and Technology — NIST) обратился за помощью к криптографическому сооб-
ществу. В качестве кандидатов на лучший шифр были приняты 15 предложе-
ний [71], из которых затем отобрали пять финалистов [73]. Лучшим шифром
был признан Rijndael, который и получил статус нового стандарта шифрова-
ния
5
. В целом этот процесс прошел гораздо лучше, чем ожидалось. Если кто-
нибудь из вас захочет стандартизировать новую криптографическую систему,
здесь определенно есть чему поучиться. Если вы получите хорошие предло-
жения, устройте конкурс наподобие того, как это было сделано для AES, —
это намного лучше, чем разрабатывать шифр всем комитетом. Если же у вас
недостаточно экспертов, которые могут подавать хорошие предложения, то
вам, вероятно, вообще не стоит заниматься стандартизацией.
Структура AES существенно отличается от DES. Алгоритм AES не от-
носится к шифрам Файстеля. На рис. 4.2 показан один раунд алгоритма
AES. Последующие раунды имеют аналогичную структуру. На вход алгорит-
ма подается блок открытого текста длиной 16 байт. Вначале открытый текст
складывается с помощью операции XOR с 16-байтовым (128-битовым) под-
ключом. На рисунке этот процесс обозначен операторами
⊕
(каждый байт
подключа складывается с соответствующим байтом открытого текста). За-
тем каждый из 16 байт полученного результата подается на вход таблицы S-
матриц, которая отображает 8-битовые входные значения в 8-битовые выход-
ные значения. Все S-матрицы одинаковы. Полученные байты переставляются
в некотором заданном порядке. На рисунке он выглядит несколько запутан-
ным, однако на самом деле имеет очень простую структуру. И наконец, каж-
дая группа из 4 байт подвергается перемешиванию, которое осуществляется
с помощью линейной функции перемешивания. Термин “линейная” означает
лишь то, что каждый бит выходных данных функции перемешивания полу-
чен в результате применения операции XOR к нескольким входным битам.
Применение функции перемешивания завершает раунд. Полный процесс
шифрования состоит из 10-14 раундов, в зависимости от размера ключа. Как
и в DES, подключи AES генерируются на основе некоторого ключа шифро-
вания, однако механизм генерации ключей полностью отличен от применяв-
шегося в DES.
Алгоритм AES имеет свои преимущества и недостатки. Каждый шаг ал-
горитма состоит из нескольких операций, которые могут выполняться одно-
временно, что облегчает создание высокоскоростных реализаций AES. С дру-
гой стороны, операция дешифрования существенно отличается от операции
шифрования. Для расшифровки текста необходимо использовать обратные S-
5
Многие смущаются, потому что не знают, как произносить слово “Rijndael”. Не волнуй-
тесь: если вы не говорите по-голландски, то все равно не сможете прочитать его правильно,
поэтому произносите его так, как вам больше нравится.
|