Алгоритм NUSH

предложен на конкурс NESSIE российской компанией «ЛАН Крипто», которая представляет собой одну из отечественных компаний — разработчиков средств криптографической защиты информации (в том числе и на основе криптоалгоритмов собственной разработки). Авторы алгоритма: Президент компании «ЛАН Крипто» Лебедев А. Н. и Президент Российской Криптологической Ассоциации «РусКрипто» Волчков А. А.

имеет несколько фиксированных размеров шифруемого блока данных: 64, 128 и 256 битов. Рассмотрим 64-битный вариант алгоритма.

Структура алгоритма

Структура алгоритма показана на рис. 3.149 [237]. Шифруемый блок данных разбивается на 4 субблока по 16 битов (обозначаемые как а, Ь, с, d).

Рис. 3.149. Структура алгоритма NUSH

Прежде всего выполняется начальное преобразование, состоящее в том, что на каждый субблок операцией XOR накладывается фрагмент расширенного ключа (процедура расширения ключа будет описана далее) для начального преобразования KS0…KS3:

Процедура расширения ключа

Процедура расширения ключа весьма проста и напоминает таковую у отечественного стандарта шифрования ГОСТ 28147-89 (см. разд. 3.1) — исходный ключ шифрования делится на фрагменты K0…Kn_x (п — размер ключа шифрования в 16-битных словах), т. е.:

?       К0…К7 для 128-битного ключа;

?       К0…Ки для 192-битного ключа;

?       К0…К]5 для 256-битного ключа.

Затем фрагменты ключа используются в итерациях, а также в начальном и финальном преобразованиях согласно табл. 3.88.

Таблица 3.88

Применение

Используемый фрагмент ключа (в зависимости от его размера)

128 битов

192 бита

256 битов

KS0

К4

К4

К\2

KS,

К5

К5

 

KS2

 

Кб

Кн

KS3

 

Ki

 

KF0

К}

к

 

щ

к2

Кю

 

kf2

к.

к9

*15

KFз

Ко

 

кы

KRj

1/

/v 1 mod л

Символом i в табл. 3.88 обозначен сквозной номер итерации (от 0 до 35), т. е. в итерациях фрагменты ключа используются поочередно в прямом порядке.

Криптостойкость алгоритма

не выбран во второй раунд конкурса [312] благодаря атаке, предложенной китайскими учеными Вен-Лингом By (Wen-Ling Wu) и Денг- Гуо Фенгом (Deng-Guo Feng) [398]. Найденная ими атака позволяет методом линейного криптоанализа вычислить 128-битный ключ шифрования алгоритма NUSH при наличии 258 известных открытых текстов (и соответствующих им шифртекстов) выполнением 2124 тестовых операций шифрования. При этом, если имеется 262 известных открытых текстов, вычислительная сложность снижается до 255 тестовых операций шифрования. Аналогичные атаки существуют для 192- и 256-битных ключей.

Следует отметить, что данные атаки весьма сложно реализуемы на практике, однако их оказалось достаточно в качестве доказательства недостаточного запаса криптостойкости (security margin) [312] алгоритма NUSH.

128-битный вариант

(аналогично, например, известному алгоритму RC5 — см. разд. 3.42) весьма легко преобразуется под другие размеры блока. На конкурс NESSDE, помимо 64-битного варианта, были представлены еще и варианты алгоритма, обрабатывающие 128-битные и 256-битные блоки данных [237].

Отличия 128-битного алгоритма NUSH от 64-битного состоят в следующем:

?      выполняется 17 раундов преобразований вместо 9;

?     блок данных делится на те же 4 субблока, но они имеют размер по 32 бита (а не по 16 битов). Соответственно, операции сложения и вычитания выполняются по модулю 232;

?      используются другие константы с (константы для модификации ключей, используемых в итерациях алгоритма) и s (число битов сдвига), а также другая последовательность логических операций #; их значения сведены в табл. 3.89 (для с указаны шестнадцатеричные значения);

Таблица 3.89

Раунд

Итерация

5

с

#

0

