Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Дешифрация



Дешифрация в 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...