Протоколы Internet


Алгоритм шифрования SAFER - часть 2


128 0 176 9 96 239 185 253

16 18 159 228 105 186 173 248

192 56 194 101 79 6 148 252

25 222 106 27 93 78 168 130

112 237 232 236 114 179 21 195

255 171 182 71 68 1 172 37

201 250 142 65 26 33 203 211

13 110 254 38 88 218 50 15

32 169 157 132 152 5 156 187

34 140 99 231 197 225 115 198

175 36 91 135 102 39 247 87

244 150 177 183 92 139 213 84

121 223 170 246 62 163 241 17

202 245 209 23 123 147 131 188

189 82 30 235 174 204 214 53

8 200 138 180 226 205 191 217

208 80 89 63 77 98 52 10

72 136 181 86 76 46 107 158

210 61 60 3 19 251 151 81

117 74 145 113 35 190 118 42

95 249 212 85 11 220 55 49

22 116 215 119 167 230 7 219

164 47 70 243 97 69 103 227

12 162 59 28 133 24 4 29

41 160 143 178 90 216 166 126

238 141 83 75 161 154 193 14

122 73 165 44 129 196 199 54

43 127 67 149 51 242 108 104

109 240 2 40 206 221 155 234

94 153 124 20 134 207 229 66

184 64 120 45 58 233 100 31

146 144 125 57 111 224 137 48

После обработки с помощью S-матрицы используется второй субключ, который воздействует на блок преобразуемых данных. В этом случае используется другая последовательность операций: ADD, XOR, XOR, ADD, ADD, XOR, XOR, ADD (сравните с порядком операций, указанным в первом абзаце главы). Далее байты группируются: второй байт заменяется суммой первого байта и второго, первый – суммой нового значения второго байта и первого, четвертый – суммой третьего и четвертого, третий – суммой нового значения четвертого и третьего и т.д. вплоть до 8 байта включительно (см. рис. 6.4.8.1). При суммировании в результате операции учитываются только младшие 8 бит. По завершении этой процедуры байты выкладываются в следующем порядке (цифры означают старое положений байтов):

  1. 3 5 7 2 4 6 8

Рис. 6.4.8.1. Блок-схема реализации цикла алгоритма SAFER

После этого процедуры группирования и суммирования и перемешивания байтов повторяются.

Дешифровка в рамках алгоритма SAFER реализуется для каждой из процедур (путем замены их на обратные), примененной при шифровании независимо.

В качестве первого 64-битного субключа используется основной ключ шифрования. Для генерации последующих ключей используется циклический сдвиг влево на 3 бита. Полученные результаты объединяются с определенной константой (специфичной для каждого цикла) с помощью операции исключающее ИЛИ (XOR). Для первого субключа эта константа равна нулю. Далее используются константы, приведенные ниже:

16733B1E8E70BD86

477E2456F1778846

B1BAA3B7100AC537

C95A28AC64A5ECAB

C66795580DF89AF6

66DC053DD38AC3D8

6AE9364943BFEBD4

9B68A0655D57921F

715CBB22C1BE7BBC

63945F2A61B83432

FDFB1740E6511D41

8F29DD0480DEE731

7F01A2F739DA6F23

FE3AD01CD1303E12

CD0FE0A8AF82592C

7DADB2EFC287CE75

1302904F2E723385

8DCFA981E2C4272F

7A9F52E115382BFC

42C708E409555E8C




Начало  Назад  Вперед