Книга посвящена алгоритмам блочного симметричного шифрования. Дана общая классификация криптографических алгоритмов. Рассмотрено более 50 алгоритмов шифрования: история создания и использования, основные характеристики и структура, достоинства и недостатки. Описаны различные виды криптоаналитических атак на алгоритмы шифрования и на их реализации в виде программных или аппаратных шифраторов. Рассказано о конкурсах по выбору стандартов шифрования США и Евросоюза
Оглавление Введение |
1 |
Глава 1. Классификация алгоритмов шифрования и методов их вскрытия |
3 |
1.1. Криптографические алгоритмы |
3 |
1.2. Категории алгоритмов шифрования |
7 |
1.3. Структура алгоритмов симметричного шифрования |
8 |
Алгоритмы на основе сети Фейстеля |
9 |
Алгоритмы на основе подстановочно-перестановочных сетей |
11 |
Алгоритмы со структурой «квадрат» |
11 |
Алгоритмы с нестандартной структурой |
12 |
1.4. Режимы работы алгоритмов |
12 |
Электронная кодовая книга |
13 |
Сцепление блоков шифра |
14 |
Обратная связь по шифртексту |
15 |
Обратная связь по выходу |
16 |
Другие режимы работы |
18 |
1.5. Атаки на алгоритмы шифрования |
18 |
Цели атак |
18 |
Классификация атак |
19 |
Количественная оценка криптостойкости алгоритмов шифрования |
21 |
Криптоанализ модифицированных алгоритмов |
22 |
1.6. Криптоаналитические методы, используемые в атаках |
23 |
Метод «грубой силы» |
23 |
Атаки класса «встреча посередине» |
25 |
Дифференциальный криптоанализ |
27 |
Линейный криптоанализ |
34 |
Метод бумеранга |
38 |
Сдвиговая атака |
40 |
Метод интерполяции |
42 |
Невозможные дифференциалы |
43 |
Заключение |
44 |
1.7. Атаки на шифраторы, использующие утечку данных по побочным каналам |
44 |
Атака по времени выполнения |
45 |
Атаки по потребляемой мощности |
46 |
Другие пассивные атаки |
47 |
1.8. Активные атаки на шифраторы, использующие утечку данных по побочным каналам |
48 |
Виды воздействий на шифратор |
48 |
Дифференциальный анализ на основе сбоев |
50 |
Противодействие активным атакам |
52 |
1.9. Криптоаналитические атаки на связанных ключах |
53 |
Расширение ключа |
53 |
«Классическая» атака на связанных ключах |
54 |
Атакуемые алгоритмы |
57 |
Другие возможные проблемы процедуры расширения ключа |
59 |
Глава 2. Новейшая история симметричного шифрования |
61 |
2.1. Конкурс AES |
61 |
Алгоритмы — участники конкурса |
63 |
Достоинства и недостатки алгоритмов-финалистов |
65 |
2.2. Конкурс NESSIE |
69 |
Глава 3. Описание алгоритмов |
73 |
3.1. Алгоритм ГОСТ 28147-89 |
73 |
Описание алгоритма |
73 |
Режимы работы алгоритма |
75 |
Криптостойкость алгоритма |
79 |
Анализ таблиц замен |
79 |
Модификации алгоритма и их анализ |
80 |
Анализ полнораундового алгоритма |
81 |
Заключение |
81 |
3.2. Алгоритм Aardvark |
82 |
3.3. Алгоритм AES (Rijndael) |
84 |
Структура алгоритма |
84 |
Процедура расширения ключа |
88 |
Расшифровывание |
89 |
Отличия AES от исходного алгоритма Rijndael |
91 |
Первичная оценка криптостойкости алгоритма Rijndael |
92 |
Криптоанализ алгоритма Rijndael в рамках конкурса AES |
93 |
Криптоанализ алгоритма после конкурса AES |
95 |
Заключение |
97 |
3.4. Алгоритм Akelarre |
97 |
Структура алгоритма |
98 |
Процедура расширения ключа |
101 |
Криптоанализ алгоритма |
102 |
3.5. Алгоритм Anubis |
103 |
Структура алгоритма |
103 |
Процедура расширения ключа |
107 |
Достоинства и недостатки алгоритма |
108 |
3.6. Алгоритмы Bear, Lion и Lioness |
108 |
Алгоритм Bear |
109 |
Алгоритм Lion |
111 |
Алгоритм Lioness |
112 |
Варианты использования |
113 |
Криптоанализ алгоритмов |
114 |
3.7. Алгоритмы BEAST и BEAST-RK |
114 |
Криптостойкость алгоритма BEAST |
116 |
Алгоритм BEAST-RK |
117 |
3.8. Алгоритм Blowfish |
118 |
Структура алгоритма |
119 |
Процедура расширения ключа |
121 |
Достоинства и недостатки алгоритма |
122 |
3.9. Алгоритм Camellia |
123 |
Структура алгоритма |
123 |
Таблицы замен |
127 |
Расшифровывание |
128 |
Процедура расширения ключа |
129 |
Криптоанализ алгоритма Camellia |
132 |
3.10. Алгоритм CAST-128 |
134 |
3.11. Алгоритм CAST-256 |
135 |
Основные характеристики и структура алгоритма |
135 |
Процедура расширения ключа |
139 |
Достоинства и недостатки алгоритма |
141 |
3.12. Алгоритм Crypton |
141 |
Основные характеристики и структура алгоритма |
141 |
Процедура расширения ключа |
145 |
Достоинства и недостатки алгоритма |
147 |
3.13. CS-Cipher |
148 |
Структура алгоритма |
149 |
Расшифровывание |
153 |
Процедура расширения ключа |
154 |
Достоинства и недостатки алгоритма |
155 |
3.14. Алгоритм DEAL |
156 |
Основные характеристики и структура алгоритма |
156 |
Процедура расширения ключа |
157 |
Достоинства и недостатки алгоритма |
160 |
3.15. Алгоритм DES и его варианты |
160 |
История создания алгоритма |
161 |
Основные характеристики и структура алгоритма |
162 |
Процедура расширения ключа |
166 |
Криптостойкость алгоритма DES |
168 |
Продолжение истории алгоритма |
171 |
Алгоритм Double DES |
172 |
Алгоритм 2-key Triple DES |
173 |
Алгоритм 3-key Triple DES |
174 |
Режимы работы Double DES и Triple DES |
175 |
Режимы работы с маскированием |
178 |
Алгоритм Quadruple DES |
181 |
Алгоритм Ladder-DES |
181 |
Алгоритм DESX |
184 |
Алгоритм DES с независимыми ключами раундов |
185 |
Алгоритм GDES |
186 |
Алгоритм RDES |
188 |
Алгоритмы s2DES, s3DES и s5DES |
190 |
Алгоритм Biham-DES |
191 |
Алгоритмы xDES1 и xDES2 |
193 |
Другие варианты алгоритма DES |
195 |
Заключение |
195 |
3.16. Алгоритм DFC |
195 |
Основные характеристики и структура алгоритма |
195 |
Процедура расширения ключа |
198 |
Достоинства и недостатки алгоритма |
199 |
3.17. Алгоритм E2 |
201 |
Структура алгоритма |
201 |
Почему алгоритм E2 не вышел в финал конкурса AES |
206 |
3.18. Алгоритм FEAL |
206 |
История создания алгоритмa |
206 |
Структура алгоритма |
207 |
Процедура расширения ключа |
209 |
Почему FEAL не используется |
211 |
3.19. Алгоритм FROG |
212 |
Основные характеристики и структура алгоритма |
212 |
Процедура расширения ключа |
214 |
Форматирование ключа |
216 |
Достоинства и недостатки алгоритма |
218 |
3.20. Алгоритм Grand Cru |
219 |
Структура алгоритма |
219 |
Расшифровывание |
225 |
Процедура расширения ключа |
226 |
Достоинства и недостатки алгоритма |
229 |
3.21. Алгоритм Hierocrypt-L1 |
229 |
Структура алгоритма |
229 |
Процедура расширения ключа |
234 |
Достоинства и недостатки алгоритма |
239 |
3.22. Алгоритм Hierocrypt-3 |
239 |
Отличия от Hierocrypt-L1 |
239 |
Процедура расширения ключа |
241 |
Криптоанализ алгоритма |
246 |
3.23. Алгоритм HPC |
246 |
Основные характеристики алгоритма |
246 |
Структура раунда |
247 |
Процедура расширения ключа |
250 |
Достоинства и недостатки алгоритма |
253 |
3.24. Алгоритм ICE |
254 |
История создания алгоритма |
254 |
Структура алгоритма |
254 |
Варианты алгоритма |
257 |
Процедура расширения ключа |
257 |
Криптоанализ алгоритма |
259 |
3.25. Алгоритм ICEBERG |
259 |
Структура алгоритма |
259 |
Процедура расширения ключа |
263 |
Криптоанализ алгоритма |
265 |
3.26. Алгоритмы IDEA, PES, IPES |
265 |
Основные характеристики и структура |
266 |
Процедура расширения ключа |
268 |
Криптостойкость алгоритма |
268 |
3.27. Алгоритм KASUMI |
270 |
Структура алгоритма |
271 |
Процедура расширения ключа |
275 |
Использование алгоритма |
277 |
Криптоанализ алгоритма |
279 |
3.28. Алгоритм Khazad |
282 |
Структура алгоритма |
282 |
Процедура расширения ключа |
284 |
Модификация алгоритма |
285 |
Криптоанализ алгоритма Khazad |
287 |
3.29. Алгоритмы Khufu и Khafre |
288 |
История создания алгоритмов |
288 |
Структура алгоритма Khufu |
289 |
Процедура расширения ключа и таблицы замен |
290 |
Алгоритм Khafre |
292 |
Сравнение алгоритмов |
293 |
Алгоритм Snefru |
294 |
Криптоанализ алгоритмов |
294 |
3.30. Алгоритм LOKI97 |
295 |
История создания алгоритма |
295 |
Основные характеристики и структура алгоритма |
296 |
Процедура расширения ключа |
299 |
Почему LOKI97 не вышел в финал конкурса AES |
300 |
3.31. Алгоритм Lucifer |
301 |
Вариант № 1 |
301 |
Вариант № 2 |
304 |
Вариант № 3 |
308 |
Вариант № 4 |
310 |
Криптоанализ вариантов алгоритма |
311 |
3.32. Алгоритм MacGuffin |
312 |
Структура алгоритма |
313 |
Процедура расширения ключа |
315 |
Криптоанализ алгоритма |
316 |
3.33. Алгоритм MAGENTA |
316 |
Структура алгоритма |
317 |
Достоинства и недостатки алгоритма |
319 |
3.34. Алгоритм MARS |
319 |
Структура алгоритма |
320 |
Процедура расширения ключа |
326 |
Достоинства и недостатки алгоритма |
328 |
3.35. Алгоритм Mercy |
328 |
Структура алгоритма |
328 |
Процедура расширения ключа |
333 |
Криптостойкость алгоритма |
334 |
3.36. Алгоритмы MISTY1 и MISTY2 |
334 |
Структура алгоритма MISTY1 |
334 |
Расшифровывание |
342 |
Процедура расширения ключа |
344 |
Алгоритм MISTY2 |
345 |
Алгоритм KASUMI |
346 |
Криптоанализ алгоритмов MISTY1 и MISTY2 |
347 |
3.37. Алгоритм Nimbus |
348 |
Структура алгоритма |
348 |
Процедура расширения ключа |
349 |
Достоинства и недостатки алгоритма |
351 |
3.38. Алгоритм Noekeon |
351 |
Структура алгоритма |
352 |
Расшифровывание |
356 |
Процедура расширения ключа |
357 |
Криптоанализ алгоритма |
357 |
3.39. Алгоритм NUSH |
357 |
Структура алгоритма |
357 |
Расшифровывание |
362 |
Процедура расширения ключа |
363 |
Криптостойкость алгоритма |
363 |
128-битный вариант |
364 |
256-битный вариант |
368 |
Криптоанализ 128- и 256-битного вариантов алгоритма |
373 |
3.40. Алгоритм Q |
374 |
Структура алгоритма |
374 |
Криптоанализ алгоритма |
375 |
3.41. Алгоритм RC2 |
375 |
Структура алгоритма |
376 |
Процедура расширения ключа |
378 |
Расшифрование |
380 |
Криптостойкость алгоритма |
381 |
3.42. Алгоритм RC5 |
381 |
Структура алгоритма |
382 |
Процедура расширения ключа |
385 |
Криптоанализ алгоритма |
386 |
Варианты RC5 |
387 |
Продолжение истории алгоритма |
390 |
3.43. Алгоритм RC6 |
391 |
Структура алгоритма |
391 |
Процедура расширения ключа |
393 |
Достоинства и недостатки алгоритма |
394 |
3.44. Алгоритмы SAFER K и SAFER SK |
394 |
Структура алгоритма SAFER K-64 |
395 |
Расшифрование |
399 |
Процедура расширения ключа |
400 |
Криптоанализ алгоритма SAFER K-64 |
402 |
Алгоритм SAFER K-128 |
403 |
Алгоритмы SAFER SK-64, SAFER SK-128 и SAFER SK-40 |
404 |
Криптоанализ алгоритмов SAFER SK-64 и SAFER SK-128 |
408 |
3.45. Алгоритм SAFER+ |
408 |
Структура алгоритма |
408 |
Расшифрование |
412 |
Процедура расширения ключа |
413 |
Криптоанализ алгоритма SAFER+ |
415 |
Единое расширение ключа SAFER+ |
416 |
3.46. Алгоритм SAFER++ |
418 |
Структура алгоритма |
418 |
64-битный вариант SAFER++ |
421 |
Криптоанализ алгоритма SAFER++ |
423 |
Заключение |
424 |
3.47. Алгоритм SC2000 |
424 |
Структура алгоритма |
424 |
Расшифрование |
428 |
Процедура расширения ключа |
429 |
Криптоанализ алгоритма |
432 |
3.48. Алгоритм SERPENT |
432 |
Структура алгоритма |
433 |
Расшифрование |
439 |
Процедура расширения ключа |
441 |
Криптостойкость алгоритма |
442 |
3.49. Алгоритм SHACAL |
442 |
Алгоритм SHACAL-1 |
442 |
Алгоритм SHACAL-0 |
445 |
Алгоритм SHACAL-2 |
446 |
Криптоанализ алгоритма SHACAL-1 |
449 |
Криптоанализ алгоритма SHACAL-2 |
450 |
3.50. Алгоритмы SHARK и SHARK* |
451 |
3.51. Алгоритм Sha-zam |
454 |
Структура алгоритма |
454 |
Процедура расширения ключа |
456 |
Криптостойкость алгоритма |
456 |
3.52. Алгоритм Skipjack |
457 |
Структура алгоритма |
457 |
Криптостойкость алгоритма |
461 |
3.53. Алгоритм SPEED |
462 |
Структура алгоритма |
462 |
Расшифровывание |
465 |
Процедура расширения ключа |
466 |
Достоинства и недостатки алгоритма |
468 |
3.54. Алгоритм Square |
469 |
Структура алгоритма |
469 |
Процедура расширения ключа |
472 |
Криптостойкость алгоритма |
473 |
3.55. Алгоритмы TEA, XTEA и их варианты |
474 |
Алгоритм TEA |
474 |
Криптоанализ алгоритма TEA |
476 |
Алгоритм XTEA |
478 |
Криптоанализ алгоритма XTEA |
480 |
Алгоритм Block TEA |
480 |
Алгоритм XXTEA |
481 |
3.56. Алгоритмы Twofish и Twofish-FK |
483 |
Структура алгоритма |
483 |
Процедура расширения ключа |
486 |
Алгоритм Twofish-FK |
491 |
Достоинства и недостатки алгоритма |
492 |
Приложение. Таблицы замен |
493 |
П1. Алгоритм Blowfish |
493 |
П2. Алгоритм Camellia |
498 |
П3. Алгоритм CAST-128 |
500 |
П4. Алгоритм CAST-256 |
510 |
П5. Алгоритм Crypton 0 |
515 |
П6. Алгоритм DES |
517 |
П7. Алгоритм KASUMI |
519 |
П8. Алгоритм MARS |
522 |
П9. Алгоритм s2DES |
525 |
П10. Алгоритм s3DES |
527 |
П11. Алгоритм s5DES |
529 |
Литература |
531 |
XII Оглавление XI Оглавление |