Дипломная работа: Криптографическая защита информации 2

В соответствии с использованными архитектурными принципами в ходе криптографических преобразований исходный и зашифрованный блоки данных, а также все промежуточные результаты процесса шифрования интерпретируются как матрицы байтов размером 4´n, откуда получаем n = N/4, nÎ{4, 6, 8}. Матрицы заполняются байтами входного блока (открытых данных при шифровании и шифрованных данных при дешифрации соответственно) по столбцам сверху вниз и слева направо, и в точно таком же порядке извлекаются байты из матрицы-результата:

Схема преобразования данных при шифровании:

Схема алгоритма шифрования:

На рисунках использованы следующие обозначения:

T, T' - открытый и зашифрованный блоки данных соответственно;

ki - i-тый ключевой элемент;

F, F' - регулярное нелинейное преобразование и преобразование последнего раунда соответственно;

Xi - промежуточное состояние шифруемого блока после прибавления i-того ключевого элемента.

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

T' = EK (T) = kR +1 F'(kR F(kR -1 ... F(k2 F(k1 T))...)).

Число R раундов шифрования переменное и зависит от размера блока данных и ключа. Прибавление ключевых элементов, которым начинается и заканчивается процесс шифрования, а также некоторые другие операции раундового преобразования выполняется побайтно в конечном поле Галуа GF(28 ), полевой операцией сложения в нем является побитовое суммирование по модулю 2. Соответственно, каждый ключевой элемент является байтовой матрицей того же самого размера, что и блок данных. За один раунд шифрования преобразуется полный блок данных, а не его часть, как в сетях Файстеля. На последнем раунде функция нелинейного преобразования отличается от аналогичной функции, используемой в остальных раундах - это сделано для обеспечения алгоритмической эквивалентности прямого и обратного преобразований шифрования.

Процесс дешифрации блока данных алгоритмически идентичен процессу его шифрования и, следовательно, рисунки 1 и 2 также справедливы и для него, если через T обозначить блок зашифрованных данных, а через T' - открытых. Однако различия между этими двумя процедурами в архитектуре "Квадрат" несколько более существенны, чем в сетях Файстеля - они различаются не только порядком использования ключевых элементов в раундах шифрования, но и самими этими элементами, и некоторыми другими константами, используемыми в алгоритме.

Нелинейное преобразование F матрицы данных состоит из трех шагов: замены байтов матрицы на новые значения (S[]), циклического сдвига строк матрицы влево (R¬ ), умножения матрицы данных слева на постоянную матрицу-циркулянт M:

X' = F(X) = M´ R¬ (S(X)).

Схема преобразования блока данных при нелинейном преобразовании:

Схема алгоритма нелинейного преобразования:

Все входные (X), выходные (X') и промежуточные (Y, Z) значения преобразования являются матрицами байтов одинакового размера 4´n. Функция преобразования последнего раунда F' отличается от регулярной функции преобразования F отсутствием шага умножения матрицы данных слева на постоянную матрицу.

Вся нелинейность преобразования сосредоточена в его первом шаге - замене, второй и третий шаги являются линейными. Первый шаг служит для перемешивания информации внутри байтов, второй обеспечивает "экспорт" изменений в другие столбцы, третий осуществляет диффузию изменений в одном элементе матрицы на весь соответствующий столбец. Таким образом, за два раунда достигается диффузия изменений в одном единственном бите на весь блок данных. Ниже каждый из указанных шагов рассмотрен подробно, при этом некоторые преобразования байтов определены в терминах операций в конечном поле GF(28 ), порожденном неприводимым полиномом m(x) над полем GF(2): m(x) = x8 +x4 +x3 +x+1. Операция сложения в этом поле является ни чем иным, как побитовым суммированием по модулю 2, умножение в соответствие с определением поля выполняется как обычное умножение полиномов над GF(2) по модулю полинома m(x). При манипулировании с байтами данных как с элементами поля GF(28 ) каждый бит соответствует слагаемому вида xi в соответствии со старшинством бита в байте. Можно сказать, что если байт с целочисленным значением b представлен в виде полинома B(x), то справедливо b = B(2).

Побайтовая замена

В ходе побайтовой замены каждый байт матрицы данных заменяется на новое значение того же размера, индексируя общий для всех байтов вектор замен S 8-в-8 бит:

yij = S[xij ], 1£i£4, 1£j£n,

где n - число столбцов матрицы данных - 4,6 или 8. Единственный узел замен в шифре Rijndael конструируется с помощью следующего алгебраического соотношения:

S[y] = (x4 +x3 +x2 +x+1) + y-1 (x7 +x6 +x5 +x4 +1) mod (x8 +1).

При этом обращение ненулевых байтов осуществляется в описанном выше конечном поле GF(28 ), для нулевого байта полагают 0-1 = 0. Таким образом, байтовая замена определяется как обращение элемента-байта в конечном поле GF(28 ), доопределенное для нулевого элемента поля, с последующим аффинным преобразованием результата. Коэффициенты этого преобразования выбраны таким образом, чтоб у полученного узла замен отсутствовали точки неподвижности (S[y] = y), и "антинеподвижности" (S[y] = ~y). Тильдой (знаком "~") обозначена операция побитового дополнения своего аргумента.

Естественно, указанная выше формула для построения узла замен не предназначена для использования непосредственно во время шифрования - гораздо эффективнее использовать уже готовый узел замен:

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
1x ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
2x b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
3x 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
4x 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
5x 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
6x d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
7x 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
8x cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
9x 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
Ax e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
Bx e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
Cx ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
Dx 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
Ex e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
Fx 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

К-во Просмотров: 324
Бесплатно скачать Дипломная работа: Криптографическая защита информации 2