O1 <<
де I - вхідний значення, r - номер поточного раунду, вважаючи з 0-го (при нумерації раундів в даному випадку враховуються тільки раунди кріптоядра алгоритму), S - таблична заміна для операції E, являє собою об'єднання описаних вище таблиць S0 і S1; об'єднана таблиця містить 512 значень, вихідне значення вибирається за значенням 9 молодших біт вхідного слова.
Варто звернути увагу на те, що в перетворенні E використовуються операції обертання на змінне число біт; в цьому випадку запис O3 позначає, що число біт обертання визначається значенням молодших п'яти біт поточного значення O3.
Структура зворотного кріптораунда показана на рис. 5. br/>В
Рис. 5 - Раунд зворотного криптоперетворень алгоритму MARS
Від прямого кріптораунда його відрізняє лише змінений порядок накладення вихідних значень перетворення E O1 ... O3 на слова B, C і D.
В
Рис. 6 - Раунд зворотного перемішування алгоритму MARS
Раунд зворотного перемішування більш істотно відрізняється від прямого. Фактично, зворотне перемішування виконує зворотні операції в зворотній послідовності:
Значення субблока A проганяється через таблицю замін S1 і накладається на субблок Bопераціей XOR.
Вихідний значення субблока A обертається на 8 біт вліво.
Результат попереднього кроку обробляється таблицею замін S0 і накладається на субблок C операцією віднімання за модулем 232.
Результат кроку 2 обертається на 8 біт вліво.
Результат попереднього кроку обробляється таблицею замін S1 і накладається на субблок D операцією віднімання за модулем 232.
Результат кроку 4 обертається на 8 біт вліво.
Результат попереднього кроку обробляється таблицею замін S0 і накладається на субблок D операцією XOR.
Субблоки міняються місцями, як показано на рис. 6. p> Аналогічно прямим перемішуванню, в деяких раундах виконуються наступні додаткові операції, не показані на рис. 6:
У раундах 1 та 5 після кроку 7 виконується накладення значення субблока A на субблок Bопераціей віднімання за модулем 232.
У раундах 2 і 6 субблок C аналогічним чином накладається на субблок B.
Розшифрування виконується застосуванням зворотних операцій у зворотній послідовності; детально розшифрування описано в специфікації алгоритму [<# "341" src = "doc_zip7.jpg"/>
Рис. 7 - Структура алгоритму RC6
Як було сказано вище, в алгоритмі використовується 20 раундів перетворень, перед якими виконується часткове вхідний відбілювання:
B = B + K0 mod 232, D = D + K1 mod 232,
де A, B, C, D - поточні значення оброблюваних 32-бітних субблоков, K0 ... K43 - фрагменти розширеного ключа.
Аналогічним чином виконується часткове вихідна відбілювання:
A = A + K42 mod 232, C = C + K43 mod 232.
У кожному раунді алгоритму виконуються наступні дії:
t1 = f (B) <<<5, t2 = f...