Алгоритм Grand Cru

разработан специально для участия в конкурсе NESSIE (см. разд. 2.2). Автор алгоритма— Йохан Борет (Johan Borst) из Католического Университета г. Лювен, Бельгия.

имеет структуру «квадрат». Данный алгоритм основан на алгоритме Rijndael, разработанном Джоан Деймен и Винсентом Риджме- ном (см. разд. 3.3). Несомненно, тот факт, что Rijndael выиграл конкурс AES и в настоящее время является принятым в США стандартом шифрования, воодушевил некоторых разработчиков алгоритмов шифрования на конструирование блочных шифров на его основе. Фактически Grand Cru является глубокой модификацией алгоритма Rijndael.

Как известно, среди четырех преобразований данных в каждом раунде алгоритма Rijndael существует только одна операция (наложение подключа операцией XOR), выполняющая зависящие от ключа преобразования [153]. По мнению автора алгоритма Grand Cru, увеличение количества ключевых преобразований в раунде алгоритма усилит криптостойкость алгоритма при том же количестве раундов или позволит уменьшить количество раундов (чем увеличит скорость шифрования) при заданном уровне криптостойкости. Соответственно, раунд Grand Cru — это, фактически, раунд Rijndael с добавлением двух ключевых операций вместо одной бесключевой [102].

шифрует данные блоками по 128 битов с использованием только 128-битного ключа шифрования.

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

Как было сказано выше, алгоритм имеет структуру «квадрат»: при шифровании данные представляются в виде таблицы 4×4 байтов. В каждом раунде производятся следующие действия:

1. Наложение фрагмента ключа r-го раунда к[гч0] (см. далее), которое выполняется с помощью операции XOR, полностью аналогично операции AddRoundKey алгоритма Rijndael— см. рис. 3.11. Эта операция в алгоритме Grand Cru обозначается как а.

Как было сказано выше, раунд алгоритма содержит 3 операции с участием фрагментов расширенного ключа. Обозначим эти фрагменты следующим образом:

•                  &[г,0] — 128-битный фрагмент ключа раунда к[г] для наложения ключа;

•                 k[r, 1] — 40-битный фрагмент для описанной далее операции я;

•                  к[г,2] — 48-битный фрагмент для операции (3.

2. Табличная замена у, замещающая каждый байт массива согласно таблице S (табл. 3.27).

Таблица 3.27

99

124

119

123

242

107

111

197

48

1

103

43

254

215

171

118

202

130

201

125

250

89

71

240

173

212

162

175

156

164

114

192

183

253

147

38

54

63

247

204

52

165

229

241

ИЗ

216

49

21

4

199

35

195

24

150

5

154

7

18

128

226

235

39

178

117

9

131

44

26

27

110

90

160

82

59

214

179

41

227

47

132

83

209

0

237

32

252

177

91

106

203

190

57

74

76

88

207

208

239

170

251

67

77

51

133

69

249

2

127

80

60

159

168

81

163

64

143

146

157

56

245

188

182

218

33

16

255

243

210

205

12

19

236

95

151

68

23

196

167

126

61

100

93

25

115

96

129

79

220

34

42

144

136

70

238

184

20

222

94

11

219

224

50

58

10

73

6

36

92

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

194

211

172

98

145

149

228

121

231

200

55

109

141

213

78

169

108

86

244

234

101

122

174

8

186

120

37

46

28

166

180

198

232

221

116

31

75

189

139

138

112

62

181

102

72

3

246

14

. 97

53

87

185

134

193

29

158

225

248

152

17

105

217

142

148

155

30

135

233

206

85

40

223

140

161

137

13

191

230

66

104

65

153

45

15

176

84

187

22

Эта операция также аналогична (но с другой таблицей замен) операции SubBytes алгоритма Rijndael — см. рис. 3.8.

3. Зависящая от ключа перестановка я. Использует 5-байтный фрагмент расширенного ключа k[r, 1], причем процедура расширения ключа гарантирует, что значение каждого байта /:[г,1] лежит в диапазоне от 1 до 24 включительно. Перестановка я выполняется в 5 этапов.

• На первом этапе производится перестановка строк массива данных. Для этого по первому байту ключа к[гЛ] (обозначим его значение как х) из таблицы (см. табл. 3.28) выбирается константа tx (указаны шестна- дцатеричные значения).

Таблица 3.28

X

X

X

 

1

78

9

87

17

2

36

10

63

18

D8

3

2D

11

D2

19

Е1

4

С9

12

39

20

С6

5

93

13

8D

21

27

6

72

14

22

В1

7

15

Е4

23

8

16

В4

24

Константа tx представляется в виде четырех 2-битных значений tx[0]…tx[3]\ подбор констант гх гарантирует, что значения tx[0]…tx[3] представляют собой последовательность из неповторяющихся значений от О до 3 включительно; например, для х = 1:

 где:

0 К$х — х-й байт промежуточного ключа ; 0 LSB3(X) — три младших бита значения X.

4.     Для операции к требуется 10 40-битных подключей: &[0,1]…&[8,1] для 9 раундов алгоритма и к[9,1] для заключительного преобразования. Эти подключи для / = 0…9 вычисляются так:

•                  вычисляется промежуточный ключ:

/

•                  Кп представляется в виде байтового массива из 16 элементов:

•                  из данного массива набираются первые 5 байтов из тех, значения которых попадают в требуемый диапазон: от 1 до 24; если в массиве таких байтов меньше пяти, недостаточное количество набирается с начала массива, в качестве значения байта ключа берется остаток от деления значения используемого байта массива на 16 (вместо 0 используется значение 16).

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

Как видно из приведенного выше описания, алгоритм Grand Cru является весьма сложным; причем сложным и запутанным выглядит как шифрование, так и процедура расширения ключа. Из избыточной сложности алгоритма следует тот факт, что алгоритм Grand Cru оказался самым медленным (причем с огромным отрывом по быстродействию от большей части других алгоритмов) среди всех участников конкурса [311].

В процессе изучения алгоритма в рамках конкурса NESSIE в нем не было обнаружено каких-либо слабостей, и, соответственно, каких-либо атак на данный алгоритм [312]. Тем не менее, эксперты конкурса посчитали, что возможно высокая (но недоказанная) криптостойкость данного алгоритма не компенсирует ужасающе низкой скорости шифрования, поэтому Grand Cru не был выбран во второй раунд конкурса [308].

Вы можете следить за любыми ответами на эту запись через 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