Инструменты пользователя

Инструменты сайта


examination:mszki:question39

Американский стандарт шифрования AES

Байт ― последовательность из 8 битов. В контексте данного алгоритма байт рассматривается как элемент поля Галуа. Операции над байтами производятся как надэлементами поля Галуа GF(28) (конечного поля), то есть байту {b7b6b5b4b3b2b1b0} соответствует многочленв поле GF(28).

Слово (word)― последовательность из 4 байтов.

Блок ― последовательность из 16 байтов, над которой оперирует алгоритм. Блок служит входным и выходным данными алгоритма. Байты в блоке нумеруются с нуля. Ключ― последовательность из 16, 24 или 32 байтов, используемая в качестве ключа шифрования. Байты в ключе нумеруются с нуля. Ключ, наряду с блоком, является входным данным алгоритма.

Форма (state)― двумерный массив байтов, состоящий из четырех строк. В алгоритме AES форма иcпользуется для представления блока.

Раунд― итерация цикла преобразований над формой. В зависимости от длины ключа раундов может быть от 10 до 14.

Ключ раунда (roundkey) ― ключ, применяемый в раунде. Вычисляется для каждого раунда. Таблица подстановок (S-box)― таблица, задающая биективное отображение байта в байт. Обратная таблица подстановок― таблица, задающая отображение, обратное задаваемому таблицей подстановок.

Nb ― количество слов (word) в блоке.

Nk― количество слов в ключе. Nk может принимать значения 4, 6, 8.

Nr― количество раундов. Параметр Nr зависит от значений Nk.

AES является упрощенной версией алгоритмаRijndael.Оригинальный алгоритм Rijndael отличается тем, что поддерживает более широкий набордлин блоков.

В алгоритме AES размер входного блока, выходного блока и матрицы состоянияравен 128-ми битам. Это достигается путём задания Nb=4, то есть матрица состоянияимеет 4 столбца.

В алгоритме AES длина ключа шифрования K равна 128, 192 или 256 бит. Длинаключа задаётся с помощью переменнойNkравной 4, 6 или 8(количество 32-х разрядныхслов в ключе шифрования).

Количество раундов алгоритма AES зависит от длины ключа. Количество раундовзадаётся переменнойNr, где Nr= 10 при Nk= 4, Nr= 12 при Nk= 6, Nr= 14 при Nk= 8.

В данном стандарте используются только те комбинации (длина ключа) -(размер блока) –(число раундов), которые представлены в таблице ниже.

Длина ключа (Nkслов) Размер блока (Nbслов) Число раундов (Nr)

AES-128 4 4 10

AES-192 6 4 12

AES-256 8 4 14

Для шифрования в алгоритме AES применяются следующие процедуры преобразо-вания данных:

1. ExpandKey — Вычислениераундных ключей для всех раундов.

2. SubBytes — Подстановка байтов с помощью таблицы подстановок;

3. ShiftRows — Циклический сдвиг строк в форме на различные величины;

4. MixColumns — Смешивание данных внутри каждого столбца формы;

5. AddRoundKey — Сложение ключа раунда с формой.

Порядок выполнения процедур 2 и 3 можно поменять местами в силу опеределенияэтих операций.

Процедуры 4 и 5 тоже можно выполнять в разном порядке, но при этом изменяется количество их вызовов, поскольку

MixColumns(AddRoundKey(A,B)) =AddRoundKey(MixColumns(A),MixColumns(B)).

Шифрование производится по алгоритму, приведенному ниже.

examination/mszki/question39.txt · Последние изменения: 2014/01/15 08:20 (внешнее изменение)