CRYPTON — алгоритм симетричного блокового шифрування (розмір блоку 128 біт, ключ довжиною до 256 біт), розроблений південнокорейським криптологом Чьо Лім Хун (англ. Chae Hoon Lim) з південнокорейської компанії Future Systems, яка з кінця 1980-х років працює на ринку забезпечення мереж і захисту інформації.
Розробники | Чьо Хун Лім (Future Systems, Inc.) |
---|---|
Уперше оприлюднений | 1998-1999 |
Раундів | 12 |
Тип | SP-мережа |
Алгоритм був розроблений в 1998 році для участі у конкурсі AES. Як зізнавався автор, конструкція алгоритму спирається на алгоритм SQUARE.
В алгоритмі Crypton немає традиційних для блочних шифрів мережі Фейстеля. Основу даного шифру становить так звана SP-мережа (повторювана циклова функція, що складається із замін-перестановок, орієнтована на розпаралелену нелінійну обробку всього блоку даних). Крім високої швидкості, перевагами таких алгоритмів є полегшення дослідження стійкості шифру до методів диференціального та лінійного криптоаналізу, що є на сьогодні основними інструментами розтину блочних шифрів.
На конкурс AES була представлена версія алгоритму Crypton v0.5. Однак, як казав Чьо Лім Хун, йому не вистачало часу для розробки повної версії. І вже на першому етапі конкурсу AES в ході аналізу алгоритмів, версія Crypton v0.5 була замінена на версію Crypton v1.0. Відмінність нової версії від первинної полягала в зміні таблиці замін та в модифікації процесу розширення ключа.
Структура алгоритму. Основні характеристики
Як і інші учасники конкурсу AES, Crypton призначений для шифрування 128-бітових блоків даних. При шифруванні використовуються ключі шифрування для декількох фіксованих розмірів — від 0 до 256 біт з кратністю 8 бітів. Структура алгоритму Crypton — структура «Квадрата» — багато в чому схожа на структуру алгоритму Square, створеного в 1997 році. Криптографічні перетворення для алгоритмів з даною структурою можуть бути виконані як для цілих рядків і стовпців масиву, так і над окремими його байтами. (Варто зазначити, що алгоритм Square був розроблений авторами майбутнього переможця конкурсу AES — авторами алгоритму Rijndael — Вінсентом Ріджменом і Джоан Дейменом.)
Шифрування
Алгоритм Crypton являє 128-бітовий блок шифруємих даних у вигляді байтового масиву 4×4, над якими в процесі шифрування проводиться кілька раундів перетворень. У кожному раунді передбачається послідовне виконання наступних операцій:
- Таблична заміна ;
- Лінійне перетворення ;
- Байтова перестановка ;
- Операція .
Таблична заміна
Алгоритм Crypton використовує 4 таблиці замін. Кожна з яких заміщає 8-бітне вхідне значення на вихідне такого ж розміру.
Всі таблиці є похідними від основної таблиці (див. рисунок — обчислення похідних таблиць замін).
Нижче представлений приклад таблиць: Таблиця :
63 | ec | 59 | aa | db | 8e | 66 | c0 | 37 | 3c | 14 | ff | 13 | 44 | a9 | 91 |
3b | 78 | 8d | ef | c2 | 2a | f0 | d7 | 61 | 9e | a5 | bc | 48 | 15 | 12 | 47 |
ed | 42 | 1a | 33 | 38 | c8 | 17 | 90 | a6 | d5 | 5d | 65 | 6a | fe | 8f | a1 |
93 | c2 | 2f | 0c | 68 | 58 | df | f4 | 45 | 11 | a0 | a7 | 22 | 96 | fb | 7d |
1d | b4 | 84 | e0 | bf | 57 | e9 | 0a | 4e | 83 | cc | 7a | 71 | 39 | c7 | 32 |
74 | 3d | de | 50 | 85 | 06 | 6f | 53 | e8 | ad | 82 | 19 | e1 | ba | 36 | cb |
0e | 28 | f3 | 9b | 4a | 62 | 94 | 1f | bd | f6 | 67 | 41 | d8 | d1 | 2d | a4 |
86 | b7 | 01 | c5 | b0 | 75 | 02 | f9 | 2c | 29 | 6e | d2 | f5 | 8b | fc | 5a |
e4 | 7f | dd | 07 | 55 | b1 | 2b | 89 | 72 | 18 | 3a | 4c | b6 | e3 | 80 | ce |
49 | cf | 6b | b9 | f2 | 0d | dc | 64 | 95 | 46 | f7 | 10 | 9a | 20 | a2 | 3f |
d6 | 87 | 70 | 3e | 21 | fd | 4d | 7b | 3c | ae | 09 | 8a | 04 | b3 | 54 | f8 |
30 | 00 | 56 | d4 | e7 | 25 | bb | ac | 98 | 73 | ea | c9 | 9d | 4f | 7e | 03 |
ab | 92 | a8 | 43 | 0f | fa | 24 | 5c | 1e | 60 | 31 | 97 | cd | c6 | 79 | f5 |
5e | e5 | 34 | 76 | 1c | 81 | b2 | af | 0b | 5d | d9 | e2 | 27 | 6d | d0 | 88 |
c1 | 51 | e6 | 9c | 77 | be | 99 | 23 | da | eb | 52 | 2e | b5 | 08 | 05 | 6c |
b8 | 1b | a3 | 69 | 8c | d3 | 40 | 26 | f1 | c4 | 9f | 35 | ee | 7c | 4b | 16 |
Таблиця
8d | b3 | 65 | aa | 6f | 3a | 99 | 03 | dc | f0 | 50 | ff | 4c | 11 | a6 | 46 |
ec | e1 | 36 | bf | 0b | a8 | c3 | 5f | 85 | 7a | 96 | f2 | 21 | 54 | 48 | 1d |
b7 | 09 | 68 | cc | e0 | 23 | 5c | 42 | 9a | 57 | 75 | 95 | a9 | fb | 3e | 86 |
4e | 2b | bc | 30 | a1 | 61 | 7f | d3 | 15 | 44 | 82 | 9e | 88 | 5a | Ef | f5 |
74 | d2 | 12 | 83 | fe | 5d | a7 | 28 | 39 | 0e | 33 | e9 | c5 | e4 | 1f | c8 |
d1 | f4 | 7b | 41 | 16 | 18 | bd | 4d | a3 | b6 | 0a | 64 | 87 | ea | d8 | 2f |
38 | a0 | cf | 6e | 29 | 89 | 52 | 7c | f6 | db | 9d | 05 | 63 | 47 | b4 | 92 |
1a | de | 04 | 17 | c2 | d5 | 08 | e7 | b0 | a4 | b9 | 4b | 7d | 2e | f3 | 69 |
93 | fd | 77 | 1c | 55 | c6 | ac | 26 | c9 | 60 | e8 | 31 | da | 8f | 02 | 3b |
25 | 3f | ad | e6 | cb | 34 | 73 | 91 | 56 | 19 | df | 40 | 6a | 80 | 8a | fc |
5b | 1e | c1 | f8 | 84 | f7 | 35 | ed | 0f | ba | 24 | 2a | 10 | ce | 51 | e3 |
c0 | 00 | 59 | 53 | 9f | 94 | ee | b2 | 62 | cd | ab | 27 | 76 | 3d | f9 | 0c |
ae | 4a | a2 | 0d | 3c | eb | 90 | 71 | 78 | 81 | c4 | 5e | 37 | 1b | e5 | d7 |
79 | 97 | d0 | d9 | 70 | 06 | ca | be | 2c | 6d | 67 | 8b | 9c | b5 | 43 | 22 |
07 | 45 | 9b | 72 | dd | fa | 66 | 8c | 6b | af | 49 | b8 | d6 | 20 | 14 | b1 |
e2 | 6c | 8e | a5 | 32 | 4f | 01 | 98 | c7 | 13 | 7e | d4 | bb | f1 | 2d | 58 |
Таблиця
b1 | 72 | 76 | bf | ac | ee | 55 | 83 | ed | aa | 47 | d8 | 33 | 95 | 60 | c4 |
9b | 39 | 1e | 0c | 0a | 1d | ff | 26 | 89 | 5b | 22 | f1 | d4 | 40 | c8 | 67 |
9d | a4 | 3c | e7 | c6 | b5 | f7 | dc | 61 | 79 | 15 | 86 | 78 | 6e | eb | 32 |
b0 | ca | 4f | 23 | d2 | fb | 5e | 08 | 24 | 4d | 8a | 10 | 09 | 51 | a3 | 9f |
f6 | 6b | 21 | c3 | 0d | 38 | 99 | 1f | 1c | 90 | 64 | fe | 8b | a6 | 48 | bd |
53 | e1 | ea | 57 | ae | 84 | b2 | 45 | 35 | 02 | 7f | d9 | c7 | 2a | d0 | 7c |
c9 | 18 | 65 | 00 | 97 | 2b | 06 | 6a | 34 | f3 | 2c | 92 | ef | dd | 7a | 56 |
a2 | c4 | 88 | b9 | 50 | 75 | d3 | e4 | 11 | ce | 4b | a7 | fd | 3f | be | 81 |
8e | d5 | 5a | 49 | 42 | 54 | 70 | a1 | df | 87 | ab | 7d | f4 | 12 | 05 | 2e |
27 | 0f | c1 | 30 | 66 | 98 | 3d | cb | b8 | e6 | 9c | 63 | e3 | bc | 19 | fa |
3a | 2f | 9e | f2 | 6f | 1a | 28 | 3b | c2 | 0e | 03 | c0 | b7 | 59 | a9 | d7 |
74 | 85 | d6 | ad | 41 | ec | 8c | 71 | f0 | 93 | 5d | b6 | 1b | 68 | e5 | 44 |
07 | e0 | 14 | 8a | f9 | 73 | cd | 4e | 25 | bb | 31 | 5f | 4a | cc | 8f | 91 |
de | 6d | 7b | f5 | b3 | 29 | a0 | 17 | 6c | da | e8 | 04 | 96 | 82 | 52 | 36 |
43 | 5c | db | 8d | 80 | d1 | e2 | b4 | 58 | 46 | ba | e9 | 01 | 20 | fc | 13 |
16 | f8 | 94 | 62 | 37 | cf | 69 | 9a | af | 77 | c5 | 3e | 7e | a5 | 2d | 0b |
Таблиця :
b1 | f6 | 8e | 07 | 72 | 6b | d5 | e0 | 76 | 21 | 5a | 14 | bf | c3 | 49 | a8 |
ac | 0d | 42 | f9 | ee | 38 | 54 | 73 | 55 | 99 | 70 | cd | 83 | 1f | a1 | 4e |
ed | 1c | df | 25 | aa | 90 | 87 | bb | 47 | 64 | ab | 31 | d8 | fe | 7d | 5f |
33 | 8b | f4 | 4a | 95 | a6 | 12 | cc | 60 | 48 | 05 | 8f | c4 | bd | 2e | 91 |
9b | 53 | 27 | de | 39 | e1 | 0f | 6d | 1e | ea | c1 | 7b | 0c | 57 | 30 | f5 |
0a | ae | 66 | b3 | 1d | 84 | 98 | 29 | ff | b2 | 3d | a0 | 26 | 45 | cb | 17 |
89 | 35 | b8 | 6c | 5b | 02 | e6 | da | 22 | 7f | 9c | e8 | f1 | d9 | 63 | 04 |
d4 | c7 | e3 | 96 | 40 | 2a | bc | 82 | c8 | d0 | 19 | 52 | 67 | 7c | fa | 36 |
9d | c9 | 3a | 43 | a4 | 18 | 2f | 5c | 3c | 65 | 9e | db | e7 | 00 | f2 | 8d |
c6 | 97 | 6f | 80 | b5 | 2b | 1a | d1 | f7 | 06 | 28 | e2 | dc | 6a | 3b | b4 |
61 | 34 | c2 | 58 | 79 | f3 | 0e | 46 | 15 | 2c | 03 | ba | 86 | 92 | c0 | e9 |
78 | ef | b7 | 01 | 6e | dd | 59 | 20 | eb | 7a | a9 | fc | 32 | 56 | d7 | 13 |
b0 | a2 | 74 | 16 | ca | 4c | 85 | f8 | 4f | 88 | d6 | 94 | 23 | b9 | ad | 62 |
d2 | 50 | 41 | 37 | fb | 75 | ec | cf | 5e | d3 | 8c | 69 | 08 | e4 | 71 | 9a |
24 | 11 | f0 | af | 4d | ce | 93 | 77 | 8a | 4b | 5d | c5 | 10 | a7 | b6 | 3e |
09 | fd | 1b | 7e | 51 | 3f | 68 | a5 | a3 | be | e5 | 2d | 9f | 81 | 44 | 0b |
У парних раундах використовується операція в непарних — . Ці операції і таблиці замін вволодіють рядом якостей, які є важливі, особливо для уніфікації операцій шифрування і розшифрування. Властивості таблиць і операцій:
де — поточне значення блоку шифруємих даних. Операції і можна визначити наступним чином:
де:
— поточне значення конкретного байта даних;
— значення байта даних після виконання операції;
Лінійне перетворення
Тут використовується 4 спеціальні константи, шістнадцяткові значення яких наведені нижче:
Ці константи об'єднані в маскуючі послідовності, наведені нижче:
де — операція конкатенації.
Сама ж операція — являє собою бітову перестановку. У непарних раундах використовується операція :
де:
— логічна побітова операція «і»;
і — значення i-го рядка оброблюваних даних до і після виконання операції відповідно.
У парних раундах використовується операція :
Фактично ця операція забезпечує наявність в кожному результуючому байті кожного стовпця двох біт кожного початкового байта того ж стовпця.
Байтова перестановка
Дана перестановка перетворює найпростішим чином рядок даних у стовпець:
Операція
Дана операція є побітовим складанням всього масиву даних з ключем раунду:
де: — нове значення блоку шифруємих даних; — ключ поточного раунду .
Зауважимо, саме 12 раундів шифрування рекомендується автором алгоритму Чьо Хун Лімом, проте сувора кількість раундів не встановлена. Крім 12 раундів шифрування, перед першим раундом алгоритму виконується попередня операція , а по завершенні 12 раундів виконується вихідне перетворення , що складається з послідовно виконуваних операцій , і .
Розшифрування
Розшифрування виконується застосуванням зворотних операцій в зворотній послідовності. Всі операції, крім і є зворотними самим собі, а самі і зв'язані наступними співвідношеннями:
тому при дешифруванні — використовується в парних раундах, а — в непарних.
Варто відзначити ще одну особливість: кожен етап може бути виконуватися паралельно, що важливо при реалізації на сучасних багатоядерних і мультипоточних системах. Алгоритм має структуру SP-мережі, як і Rijndael (який є переможцем конкурсу AES) Також особливістю шифру є те, що для зашифрування та розшифрування може використовуватися одна і та ж процедура, але з різними підключами. Алгоритм ефективний як при програмній, так і апаратній реалізації. Шифр досить швидкий — на конкурсі AES при використанні компілятора Borland C показав найкращі результати серед всіх учасників.
Процедура розширення ключа
Алгоритм Crypton вимагає наявність 128 — бітового ключа для кожного раунду, а також 128 бітового ключа для попередньої операції σ. Розширення ключа відбувається в два етапи:
- на першому етапі відбувається формування восьми розширених ключів;
- на другому етапі відбувається обчислення ключів раундів з розширених ключів.
Формування розширених ключів
Формування розширених ключів відбувається так:
- Якщо ключ шифрування має розмір, менший 256 біт, він доповнюється бітовими нулями, поки не досягне 32-байтового вихідного ключа :
- Ключ K розкладається на послідовності і , перша з яких містить тільки парні байти ключа, друга — тільки непарні:
- Над послідовностями і виконується один раунд шифрування алгоритму Crypton з використанням ключа раунду, що складається з нульових бітів. Відповідно для виконуються перетворення непарного раунду, для відбувається перетворення парного раунду. Результуючі послідовності позначаються як і .
- Відбувається обчислення 8 розширених ключів:
для де і — послідовності, які визначаються наступними формулами:
Обчислення ключів раундів
Для обчислення з розширених ключів — ключів раундів, використовуються наступні константи:
Зауважимо, що псевдовипадкові константи A54FF53A і 3C6EF372 утворюються з дробових частин від чисел і відповідно.
Спочатку обчислюються ключі для попередньої операції σ і першого раунду:
де — i-ий рядок ключа раунду . Як і для шифруємих даних, ключ надається у вигляді таблиці.
Константи обчислюються шляхом побітового циклічного зрушення кожного байта константи на 1 біт вліво.
Для другого та кожного наступного парного раунду ключ обчислюється наступним чином:
- Виконується модифікація перших чотирьох розширених ключів:
де знаком <<< позначена операція побітового циклічного зрушення кожного байта (роздільно) розширеного ключа на вказане число біт вліво, а << — побітового циклічного зрушення всього ключа на вказане число біт вліво.
- Обчислення ключа раунду за допомогою модифікованих розширених ключів:
Аналогічно відбувається обчислення ключів для непарних раундів:
Процедура розширення ключа дозволяє генерувати ключі раундів «на льоту», тобто в процесі шифрування по мірі необхідності. Це явна перевага алгоритму, принаймні тому, що не потрібно пам'яті для зберігання ключів раундів. Для розшифрування можливо і виконання прямої процедури розширення ключа і використання отриманих ключів раундів у зворотному порядку.
Безпека
Недоліки алгоритму Crypton
При аналізі вихідної версії алгоритму, Crypton v0.5, відразу двоє експертів незалежно виявили клас слабких ключів: таких виявилося 2 в ступені 32 256-бітових ключів. Також, була виявлена атака на шестираундову версію алгоритму Crypton, схожа на атаку на алгоритм Square. Це було однією з причин появи нової версії алгоритму — Crypton v1.0.
Переваги алгоритму Crypton
Однак на думку експертів інституту NIST, перераховані вище недоліки не є грубими. Крім того, плюсів у алгоритму було цілком достатньо:
- алгоритм ефективний на програмному та апаратному рівні завдяки високому ступені паралельності і використанні дуже простих логічних операцій ANDS/XORS;
- алгоритм не піддається атакам по часу виконання і споживаної потужності;
- хороша стійкість до існуючих атак;
- можливість розпаралелювання операцій в процесі шифрування;
- швидке розширення ключа, швидке формування ключів: шифрування з списоком ключів йде набагато швидше ніж шифрування з одним блоком, так що це дуже ефективно в додатках, що вимагають часті заміни ключів (наприклад, в хеш-режимі).
- досить висока швидкість на всіх цільових платформах;
- невеликі вимоги до оперативної пам'яті і можливість розширення ключа «на льоту» дозволяють використовувати алгоритм Crypton в смарткартах з мінімальними ресурсами;
- алгоритм підтримує додаткові розміри ключів, крім тих, що були встановлені конкурсом (128, 192, 256 біт).
Розробником була заявлена гарантована стійкість до лінійного та диференційного криптоаналізу і, в цілому, всім існуючим на момент розробки атак. Перероблений ключовий розклад і нові таблиці S-Box виключили всі виявлені недоліки та вразливості.
Інтегральна атака на шифр Crypton (4-х раундовий)
Аналіз безпеки блочно-симетричного шифру (БСШ) Crypton показує, що 12-раундовий самозамінюючий шифр (з однаковими процесами для шифрування та розшифрування) з довжиною блоку 128 біт і довжиною ключа до 128 бітів володіє гарною стійкістю до існуючих атак. Інтегральна атака на 4-х раундовий БСШ Crypton набагато ефективніша, ніж повний перебір по всьому ключовому простору.
Короткий опис шифру
Crypton являє собою блочний шифр. Довжина ключа і довжина блоку 128 біт. Чотири перетворення працюють з проміжним результатом, так званим Станом (State). Стан можна представити у вигляді прямокутного масиву з 16 байт:
- де
Позначимо стовпець з 4 байт як
Так само уявімо ключ шифрування:
- де і .
У шифрі визначено поле Галуа , елементами якого є байти. Байти розглядаються як многочлени над
Операція додавання — при складанні байт відповідні їм многочлени складаються над .
Операція множення — при множенні відповідні їм многочлени перемножуються над і результуючий многочлен береться за модулем від простого многочлена
В процесі роботи алгоритму, ключ розширюється (Key Schedule, Key Expansion). Перші 4 стовпців (по 4 байти) є вихідним ключем . Кожний наступний -й набір з 4 стовпчиків обчислюється з попереднього набору і використовується для -ого раунду, позначимо його . Раунд складається з чотирьох різних елементарних перетворень, які перетворять стан у стан :
- Заміна байт — BS (Byte Substitution): застосування перестановки або
- Зрушення рядків — SR (Shift Rows): циклічне зрушення байт за правилом:
- Замішування стовпців — MC (Mix Columns: кожен стовпець стану змінюється лінійним перетворенням
Інакше кажучи, це є ніщо інше, як множення стовпців на матрицю зліва:
Операція оборотна :
- Додавання раундового ключа — KA (Key Addition): до поточного стану додається раундовий ключ.
Фінальний раунд не містить операції MC. Формули, що зв'язують стан і :
- ;
- ;
Алгоритм реалізації інтегральної атаки
Інтегральна атака заснована на можливості вільного підбору атакуючим деякого набору відкритих текстів для подальшого їх зашифрування. Вона ефективніша, ніж повний перебір по всьому ключовому простору.
Введемо визначення.
— набір з 256 вхідних блоків (масивів State), кожен з яких має байти (назвемо їх активними), значення яких різні для всіх 256 блоків. Інші байти (пасивні) залишаються однаковими для всіх 256 блоків з -набору. Тобто для будь-яких то якщо байт з індексом (i, j) активний і інакше .
- — k активними байтами.
- — множина станів в кінці раунду r.
-набір. Після елементарних перетворень BS і KA блоки -набору дадуть в результаті інший -набір з активними байтами в тих же позиціях, що й вихідний. Перетворення SR змістить ці байти відповідно заданим в ній зміщенням. Після перетворення MC -набору в загальному випадку необов'язково залишиться -набором (результат операції може перестати відповідати визначенню -набору). Так як кожен байт результату MC є лінійною комбінацією (з оборотними коефіцієнтами) чотирьох вхідних байт того ж стовпця , то стовпець з єдиним активним байтом на вході дасть у результаті на виході стовпець з усіма чотирма активними байтами.
Розглянемо шифрування -набору. У всіх блоках буде активний тільки один байт. Значення цього байта по-різному у всіх 256 блоках, а інші байти однакові. У першому раунді перетворення MC перетворює один активний байт в стовпець з 4-ма активними байтами, тобто є . У другому раунді ці 4 байта розійдуться на 4 різні стовпці в результаті перетворення SR, є -набором. Перетворення MC наступного, третього раунду перетворює ці байти в 4 стовпці, що містять активні байти. Цей набір все ще залишається -набором до того моменту, коли він надходить на вхід MC третього раунду.
Основна властивість -набору — порозрядна сума за модулем 2 () всіх байтів, які перебувають на одних і тих же місцях, по всьому набору дорівнює нулю (порозрядна сума неактивних (з однаковими значеннями) байтів дорівнює нулю за визначенням операції «», а активні байти, пробігаючи всі 256 значень, також при порозрядному додаванні дадуть нуль)
Результат перетворення MC в третьому раунді байтів вхідного масиву даних в байти вихідного масиву даних — порозрядна сума всіх блоків вихідного набору буде дорівнювати нулю:
Таким чином є . Повна сума даних на вході дорівнює нулю. Ця рівність порушується подальшим перетворенням BS.
Ключ однозначно задається в R поданні:
Для проведення атаки потрібна множина , що складаються з 256 станів. Множину можна отримати застосуванням 2 зворотніх перетворень SR і MC з вхідних даних шифру .
Схема базової інтегральної атаки на 4-раундовий Crypton: Для всіх
для
якщо ,
то
У цій схемі інвертується 4-й раунд крок за кроком, щоб отримати байти повна сума яких дорівнює 0. При сума
Якщо передбачуване значення байта ключа було вірне, то воно буде включене в можливі варіанти на місце . Велика частина невірних значень байта буде відсіяною. За рахунок того, що пошук може проводитися окремо (паралельно) для кожного байта ключа, швидкість підбору всього значення раундового ключа досить велика. Далі за значенням можна знайти , а потім і — вихідний ключ.
Конкурс AES
Першими кроками назустріч зміні стандартів шифрування було створення конкурсу AES. Це був відкритий конкурс, що проводиться інститутом стандартів і технологій США — NIST (National Institute of Standart and Technology). Переможець конкурсу повинен був стати новим стандартом шифрування США. У конкурсі могли брати участь приватні особи, компанії як усередині США, так і за межами країни. Основні вимоги:
- 128 біт — розмір блоку шифруємих даних.
- Три або більшої кількості розмірів ключів має підтримуватися алгоритмом (128, 256, 192 — біт — обов'язкові розміри ключів для конкурсу).
Однак, незважаючи на малу кількість вимог для алгоритмів, було багато побажань:
- алгоритм повинен бути стійкий від криптоаналітичних атак, відомих на момент проведення конкурсу;
- структура алгоритму повинна бути ясною, простою і обґрунтованою;
- повинні бути відсутні слабкі і еквівалентні ключі;
- швидкість шифрування даних повинна бути високою на всіх потенційних апаратних платформах від 8 до 64 бітових.
- структура алгоритму повинна дозволяти розпаралелювати операції в багатопроцесорних системах і апаратних реалізаціях.
- алгоритм повинен пред'являти мінімальні вимоги до оперативної та енергонезалежної пам'яті.
- не повинно бути обмежень на використання алгоритмів.
Зауважимо, що учасникам конкурсу AES дозволялося вносити зміни в алгоритми в ході конкурсу, якщо це незначні модифікації. Для алгоритму Crypton при наданні нової версії, журі визнали зміни значними, так як вони стосувалися таблиці замін, процедури розширення ключа. В результаті, на конкурсі брала участь версія Crypton v0.5.
Відсутність явних мінусів і наявність переваг у алгоритмі Crypton все одно не дозволила йому вийти у фінал конкурсу AES. Причиною тому була участь в конкурсі двох алгоритмів: Rijndael і Twofish. Ці алгоритми не мали проблем слабких ключів як у алгоритмі Crypton. Більше того, вони були швидшими ніж Crypton на цільових платформах. Було вирішено, що надалі Crypton програє в будь-якому разі цим алгоритмам, тому експерти конкурсу не пропустили Crypton у фінал. (Rijndael — майбутній переможець конкурсу).
Версії алгоритму Crypton
У конкурсі брала участь первинна редакція алгоритму, яка отримала індекс 0.5 через деякий час. Через деякий час було запропоновано ще кілька редакцій, останньою з якої стала версія 1.0 з переробленим ключовим розкладом і новими таблицями підстановки.
Примітки
- {Chae Hoon Lim, CRYPTON: A New 128-bit Block Cipher — Specification and Analysis (Version 0.5) [ 3 червня 2016 у Wayback Machine.], 1998}
- Joan Daemen, Lars Knudsen, Vincent Rijmen. The Block Cipher Square [ 17 січня 2016 у Wayback Machine.]. Fast Software Encryption (FSE) 1997, Volume 1267 of Lecture Notes in Computer Science. Haifa, Israel: Springer-Verlag, pp. 149–165, 1997
Посилання та Література
- A New 128-bit Block Cipher. [ 4 квітня 2018 у Wayback Machine.] Specification and Analysis. [ 4 квітня 2018 у Wayback Machine.] (англ)
- A New 128-bit Block Cipher Specification and Analysis Other[недоступне посилання з лютого 2019] (англ)
- Chae Hoon Lim. . — DOI: .
- Алгоритмы Шифрования. Специальный Справочник/ Автор: Сергей Петрович Панасенко/ Изд: «БХВ-Санкт-Петербург», 2009
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
CRYPTON algoritm simetrichnogo blokovogo shifruvannya rozmir bloku 128 bit klyuch dovzhinoyu do 256 bit rozroblenij pivdennokorejskim kriptologom Cho Lim Hun angl Chae Hoon Lim z pivdennokorejskoyi kompaniyi Future Systems yaka z kincya 1980 h rokiv pracyuye na rinku zabezpechennya merezh i zahistu informaciyi CRYPTONRozrobnikiCho Hun Lim Future Systems Inc Upershe oprilyudnenij1998 1999Raundiv12TipSP merezha Algoritm buv rozroblenij v 1998 roci dlya uchasti u konkursi AES Yak ziznavavsya avtor konstrukciya algoritmu spirayetsya na algoritm SQUARE V algoritmi Crypton nemaye tradicijnih dlya blochnih shifriv merezhi Fejstelya Osnovu danogo shifru stanovit tak zvana SP merezha povtoryuvana ciklova funkciya sho skladayetsya iz zamin perestanovok oriyentovana na rozparalelenu nelinijnu obrobku vsogo bloku danih Krim visokoyi shvidkosti perevagami takih algoritmiv ye polegshennya doslidzhennya stijkosti shifru do metodiv diferencialnogo ta linijnogo kriptoanalizu sho ye na sogodni osnovnimi instrumentami roztinu blochnih shifriv Na konkurs AES bula predstavlena versiya algoritmu Crypton v0 5 Odnak yak kazav Cho Lim Hun jomu ne vistachalo chasu dlya rozrobki povnoyi versiyi I vzhe na pershomu etapi konkursu AES v hodi analizu algoritmiv versiya Crypton v0 5 bula zaminena na versiyu Crypton v1 0 Vidminnist novoyi versiyi vid pervinnoyi polyagala v zmini tablici zamin ta v modifikaciyi procesu rozshirennya klyucha Struktura algoritmu Osnovni harakteristikiYak i inshi uchasniki konkursu AES Crypton priznachenij dlya shifruvannya 128 bitovih blokiv danih Pri shifruvanni vikoristovuyutsya klyuchi shifruvannya dlya dekilkoh fiksovanih rozmiriv vid 0 do 256 bit z kratnistyu 8 bitiv Struktura algoritmu Crypton struktura Kvadrata bagato v chomu shozha na strukturu algoritmu Square stvorenogo v 1997 roci Kriptografichni peretvorennya dlya algoritmiv z danoyu strukturoyu mozhut buti vikonani yak dlya cilih ryadkiv i stovpciv masivu tak i nad okremimi jogo bajtami Varto zaznachiti sho algoritm Square buv rozroblenij avtorami majbutnogo peremozhcya konkursu AES avtorami algoritmu Rijndael Vinsentom Ridzhmenom i Dzhoan Dejmenom Shifruvannya Algoritm Crypton yavlyaye 128 bitovij blok shifruyemih danih u viglyadi bajtovogo masivu 4 4 nad yakimi v procesi shifruvannya provoditsya kilka raundiv peretvoren U kozhnomu raundi peredbachayetsya poslidovne vikonannya nastupnih operacij Tablichna zamina g displaystyle gamma Linijne peretvorennya p displaystyle pi Bajtova perestanovka t displaystyle tau Operaciya s displaystyle sigma Tablichna zamina g displaystyle gamma Tablichna zamina g displaystyle gamma Algoritm Crypton vikoristovuye 4 tablici zamin Kozhna z yakih zamishaye 8 bitne vhidne znachennya na vihidne takogo zh rozmiru Obchislennya pohidnih tablic zamin lt lt n ye ciklichne zrushennya vlivo znachennya obroblyuvanogo bajta na n bitiv Vsi tablici S 0 S 3 displaystyle S 0 S 3 ye pohidnimi vid osnovnoyi tablici S displaystyle S div risunok obchislennya pohidnih tablic zamin Nizhche predstavlenij priklad tablic Tablicya S 0 displaystyle S 0 63 ec 59 aa db 8e 66 c0 37 3c 14 ff 13 44 a9 91 3b 78 8d ef c2 2a f0 d7 61 9e a5 bc 48 15 12 47 ed 42 1a 33 38 c8 17 90 a6 d5 5d 65 6a fe 8f a1 93 c2 2f 0c 68 58 df f4 45 11 a0 a7 22 96 fb 7d 1d b4 84 e0 bf 57 e9 0a 4e 83 cc 7a 71 39 c7 32 74 3d de 50 85 06 6f 53 e8 ad 82 19 e1 ba 36 cb 0e 28 f3 9b 4a 62 94 1f bd f6 67 41 d8 d1 2d a4 86 b7 01 c5 b0 75 02 f9 2c 29 6e d2 f5 8b fc 5a e4 7f dd 07 55 b1 2b 89 72 18 3a 4c b6 e3 80 ce 49 cf 6b b9 f2 0d dc 64 95 46 f7 10 9a 20 a2 3f d6 87 70 3e 21 fd 4d 7b 3c ae 09 8a 04 b3 54 f8 30 00 56 d4 e7 25 bb ac 98 73 ea c9 9d 4f 7e 03 ab 92 a8 43 0f fa 24 5c 1e 60 31 97 cd c6 79 f5 5e e5 34 76 1c 81 b2 af 0b 5d d9 e2 27 6d d0 88 c1 51 e6 9c 77 be 99 23 da eb 52 2e b5 08 05 6c b8 1b a3 69 8c d3 40 26 f1 c4 9f 35 ee 7c 4b 16 Tablicya S 1 displaystyle S 1 8d b3 65 aa 6f 3a 99 03 dc f0 50 ff 4c 11 a6 46 ec e1 36 bf 0b a8 c3 5f 85 7a 96 f2 21 54 48 1d b7 09 68 cc e0 23 5c 42 9a 57 75 95 a9 fb 3e 86 4e 2b bc 30 a1 61 7f d3 15 44 82 9e 88 5a Ef f5 74 d2 12 83 fe 5d a7 28 39 0e 33 e9 c5 e4 1f c8 d1 f4 7b 41 16 18 bd 4d a3 b6 0a 64 87 ea d8 2f 38 a0 cf 6e 29 89 52 7c f6 db 9d 05 63 47 b4 92 1a de 04 17 c2 d5 08 e7 b0 a4 b9 4b 7d 2e f3 69 93 fd 77 1c 55 c6 ac 26 c9 60 e8 31 da 8f 02 3b 25 3f ad e6 cb 34 73 91 56 19 df 40 6a 80 8a fc 5b 1e c1 f8 84 f7 35 ed 0f ba 24 2a 10 ce 51 e3 c0 00 59 53 9f 94 ee b2 62 cd ab 27 76 3d f9 0c ae 4a a2 0d 3c eb 90 71 78 81 c4 5e 37 1b e5 d7 79 97 d0 d9 70 06 ca be 2c 6d 67 8b 9c b5 43 22 07 45 9b 72 dd fa 66 8c 6b af 49 b8 d6 20 14 b1 e2 6c 8e a5 32 4f 01 98 c7 13 7e d4 bb f1 2d 58 Tablicya S 2 displaystyle S 2 b1 72 76 bf ac ee 55 83 ed aa 47 d8 33 95 60 c4 9b 39 1e 0c 0a 1d ff 26 89 5b 22 f1 d4 40 c8 67 9d a4 3c e7 c6 b5 f7 dc 61 79 15 86 78 6e eb 32 b0 ca 4f 23 d2 fb 5e 08 24 4d 8a 10 09 51 a3 9f f6 6b 21 c3 0d 38 99 1f 1c 90 64 fe 8b a6 48 bd 53 e1 ea 57 ae 84 b2 45 35 02 7f d9 c7 2a d0 7c c9 18 65 00 97 2b 06 6a 34 f3 2c 92 ef dd 7a 56 a2 c4 88 b9 50 75 d3 e4 11 ce 4b a7 fd 3f be 81 8e d5 5a 49 42 54 70 a1 df 87 ab 7d f4 12 05 2e 27 0f c1 30 66 98 3d cb b8 e6 9c 63 e3 bc 19 fa 3a 2f 9e f2 6f 1a 28 3b c2 0e 03 c0 b7 59 a9 d7 74 85 d6 ad 41 ec 8c 71 f0 93 5d b6 1b 68 e5 44 07 e0 14 8a f9 73 cd 4e 25 bb 31 5f 4a cc 8f 91 de 6d 7b f5 b3 29 a0 17 6c da e8 04 96 82 52 36 43 5c db 8d 80 d1 e2 b4 58 46 ba e9 01 20 fc 13 16 f8 94 62 37 cf 69 9a af 77 c5 3e 7e a5 2d 0b Tablicya S 3 displaystyle displaystyle S 3 b1 f6 8e 07 72 6b d5 e0 76 21 5a 14 bf c3 49 a8 ac 0d 42 f9 ee 38 54 73 55 99 70 cd 83 1f a1 4e ed 1c df 25 aa 90 87 bb 47 64 ab 31 d8 fe 7d 5f 33 8b f4 4a 95 a6 12 cc 60 48 05 8f c4 bd 2e 91 9b 53 27 de 39 e1 0f 6d 1e ea c1 7b 0c 57 30 f5 0a ae 66 b3 1d 84 98 29 ff b2 3d a0 26 45 cb 17 89 35 b8 6c 5b 02 e6 da 22 7f 9c e8 f1 d9 63 04 d4 c7 e3 96 40 2a bc 82 c8 d0 19 52 67 7c fa 36 9d c9 3a 43 a4 18 2f 5c 3c 65 9e db e7 00 f2 8d c6 97 6f 80 b5 2b 1a d1 f7 06 28 e2 dc 6a 3b b4 61 34 c2 58 79 f3 0e 46 15 2c 03 ba 86 92 c0 e9 78 ef b7 01 6e dd 59 20 eb 7a a9 fc 32 56 d7 13 b0 a2 74 16 ca 4c 85 f8 4f 88 d6 94 23 b9 ad 62 d2 50 41 37 fb 75 ec cf 5e d3 8c 69 08 e4 71 9a 24 11 f0 af 4d ce 93 77 8a 4b 5d c5 10 a7 b6 3e 09 fd 1b 7e 51 3f 68 a5 a3 be e5 2d 9f 81 44 0b U parnih raundah vikoristovuyetsya operaciya g e displaystyle gamma e v neparnih g o displaystyle gamma o Ci operaciyi i tablici zamin vvolodiyut ryadom yakostej yaki ye vazhlivi osoblivo dlya unifikaciyi operacij shifruvannya i rozshifruvannya Vlastivosti tablic i operacij g e g o A g o g e A A displaystyle gamma e gamma o A gamma o gamma e A A S 1 S displaystyle S 1 S S 2 S 0 1 4 displaystyle S 2 S 0 1 4 S 3 S 1 1 displaystyle S 3 S 1 1 dd de A displaystyle A potochne znachennya bloku shifruyemih danih Operaciyi g e displaystyle gamma e i g o displaystyle gamma o mozhna viznachiti nastupnim chinom g e b i j S j 2 i m o d 4 a i j displaystyle gamma e b ij S j 2 imod4 a ij g o b i j S j i m o d 4 a i j displaystyle gamma o b ij S j imod4 a ij dd de a i j displaystyle a ij potochne znachennya konkretnogo bajta danih b i j displaystyle b ij b i j displaystyle b ij b i j displaystyle b ij znachennya bajta danih pislya vikonannya operaciyi Linijne peretvorennya p displaystyle displaystyle pi Linijne peretvorennya Tut vikoristovuyetsya 4 specialni konstanti shistnadcyatkovi znachennya yakih navedeni nizhche m 0 F C displaystyle displaystyle m 0 FC dd m 1 F 3 displaystyle displaystyle m 1 F3 dd m 2 C F displaystyle displaystyle m 2 CF dd m 3 3 F displaystyle m 3 3F dd Ci konstanti ob yednani v maskuyuchi poslidovnosti navedeni nizhche M 0 m 3 m 2 m 1 m 0 displaystyle displaystyle M 0 m 3 bullet m 2 bullet m 1 bullet m 0 dd M 1 m 0 m 3 m 2 m 1 displaystyle displaystyle M 1 m 0 bullet m 3 bullet m 2 bullet m 1 dd M 2 m 1 m 0 m 3 m 2 displaystyle displaystyle M 2 m 1 bullet m 0 bullet m 3 bullet m 2 dd M 3 m 2 m 1 m 0 m 3 displaystyle M 3 m 2 bullet m 1 bullet m 0 bullet m 3 dd de displaystyle bullet operaciya konkatenaciyi Sama zh operaciya p displaystyle pi yavlyaye soboyu bitovu perestanovku U neparnih raundah vikoristovuyetsya operaciya p o displaystyle pi o B 0 A 3 amp M 3 A 2 amp M 2 A 1 amp M 1 A 0 amp M 0 displaystyle B 0 A 3 amp M 3 oplus A 2 amp M 2 oplus A 1 amp M 1 oplus A 0 amp M 0 dd B 1 A 3 amp M 0 A 2 amp M 3 A 1 amp M 2 A 0 amp M 1 displaystyle B 1 A 3 amp M 0 oplus A 2 amp M 3 oplus A 1 amp M 2 oplus A 0 amp M 1 dd B 2 A 3 amp M 1 A 2 amp M 0 A 1 amp M 3 A 0 amp M 2 displaystyle B 2 A 3 amp M 1 oplus A 2 amp M 0 oplus A 1 amp M 3 oplus A 0 amp M 2 dd B 3 A 3 amp M 2 A 2 amp M 1 A 1 amp M 0 A 0 amp M 3 displaystyle B 3 A 3 amp M 2 oplus A 2 amp M 1 oplus A 1 amp M 0 oplus A 0 amp M 3 dd de amp displaystyle amp logichna pobitova operaciya i A i displaystyle displaystyle A i i B i displaystyle displaystyle B i znachennya i go ryadka obroblyuvanih danih do i pislya vikonannya operaciyi vidpovidno U parnih raundah vikoristovuyetsya operaciya p e displaystyle pi e B 0 A 3 amp M 1 A 2 amp M 0 A 1 amp M 3 A 0 amp M 2 displaystyle B 0 A 3 amp M 1 oplus A 2 amp M 0 oplus A 1 amp M 3 oplus A 0 amp M 2 dd B 1 A 3 amp M 2 A 2 amp M 1 A 1 amp M 0 A 0 amp M 3 displaystyle B 1 A 3 amp M 2 oplus A 2 amp M 1 oplus A 1 amp M 0 oplus A 0 amp M 3 dd B 2 A 3 amp M 3 A 2 amp M 2 A 1 amp M 1 A 0 amp M 0 displaystyle B 2 A 3 amp M 3 oplus A 2 amp M 2 oplus A 1 amp M 1 oplus A 0 amp M 0 dd B 3 A 3 amp M 0 A 2 amp M 3 A 1 amp M 2 A 0 amp M 1 displaystyle B 3 A 3 amp M 0 oplus A 2 amp M 3 oplus A 1 amp M 2 oplus A 0 amp M 1 dd Faktichno cya operaciya zabezpechuye nayavnist v kozhnomu rezultuyuchomu bajti kozhnogo stovpcya dvoh bit kozhnogo pochatkovogo bajta togo zh stovpcya Bajtova perestanovka t displaystyle displaystyle tau Bajtova perestanovka Dana perestanovka peretvoryuye najprostishim chinom ryadok danih u stovpec t b i j a i j displaystyle tau b ij a ij dd Operaciya s displaystyle displaystyle sigma Pobitove dodavannya vsogo masivu danih z klyuchem raundu Dana operaciya ye pobitovim skladannyam vsogo masivu danih z klyuchem raundu s B A K r displaystyle sigma B A oplus K r dd de B displaystyle B nove znachennya bloku shifruyemih danih K r displaystyle K r klyuch potochnogo raundu r displaystyle r Zauvazhimo same 12 raundiv shifruvannya rekomenduyetsya avtorom algoritmu Cho Hun Limom prote suvora kilkist raundiv ne vstanovlena Krim 12 raundiv shifruvannya pered pershim raundom algoritmu vikonuyetsya poperednya operaciya s displaystyle sigma a po zavershenni 12 raundiv vikonuyetsya vihidne peretvorennya ϕ e displaystyle phi e sho skladayetsya z poslidovno vikonuvanih operacij t displaystyle tau p e displaystyle pi e i t displaystyle tau Rozshifruvannya Rozshifruvannya vikonuyetsya zastosuvannyam zvorotnih operacij v zvorotnij poslidovnosti Vsi operaciyi krim g e displaystyle gamma e i g o displaystyle gamma o ye zvorotnimi samim sobi a sami g e displaystyle gamma e i g o displaystyle gamma o zv yazani nastupnimi spivvidnoshennyami g e 1 g o displaystyle gamma e 1 gamma o dd g o 1 g e displaystyle gamma o 1 gamma e dd tomu pri deshifruvanni g o displaystyle gamma o vikoristovuyetsya v parnih raundah a g e displaystyle gamma e v neparnih Varto vidznachiti she odnu osoblivist kozhen etap mozhe buti vikonuvatisya paralelno sho vazhlivo pri realizaciyi na suchasnih bagatoyadernih i multipotochnih sistemah Algoritm maye strukturu SP merezhi yak i Rijndael yakij ye peremozhcem konkursu AES Takozh osoblivistyu shifru ye te sho dlya zashifruvannya ta rozshifruvannya mozhe vikoristovuvatisya odna i ta zh procedura ale z riznimi pidklyuchami Algoritm efektivnij yak pri programnij tak i aparatnij realizaciyi Shifr dosit shvidkij na konkursi AES pri vikoristanni kompilyatora Borland C pokazav najkrashi rezultati sered vsih uchasnikiv Procedura rozshirennya klyuchaAlgoritm Crypton vimagaye nayavnist 128 bitovogo klyucha dlya kozhnogo raundu a takozh 128 bitovogo klyucha dlya poperednoyi operaciyi s Rozshirennya klyucha vidbuvayetsya v dva etapi na pershomu etapi vidbuvayetsya formuvannya vosmi rozshirenih klyuchiv na drugomu etapi vidbuvayetsya obchislennya klyuchiv raundiv z rozshirenih klyuchiv Formuvannya rozshirenih klyuchiv Formuvannya rozshirenih klyuchiv vidbuvayetsya tak Yaksho klyuch shifruvannya maye rozmir menshij 256 bit vin dopovnyuyetsya bitovimi nulyami poki ne dosyagne 32 bajtovogo vihidnogo klyucha K displaystyle K K k 31 k 1 k 0 displaystyle K k 31 bullet bullet k 1 bullet k 0 dd Klyuch K rozkladayetsya na poslidovnosti U displaystyle U i V displaystyle V persha z yakih mistit tilki parni bajti klyucha druga tilki neparni U U 3 U 2 U 1 U 0 displaystyle U U 3 bullet U 2 bullet U 1 bullet U 0 U k 8 i 6 k 8 i 4 k 8 i 2 k 8 i displaystyle U k 8i 6 bullet k 8i 4 bullet k 8i 2 bullet k 8i U k 8 i 6 k 8 i 4 k 8 i 2 k 8 i displaystyle U k 8i 6 bullet k 8i 4 bullet k 8i 2 bullet k 8i V k 8 i 7 k 8 i 5 k 8 i 3 k 8 i 1 displaystyle V k 8i 7 bullet k 8i 5 bullet k 8i 3 bullet k 8i 1 dd Nad poslidovnostyami U displaystyle U i V displaystyle V vikonuyetsya odin raund shifruvannya algoritmu Crypton z vikoristannyam klyucha raundu sho skladayetsya z nulovih bitiv Vidpovidno dlya U displaystyle U vikonuyutsya peretvorennya neparnogo raundu dlya V displaystyle V vidbuvayetsya peretvorennya parnogo raundu Rezultuyuchi poslidovnosti poznachayutsya yak U displaystyle U i V displaystyle V Vidbuvayetsya obchislennya 8 rozshirenih klyuchiv K e i U i T 1 displaystyle Ke i U i oplus T 1 K e i 4 U i T 0 displaystyle Ke i 4 U i oplus T 0 dd dlya i 0 1 2 3 displaystyle i 0 1 2 3 de T 1 displaystyle T 1 i T 0 displaystyle T 0 poslidovnosti yaki viznachayutsya nastupnimi formulami T 0 U 0 U 1 U 2 U 3 displaystyle T 0 U 0 oplus U 1 oplus U 2 oplus U 3 T 1 V 0 V 1 V 2 V 3 displaystyle T 1 V 0 oplus V 1 oplus V 2 oplus V 3 dd Obchislennya klyuchiv raundiv Dlya obchislennya z rozshirenih klyuchiv klyuchiv raundiv vikoristovuyutsya nastupni konstanti C 0 A 54 F F 53 A displaystyle C 0 A54FF53A C i C i 1 3 C 6 E F 372 m o d 2 32 displaystyle C i C i 1 3C6EF372mod2 32 M c 0 A C A C A C A C displaystyle Mc 0 ACACACAC dd Zauvazhimo sho psevdovipadkovi konstanti A54FF53A i 3C6EF372 utvoryuyutsya z drobovih chastin vid chisel 7 displaystyle sqrt 7 i 5 displaystyle sqrt 5 vidpovidno Spochatku obchislyuyutsya klyuchi dlya poperednoyi operaciyi s i pershogo raundu K 0 i K e i C 0 M c i displaystyle K 0 i Ke i oplus C 0 oplus Mc i K 1 i K e i 4 C 1 M c i displaystyle K 1 i Ke i 4 oplus C 1 oplus Mc i dd de K r i displaystyle K r i i ij ryadok klyucha raundu r displaystyle r Yak i dlya shifruyemih danih klyuch nadayetsya u viglyadi tablici Podannya klyucha u viglyadi tablici analogichno shifruyemim danim Konstanti M c i i displaystyle Mc i i obchislyuyutsya shlyahom pobitovogo ciklichnogo zrushennya kozhnogo bajta konstanti M c i 1 displaystyle Mc i 1 na 1 bit vlivo Dlya drugogo ta kozhnogo nastupnogo parnogo raundu klyuch obchislyuyetsya nastupnim chinom Vikonuyetsya modifikaciya pershih chotiroh rozshirenih klyuchiv K e 3 K e 2 K e 1 K e 0 K e 0 lt lt lt 6 K e 3 lt lt lt 6 K e 2 lt lt 16 K e 1 lt lt 24 displaystyle Ke 3 Ke 2 Ke 1 Ke 0 leftarrow Ke 0 lt lt lt 6 Ke 3 lt lt lt 6 Ke 2 lt lt 16 Ke 1 lt lt 24 dd de znakom lt lt lt poznachena operaciya pobitovogo ciklichnogo zrushennya kozhnogo bajta rozdilno rozshirenogo klyucha na vkazane chislo bit vlivo a lt lt pobitovogo ciklichnogo zrushennya vsogo klyucha na vkazane chislo bit vlivo Obchislennya klyucha raundu za dopomogoyu modifikovanih rozshirenih klyuchiv K r i K e i C r M c i displaystyle K r i Ke i oplus C r oplus Mc i dd Analogichno vidbuvayetsya obchislennya klyuchiv dlya neparnih raundiv K e 7 K e 6 K e 5 K e 4 K e 6 lt lt 16 K e 5 lt lt 8 K e 4 lt lt lt 2 K e 7 lt lt lt 2 displaystyle Ke 7 Ke 6 Ke 5 Ke 4 leftarrow Ke 6 lt lt 16 Ke 5 lt lt 8 Ke 4 lt lt lt 2 Ke 7 lt lt lt 2 K r i K e i 4 C r M c i displaystyle K r i Ke i 4 oplus C r oplus Mc i dd Procedura rozshirennya klyucha dozvolyaye generuvati klyuchi raundiv na lotu tobto v procesi shifruvannya po miri neobhidnosti Ce yavna perevaga algoritmu prinajmni tomu sho ne potribno pam yati dlya zberigannya klyuchiv raundiv Dlya rozshifruvannya mozhlivo i vikonannya pryamoyi proceduri rozshirennya klyucha i vikoristannya otrimanih klyuchiv raundiv u zvorotnomu poryadku BezpekaNedoliki algoritmu Crypton Pri analizi vihidnoyi versiyi algoritmu Crypton v0 5 vidrazu dvoye ekspertiv nezalezhno viyavili klas slabkih klyuchiv takih viyavilosya 2 v stupeni 32 256 bitovih klyuchiv Takozh bula viyavlena ataka na shestiraundovu versiyu algoritmu Crypton shozha na ataku na algoritm Square Ce bulo odniyeyu z prichin poyavi novoyi versiyi algoritmu Crypton v1 0 Perevagi algoritmu Crypton Odnak na dumku ekspertiv institutu NIST pererahovani vishe nedoliki ne ye grubimi Krim togo plyusiv u algoritmu bulo cilkom dostatno algoritm efektivnij na programnomu ta aparatnomu rivni zavdyaki visokomu stupeni paralelnosti i vikoristanni duzhe prostih logichnih operacij ANDS XORS algoritm ne piddayetsya atakam po chasu vikonannya i spozhivanoyi potuzhnosti horosha stijkist do isnuyuchih atak mozhlivist rozparalelyuvannya operacij v procesi shifruvannya shvidke rozshirennya klyucha shvidke formuvannya klyuchiv shifruvannya z spisokom klyuchiv jde nabagato shvidshe nizh shifruvannya z odnim blokom tak sho ce duzhe efektivno v dodatkah sho vimagayut chasti zamini klyuchiv napriklad v hesh rezhimi dosit visoka shvidkist na vsih cilovih platformah neveliki vimogi do operativnoyi pam yati i mozhlivist rozshirennya klyucha na lotu dozvolyayut vikoristovuvati algoritm Crypton v smartkartah z minimalnimi resursami algoritm pidtrimuye dodatkovi rozmiri klyuchiv krim tih sho buli vstanovleni konkursom 128 192 256 bit Rozrobnikom bula zayavlena garantovana stijkist do linijnogo ta diferencijnogo kriptoanalizu i v cilomu vsim isnuyuchim na moment rozrobki atak Pereroblenij klyuchovij rozklad i novi tablici S Box viklyuchili vsi viyavleni nedoliki ta vrazlivosti Integralna ataka na shifr Crypton 4 h raundovij Analiz bezpeki blochno simetrichnogo shifru BSSh Crypton pokazuye sho 12 raundovij samozaminyuyuchij shifr z odnakovimi procesami dlya shifruvannya ta rozshifruvannya z dovzhinoyu bloku 128 bit i dovzhinoyu klyucha do 128 bitiv volodiye garnoyu stijkistyu do isnuyuchih atak Integralna ataka na 4 h raundovij BSSh Crypton nabagato efektivnisha nizh povnij perebir po vsomu klyuchovomu prostoru Korotkij opis shifru Crypton yavlyaye soboyu blochnij shifr Dovzhina klyucha i dovzhina bloku 128 bit Chotiri peretvorennya pracyuyut z promizhnim rezultatom tak zvanim Stanom State Stan mozhna predstaviti u viglyadi pryamokutnogo masivu z 16 bajt A i j displaystyle displaystyle A i j de A 0 3 displaystyle displaystyle A in 0 3 dd Poznachimo stovpec z 4 bajt yak A j A 0 j A 1 j A 2 j A 3 j displaystyle displaystyle A j A 0j A 1j A 2j A 3j Tak samo uyavimo klyuch shifruvannya K i j displaystyle displaystyle K i j de K 0 3 displaystyle K in 0 3 i K j K 0 j K 1 j K 2 j K 3 j displaystyle K j K 0j K 1j K 2j K 3j dd U shifri viznacheno pole Galua G F 2 8 displaystyle GF 2 8 elementami yakogo ye bajti Bajti rozglyadayutsya yak mnogochleni nad Z 2 displaystyle displaystyle Z 2 b b 7 x 7 b 6 x 6 b 5 x 5 b 4 x 4 b 3 x 3 b 2 x 2 b 1 x 1 b 0 displaystyle b leftrightarrow b 7 x 7 b 6 x 6 b 5 x 5 b 4 x 4 b 3 x 3 b 2 x 2 b 1 x 1 b 0 dd Operaciya dodavannya displaystyle oplus pri skladanni bajt vidpovidni yim mnogochleni skladayutsya nad Z 2 displaystyle Z 2 Operaciya mnozhennya pri mnozhenni vidpovidni yim mnogochleni peremnozhuyutsya nad Z 2 displaystyle Z 2 i rezultuyuchij mnogochlen beretsya za modulem vid prostogo mnogochlena m x x 8 x 4 x 3 x 1 1 displaystyle m x x 8 x 4 x 3 x 1 1 dd V procesi roboti algoritmu klyuch K i j displaystyle displaystyle K i j rozshiryuyetsya Key Schedule Key Expansion Pershi 4 stovpciv po 4 bajti ye vihidnim klyuchem K 0 displaystyle K 0 Kozhnij nastupnij r displaystyle r j nabir z 4 stovpchikiv obchislyuyetsya z poperednogo naboru i vikoristovuyetsya dlya r displaystyle r ogo raundu poznachimo jogo K r K i j r displaystyle K r K i j r Raund skladayetsya z chotiroh riznih elementarnih peretvoren yaki peretvoryat stan A A i j displaystyle A A i j u stan B B i j displaystyle B B i j Zamina bajt BS Byte Substitution zastosuvannya perestanovki S displaystyle S abo B i j S A i j displaystyle displaystyle B i j S A i j Zrushennya ryadkiv SR Shift Rows ciklichne zrushennya bajt za pravilom B i j A i j 1 m o d 4 displaystyle displaystyle B i j A i j 1 mod4 Zamishuvannya stovpciv MC Mix Columns kozhen stovpec stanu zminyuyetsya linijnim peretvorennyam m 0 1 32 0 1 32 displaystyle displaystyle mu 0 1 32 rightarrow 0 1 32 Inakshe kazhuchi ce ye nisho inshe yak mnozhennya stovpciv na matricyu zliva B m A E 2 3 1 1 1 2 3 1 1 1 2 3 3 1 1 2 displaystyle displaystyle B mu A E begin pmatrix 2 amp 3 amp 1 amp 1 1 amp 2 amp 3 amp 1 1 amp 1 amp 2 amp 3 3 amp 1 amp 1 amp 2 end pmatrix Operaciya m displaystyle mu oborotna A j m 1 B j displaystyle displaystyle A j mu 1 B j Dodavannya raundovogo klyucha KA Key Addition do potochnogo stanu dodayetsya raundovij klyuch Finalnij raund ne mistit operaciyi MC Formuli sho zv yazuyut stan A r displaystyle A r i A r 1 displaystyle A r 1 A r M C S R S A r 1 K r 1 displaystyle displaystyle A r MC SR S A r 1 oplus K r 1 A r 1 S 1 S R 1 M C 1 A r K r 1 displaystyle displaystyle A r 1 S 1 SR 1 MC 1 A r oplus K r 1 dd Algoritm realizaciyi integralnoyi ataki Integralna ataka zasnovana na mozhlivosti vilnogo pidboru atakuyuchim deyakogo naboru vidkritih tekstiv dlya podalshogo yih zashifruvannya Vona efektivnisha nizh povnij perebir po vsomu klyuchovomu prostoru Vvedemo viznachennya L displaystyle displaystyle Lambda nabir z 256 vhidnih blokiv masiviv State kozhen z yakih maye bajti nazvemo yih aktivnimi znachennya yakih rizni dlya vsih 256 blokiv Inshi bajti pasivni zalishayutsya odnakovimi dlya vsih 256 blokiv z L displaystyle displaystyle Lambda naboru Tobto dlya bud yakih A B L displaystyle A B in Lambda to A i j B i j displaystyle A ij neq B ij yaksho bajt z indeksom i j aktivnij i inakshe A i j B i j displaystyle A ij B ij L r displaystyle displaystyle Lambda r L displaystyle displaystyle Lambda k aktivnimi bajtami P r displaystyle displaystyle P r mnozhina staniv v kinci raundu r dd L displaystyle displaystyle Lambda nabir Pislya elementarnih peretvoren BS i KA bloki L displaystyle displaystyle Lambda naboru dadut v rezultati inshij L displaystyle displaystyle Lambda nabir z aktivnimi bajtami v tih zhe poziciyah sho j vihidnij Peretvorennya SR zmistit ci bajti vidpovidno zadanim v nij zmishennyam Pislya peretvorennya MC L displaystyle displaystyle Lambda naboru v zagalnomu vipadku neobov yazkovo zalishitsya L displaystyle displaystyle Lambda naborom rezultat operaciyi mozhe perestati vidpovidati viznachennyu L displaystyle displaystyle Lambda naboru Tak yak kozhen bajt B i j displaystyle B ij rezultatu MC ye linijnoyu kombinaciyeyu z oborotnimi koeficiyentami chotiroh vhidnih bajt togo zh stovpcya B i j 2 A i j 3 A i 1 m o d 4 j A i 2 m o d 4 j A i 3 m o d 4 j displaystyle B ij 2A ij oplus 3A i 1mod4j oplus A i 2mod4j oplus A i 3mod4j to stovpec z yedinim aktivnim bajtom na vhodi dast u rezultati na vihodi stovpec z usima chotirma aktivnimi bajtami Rozglyanemo shifruvannya L 1 displaystyle displaystyle Lambda 1 naboru U vsih blokah bude aktivnij tilki odin bajt Znachennya cogo bajta po riznomu u vsih 256 blokah a inshi bajti odnakovi U pershomu raundi peretvorennya MC peretvoryuye odin aktivnij bajt v stovpec z 4 ma aktivnimi bajtami tobto P 1 displaystyle P 1 ye L 4 displaystyle Lambda 4 U drugomu raundi ci 4 bajta rozijdutsya na 4 rizni stovpci v rezultati peretvorennya SR P 2 displaystyle P 2 ye L 16 displaystyle Lambda 16 naborom Peretvorennya MC nastupnogo tretogo raundu peretvoryuye ci bajti v 4 stovpci sho mistyat aktivni bajti Cej nabir vse she zalishayetsya L displaystyle displaystyle Lambda naborom do togo momentu koli vin nadhodit na vhid MC tretogo raundu Osnovna vlastivist L displaystyle displaystyle Lambda naboru porozryadna suma za modulem 2 displaystyle oplus vsih bajtiv yaki perebuvayut na odnih i tih zhe miscyah po vsomu naboru dorivnyuye nulyu porozryadna suma neaktivnih z odnakovimi znachennyami bajtiv dorivnyuye nulyu za viznachennyam operaciyi displaystyle oplus a aktivni bajti probigayuchi vsi 256 znachen takozh pri porozryadnomu dodavanni dadut nul Rezultat peretvorennya MC v tretomu raundi bajtiv vhidnogo masivu danih A displaystyle A v bajti vihidnogo masivu danih B displaystyle B porozryadna suma vsih blokiv vihidnogo naboru bude dorivnyuvati nulyu B M C A A L 1 6 B i j A L 1 6 2 A i j 3 A i 1 m o d 4 j A i 2 m o d 4 j A i 3 m o d 4 j 0 displaystyle oplus B MC A A in Lambda 1 6 B ij oplus A in Lambda 1 6 2A ij oplus 3A i 1mod4j oplus A i 2mod4j oplus A i 3mod4j 0 dd Takim chinom P 3 displaystyle P 3 ye L 16 displaystyle Lambda 16 Povna suma danih na vhodi dorivnyuye nulyu Cya rivnist porushuyetsya podalshim peretvorennyam BS Klyuch K r displaystyle K r odnoznachno zadayetsya v R podanni L r S R 1 M C 1 K r displaystyle L r SR 1 MC 1 K r K r M C S R L r displaystyle K r MC SR L r dd Dlya provedennya ataki potribna mnozhina Q 4 displaystyle Q 4 sho skladayutsya z 256 staniv Q r S R 1 M C 1 A A P r displaystyle Q r SR 1 MC 1 A A in P r Mnozhinu Q 4 displaystyle Q 4 mozhna otrimati zastosuvannyam 2 zvorotnih peretvoren SR i MC z vhidnih danih shifru P 4 displaystyle P 4 Shema bazovoyi integralnoyi ataki na 4 raundovij Crypton Dlya vsih i j 0 1 2 3 displaystyle displaystyle i j in 0 1 2 3 dlya k i n G F 2 8 displaystyle displaystyle k inGF 2 8 yaksho Z Q S 1 Z i j k 0 displaystyle oplus Z in Q S 1 Z ij oplus k neq 0 to L i j 4 k displaystyle displaystyle L ij 4 neq k U cij shemi invertuyetsya 4 j raund krok za krokom shob otrimati bajti P 3 displaystyle displaystyle P 3 povna suma yakih dorivnyuye 0 Pri L i j 4 k displaystyle L ij 4 k suma Z Q S 1 Z i j k 0 displaystyle displaystyle oplus Z in Q S 1 Z ij oplus k 0 Yaksho peredbachuvane znachennya bajta klyucha bulo virne to vono bude vklyuchene v mozhlivi varianti na misce L 4 displaystyle displaystyle L 4 Velika chastina nevirnih znachen bajta bude vidsiyanoyu Za rahunok togo sho poshuk mozhe provoditisya okremo paralelno dlya kozhnogo bajta klyucha shvidkist pidboru vsogo znachennya raundovogo klyucha dosit velika Dali za znachennyam L 4 displaystyle L 4 mozhna znajti K 4 displaystyle K 4 a potim i K 0 displaystyle K 0 vihidnij klyuch Konkurs AESPershimi krokami nazustrich zmini standartiv shifruvannya bulo stvorennya konkursu AES Ce buv vidkritij konkurs sho provoditsya institutom standartiv i tehnologij SShA NIST National Institute of Standart and Technology Peremozhec konkursu povinen buv stati novim standartom shifruvannya SShA U konkursi mogli brati uchast privatni osobi kompaniyi yak useredini SShA tak i za mezhami krayini Osnovni vimogi 128 bit rozmir bloku shifruyemih danih Tri abo bilshoyi kilkosti rozmiriv klyuchiv maye pidtrimuvatisya algoritmom 128 256 192 bit obov yazkovi rozmiri klyuchiv dlya konkursu Odnak nezvazhayuchi na malu kilkist vimog dlya algoritmiv bulo bagato pobazhan algoritm povinen buti stijkij vid kriptoanalitichnih atak vidomih na moment provedennya konkursu struktura algoritmu povinna buti yasnoyu prostoyu i obgruntovanoyu povinni buti vidsutni slabki i ekvivalentni klyuchi shvidkist shifruvannya danih povinna buti visokoyu na vsih potencijnih aparatnih platformah vid 8 do 64 bitovih struktura algoritmu povinna dozvolyati rozparalelyuvati operaciyi v bagatoprocesornih sistemah i aparatnih realizaciyah algoritm povinen pred yavlyati minimalni vimogi do operativnoyi ta energonezalezhnoyi pam yati ne povinno buti obmezhen na vikoristannya algoritmiv Zauvazhimo sho uchasnikam konkursu AES dozvolyalosya vnositi zmini v algoritmi v hodi konkursu yaksho ce neznachni modifikaciyi Dlya algoritmu Crypton pri nadanni novoyi versiyi zhuri viznali zmini znachnimi tak yak voni stosuvalisya tablici zamin proceduri rozshirennya klyucha V rezultati na konkursi brala uchast versiya Crypton v0 5 Vidsutnist yavnih minusiv i nayavnist perevag u algoritmi Crypton vse odno ne dozvolila jomu vijti u final konkursu AES Prichinoyu tomu bula uchast v konkursi dvoh algoritmiv Rijndael i Twofish Ci algoritmi ne mali problem slabkih klyuchiv yak u algoritmi Crypton Bilshe togo voni buli shvidshimi nizh Crypton na cilovih platformah Bulo virisheno sho nadali Crypton prograye v bud yakomu razi cim algoritmam tomu eksperti konkursu ne propustili Crypton u final Rijndael majbutnij peremozhec konkursu Versiyi algoritmu CryptonU konkursi brala uchast pervinna redakciya algoritmu yaka otrimala indeks 0 5 cherez deyakij chas Cherez deyakij chas bulo zaproponovano she kilka redakcij ostannoyu z yakoyi stala versiya 1 0 z pereroblenim klyuchovim rozkladom i novimi tablicyami pidstanovki Primitki Chae Hoon Lim CRYPTON A New 128 bit Block Cipher Specification and Analysis Version 0 5 3 chervnya 2016 u Wayback Machine 1998 Joan Daemen Lars Knudsen Vincent Rijmen The Block Cipher Square 17 sichnya 2016 u Wayback Machine Fast Software Encryption FSE 1997 Volume 1267 of Lecture Notes in Computer Science Haifa Israel Springer Verlag pp 149 165 1997Posilannya ta LiteraturaA New 128 bit Block Cipher 4 kvitnya 2018 u Wayback Machine Specification and Analysis 4 kvitnya 2018 u Wayback Machine angl A New 128 bit Block Cipher Specification and Analysis Other nedostupne posilannya z lyutogo 2019 angl Chae Hoon Lim DOI 10 1 1 52 5771 Algoritmy Shifrovaniya Specialnyj Spravochnik Avtor Sergej Petrovich Panasenko Izd BHV Sankt Peterburg 2009