Файл: Общая структура алгоритма Rijndael (aes).docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 59

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
. Схематически изображено на рисунке 2.


Рисунок 2 - Преобразование InvSubBytes
Преобразования SubBytes и InvSubBytes применяются независимо для каждого байта текущего блока.
2.6 Таблицы подстановки S-Box и InvS-Box
Преобразования SubBytes и InvSubBytes могут быть представлены в виде таблиц подстановки S-Box и InvS-Box. Если на входе имеется байт B [7-0], а x и y - его старшая и младшая часть (x [3-0] = B [7-4], y [3-0] = B [3-0]), то на выходе байт получается кодированным в две шестнадцатиричные цифры. Например, применение таблицы подстановки S-Box для числа 85 (x=8; y=5 в шестнадцатиричном виде) дает на выходе шестнадцатиричное 97. А применение таблицы InvS-Box для 97 дает 85. Таблицы подстановки S-Box и InvS-Box отображены в таблицах 1 и 2 соответственно.
Таблица 1 - Таблица подстановки S-Box

X, Y

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

63

7C

77

7B

F2

6B

6F

C5

30

01

67

2B

FE

D7

AB

76

1

CA

82

C9

7D

FA

59

47

F0

AD

D4

A2

AF

9C

A4

72

C0

2

B7

FD

93

26

36

3F

F7

CC

34

A5

E5

F1

71

D8

31

15

3

04

C7

23

C3

18

96

05

9A

07

12

80

E2

EB

27

B2

75

4

09

83

2C

1A

1B

6E

5A

A0

52

3B

D6

B3

29

E3

2F

84

5

53

D1

00

ED

20

FC

B1

5B

6A

CB

BE

39

4A

4C

58

CF

6

D0

EF

AA

FB

43

4D

33

85

45

F9

02

7F

50

3C

9F

A8

7

51

A3

40

8F

92

9D

38

F5

BC

B6

DA

21

10

FF

F3

D2

8

CD

0C

13

EC

5F

97

44

17

C4

A7

7E

3D

64

5D

19

73

9

60

81

4F

DC

22

2A

90

88

46

EE

B8

14

DE

5E

0B

DB

A

E0

32

3A

0A

49

06

24

5C

C2

D3

AC

62

91

95

E4

79

B

E7

C8

37

6D

8D

D5

4E

A9

6C

56

F4

EA

65

7A

AE

08

C

BA

78

25

2E

1C

A6

B4

C6

E8

DD

74

1F

4B

BD

8B

8A

D

70

3E

B5

66

48

03

F6

0E

61

35

57

B9

86

C1

1D

9E

E

E1

F8

98

11

69

D9

8E

94

9B

1E

87

E9

CE

55

28

DF

F

8C

A1

89

0D

BF

E6

42

68

41

99

2D

0F

B0

54

BB

16



Таблица 2 - Таблица подстановки InvS-Box

X, Y

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

52

09

6A

D5

30

36

A5

38

BF

40

A3

9E

81

F3

D7

FB

1

7C

E3

39

82

9B

2F

FF

87

34

8E

43

44

C4

DE

E9

CB

2

54

7B

94

32

A6

C2

23

3D

EE

4C

95

0B

42

FA

C3

4E

3

08

2E

A1

66

28

D9

24

B2

76

5B

A2

49

6D

8B

D1

25

4

72

F8

F6

64

86

68

98

16

D4

A4

5C

CC

5D

65

B6

92

5

6C

70

48

50

FD

ED

B9

DA

5E

15

46

57

A7

8D

9D

84

6

90

D8

AB

00

8C

BC

D3

0A

F7

E4

58

05

B8

B3

45

06

7

D0

2C

1E

8F

CA

3F

0F

02

C1

AF

BD

03

01

13

8A

6B

8

3A

91

11

41

4F

67

DC

EA

97

F2

CF

CE

F0

B4

E6

73

9

96

AC

74

22

E7

AD

35

85

E2

F9

37

E8

1C

75

DF

6E

A

47

F1

1A

71

1D

29

C5

89

6F

B7

62

0E

AA

18

BE

1B

B

FC

56

3E

4B

C6

D2

79

20

9A

DB

C0

FE

78

CD

5A

F4

