Современные системы шифрования (Лабораторная работа № 1), страница 7

Байты. Основной единицей обработки в алгоритме AES является байт, т.е. последовательность из восьми битов, рассматриваемая как неделимое целое. Вход, выход и ключ шифрования обрабатываются как массив байтов, которые формируются разделением последовательностей на группы по восемь смежных битов. Для входа, выхода и ключа шифрования, принимается обозначение , а байты представляются в двух формах,  или , где  принимает следующие значения:

Длина ключа = 128 битов, ;                              Длина блока = 128 битов, .

Длина ключа = 192 бита, ;

Длина ключа = 256 бит, .

Все значения байтов алгоритма AES представляются как конкатенация индивидуальных значений битов (0 или 1) между скобками в порядке . Эти байты интерпретируются как элементы конечного поля:

.

Например,  идентифицируется элементом конечного поля .

Также удобно определять значения байтов посредством шестнадцатиричной нотации.

Массивы битов. Массивы битов могут быть представлены в последовательной форме: . Байты и биты, упорядоченые внутри байтов получаются из 128-битовой последовательности  следующим образом

;

;

...

.

Шаблон может быть расширен для длинных последовательностей (например, для 192- и          256-битовых ключей), как

.

Состояние. Внутренне, операции алгоритма AES выполняются на двумерных массивах байтов, называемых состояниями. Состояния являются четырьмя рядами байтов, каждый из которых содержит  байтов, где  является длиной блока, деленной на 32. Для состояния такой массив обозначается символом ; каждый индивидуальный байт имеет два индекса, где  – номер строки () , а  – номер столбца (). В этом случае байт может индексироваться как  или . Для этого стандарта , т.е. .

Преобразования в алгоритме можно представить преобразованием элементов массива.

in0

in4

in8

in12

s0,0

s0,1

s0,2

s0,3

out0

out4

out8

out12

in1

in5

in9

in13

s1,0

s1,1

s1,2

s1,3

out1

out5

out9

out13

in2

in6

in10

in14

s2,0

s2,1

s2,2

s2,3

out2

out6

out10

out14

in3

in7

in11

in15

s3,0

s3,1

s3,2

s3,3

out3

out7

out11

out15

Рисунок –  Массив состояний входа и выхода

В начале шифрования и инверсного шифрования, входной массив  копируется в массив состояний согласно схеме

, ,                                                      (1)

а в конце шифрования и инверсного шифрования состояние копируется в выходной массив  согласно схеме

, , .                                                     (2)

Состояние как массив столбцов. Четыре байта в каждом столбце массива состояний формирует        32-битовые слова, где номер строки  индексирует четыре байта каждого слова. Состояние таким образом может интерпретироваться как одномерный массив 32-битовых слов, , где номер столбца  является индексом массива. Таким образом, состояние может рассматриваться как массив из четырех слов

.                                                                                                         (3)

Алгоритмы AES. Для алгоритма AES длина входного и выходного блоков, а также состояния составляет 128 битов. Это представляется  как , что означает количество 32-битовых слов в состоянии.

Для алгоритма AES длина ключа шифрования  равняется 128, 192 или 256 битам. Длина ключа представляется как  = 4, 6 или 8 32-битовых слов (число столбцов).