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”. Не волнуй-
тесь: если вы не говорите по-голландски, то все равно не сможете прочитать его правильно,
поэтому произносите его так, как вам больше нравится.