0

7

9В28А37В

&

0

1

5

9DE5B521

1

0

2

15

0B8EE0D7

&

0

3

14

672АА715

1

1

0

3

0E356C9F

1

1

1

30

BF54692A

1

Таблица 3.89 (продолжение)

Раунд

Итерация

5

с

#

1

2

4

DC9E15C8

1

1

3

23

06D736E8

1

2

0

13

9263E8CF

&

2

1

12

1FCD682D

1

2

2

26

7368В074 >

1

2

3

16

2654F15A

&

3

0

9

00EB3E4D

1

3

1

28

18D62F6D

&

3

2

8

632А557А

1

3

3

18

1D953D21

1

4

0

23

CD4B2ACD

1

4

1

8

49A0D3F4

1

4

2

26

C443FC66

&

4

3

4

Е84С5ВСВ

&

5

0

29

F750A732

&

5

1

16

2CDE9942

&

5

2

2

370С437А

&

5

3

22

DA8B5654

1

6

0

23

99А76750

&

6

1

11

А1559437

1

6

2

26

9ЕА46718

1

6

3

13

83E984F8

1

7

0

20

АВ5692Е4

&

7

1

5

А6С5С46А

1

7

2

28

25FB110E

&

7

3

17

55955В2Е

&

8

0

19

FA639063

1

8

1

22

027E4DC6

1

Таблица 3.89 (продолжение)

Раунд

Итерация

5

с

#

8

2

6

919Е96В2

&

8

3

25

62E96D0C

1

9

0

12

AA7DE138

1

9

1

24

А674А66С

&

9

2

27

B3F54983

1

9

3

10

AE29D0DB

&

10

0

16

599470СВ

1

10

1

24

3B2E3FA0

&

10

2

9

A354CC6F

&

10

3

13

516AF8C4

1

11

0

5

ADE11D33

1

11

1

10

860D95F2

&

И

2

26

ВС2731А4

&

11

3

30

CCD12BAA

&

12

0

9

ВА518Е95

&

12

1

16

22F7583A

&

12

2

28

6C0A5FE8

&

12

3

24

8FAC2D74

&

13

0

27

D129E934

&

13

1

6

11DCE4C9

&

13

2

7

362F2F4A

1

13

3

15

6CCB630D

&

14

0

1

97919D88

1

14

1

13

823F95AC

1

14

2

15

67С99А98

1

14

3

1

8E91D0CB

&

15

0

23

АВ796817

&

Таблица 3.89 (окончание)

Раунд

Итерация

s

с

#

15

1

28

356459А7

&

15

2

12

668D9FA8

1

15

3

2

0D4DBF40

1

16

0

28

1ACCE5D8

&

16

1

14

F53B24C1

1

16 \

2

15

6DB89876

&

16

3

12

5C965DA5

1

? изменена процедура расширения ключа. В 128-битном алгоритме NUSH фрагменты исходного ключа К0…КП_Х (п— размер ключа шифрования в 32-битных словах) используются в итерациях (/ — сквозной номер итерации, начиная с 0), а также в начальном и финальном преобразованиях следующим образом (см. табл. 3.90).

Таблица 3.90

Применение

Используемый фрагмент ключа (в зависимости от его размера)

128 битов

192 бита

256 битов

KS0

 

К2

К 4

