Атака "зустріч посередині"
Для подвійного DES існує так звана атака "зустріч посередині". Вона заснована на наступній властивості алгоритму. Ми маємо
С = Ek2 [Ek1 [P]]
Тоді
X = Ek1 [P] = Dk2 [C].
Атака полягає в наступному. Потрібно, щоб атакуючий знав хоча б одну пару незашифрований текст і відповідний йому зашифрований текст: (Р, С). У цьому випадку, по-перше, шифрується Р для всіх можливих 256 значень K1. Цей результат запам'ятовується в таблиці, і потім таблиця впорядковується за значенням Х. Наступний крок складається в дешифруванні С, із застосуванням всіх можливих 256 значень K2. Для кожного виконаного дешифрування шукається рівне йому значення в першій таблиці. Якщо відповідне значення знайдене, то вважається, що ці ключі можуть бути правильними, і вони перевіряються для наступної відомої пари: незашифрований текст, зашифрований текст.
Якщо відомо тільки одну пару значень: незашифрований текст, зашифрований текст, то може бути отримана досить велика кількість невірних значень ключів. Але якщо супротивник має можливість перехопити хоча б дві пари значень (незашифрований текст - зашифрований текст), то складність взлому подвійного DES фактично стає рівною складності взлому звичайного DES, тобто 256.
Атаки на варіанти зі зменшеним числом раундів
Нижче в таблиці наведені атаки на варіанти зі зменшеним числом раундів. Для кожної атаки в таблиці зазначене число раундів, при якому може здійснюватися атака, довжина ключа, тип атаки й необхідні ресурси. Для атаки може вимагатися три категорії ресурсів: обчислювальні, пам'ять, інформація.
У стовпці "Текст" зазначена інформація, необхідна для здійснення атаки, зокрема, кількість блоків незашифрованого тексту й відповідних їм блоків зашифрованого даним ключем тексту. Для більшості атак супротивникові недостатньо перехопити довільні тексти; незашифрований текст повинен мати конкретну форму, обрану супротивником. Такі незашифровані тексти називаються обраними незашифрованими текстами. Варто помітити, що існують атаки, які можуть використовувати будь-який відомий незашифрований текст на противагу обраному незашифрованому тексту.
У стовпці "Байти пам'яті" зазначене найбільше число байтів пам'яті, які потрібні в будь-якій точці здійснення атаки; це необов'язково еквівалентно зберіганню всієї необхідної інформації.
Стовпець "Операції" містить очікуване число операцій, яке необхідно для здійснення атаки. Важко перетворити дане число в оцінку часу, тому що час залежить від обчислювальних можливостей, а також від можливості паралельного виконання процедур. Природа операцій також є певним чинником; звичайно розглядаються операції повного шифрування, але операцією може бути також часткове шифрування або інша операція. Навіть у випадку повного шифрування для виконання може вимагатися різний час. Отже, число операцій, необхідних для атаки, повинне розглядатися тільки як приблизна основа для порівняння різних атак.
Можуть використовуватися різні набори тестів, що забезпечують повний перебір ключів. У принципі, таким способом може бути атакований будь-який блоковий алгоритм шифрування. Для трьох варіантів розміру ключа AES повний перебір ключів вимагає в середньому 2127, 2191 або 2255 операцій. Навіть найменше із цих чисел говорить про те, що на сьогоднішній день атака за допомогою перебору всіх ключів не має практичного значення.
Таблиця 12.1 - Атаки на варіанти зі зменшеним числом раундів
Алгоритм, раунди |
Раунди (довжина ключа) |
Тип атаки |
Текст |
Байти пам'яті |
Операції |
MARS 16 Core (C) 16 Mixing (M) |
11C |
Amp. Boomerang |
265 |
270 |
2229 |
16M, 5C |
Meet-in-Middle |
8 |
2236 |
2232 |
|
16M, 5C |
Diff.M-i-M |
250 |
2197 |
2247 |
|
6M, 6C |
Amp. Boomerang |
269 |
273 |
2197 |
|
RC6 20 |
14 |
Stat. Disting. |
2118 |
2112 |
2122 |
12 |
Stat. Disting. |
294 |
242 |
2119 |
|
14 (192,256) |
Stat. Disting. |
2110 |
242 |
2135 |
|
14 (192,256) |
Stat. Disting. |
2108 |
274 |
2160 |
|
15 (256) |
Stat. Disting. |
2119 |
2138 |
2215 |
|
Rijndael 10 (128) |
4 |
Truncated Diff. |
29 |
Small |
29 |
5 |
Truncated Diff. |
211 |
Small |
240 |
|
6 |
Truncated Diff. |
232 |
7*232 |
272 |
|
6 |
Truncated Diff. |
6*232 |
7*232 |
244 |
|
7 (192) |
Truncated Diff. |
19*232 |
7*232 |
2155 |
|
7 (256) |
Truncated Diff. |
21*232 |
7*232 |
2172 |
|
7 |
Truncated Diff. |
2128 - 2199 |
261 |
2120 |
|
8 (256) |
Truncated Diff. |
2128 - 2199 |
2101 |
2204 |
|
9 (256) |
Related Key |
277 |
NA |
2224 |
|
Rijndael 12 (192) |
7 (192) |
Truncated Diff. |
232 |
7*232 |
2184 |
7 (256) |
Truncated Diff. |
232 |
7*232 |
2200 |
|
Rijndael 14 (256) |
7 (192, 256) |
Truncated Diff. |
232 |
7*232 |
2140 |
Serpent 32 |
8 (192, 256) |
Amp. Boomerang |
2113 |
2119 |
2179 |
6 (256) |
Meet-in-Middle |
512 |
2246 |
2247 |
|
6 |
Differential |
283 |
240 |
290 |
|
6 |
Differential |
271 |
275 |
2103 |
|
6 (192, 256) |
Differential |
241 |
245 |
2163 |
|
7 (256) |
Differential |
2122 |
2126 |
2248 |
|
8 (192, 256) |
Amp. Boomerang |
2128 |
2133 |
2163 |
|
8 (192, 256) |
Amp. Boomerang |
2110 |
2115 |
2175 |
|
9 (256) |
Amp. Boomerang |
2110 |
2212 |
2252 |
|
Twofish 16 |
6 (256) |
Impossible Diff. |
NA |
NA |
2256 |
6 |
Related Key |
NA |
NA |
NA |
NA - інформація недоступна.
Повний перебір ключа вимагає менше пам'яті й інформації й може легко виконуватися паралельно з використанням декількох процесорів. Таким чином, будь-яку атаку, що вимагає операцій більше, ніж необхідно при повному переборі ключів, здійснити складніше. Із цієї причини багато які з атак на варіанти зі зменшеним числом раундів відносяться тільки до більшої довжини ключа AES, хоча й у цьому випадку вимоги виконання не представляють сьогодні практичного інтересу. Аналогічно вимоги пам'яті важливі для багатьох атак на варіанти зі зменшеним числом раундів.
Те ж ставиться до інформації, необхідної для виконання атак на варіанти зі зменшеним числом раундів. Майже всі такі атаки вимагають більше 230 шифрувань обраного тексту; інакше кажучи, більше більйона шифрувань, а іноді навіть більше. Навіть якщо той самий ключ використовується така кількість разів, не представляється реальним для супротивника зібрати таку кількість інформації. Наприклад, у випадку лінійної або диференціальної атаки на DES потрібно 243 відомого незашифрованого тексту й 247 шифрувань обраного незашифрованого тексту. Проте, випадки подібних атак проти DES відомі.
Одна з моделей для збору такої великої кількості інформації жадає від супротивника фізичного доступу до одного або декількох пристроїв шифрування, які використовують той же самий секретний ключ. У цьому випадку іншим корисним набором тестів є набір, що не вимагає зберігати всю "codebook", тобто таблиця містить тільки блоки зашифрованого тексту, що відповідають кожному можливому блоку незашифрованого тексту. Така таблиця вимагає для зберігання 2132 байт пам'яті.
