Данный стандарт принят в качестве замены широко распространенного, но недостаточно стойкого для для защиты секретных данных стандарта DES. Первые критические замечания в адрес алгоритма DES появились практически сразу после его публикации. Одними из наиболее суровых критиков пока еще не утвержденного стандарта были М.Хеллман и У.Диффи, год спустя прославившие себя изобретением асимметричной криптографии. Основным объектом критики была слишком малая длина ключа – всего 56 бит. По оценкам М.Хеллмана, стоимость устройства для взлома шифра путем полного перебора ключей, содержащего миллион узлов, способных опробовать миллион ключей в секунду, не должна превышать $20млн. Такая сумма уже в то время была вполне по силам разведывательной службе крупного государства. С тех пор эта сумма уменьшилась на несколько порядков благодаря бурному развитию микроэлектроники.
Не следует забывать то, что стандарт определяет алгоритм шифрования несекретыхданных – в совокупности с предыдущим это оправдывает отсутствие запаса прочности в нем. Исследователи отметили, что существующей длины ключа будет вполне достаточно на 10-15 лет, и в этом они не ошиблись. На всякий случай было решено пересматривать стандарт каждые пять лет. Такие пересмотры были выполнены в 1983, 1988 и 1993 годах, тогда стандарт был оставлен без изменений. Однако вскоре слабость шифра стала очевидной, и для увеличения стойкости специалисты рекомендовали при его использовании выполнять шифрование два или три раза с различными ключами. В 1998 году, когда стало окончательно ясно, что стандарт шифрования должен быть заменен, Национальный институт стандартов и технологий (NIST), выпустил запрос, где описывался предполагаемый «Усовершенствованный стандарт шифрования» (Advanced Encryption Standard — AES), который должен прийти на смену DES.
В соответствии с требованиями NISTпретендент на стандарт шифрования должен быть симметричным блочным шифром с размером блока 128 бит, ключом 256 бит (также должны поддерживаться ключи длиной 128 и 192 бита), иметь стойкость, не меньшую, чем тройной DES. Скорость шифрования претендента должна превышать скорость шифрования тройного DES-алгоритма. Шифр должен иметь достаточно прозрачную структуру для анализа, возможность эффективной реализации на платформе Pentium Pro, атакже возможность эффективной аппаратной реализации.
Чтобы быть утвержденным в качестве стандарта, алгоритм должен:
² реализовать шифрование частным ключом;
² представлять собой блочный шифр;
² работать со 128-разрядными блоками данных и ключами трех размеров 128, 192 и 256 разрядов.
Дополнительно кандидатам рекомендовалось:
² использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);
² ориентироваться на 32-разрядные процессоры;
² не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.
Перед проведением первого тура конкурса в NIST поступило 21 предложение, из которых 15 удовлетворяли выдвинутым критериям. Затем были проведены исслеования этих решений, в том числе связанные с дешифрованием и проверкой прозодительности, и получены экспертные оценки специалистов по криптографии. В августе 1999 года NIST объявил пять финалистов. Это следующие алгоритмы:
1. MARS, предложенный корпорацией IBM;
2. RC6, предложенныйкомпанией RSA Security;
3. Rijndael, предложенный Д. Дайманом и В. Райманом;
4. Serpent, предложенный Р. Андерсоном, Э. Бихам и Л. Кнудсеном;
5. Twofish, предложенный Б. Шнайером и другими сотрудниками компании Counterpane Internet Security.
В октябре 2000 года NIST объявил о своем выборе – победителем конкурса стал алгоритм RIJNDAEL (произносится как "райндол") бельгийских криптографов Винсента Раймана и Джоана Даймана. Алгоритм зарегистрирован в качестве официального федерального стандарта как FIPS 197. Разработчики Rijndael согласились предоставить алгоритм для свободного использования без каких-либо авторских отчислений.
Высочайшую надежность AES NIST подтверждает астрономическими числами. 128-битный ключ обеспечивает 340 андециллионов (340·1036) возможных комбинаций, а 256-битный ключ увеличивает это число до 11·1076. Для сравнения, старый алгоритм DES, дает общее число комбинаций в 72·1015.
Алгоритм RIJNDAEL
Rijndael - быстрый и компактный алгоритм с простой математической структурой, благодаря чему он оказался прост для анализа при оценке уровня защиты, и никаких претензий специалисты NIST при этом не высказали. Атаки на версию с сокращенным числом раундов показали, что Rijndael не имеет такого запаса прочности, как другие кандидаты, а увеличение числа раундов замедляет его работу. Кроме того, Rijndael продемонстрировал хорошую устойчивость к атакам на реализацию, при которых хакер пытается декодировать зашифрованное сообщение, анализируя внешние проявления алгоритма, в том числе уровень энергопотребления и время выполнения. Rijndael можно легко защитить от таких атак, поскольку он опирается в основном на булевы операции.
Общая производительность программных реализаций Rijndael оказалась наилучшей. Он прекрасно прошел все тесты со смарт-картами и в аппаратных реализациях. Алгоритму в значительной степени присущ внутренний параллелизм, что позволяет без труда обеспечить эффективное использование процессорных ресурсов. Увеличение длины ключа несколько замедляет его работу, поскольку при обработке ключей большей длины алгоритм предусматривает выполнение дополнительных раундов шифрования.
NIST остановил свой выбор на Rijndael, поскольку тот сочетает в себе простоту и высокую производительность. Хотя Rijndael обладает меньшим запасом прочности, чем другие алгоритмы, это не несет в себе никакого практического риска.
Описание алгоритма
Rijndael - это симметричный итеративный обратимый блочный шифр с варьируемыми размерами ключа, блоков информации и числом циклов шифрования. Размер блока в Rijndaelможет быть произвольным, кратным 32 битам, но в стандарте AES зафиксирован размер блока 128.
Длина ключа в AES равна 128, 192 или 256 бит и название стандарта соответственно будет – AES-128, AES-192 и AES-256.
Цикловое преобразование шифра однородно и состоит из трех типов слоев. Под однородностью преобразования понимается то, что каждый бит состояния обрабатывается аналогичным образом.
Выбор конструктивных параметров слоев осуществлен в соответствии с определенной стратегией (Wide Trail Strategy):
1) нелинейный слой реализует параллельное применение s-боксов с оптимальными (в худшем случае) нелинейными свойствами;
2) слой линейного перемешивания обеспечивает хорошие перемешивающие свойства алгоритма (диффузию) уже после нескольких циклов шифрования;
3) слой добавления ключа реализует подмешивание ключа к промежуточному состоянию с помощью Х0R -суммирования.
Для достижения обратимости шифра слой линейного перемешивания последнего цикла изменен по сравнению со слоями линейного перемешивания остальных циклов.