Алгоритм Anubis

Блочный шифр Anubis разработан специально для участия в конкурсе NESSIE интернациональным дуэтом авторов: бельгийцем Винсентом Рид-жменом и бразильцем Пауло Баррето (Paulo S. L. М. Barreto).

Алгоритм назван в честь древнеегипетского бога Анубиса— бога бальзами­рования (embalming) и погребения (entombment); к его ведению авторы алго­ритма решили отнести и криптографию [43].

Anubis шифрует данные блоками по 128 битов с использованием ключа раз­мером от 128 до 320 битов; размер ключа должен быть кратен 32 битам.

Данный алгоритм продолжает серию алгоритмов, соавтором которых являет­ся Винсент Риджмен: Square, SHARK и Rijndael. Все эти алгоритмы объеди­няет их относительно редко встречающаяся (напротив, частая среди алгорит­мов— участников конкурса NESSIE) структура типа «квадрат» и весьма схожий набор выполняемых преобразований.

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

Алгоритм представляет блок шифруемых данных в виде 16-байтового массива, который для удобства описания представлен в виде квадрата размером 4×4 бай­та. В каждом раунде алгоритма выполняются следующие действия [43]:

clip_image002

Рис. 3.17. Операция у алгоритма Anubis

1. Табличная замена у (рис. 3.17), выполняемая согласно таблице S (табл. 3.6, указаны шестнадцатеричные значения).

Таблица 3.6

А7

D3

Е6

71

DO

АС

4D

79

ЗА

С9

91

FC

IE

47

54

BD

А5

FB

63

В8

DD

D4

Е5

ВЗ

С5

BE

А9

88

ОС

А2

39

DF

29

DA

А8

СВ

22

АА

24

41

70

А6

F9

Е2

ВО

36

7D

Е4

33

FF

60

20

08

АВ

7F

78

57

-D2

DC

6D

0D

53

94

СЗ

28

27

06

5F

AD

67

55

48

ОЕ

52

ЕА

42

5D

30

58

51

59

ЗС

38

72

14

Е7

С6

DE

50

92

D1

77

93

45

СЕ

2D

03

62

В6

В9

BF

96

3F

07

12

АЕ

40

34

46

ЗЕ

DB

CF

ЕС

СС

С1

А1

СО

D6

1D

F4

61

ЗВ

10

D8

68

АО

В1

OA

69

49

FA

76

С4

99

С2

В7

98

ВС

8F

85

1F

В4

F8

11

00

25

3D

05

4F

В2

32

90

AF

19

A3

F7

73

9D

15

74

ЕЕ

СА

9F

OF

75

86

84

97

65

F6

ED

09

ВВ

26

83

ЕВ

6F

81

04

43

01

17

Е1

87

F5

8D

ЕЗ

23

80

44

16

66

21

FE

D5

31

D9

35

18

02

64

F2

F1

56

CD

82

С8

ВА

F0

EF

Е9

Е8

FD

89

D7

С7

В5

А4

2F

95

13

ОВ

F3

ЕО

37

Значения таблицы выбраны псевдослучайным образом с учетом необхо­димости ее соответствия следующему соотношению:

S(S(x)) = x.

2. Операция т— байтовая перестановка, простейшим образом преобразую­щая строку обрабатываемого блока ключевой информации в столбец (рис. 3.18):

bij=aj.i>

где atj и tyj — байты массива данных до и после выполнения текущей операции соответственно.

clip_image004

Рис. 3.18. Операция т алгоритма Anubis

3. Операция & (рис. 3.19), представляющая собой умножение массива на фиксированную матрицу Н (табл. 3.7).

Таблица 3.7

1

2

4

6

2

1

6

4

4

6

1

2

6

4

2

1

Умножение выполняется в конечном поле GF(2 ).

4. Наложение ключа r-го раунда к[г] (процедура расширения ключа будет подробно описана далее); выполняется побитовой логической операцией «исключающее или» (XOR), применяемой к каждому биту массива дан­ных и соответствующему биту к[г] (рис. 3.20):

