мер ключа, біт
8-256 (ціле число байт)
число раундів
змінне (r)
Pазмер ключового елемента, біт
w/2 (половина розміру блоку)
число ключових елементів
r +2 (на 2 більше числа раундів)
Особливості:
RC6 являє собою ціле сімейство шифрів з змінним розміром блоку, змінним розміром ключа від 1 до 32 байт і змінним числом раундів. У шифрі зовсім не використовуються вузли замін, замість цього використовується множення і циклічні зрушення на змінне число розрядів w/4-бітових чисел, де w - розмір блоку даних у бітах. У силу цього алгоритм неефективно реалізується на процесорах без швидкої команди множення і без команди циклічного зсуву на змінне число бітів. Крім того, операція множення ресурсомістка при апаратній реалізації. З наведених причин RC6 НЕ був обраний в якості удосконаленого стандарту шифрування США, хоча на ряді 32-бітових платформ його реалізація виявилася істотно ефективніше, ніж реалізація AES.
Зауваження
(1) У версії RC6, що номінувалася на місце нового стандарту розмір блоку фіксування і дорівнює 128 біт, число раундів також фіксоване і дорівнює дорівнює 20, розмір ключа може приймати одне з трьох Значення: 128, 192 або 256 біт.
Схема алгоритму представлена ​​RC6 на рис 5.1
В
Рис. 5.1 Схема алгоритму RC6
Характерною особливістю алгоритму є відмова від звичних Sbox'ов і введення операція квадратичної трансформації. Простота і висока швидкість шифрування є його основними достоїнствами, до того ж RC6 має найбільшу швидкість серед фіналістів AES (12.6 Мбайт/с)
6. Алгоритм шифрування TwoFish
Алгоритм, розроблений Шнайєром, є модифікацією алгоритму BlowFish, створеного в 1993р. Алгоритм TwoFish заснований на 16 раундової мережі Фейстеля. В алгоритмі використовуються перетворення РНТ (Pseudo-Hadamard Transforms), MDS матриці, залежні від ключа Sbox'и, по порівнянні з іншими алгоритмами TwoFish має досить складну структуру, яка представлена ​​на малюнку 6.1
В
Малюнок 6.1 Структура алгоритму Twofish
Вхідна відбілювання
Один раунд шифрування
Ще 15 раундів
Відміна останнього обміну місцями пар слів
Вихідна відбілювання
128-бітовий блок P відкритого тексту (16 байт p0, ..., p15) розбивається на чотири 32-бітових слова P0, P1, P2 і P3 c збереженням прямого порядку байтів (Little-Endian Convention):
В
На етапі вхідного В«відбілюванняВ» виконується операція XOR між цими словами і чотирма ключами K0, K1, K2 і K3:
В
Після цього слідують 16 раундів шифрування. У кожному раунді два В«лівихВ» слова є вхідними для функцій g (біти одного з вхідних слів спочатку циклічно зсуваються на 8 позицій вліво). До отриманих вихідним словами функцій g потім застосовується псевдопреобразованіе Адамара (PHT - Pseudo-Hadamard Transform) і додаються два раундових ключа K2r +8 і K2r +9, де r - номер раунду шифрування. Далі між модифікованими таким чином В«ЛівимиВ» словами і двома В«правимиВ» словами (біти одного з яких перш циклічно зсуваються на одну позицію вліво) виконується операція XOR, після чого циклічного зсуву на 1 біт вправо піддається інше з тепер вже видозмінених В«правихВ» слів. В«ЛіваВ» і В«праваВ» пари слів потім міняються місцями для наступного раунду шифрування. Таким чином,
В
де r = 0, ..., 15, а абревіатурами ROR і ROL позначені функції двох аргументів, які виконують побітовий циклічний зсув першого аргументу вправо і вліво відповідно на число позицій, рівне другого аргументу.
Після реалізації всіх 16-ти раундів шифрування останній обмін місцями В«лівоїВ» і В«правоюВ» пар слів скасовується, і між отриманими 32-бітовими словами і ключами K4, K5, K6 і K7 виконується операція XOR (етап вихідного В«відбілюванняВ»):
Сi = R16, (i +2) mod4 Г… K i = 0, ..., 3
Отримані слова C0, C1, C2 і C3 потім об'єднуються в 128-бітовий блок C (16 байт c0, ..., c 15) зашифрованого тексту:
В
де Г«xГ» - ціла частина х.
Кілька слів з приводу криптостойкости Twofish.
Розробники алгоритму вже спочатку були впевнені в неприступності свого творіння для криптоаналітиків. Під час першого раунду конкурсу на новий американський урядовий стандарт шифрування Б. Шнайєром був навіть оголошений конкурс на кращу кріптоатаку проти Twofish з призовим фондом у 10 тисяч доларів. Завдання було дійсно непроста: складність алгоритму зіграла свою роль (і стала, до речі, однією з причин, по якої Twofish не став новим стандартом шифрування США).
Тим не ме...