К 2000 году стало ясно что алгоритм Des должен быть заменен в качестве стандартного алгоритма так как длина ключа Des алгоритма позволяла (при тогдашнем состоянии развития вычислительной технике) проводить на этот алгоритм атаки методом грубой силы за обозримый промежуток времени. Поэтому в США был объявлен открытый конкурс на разработку нового стандартного алгоритма. Этот конкурс и выиграл алгоритм AES.
Этот алгоритм разработали два специалиста криптографии из Бельгии. J Daemen V Rijmen
Этот алгоритм является не традиционный блочным шифром так как не использует сеть Фейстеля для криптопреобразований. Алгоритм представляет из себя блок кодируемых данных в виде двумерного массива размером 4х4 байта 4х6 4х8.
Далее на соответствующих этапах производиться преобразование либо над столбцами либо над строками либо над отдельными байтами. Алгоритм состоит из определенного количества раундов от 10 до 14 в которых выполняется следующее преобразования Sub Bites, Shift Rows, Mix Columns, Add Round Key. Эти операции воздействуют на массив который обозначается как Stat и адресуется при помощи указателя State.
Sub Bites – нелинейная байтовая подстановка. Которая воздействует на каждый байт массива Stat используя таблицу подстановок которая носит название S-box
Таблица S-box является обратимой.
Shift Rows – байты в трех последних строках массива State циклически сдвигается на различное число байтов при этом первая строка не сдвигается.
Mix Columns – математическое преобразование которое перемешивает данные в нутрии каждого столбца массива State. Преобразование воздействует поочередно на столбцы массива обращаясь с каждым из них как с четырехчленным полиномом.
Add Round Key – при этом преобразовании раундовый ключ прибавляется к массиву State с помощью операции XOR. Каждый ключ раунда состоит из некоторого количества слов взятых из ключевого пространства алгоритма. Перечисленное выше преобразование происходит в каждом раунде, кроме последнего. В последнем отсутствует операция перемешивания столбцов. Что делает алгоритм симметричным.
Все преобразования в шифре имеют строгое математическое обоснование а структура и последовательность операций позволяет эффективно выполнять данный алгоритм как на 8 так и на 32 64 разрядных процессорах. В структуре алгоритма имеется возможность выполнения некоторых операций параллельно, что позволяет увеличить скорость выполнения алгоритма на многопроцессорных машинах в несколько раз.