А.Винокуров. Серия "Энциклопедия блочных шифров".


Rijndael. Расшифрование.

На домашнюю страничку Список алгоритмов Основные параметры Основные параметры


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

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

k1, k2, k3, ... , kR, kR+1,

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

kR+1, M -1*kR, ... , M -1*k3, M -1*k2, k1.

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

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

Указанный узел замен S-1 представлен в следующей таблице, значения приведены в 16-ричном формате:

 x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x52096ad53036a538bf40a39e81f3d7fb
1x7ce339829b2fff87348e4344c4dee9cb
2x547b9432a6c2233dee4c950b42fac34e
3x082ea16628d924b2765ba2496d8bd125
4x72f8f66486689816d4a45ccc5d65b692
5x6c704850fdedb9da5e154657a78d9d84
6x90d8ab008cbcd30af7e45805b8b34506
7xd02c1e8fca3f0f02c1afbd0301138a6b
8x3a9111414f67dcea97f2cfcef0b4e673
9x96ac7422e7ad3585e2f937e81c75df6e
Ax47f11a711d29c5896fb7620eaa18be1b
Bxfc563e4bc6d279209adbc0fe78cd5af4
Cx1fdda8338807c731b11210592780ec5f
Dx60517fa919b54a0d2de57a9f93c99cef
Exa0e03b4dae2af5b0c8ebbb3c83539961
Fx172b047eba77d626e169146355210c7d

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

Сi' = n - Ci, 2 <= i <= 4.

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

n468
С2'357
С3'245
С4'134

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

[матрица] .

Следует отметить, что умножение в конечном поле GF(28) на элементы матрицы M -1 с точки зрения вычислительных затрат является более трудоемкой операцией, чем умножение на элементы матрицы M. Кроме того, в обратной матрице присутствуют четыре различных элемента, тогда как в исходной - только три, что позволяло "сэкономить" одно умножение из четырех. Все сказанное приводит к тому, что при непосредственной реализации умножения в поле GF(28) модули расшифрования получаются заметно менее быстродействующими, чем модули зашифрования. Однако, эта особенность не является настолько существенной, как может показаться на первый взгляд. Во-первых, в большинстве практических режимов использования шифра применяется только прямое преобразование (зашифрование) - подобная ситуация имеет место при шифровании с использованием потоковых режимов (в том числе и при расшифровании), при выработке имитовставки (кода аутентификации), при выработке хэш-функции и при выработке массивов псевдослучайных данных. Во вторых, если умножение на константу в поле GF(28) реализовать как замену, различия в трудоемкости нивелируются.

На домашнюю страничку Список алгоритмов Основные параметры Основные параметры


[Список алгоритмов] [Основные характеристики] [Общая схема] [Нелинейное преобразование] [Расшифрование] [Эквивалентность за- и расшифрования] [Выработка ключевых элементов]
 
[Начало осмотра] [Что нового] [Статьи] [Выпуски в "Байтах"] [Что скачать] [Криптоалгоритмы] [Глоссарий] [Ссылки] [Гостевая книга] [Форум] [Напиши мне]

Подготовлено 08.06.01. (c) 2001 Андрей Винокуров.