Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Защ_инф_3гл.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
299.52 Кб
Скачать

3.1.3. Дешифрование

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

1. Ключевые элементы используются в порядке, обратном тому, в котором они используются при шифровании. Кроме того, все ключевые элементы, кроме первого и последнего, должны быть умножены слева на матрицу, обратную матрице M. Таким образом, если при шифровании используется следующая последовательность ключевых элементов

Kr0, Kr1, Kr2, ... , Krr-1, Krr,

то при дешифровании должна быть использована следующая последовательность элементов:

Krr, M -1 Krr-1, ... , M -1 Krr-2, M -1 Krr-1, Kr0.

2. На шаге побайтовой замены используется узел замен S-1 обратный тому, что применяется в процедуре шифрования S. Таблица узла замен S-1 приведена в приложении 5, таблица 2. Это означает, что каково бы ни было байтовое значение b, всегда справедливо следующее соотношение:

S -1[S[b]] = b.

3. На шаге построчного вращения матрицы данных осуществляется циклический сдвиг строк на то же самое количество элементов, что и при шифровании, но в обратную сторону - вправо. Либо, в силу свойств операции циклического сдвига, можно осуществить вращение строк матрицы в ту же сторону, что и при шифровании, т.е. влево, но на другое количество элементов, вычисляемое по следующей формуле:

Сi' = n - Ci, i = 24.

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

в следующей ниже таблице:

Nb

4

6

8

С2'

3

5

7

С3'

2

4

5

С4'

1

3

4

4. На шаге умножения слева на постоянную матрицу используется матрица M -1, обратная используемой при шифровании матрице M:

М -1 =

0E

0B

0D

09

09

0E

0B

0D

0D

09

0E

0B

0B

0D

09

0E

Для выработки ключевой последовательности используется такая же схема, что и при шифровании. При дешифровании необходимо выработать ту же самую последовательность элементов, переставить их в обратном порядке, и все элементы, кроме крайних, умножить слева на матрицу M -1, как это указано в соответствующем разделе.

Процесс дешифрования по стандарту AES показан в приложении 6.

Ключевая последовательность K длиной 128 (192, 256) бит данных поступает на блок расширения ключа БРК, где формируется ключевая последовательность из 4-х байтовых слов, из которой в дальнейшем берутся раундовые ключи. Исходный массив зашифрованного блока данных С длиной 128 (192, 256) бит, поступает на схему сложения по модулю 2, где производится сложение по модулю 2 с раундовым ключом блока Krr . Над данными в блоке S -1 осуществляется преобразование нелинейной замены байт, результат которого поступает на блок циклического сдвига вправо, где осуществляется построчное вращение матрицы данных (сдвиг строк вправо). Результат данной операции заносится в блок памяти БП. С выхода блока БП массив данных складывается по модулю 2 в соответствующем блоке с последующим раундовым ключом Krr-1 блока БРК. В блоке M -1 производится умножение массива данных предшествующего блока на постоянную матрицу М-1. После преобразований в блоках S -1 и циклического сдвига вправо результат заносится опять в БП. Данное преобразование повторяется (r-1) раз, где r – число раундов. Результат дешифрования блока C формируется на входе схемы сложения по модулю 2, где производится сложение результата (r -1) – числа преобразований с последним раундовым ключом блока БРК. После схемы сложения по модулю 2 будет получен открытый текст М.