C

1F

DD

A8

33

88

07

C7

31

B1

12

10

59

27

80

EC

5F

D

60

51

7F

A9

19

B5

4A

0D

2D

E5

7A

9F

93

C9

9C

EF

E

A0

E0

3B

4D

AE

2A

F5

B0

C8

EB

BB

3C

83

53

99

61

F

17

2B

04

7E

BA

77

D6

26

E1

69

14

63

55

21

0C

7D



2.7 Преобразование ShiftRows и InvShiftRows
ShiftRows является побайтовой перестановкой. Пример работы отображен в таблице 3.
Таблица 3 - Преобразование ShiftRows

a00

a01

a02

a03



a00

a01

a02

a03

a10

a11

a12

a13




a11

a12

a13

a10

a20

a21

a22

a23




a22

a23

a20

a21

a30

a31

a32

a33




a33

a30

a31

a32


Название ShiftRows обозначает сдвиг строк в двумерном массиве на различные смещения и происходит от представления “текущего” блока в виде матрицы 4х4 байта. Первая строка массива остается без изменений, вторая циклично сдвигается влево на одну позицию (один байт), третья циклично сдвигается влево на две позиции, четвертая циклично сдвигается влево на три позиции.является обратной функцией по отношению к ShiftRows. Пример работы отображен в таблице 4.
Таблица 4 - Преобразование InvShiftRows

a00

a01

a02

a03



a00

a01

a02

a03

a11

a12

a13

a10




a10

a11

a12

a13

a22

a23

a20

a21




a20

a21

a22

a23

a33

a30

a31

a32




a30

a31

a32

a33



2.8 Преобразование MixColumns и InvMixColumns

является 128-битным преобразованием, работающим со столбцами матрицы 4х4 байта, имеющейся на входе.

Преобразование воспринимает каждый столбец матрицы как полином третьей степени с коэффициентами на поле AES-GF256. Над каждым столбцом матрицы “текущего” блока производится умножение в
по модулю на фиксированный многочлен:
,
где {--} обозначает элемент поля AES-GF256.

InvMixColumns является 128-битным преобразованием, работающим со столбцами матрицы 4х4 байта, поданной на вход.

Преобразование воспринимает каждый столбец матрицы как полином третьей степени с коэффициентами на поле AES-GF256. Над каждым столбцом матрицы “текущего” блока производится умножение в по модулю на фиксированный многочлен:
.
2.9 Преобразование SubWord

является функцией, используемой в процедуре Key Expansion, которая берет на входе 4-х байтное слово и, применяя S-box к каждому из четырёх байтов, выдаёт выходное слово, а конкретно:
SubWord (X) = [S-Box(X[31-24]), S-Box(X[23-16]), S-Box(X[15-8]), S-Box(X[7-0])]
2.10 Преобразование RotWord

- это функция, использующаяся в процедуре Key Expansion, которая берет 4-х байтное слово и производит над ним циклическую перестановку, например, используется в качестве входного слова [a0,a1,a2,a3], а возвращается слово [a1,a2,a3,a0].
2.11 Round Constant (RCON)
Процедура расширения ключа использует 10 констант, называющихся Константами Раунда (в дальнейшем именуемых RCON). Константы определяются как , операции производятся над полем AES-GF256.

Каждое значение RCON представляется в виде байта. Все десять констант в шестнадцатиричном виде представляются следующим образом:
RCON [1] = 01, RCON [2] = 02, RCON [3] = 04, RCON [4] = 08, RCON [5] = 10,[6] = 20, RCON [7] = 40, RCON [8] = 80, RCON [9] = 1B, RCON [10] = 36.
2.12 Расширение ключа (Key Expansion)
Стандарт AES использует ключи длиной 128, 192 или 256 бит. Ключи расширяются соответственно в 10, 12 или 14 ключей раундов, с помощюю алгоритма расширения ключа. Каждый ключ раунда имеет длину 128 бит. Расширение ключа зависит только от ключа шифра и не зависит от шифруемых данных, следовательно, расширение ключа может производиться независимо от фазы шифрованиф/дешифрования. В основе алгоритма расширения ключа лежит набор преобразований SubWord(RotWord(temp)) и SubWord(temp) с использованием констант RCON.