Симметричные алгоритмы шифрования
SR (ShiftRow) — сдвиг строк массива (рис. 6.6). При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4×4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта;

МС (MixColumn) — операция над независимыми столбцами массива (рис. 6.7), когда каждый столбец по определенному правилу умножается на фиксированную матрицу с(х);

АК (AddRoundKey) — добавление ключа. Каждый бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который в свою очередь определенным образом вычисляется из ключа шифрования (рис. 6.8).

Эти преобразования воздействуют на массив State, который адресуется с помощью указателя ‘state’. Преобразование Add-RoundKey использует дополнительный указатель для адресации ключа раунда Round Key.
Преобразование BS (ByteSub) является нелинейной байтовой подстановкой, которая воздействует независимо на каждый байт массива State, используя таблицу замен (подстановок) S-box.
В каждом раунде (с некоторыми исключениями) над шифруемыми данными поочередно выполняются перечисленные преобразования (рис. 6.9). Исключения касаются первого и последнего раундов: перед первым раундом дополнительно выполняется операция АК, а в последнем раунде отсутствует МС.

Рис. 6.9. Раунд алгоритма AES
В результате последовательность операций при зашифровы-вании выглядит так:
АК, {BS, SR, МС, АК} (повторяется R- 1 раз), BS, SR, АК.
Количество раундов шифрования R в алгоритме AES переменное (10, 12 или 14 раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).
Расшифровывание выполняется с помощью следующих обратных операций. Выполняется обращение таблицы и табличная замена на инверсной таблице (относительно применяемой при зашифровывании). Обратная операция к SR— это циклический сдвиг строк вправо, а не влево. Обратная операция для МС — умножение по тем же правилам на другую матрицу d(x), удовлетворяющую условию с(х) ■ d(x) — 1. Добавление ключа АК является обратным самому себе, поскольку в нем используется только операция XOR. Эти обратные операции применяются при расшифровании в последовательности, обратной той, что использовалась при зашифровании.
Эта статья была опубликована Вторник, 11 августа, 2009 at 21:05 в рубрике Криптографические алгоритмы. Вы можете следить за ответами через RSS 2.0 feed.
А где можно найти программу,которая реализовует этот алгоритм?