S-boxes

• Входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки чисел от 0 до 15, расположенных в некотором порядке.

• Тогда порядковый номер числа будет являться входным значением S-box, а само число - выходным значением S-box

1-ый S-box

4 10 9 2 13 8 0 14

6 11 1 12 7 15 5 3

2-ой S-box

14 11 4 12 6 13 15 10

2 3 8 1 0 7 5 9

3-ий S-box

5 8 1 13 10 3 4 2

14 15 12 7 6 0 9 11

4-ый S-box

7 13 10 1 0 8 9 15

14 4 6 12 11 2 5 3

5-ый S-box

6 12 7 1 5 15 13 8

4 10 9 14 0 3 1 12

6-ой S-box

4 11 10 0 7 2 1 13

3 6 8 5 9 12 15 14

7-ой S-box

13 11 4 1 3 15 5 9

0 10 14 7 6 8 2 12

8-ой S-box

1 15 13 0 5 7 10 4

9 2 3 14 6 11 8 12

В ГОСТ 28147 требуется 8 раундов прежде, чем изменение одного входного бита повлияет на каждый бит результата;

в ГОСТ 28147 - 32 раунда, что делает его более стойким к дифференциальному и линейному криптоанализу

 


  1. Алгоритм симметричного шифрования Rijndael.

Rijnael это блочный шифр с различной длиной блока шифрования и длиной ключа. Длины блока и ключа шифрования могут быть 128, 192 и 256 бит. Шифрование блока осуществляется за несколько раундов, так, например, при длине блока 128 бит и длине ключа 128 бит алгоритм включает 10 раундов.

 

1.Замена байтов представляет собой нелинейную замену байтов, действующую на каждый байт состояния независимо. Таблица замены является обратимой и строится на основе произведения двух преобразований:

1) вычисляется “обратный байт” (обратимость понимается над полем GF(256), а 0 элемент отображается в себя).

2) К полученному байту применяется афинное преобразование:

 

 
 

 


 
 
 
 

 

 

Для выполнения обратной замены байтов применяется обратная таблица замены, которая получается следующим образом: сначала производится обратное афинное преобразование, а затем вычисляется обратный элемент над GF(256).

2.Под сдвигом строк понимается следующая операция:

Строки состояния циклически сдвигаются на различные смещения. Нулевая строка не сдвигается, первая сдвигается на 1 байт, вторая на 2 байта и третья на три байта (при других значениях длины блока значения смещений меняются).

 

 

 

Обратной операцией является циклический сдвиг в другую сторону.

 

3.Смешивание столбцов происходит следующим образом:

столбец состояния рассматривается как полином над GF(256) и умножается по модулю на фиксированный полином , где . Это преобразование обратимо, поскольку полином взаимно прост с .

Это преобразование можно записать в матричном виде: ,

 

Рисунок иллюстрирует действие данного преобразования:

 

 
 
 
 

 

Для выполнения обратного преобразования необходимо произвести умножение на полином .