Ьии®к[г]и.

Эта операция обозначается как а.

clip_image006

Рис. 3.19. Операция 0 алгоритма Anubis

clip_image008

Рис. 3.20. Операция а алгоритма Anubis

Перечисленные операции выполняются в каждом раунде в указанной после­довательности (у, я, 0, а), за исключением последнего раунда алгоритма, в котором не выполняется операция 0. Кроме того, перед первым раундом выполняется входное отбеливание данных путем наложения на шифруемый блок операцией XOR нулевого подключа.

Стоит отметить, что все перечисленные операции являются обратными са­мим себе, соответственно, расшифровывание выполняется с помощью тех же операций в том же порядке, что и при зашифровывании. Меняется только порядок использования подключай на обратный.

Число раундов алгоритма R зависит от размера ключа шифрования и опреде­ляется следующим образом:

/? = 8 + УУ,

где УУразмер ключа в 32-битных фрагментах.

Некоторые криптоаналитики считают, что количество раундов в алгоритме Anubis несколько завышено, видимо, с целью обеспечить более высокий за­пас криптостойкости [82].

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

Процедура расширения ключа достаточно проста и основана, практически, на той же последовательности операций, которые применяются в раундах алго­ритма. Расширение ключа выполняется следующим образом: сначала исход­ный ключ шифрования К представляется в виде байтового массива 4×4 (что обозначается как А70), после чего в цикле выполняются следующие операции:

1. Итеративно вычисляются остальные промежуточные ключи KIXKIR\

Kij=f(Kij_o,

где f() — совокупность операций у» я, 6 и а; в операции а в качестве ключа раунда используется соответствующая из констант с[г], которые, в свою очередь, определяются следующим образом:

cM0J=5(4*(rl) + y)

для у’ = 0…3 (см. описание операции а). Остальные байты c[r](j являются нулевыми.

Операция я — циклический сдвиг столбцов таблицы вниз по следующему простому правилу: у’-й столбец сдвигается на j позиций (рис. 3.21).

clip_image010

Рис. 3.21. Операция и алгоритма Anubis

2. На основе предварительных ключей вычисляются подключи k0kR :

*„…*(*/„),

где функция g() представляет собой последовательное выполнение сле­дующих операций: у, со, т.

Операции у и т были описаны выше, а со представляет собой умножение бло­ка на фиксированную матрицу V (аналогично операции 0 — см. рис. 3.19), приведенную в табл. 3.8.

Таблица 3.8

1

1

1

1

1

2

4

8

1

6

36

216

1

8

64

0

Стоит отметить, что при зашифровывании данных процедура расширения ключа позволяет вычислять ключи «на лету», т. е. по мере необходимости. Однако при расшифровывании необходимо полностью выполнить расшире­ние ключа до начала преобразований.

Достоинства и недостатки алгоритма

Прежде всего стоит сказать, что на конкурсе NESSIE была рассмотрена не­сколько модифицированная версия алгоритма Anubis, отличие которой от описанной здесь состояло лишь в операции у. Модифицированная операция у вместо одной табличной замены 8×8 битов выполняла 3 уровня табличных замен 4×4. Данная модификация произведена для упрощения аппаратной реализации алгоритма [307].

Anubis был признан одним из наиболее быстродействующих алгоритмов шифрования (из участников конкурса) [308]. Еще одно явное достоинство алгоритма— отсутствие проблем с криптостойкостью [311]. Однако злую шутку с алгоритмом Anubis сыграло его сходство с алгоритмом Rijndael (ко­торый, как известно, является новым стандартом шифрования США под на­званием AESсм. разд. 3.3), который также рассматривался в рамках кон­курса NESSIE. Эксперты конкурса посчитали, что при таком явном сходстве Anubis не может иметь настолько серьезных преимуществ перед алгоритмом Rijndael, которые позволили бы ему выиграть у Rijndael в финале конкурса NESSIE [308, 312]. Поэтому Anubis не был выбран во второй этап конкурса.

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

4 коммент. »

 
 

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

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