виконується в кінцевому полі GF (28). br/>
1246216446126421
Накладення ключа r-го раунду k [r] (процедура розширення ключа буде
докладно описана далі); виконується побітовій логічною операцією В«виключає абоВ» (XOR), застосовуваної до кожного біту масиву даних і відповідному биту k [r] (малюнок 3):
bi, j = aj, i + k [r] j, i
Ця операція позначається як ?.
В
В
Перераховані операції виконуються в кожному раунді у зазначеній послідовності (?,?,?,?), за винятком останнього раунду алгоритму, в якому не виконується операція ?. Крім того, перед першим раундом виконується вхідний відбілювання даних шляхом накладення на шіфруемий блок операцією XOR нульового підключа.
Варто відзначити, що всі перераховані операції є зворотними самим собі, відповідно, розшифрування виконується за допомогою тих же операцій в тому ж порядку, що і при зашіфровиваніем. Змінюється тільки порядок використання підключай на зворотний. p align="justify"> Число раундів алгоритму R залежить від розміру ключа шифрування і визначається наступним чином:
= 8 + N,
де N-розмір ключа в 16-бітних фрагментах.
Деякі криптоаналитики вважають, що кількість раундів в алгоритмі Anubis дещо завищена, мабуть, з метою забезпечити більш високий запас криптостойкости.
Процедура розширення ключа
Процедура розширення ключа досить проста і заснована, практично, на тій же послідовності операцій, які застосовуються в раундах алгоритму. Розширення ключа виконується таким чином: спочатку ключ шифрування до До представляється у вигляді байтового масиву 4 Г— 4 ( що позначається як А70), після чого в циклі виконуються наступні операції:
. Итеративно обчислюються інші проміжні ключі KI1 ... KIR:
Ij = f (KIj-1),
де f () - сукупність операцій ?,?,? і ?; в операції ? в якості ключа раунду використовується відповідна з констант з [r], які, у свою чергу, визначаються таким чином:
[r] 0, j = S (4 * (r - 1) + y)
для j = 0 ... 3. Іншібайти c [r] i, j є нульовими. p align="justify"> Операція ? - циклічний зсув стовпців таблиці вниз по наступному простому правилу: j-й ст...