Алгоритм шифрования AES и его криптоанализ
Алгоритм шифрования AES (Advanced Encryption Standard – улучшенный стандарт шифрования) в настоящее время является стандартом блочного симметричного шифрования США.
В отличие от многих других криптографических стандартов (например, предыдущего стандарта шифрования США DES [4] или отечественного стандарта ГОСТ 28147-89 [9]), AES не был разработан «в недрах спецслужб», а выбран на открытом конкурсе из относительно большого числа алгоритмов-претендентов.
До принятия в качестве стандарта алгоритма AES в данном качестве использовался алгоритм DES (Data Encryption Standard – стандарт шифрования данных).
Несмотря на множество найденных криптоаналитических методов, применимых к DES фактически не было обнаружено каких-либо серьезных уязвимостей в данном алгоритме, за исключением одного, но весьма принципиального недостатка: весьма короткого ключа, реальный размер которого составляет всего 56 бит.
Насколько это мало, можно судить из следующей весьма распространенной оценки: для полного перебора ключей DES достаточно примерно 20 часов работы миллиона процессоров, каждый из которых перебирает миллион ключей DES в секунду.
Ясно, что такой стойкости против вскрытия алгоритма методом «грубой силы»
категорически недостаточно.
Тем не менее, DES оставался стандартом шифрования до начала XXI века.
В 1997 году Институт Стандартов и Технологий США (NIST – National Institute of Standards and Technology) объявил о проведении конкурса по замене стандарта DES. На конкурс могли быть присланы алгоритмы шифрования, разработанные как организациями, так и частными лицами в любой стране. Алгоритм-победитель этого конкурса должен был стать новым стандартом блочного симметричного шифрования США.
Для участия в конкурсе (которому было присвоено название AES) алгоритм шифрования должен был соответствовать всего двум обязательным требованиям:
· 128-битный размер блока шифруемых данных,
· не менее трех поддерживаемых алгоритмом размеров ключей шифрования: 128, 192 и 256 бит.
Кроме того, NIST предъявил большое число требований, носивших рекомендательный характер.
Именно по соответствию этим требованиям, фактически, и был выбран алгоритм-победитель конкурса.
1. Алгоритм должен быть стойким против криптоаналитических атак, известных на время проведения конкурса.
2. Структура алгоритма должна быть ясной, простой и обоснованной.
Прежде всего, такая структура облегчила бы анализ алгоритма в рамках конкурса.
Кроме того, ясность и простота структуры давала бы некоторую гарантию отсутствия в алгоритме специально внедренных авторами «закладок», т.е. некоторых недокументированных особенностей алгоритма, которые могли бы быть использованы авторами для его вскрытия.
3. Должны отсутствовать слабые и эквивалентные ключи (т.е. ключи, являющиеся различными, но приводящие к одному и тому же результату шифрования).
4. Скорость шифрования данных должна быть высокой на всех потенциальных аппаратных платформах – от 8-битных до 64-битных.
5. Структура алгоритма должна позволять распараллеливание операций в многопроцессорных системах и аппаратных реализациях.
6. Алгоритм должен предъявлять минимальные требования к оперативной и энергонезависимой памяти.
7. Не должно быть ограничений для использования алгоритма; в частности, алгоритм не должен ограничивать свое использование в различных стандартных режимах работы в качестве основы для построения хэш-функций, генераторов псевдослучайных последовательностей и т.д.
Источник: www.cio-world.ru