KS{

Кг

Кг

К5

KS2

к.

К4

К6

KS3

Ко

к5

Ку

KF0

К.

к5

к5

Щ

К0

К4

К А

kf2

к3

 

Ki

KF3

К2

К2

Кб

KRi

у

i mod n

256-битный вариант

256-битный вариант алгоритма, по сути, имеет те же отличия от 64-битного варианта:

?      количество раундов алгоритма увеличено до 33;

?      субблоки имеют размер по 64 бита, а операции сложения и вычитания вы- полняются по модулю 2 ;

?      используются другие константы cws согласно табл. 3.91;

Таблица 3.91

Раунд

Итерация

s

с

0

0

12

1А028ЕЗ В45 8FE65 F

0

1

45

10СВ1С5САСЗС7А75

0

2

7

0AA54C8D55CC6F5E

0

3

48

EE4AC8B12E2FC8D5

1

0

14

F787D15C240344D7

1

1

43

CACCAF60F2998693

1

2

8

4EA93E4DF9558E82

1

3

54

B57CDA0316ВС1С92

2

0

49

623C7496C0D6FB68

2

1

47

BD7B065E84D852A9

2

2

37

A6CD2E5C6B1А30Е7

2

3

55

788D9EFC078281В5

3

0

58

D0CF11A8FF9943E4

3

1

32

D04F01C7F3EA8E96

3

2

16

5313F574E5D1D2C8

3

3

36

DC8AB4437AAD50CF

4

0

13

66ED63D790921A4D

4

1

35

FA351С5183EBDA0B

4

2

50

DA694B14554D17C9

4

3

58

0A392FA5DE785CD1

Таблица 3.91 (продолжение)

Раунд

Итерация

5

с

5

0

21

75 В1D5DE6561D08C

5

1

56

ВС 128DB2F22C59

5

2

4

D19F06A961ВС6Е36

5

3

52

F3F2D208215DDA85

6

0

32

D9A5D482F930B1AF

6

1

19

FD98B3 А189 AD9851

6

2

28

В671A790FB204AE3

6

3

10

4E3B9DB2A290EC98

7

0

63

2CA2AFB114DF74A2

7

1

53

705CE63837B3616D

7

2

50

679D058EAL89A2EE

7

3

27

8398В АВ59ЕЗА506С

8

0

18

181F8 AEFD8499AD4

8

1

40

17С41D9833728FE9

8

2

13

7E692E4DB9D09471

8

3

14

C900CDE6CB8AA557

9

0

8

EB2B8576C0419FE3

9

1

21

927C3FE32C9A2365

9

2

6

427410ЕВ1EACBE4F

9

3

59

18 A6FE2878B4D78D

10

0

17

436EB84357C5342F

10

1

5

1B94C23F94C24B3E

10

2

23

D3D831585E585A9C

10

3

10

F37E22A1587B9670

11

0

32

96A27FA6164197CD

11

1

20

С21BC4EAF449АС7Е

11

2

53

BCCE8974A35A69D4

11

3

3

7FA98C9B495C2782

Таблица 3.91 (продолжение)

Раунд

Итерация

s

с

12

0

20

3B64D65041406FFB

12

1

42

AF82F6418C48F7DC

12

2

1

13B7D80A170Е6АВ6

12

3

58

09DFC1В BF5 А51842

13

0

12

45B2F2934E2BECC4

13

1

30

F456D827335C90D3

13

2

38

7A2C6EE4672634D8

13

3

6

3AA0D9523BBBD398

14

0

23

D578F2 АЕА135F841

14

1

61

9A6635DA5227B8E9

14

2

7

F40F12 A5B07BC3D8

14

3

12

BBD16B68649B4271

15

0

33

042753СЕ1B63F27B

15

1

41

А471D892D743F58D

15

2

17

B6CACF5958204C67

15

3

35

FB7786E2234AA30A

16

0

30

97EB25E4C9F33038

16

1

3

CD5D27E1802E58F4

16

2

60

0289FBE8CE5BD06A

16

3

55

26DBAA50CBC1E8B9

17

0

37

4116B2B8D89AFF86

17

1

50

1D65 8D6EEF814Е49

17

2

12

А4В511D2427E3F73

17

3

41

E2A77BD9898E1326

18

0

7

65DEA88074B941FD

18

1

40

8E55B0DC3CEE4398

18

2

35

С14E2ADD6601EBDC

18

3

45

A24F31D25E456E34

Таблица 3.91 (продолжение)

Раунд

Итерация

s

с

19

0

2

AD83615 АС0Е7 АЕАЕ

19

1

44

81FCC39F84A54A8B

19

2

4

D15С7Е21FE235136

19

3

49

5F5AC08E5A961B43

20

0

29

0CEC9543F2A66676

20

1

12

7С034ЕВА929А8В8Е

20

2

56

C0F4CE12EC988EBB

20

3

18

5D358844AE5699F9

21

0

59

42E8D74DB4919В52

21

1

21

8250D178F5557F8A

21

2

45

532394E648E4F3FC

21

3

60

3E2BF92B03691AD8

22

0

12

FA9268E710647D5B

22

1

62

BBD56F8408E2E651

22

2

59

793С3027ЕВ0С5В8С

22

3

51

7643D2BB1 1326В87

23

0

20

4B9FF22BB56211Е4

23

1

42

AA39E9382F34B664

23

2

6

Е212D331BFE06A72

23

3

27

1755736EA478F948

24

0

1

59CA19F718A53EAA

24

1

17

F44B 30FA21 СО A6ED

24

2

24

71F47E295DA0855C

24

3

51

5036Е2ЕЕ9С4166В9

25

0

32

6D32721CF1269E70

25

1

4

С51E826355EC445F

25

2

26

0Е8Е66931EF37C41

25

3

46

9A94B3039660D3DE

Таблица 3.91 (окончание)

Раунд

Итерация

s

с

26

0

2

1ED158ECD9D68529

26

1

1

0ECE52DC8F1С3952

26

2

38

86А20А1FFFC847E5

26

3

12

FF1D ADC90C09 А612

27

0

7

В896156E08C55F6D

27

1

41

644DEA351C86F456

27

2

45

29B4B572556F360D

27

3

37

875399911A5A79D1

28

0

24

32EC6F05BC921В А5

28

1

10

CE0FB52C15C61А97

28

2

4

7F4E15212953F03D

28

3

2

873CA0565BBEC3E8

29

0

6

CDF1B94C29B3812F1

29

1

18

AAAEA6E308E92F68

29

2

9

703ССА8345ЕС51FC

29

3

52

4618ВВ IB 1B33EF0C

30

0

8

F039732AAD11FE46

30

1

57

86D89114CE8DE23F

30

2

1

330AEDC7E44B8AF0

30

3

31

96D7869EDD33E500

31

0

35

F59CC3B1Е9354045

31

1

33

AD3DB4F4A1А А8433

31

2

11

724ЕСЕ1С833975ЕА

31

3

16

98516АВ5С5303Е6Е

32

0

6

ACF4FD043B90CCB6

32

1

13

8D8A1DA51ВЕ5СЕС1

32

2

15

11D0127B77B9427B

32

3

45

67C2DE1924С А А5 ED

?     что касается логических операций #, то они выполняются в той же последовательности, что и для 128-битного алгоритма; в раундах, которые отсутствуют в 128-битном варианте, используются операции согласно следующему правилу:

где i — сквозной номер итерации;

?     фрагменты исходного ключа используются в преобразованиях алгоритма согласно табл. 3.92 (в данном случае ключ делится на 64-битные слова).

Таблица 3.92

Применение

Используемый фрагмент ключа (в зависимости от его размера)

128 битов

192 бита

256 битов

KS0

К,

к2

к3

KS{

 

К,

К2

KS2

К,

К0

К,

KS,

К0

к2

Ко

KF0

Ко

К,

К2

Щ

 

К2

К3

KF2

 

К2

К0

 

к,

К0

к,

KR{

К

/ mod n

Криптоанализ 128- и 256-битного вариантов алгоритма

Против 128- и 256-битных вариантов алгоритма NUSH применима та же атака, что и против 64-битного варианта [398]. Атака, предложенная китайскими учеными Вен-Лингом By и Денг-Гуо Фенгом, позволяет методом линейного криптоанализа вычислить, например, 256-битный ключ 128-битного варианта алгоритма при наличии 2126 известных открытых текстов выполнением 264 операций шифрования. Аналогичные атаки существуют и для 256-битного варианта, и для других размеров ключей.

Поскольку данные атаки говорят о недостаточном запасе криптостойкости алгоритма NUSH, 192- и 256-битный варианты алгоритма также не вышли во второй раунд конкурса NESSIE [312].

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100