Служба криптографии, Шифрование, Rijndael aes

Пользователям

Вебмастерам

Безминималки

Автовыплота

Карта сайта

 

Главная страница

Меню :

Главная страница +

Криптография -

Rijndael

ГОСТ №28147-89

Akelare

Anubis

Mars

RC6

Blowfish

Skipjack

Square

Статьи +

Документальные фильмы +

Экстракт здоровья +

 

Rijndael. [1] [2] [3]

      Структура алгоритма.
      Блок данных (открытый текст) представляется в виде двухмерного массива данных размером 4*4 байта.

Таблица1.

1 байт

2 байта

3 байт

4 байт

5 байт

6 байт

7 байт

8 байт

9 байт

10 байт

11 байт

12 байт

13 байт

14 байт

15 байт

16 байт

Все операции производятся над отдельными байтами массива, а также над независимыми столбцами и строками.

Пример операции на отдельными байтами массива: с помощью таблицы замен мы изменяем 1 байт с числовым кодом "37" на "234".

Пример операции над независимыми столбцами: производим перестановку местами 1 и 2 столбца.

Таблица2.

2 байт

1 байта

3 байт

4 байт

6 байт

5 байт

7 байт

8 байт

10 байт

9 байт

11 байт

12 байт

14 байт

13 байт

15 байт

16 байт

      Раунд алгоритма.

Раунд алгоритма состоит из 4 пунктов:

Рис.1. Раунд алгоритма.

1. Операция SubBytes.

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

Вспомним, что 1 байт = 8 битам. Представим байт как массив 4*4 бита, у 4 бит числовое значение 2 в четвертой степени = 16, т.е. таблица 16*16.

Таблица3.

 

 

4 бита

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

 

 

 

 

 

4

б

и

т

а

 

 

 

 

 

1

78

48

21

...

23

11

67

89

55

34

99

87

65

43

33

44

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

фиксированная таблица от 0 до 255

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример: берем 1 байт входного массива равный "0" и заменяем его по таблице 3 на значение "78".

              берем 2 байт входного массива равный "11" и заменяем его по таблице 3 на значение "99".

             .......

              берем 8 байт входного массива равный "8" и заменяем его по таблице 3 на значение "89".

2. Операция ShiftRows.

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

 

00 байт

01 байта

02 байт

03 байт

10 байт

11 байт

12 байт

13 байт

20 байт

21 байт

22 байт

23 байт

30 байт

31 байт

32 байт

33 байт

 

00 байт

01 байта

02 байт

03 байт

11 байт

12 байт

13 байт

10 байт

22 байт

23 байт

20 байт

21 байт

33 байт

30 байт

31 байт

32 байт

3. Операция MixColumns.

В этой операции происходит умножение каждого столбца массива данных, который рассматривается как полином в конечном поле GF(28), на фиксированный полином a(x): a(x) = 3x3 + x2 + x + 2.
Умножение выполняется по модулю x4 + 1.

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

              * a(x)              

Y00

Y01

Y02

Y03

Y10

Y11

Y12

Y13

Y20

Y21

Y22

Y23

Y30

Y31

Y32

Y33

 

4.Операция AddRoundKey.

Выполняет наложение на массив данных материала ключа. А именно, на i-й столбец массива данных (i = 0…3) побитовой логической операцией «исключающее или» (XOR) накладывается определенное слово расширенного ключа W4r+i, где r – номер текущего раунда алгоритма, начиная с 1.

 

Х00

Х01

Х02

Х03

Х10

Х11

Х12

Х13

Х20

Х21

Х22

Х23

Х30

Х31

Х32

Х33

   XOR    

W4r

W4r+1

W4r+2

W4r+3

   =   

Y00

Y01

Y02

Y03

Y10

Y11

Y12

Y13

Y20

Y21

Y22

Y23

Y30

Y31

Y32

Y33

      Количество раундов алгоритма R зависит от размера ключа следующим образом:

Размер ключа, бит

R

128

10

192

12

256

14

      Перед первым раундом алгоритма выполняется предварительное наложение материала ключа с помощью операции AddRoundKey, которая выполняет наложение на открытый текст первых четырех слов расширенного ключа W0…W3.


      Последний же раунд отличается от предыдущих тем, что в нем не выполняется операция MixColumns.

 

О Сущности, Разуме и многом другом... – сайт академика Николая Левашова. Этот сайт содержит Знания. Уникальные Знания, которые, до сих пор, не были доступны всем желающим. Это Знания о загадках Жизни, о строении Вселенной, о Сущности, Разуме и многом другом...    ->

Яндекс.Метрика