Стандарт шифрования AES

Данный стандарт принят в качестве замены широко распространен­ного, но недостаточно стойкого для для защиты секретных данных стандарта 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 -суммирования.

Для достижения обратимости шифра слой линейного перемеши­вания послед­него цикла изменен по сравнению со слоями линейного перемешивания осталь­ных циклов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: