AES (конкурс)

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Advanced Encryption Standard, AES — конкурс, организованный NIST в 1997 году для выбора нового криптографического стандарта, который должен был стать преемником DES. В результате конкурса в 2000 году победителем был объявлен шифр Rijndael (который теперь часто называют по имени конкурса — AES).

Необходимость в принятии нового стандарта была вызвана небольшой длиной ключа DES (56 бит), что теоретически позволяло применить метод грубой силы (полный перебор ключей) против этого алгоритма. Кроме того, архитектура DES была ориентирована на аппаратную реализацию, и программная реализация алгоритма на платформах с ограниченными ресурсами не давала достаточного быстродействия. Модификация 3-DES обладала достаточной длиной ключа, но при этом была в три раза медленнее.

Начало конкурса

2 января 1997 года NIST объявил[1] о намерении выбрать преемника для DES, являвшегося американским стандартом с 1977 года. Однако, вместо опубликования алгоритма, NIST принял различные предложения от заинтересованных сторон о том, каким образом следует выбирать алгоритм. Бурный отклик со стороны открытого криптографического сообщества привёл к объявлению конкурса (12 сентября 1997 года). Свой алгоритм могла предложить любая организация или группа исследователей. Требования к новому стандарту были следующими:

  • Блочный шифр
  • Длина блока 128 бит
  • Ключи длиной 128, 192 и 256 бит

Подобные шифры были довольно редки во время объявления конкурса; возможно, лучшим был SQUARE. Дополнительно кандидатам рекомендовалось:

  • Использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах)
  • Ориентироваться на 32-разрядные процессоры
  • Не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нём не заложено каких-либо недокументированных возможностей.

Кроме того, алгоритм, претендующий на то, чтобы стать стандартом, должен распространяться по всему миру на неэксклюзивных условиях и без платы за пользование патентом.

Конкурс AES

20 августа 1998 года на 1-й конференции AES был объявлен список из 15 кандидатов: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, Twofish.

В последующих обсуждениях эти алгоритмы подвергались всестороннему анализу, причём исследовались не только криптографические свойства, такие как стойкость к известным атакам, отсутствие слабых ключей, хорошие статистические свойства, но и практические аспекты реализации: оптимизацию скорости выполнения кода на различных архитектурах (от ПК до смарт-карт и аппаратных реализаций), возможность оптимизации размера кода, возможность распараллеливания. Проверка кандидатов на предмет формирования случайных двоичных последовательностей осуществлялась с помощью набора статистических тестов NIST.

Первый раунд AES

В течение первого раунда тестирование проводилось с 128-битными ключами. Лишь 9 алгоритмов из 15 смогли пройти статистические тесты, а именно: CAST-256, DFC, E2, LOKI-97, MAGENTA, MARS, Rijndael, SAFER+ и Serpent. Оставшиеся алгоритмы показали некоторые отклонения в тестах на случайный характер формируемых ими двоичных последовательностей[2].

В марте 1999 года прошла 2-я конференция AES, а в августе 1999 года были объявлены 5 финалистов: MARS, RC6, Rijndael, Serpent и Twofish. Все эти алгоритмы были разработаны авторитетными криптографами с мировым именем. На 3-й конференции AES в апреле 2000 года авторы выступили с докладами о своих алгоритмах.

Второй раунд AES

Во втором раунде оценка пригодности финалистов первого раунда в качестве генераторов случайных чисел проводилось на основе 192-битных и 256-битных ключей. Продолжительность статистических тестов NIST составила несколько месяцев, причём вычисления производились на многочисленных рабочих станциях Sun Ultra. Все данные формировались и обрабатывались в режиме онлайн. В результате второго раунда было показано, что каждый из пяти вышеуказанных алгоритмов формирует абсолютно случайную бинарную последовательность и поэтому может быть использован в качестве генератора псевдослучайных чисел, причём имеется возможность использования ключей размерами: 128, 192 и 256 бит[3].

Голосование

Голоса на конференции AES2 распределились следующим образом:

  • Rijndael: 86 за, 10 против
  • Serpent: 59 за, 7 против
  • Twofish: 31 за, 21 против
  • RC6: 23 за, 37 против
  • MARS: 13 за, 83 против

Третья конференция AES

Третья конференция AES прошла в Нью-Йорке 13 и 14 апреля 2000 года, незадолго до завершения второго этапа. На ней присутствовало 250 участников, многие из которых приехали из-за рубежа. Двухдневная конференция была разделена на восемь сессий, по четыре в день, плюс к тому состоялась неформальная дополнительная сессия, подводившая итоги первого дня. На сессиях первого дня обсуждались вопросы, связанные с программируемыми матрицами (FPGA), проводилась оценка реализации алгоритмов на различных платформах, в том числе PA-RISC, IA-64, DEC Alpha, высокоуровневых смарт-картах и сигнальных процессорах, сравнивалась производительность претендентов на стандарт, анализировалось число раундов в алгоритмах-кандидатах. На сессиях второго дня был проанализирован Rijndael с сокращённым числом раундов и показана его слабость в этом случае, обсуждался вопрос об интегрировании в окончательный стандарт всех пяти алгоритмов-претендентов, ещё раз тестировались все алгоритмы. В конце второго дня была проведена презентация, на которой претенденты рассказывали о своих алгоритмах, их достоинствах и недостатках. О Rijndael рассказал Винсент Рэймен, заявивший о надёжности защиты, высокой общей производительности и простоте архитектуры своего кандидата.

Выбор победителя

2 октября 2000 года было объявлено, что победителем конкурса стал алгоритм Rijndael[4], и началась процедура стандартизации.

28 февраля 2001 года был опубликован проект, а 26 ноября 2001 года AES был принят как FIPS 197.

Историческую ретроспективу конкурса можно проследить на веб-сайте NIST[5].

Примечания

  1. Архивированная копия (недоступная ссылка). Дата обращения: 7 декабря 2006. Архивировано 6 ноября 2006 года.
  2. NIST IR 6390 Randomness Testing of the Advanced Encryption Standard Candidate Algorithms Архивная копия от 6 ноября 2010 на Wayback Machine (англ.)
  3. NIST IR 6483 Randomness Testing of the Advanced Encryption Standard Finalist Candidates Архивная копия от 27 мая 2010 на Wayback Machine (англ.)
  4. Report on the Development of the Advanced Encryption Standard (AES) | NIST. Дата обращения: 19 апреля 2018. Архивировано 9 сентября 2017 года.
  5. Bounce to index.html Архивировано 17 июля 2014 года.

Ссылки