|
6.4.8 Алгоритм шифрования SAFER
Семенов Ю.А. (ГНЦ ИТЭФ) |
Алгоритм шифрования SAFER (Secure And Fast Encryption Routine; http://fn2.freenet.edmonton.ab.ca/~jsavard/co0403.html) не использует разбивку исходного текста на блоки (как это делается в DES или IDEA). Здесь исходный текст пропускается через S-матрицы, которые заменяются на обратные версии при дешифровании. В SAFER используется 8 циклов. Первый шаг цикла заключается в использовании первого субключа для преобразования 8 байт исходного текста. То, как используется субключ, зависит от номера байта в группе. Так для 1-го, 4-го, 5-го и 8-го для этого служит операция XOR, а для 2-го, 3-го, 6-го и 7-го байтов применяется операция сложения. Затем при обработке текста в S-матрице байты, для которых было применено исключающее ИЛИ, поступают на обычную матрицу, для остальных применяется инвертированная. s-матрицы представляют собой таблицы байтов, которые получаются по формуле 45N mod 257, где N -номер кода в таблице (после чего выделяются 8 младших разрядов).
1 45 226 147 190 69 21 174
64 53 72 156 81 47 59 85
241 51 239 218 44 181 178 43
4 180 133 74 246 19 84 182
0 212 31 110 67 188 236 83
193 204 185 101 176 210 198 172
16 206 18 39 213 76 79 214
253 77 124 183 11 238 173 75 Обратная матрица при этом имеет вид. 128 0 176 9 96 239 185 253 112 237 232 236 114 179 21 195 32 169 157 132 152 5 156 187 121 223 170 246 62 163 241 17 208 80 89 63 77 98 52 10 95 249 212 85 11 220 55 49 41 160 143 178 90 216 166 126 109 240 2 40 206 221 155 234 После обработки с помощью S-матрицы используется второй субключ, который воздействует на блок преобразуемых данных. В этом случае используется другая последовательность операций: ADD, XOR, XOR, ADD, ADD, XOR, XOR, ADD (сравните с порядком операций, указанным в первом абзаце главы). Далее байты группируются: второй байт заменяется суммой первого байта и второго, первый - суммой нового значения второго байта и первого, четвертый - суммой третьего и четвертого, третий - суммой нового значения четвертого и третьего и т.д. вплоть до 8 байта включительно (см. рис. 6.4.8.1). При суммировании в результате операции учитываются только младшие 8 бит. По завершении этой процедуры байты выкладываются в следующем порядке (цифры означают старое положений байтов):
Рис. 6.4.8.1. Блок-схема реализации цикла алгоритма SAFER После этого процедуры группирования и суммирования и перемешивания байтов повторяются. Дешифровка в рамках алгоритма SAFER реализуется для каждой из процедур (путем замены их на обратные), примененной при шифровании независимо. В качестве первого 64-битного субключа используется основной ключ шифрования. Для генерации последующих ключей используется циклический сдвиг влево на 3 бита. Полученные результаты объединяются с определенной константой (специфичной для каждого цикла) с помощью операции исключающее ИЛИ (XOR). Для первого субключа эта константа равна нулю. Далее используются константы, приведенные ниже: 16733B1E8E70BD86 |
Previous:
6.4.7 IDEA - международный алгоритм шифрования данных
UP:
6 Сетевая безопасность
|