![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Дешифрация в 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 представлен в следующей таблице:
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | 6a | d5 | a5 | bf | a3 | 9e | f3 | d7 | fb | |||||||
1x | 7c | e3 | 9b | 2f | ff | 8e | c4 | de | e9 | cb | ||||||
2x | 7b | a6 | c2 | 3d | ee | 4c | 0b | fa | c3 | 4e | ||||||
3x | 2e | a1 | d9 | b2 | 5b | a2 | 6d | 8b | d1 | |||||||
4x | f8 | f6 | d4 | a4 | 5c | cc | 5d | b6 | ||||||||
5x | 6c | fd | ed | b9 | da | 5e | a7 | 8d | 9d | |||||||
6x | d8 | ab | 8c | bc | d3 | 0a | f7 | e4 | b8 | b3 | ||||||
7x | d0 | 2c | 1e | 8f | ca | 3f | 0f | c1 | af | bd | 8a | 6b | ||||
8x | 3a | 4f | dc | ea | f2 | cf | ce | f0 | b4 | e6 | ||||||
9x | ac | e7 | ad | e2 | f9 | e8 | 1c | df | 6e | |||||||
Ax | f1 | 1a | 1d | c5 | 6f | b7 | 0e | aa | be | 1b | ||||||
Bx | fc | 3e | 4b | c6 | d2 | 9a | db | c0 | fe | cd | 5a | f4 | ||||
Cx | 1f | dd | a8 | c7 | b1 | ec | 5f | |||||||||
Dx | 7f | a9 | b5 | 4a | 0d | 2d | e5 | 7a | 9f | c9 | 9c | ef | ||||
Ex | a0 | e0 | 3b | 4d | ae | 2a | f5 | b0 | c8 | eb | bb | 3c | ||||
Fx | 2b | 7e | ba | d6 | e1 | 0c | 7d |
3. На шаге построчного вращения матрицы данных осуществляется циклический сдвиг строк на то же самое количество элементов, что и при шифровании, но в обратную сторону - вправо. Либо, в силу свойств операции циклического сдвига, можно осуществить вращение строк матрицы в ту же сторону, что и при шифровании, т.е. влево, но на другое количество элементов, вычисляемое по следующей формуле:
Сi' = n - Ci, 2£i£4.
Константы циклического сдвига влево строк матрицы в процедуре дешифрования в зависимости от числа столбцов матрицы данных приведены в следующей ниже таблице:
n | |||
C2’ | |||
C3’ | |||
C4’ |
На шаге умножения слева на постоянную матрицу используется матрица M -1, обратная используемой при шифровании матрице M:
Следует отметить, что умножение в конечном поле GF(28) на элементы матрицы M -1 с точки зрения вычислительных затрат является более трудоемкой операцией, чем умножение на элементы матрицы M. Кроме того, в обратной матрице присутствуют четыре различных элемента, тогда как в исходной - только три, что позволяло "сэкономить" одно умножение из четырех. Все сказанное приводит к тому, что при непосредственной реализации умножения в поле GF(28) модули дешифрования получаются заметно менее быстродействующими, чем модули шифрования. Однако, эта особенность не является настолько существенной, как может показаться на первый взгляд. Во-первых, в большинстве практических режимов использования шифра применяется только прямое преобразование (шифрование) - подобная ситуация имеет место при шифровании с использованием потоковых режимов (в том числе и при дешифрации), при выработке имитовставки (кода аутентификации), при выработке хэш-функции и при выработке массивов псевдослучайных данных. Во вторых, если умножение на константу в поле GF(28) реализовать как замену, различия в трудоемкости нивелируются.
Дата публикования: 2015-01-10; Прочитано: 247 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!