SM4. СТРУКТУРА АЛГОРИТМА. МЕТОДЫ АНАЛИЗА. - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

SM4. СТРУКТУРА АЛГОРИТМА. МЕТОДЫ АНАЛИЗА.

Картонис А.В. 1
1Южный Федеральный Университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

В январе 2006 года был рассекречен, созданный профессором Лю Шу-Ваном, алгоритм блочного шифрования SM4. Используется в Китае как национальный стандарт для беспроводных локальных сетей. Именно поэтому исследования, связанные с анализом SM4 актуальны и продолжаются до сих пор. С момента создания алгоритма, к нему было применено множество методов анализа, но приемлемый на практике результат для полного алгоритма так и не был получен. Исключение, пожалуй, составил только дифференциальный анализ, основанный на использовании атаки по ошибкам вычислений, но допущения, используемые в нем, проблематично реализовать вне рамок исследования. Поэтому вопрос о возможности применения тех или иных подходов к анализу SM4 остается открытым.

После выхода стандарта GM/T 0002-2012 SM4 Block Cipher Algorithm 21 марта 2012, года алгоритм был официально переименован в SM4

  1. Параметры исходных данных

Обозначим исходный блок, размер которого составляет 128 бит, как M. Исходный блок делится на четыре 32-битных элемента, для удобства называемых словами. M = (, , , ), или M = (i = 0, 1, 2, 3).

Размер ключа так же составляет 128 бит и он так же разделен на 4 слова. MK = (, , , ), или (i = 0, 1, 2, 3).

Раундовые ключи имеют вид:

(rk0, rk1, . . . , rk31), где каждое rki(i = 0, . . . , 31) является словом.

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

  1. Функция F

Далее, в виде сети Фейстеля, на рис. 1, представлен один раунд шифрования, по сути, являющийся функцией F:

       

RKi

 

T

 

       

Рис.1 – Схема одного раунда шифрования SM4

В этой функции используются только операции типа XOR, кругового сдвига и приложения S-Box. Выполняется 32 раунда для обработки одного блока. Каждый раунд обновляет четверть текущего состояния блока – одно слово(32 бита).

F(, , , , rk) = ⊕ T( ⊕ ⊕ ⊕ rk)

  1. Смешанная подстановка T

Эта подстановка не меняет длину входного блока(преобразует 32 бита в 32 бита). Является обратимой. Состоит из нелинейной подстановки, τ, и линейной подстановки L. Таким образом:

T(.) = L(τ (.)).

  1. Нелинейная подстановка τ.

Обрабатывает 4 S-box одновременно, исходя из длины слова и длины входного блока для S-box – 8 бит. В таком случае, если входное слово обозначить как A = (, , , ), а выходное как B = (, , , ), то:

(, , , ) = τ (A) = (Sbox(), Sbox(), Sbox(), Sbox()).

Значения S-box указаны в Таблице 1. Все числа в S-box представлены в шестнадцатеричной записи[4]:

Таблица 1 – S-box

_

0

1

2

3

4

5

6

7

8

9

a

 

С

d

e

F

0

d6

90

e9

fe

Cc

e1

3d

b7

16

b6

14

c2

28

fb

2c

05

1

2b

67

9a

76

2a

be

04

c3

aa

44

13

26

49

86

06

99

2

9c

42

50

f4

91

ef

98

7a

33

54

0b

43

ed

cf

ac

62

3

e4

b3

1c

a9

c9

08

e8

95

80

df

94

fa

75

8f

3f

a6

4

47

07

a7

fc

f3

73

17

ba

83

59

3c

19

e6

85

4f

a8

5

68

6b

81

b2

71

64

da

8b

f8

eb

0f

4b

70

56

9d

35

6

1e

24

0e

5e

63

58

d1

a2

25

22

7c

3b

01

21

78

87

7

d4

00

46

57

9f

d3

27

52

4c

36

02

e7

a0

c4

c8

9e

8

ea

bf

8a

d2

40

c7

38

b5

a3

f7

f2

ce

f9

61

15

a1

9

e0

ae

5d

a4

9b

34

1a

55

ad

93

32

30

f5

8c

b1

e3

a

1d

f6

e2

2e

82

66

ca

60

c0

29

23

ab

0d

53

4e

6f

 

d5

db

37

45

De

fd

8e

2f

03

ff

6a

72

6d

6c

5b

51

c

8d

1b

af

92

 

dd

bc

7f

11

d9

5c

41

1f

10

5a

d8

d

0a

c1

31

88

a5

cd

7b

bd

2d

74

d0

12

b8

e5

b4

b0

e

89

69

97

4a

0c

96

77

7e

65

b9

f1

09

c5

6e

c6

84

f

18

f0

7d

ec

3a

dc

4d

20

79

ee

5f

3e

d7

cb

39

48

Например, если на входе Sbox принимает значение «de», тогда по строке «d» и столбцу «e» получаем значение Sbox(«de») = «b4».

  1. Линейная подстановка L.

Если слово В, являющееся выходом τ будет входным словом в L, тогда выходное слово после перестановки:

C = L(B) = B ⊕ (B

Просмотров работы: 295