Открыть главное меню

Атака методом бумеранга

Схема атаки методом бумеранга

Атака методом бумерангакриптографическая атака на блочный шифр, основанная на методах дифференциального криптоанализа. Алгоритм атаки был опубликован в 1999 году профессором университета Беркли Дэвидом Вагнером, который использовал его для взлома шифров COCONUT98, Khufu и CAST-256 [1].

Этот метод позволил провести успешные атаки на многие шифры, ранее признанные устойчивыми к "классическому" дифференциальному криптоанализу.

Существуют модификации данного метода криптоанализа: усиленная атака методом бумеранга (amplified boomerang attack) и прямоугольная атака (rectangle attack).

Содержание

Общая характеристикаПравить

Атака методом бумеранга базируется на принципах дифференциального криптоанализа. Метод бумеранга состоит в использование квартета открытых текстов и соответствующих им шифртекстов, а не пары, как в дифференциальном криптоанализе.

Ещё одним заметным отличием метода бумеранга от классического дифференциального криптоанализа, где изменения шифртекста, вызванные изменением открытого текста, покрывают весь шифр, является то, что изменения открытого текста могут покрывать только часть шифра.

В ряде случаев использование данного метода атаки позволяет существенно сократить объём требуемых данных (по сравнению с дифференциальным криптоанализом). Помимо этого атака применима к алгоритмам с гетерогенной структурой раундов.

Одной из самых интересных особенностей алгоритма атаки является то, что он очень хорошо работает с шифрами, имеющими асимметричные раундовые функции. Асимметричные раундовые функции можно разделить на два типа: раунды A-типа, у которых диффузия в прямом направлении лучше, чем в обратном, и раунды B-типа, у которых лучше диффузия в обратном направлении. Отмечается, что если первая половина шифра состоит из раундов B-типа, а вторая из раундов A-типа, то такой шифр будет наиболее уязвим к атаке методом бумеранга.

Алгоритм атакиПравить

  • Сперва предположим, что алгоритм шифрования   можно разбить на две последовательные примерно равные по трудоёмкости части   и  , причём  , где   – некоторый открытый текст. Например, 16-раундовый алгоритм DES с раундами сходной структуры можно разделить на две части по 8 раундов
  • Выберем пару открытых текстов   и   с разностью  . В результате обработки этих текстов функцией   получим разность  
  • Продолжим зашифровывать открытые тексты   и   функцией   и получим два шифртекста   и  
  • Используем   и   для получения двух других шифртекстов   и  , связанных с предыдущими разностью  
  • Далее формирование квартета продолжается в обратную сторону: к   и   применяются функции "полу-расшифрования"   и   для получения разности  
  • Дальнейшее расшифрование шифртекстов   и   даёт два открытых текста   и  

Причем в своей работе[1] Вагнер доказывает, что разность между полученными таким образом открытыми текстами   и   равна разности между исходными открытыми текстами   и   и равна  .

Анализируя множество квартетов текстов с определённой разностью, можно выделить некий ключ (или его фрагмент), который является искомым ключом либо однозначно, либо с наибольшей (по сравнению с другими ключами) вероятностью.

Усиленная атака методом бумеранга[2]Править

Усиленная атака методом бумеранга - атака на основе открытого текста, тогда как классическая атака методом бумеранга является атакой на основе адаптивно подобранного открытого текста.

При сравнении этих двух алгоритмов при прочих равных условиях классическая атака методом бумеранга требует гораздо меньше данных, чем усиленная. На первый взгляд такое изменение алгоритма не несёт выгоды. Тем не менее есть три пункта, отличающих её от классической атаки, которые делают целесообразным применение усиленной атаки в некоторых случаях:

  • При атаке на основе открытых текстов можно подбирать ключ в конце шифра, и для этого не нужно увеличивать количество выбранных открытых текстов.
  • Можно применять усиленную атаку бумерангом не только к парам, но и к K-наборам текстов.
  • Можно использовать усиленную атаку, чтобы получить пару (или К) текстов для какой-то части шифра, а затем использовать другие алгоритмы для оставшихся раундов шифра. Таким образом, можно использовать усеченные дифференциалы (англ. truncated differential cryptanalysis), которые задают лишь небольшую часть блока, и не могут быть использованы со стандартной атакой методом бумеранга.

Алгоритмы шифрования, уязвимые к атаке методом бумерангаПравить

Описанные в оригинальной статье[1]Править

  • COCONUT98 взламывается с   адаптивно подобранными открытыми текстами и шифртекстами.
  • 16-раундовый Khufu взламывается с   адаптивно подобранными открытыми текстами и шифртекстами.
  • 16-раундовый CAST-256 взламывается с   известными текстами.

Описанные в других источникахПравить

  • 6-раундовый KASUMI взламывается с   адаптивно подобранными открытыми текстами и шифртекстами[3].
  • 11-раундовый MARS взламывается с   известными текстами[2].
  • 8-раундовый Serpent взламывается с   известными текстами[2].
  • 5-раундовый AES взламывается с   известными текстами[4].
  • 6-раундовый AES взламывается с   известными текстами[4].

Применение к полнораундовому AES[5]Править

Для осуществления атаки на основе связанных ключей на полнораундовые шифры AES-192 и AES-256 были применены принципы атаки методом бумеранга и улучшенной атаки методом бумеранга. Данный метод опирается на обнаружение локальных коллизий в блочных шифрах и использование бумеранговых переключателей (boomerang switches).

По умолчанию, шифр разбивается на раунды, но такое деление не всегда является наилучшим для применения атаки методом бумеранга. Было предложено разделить раунды на простые операции и использовать существующий в этих операциях параллелизм. Например, некоторые байты могут быть обработаны независимо. В таком случае сначала может быть обработан один байт до преобразования алгоритмом шифрования, после чего происходит переключение на обработку другого байта после преобразования. Существуют лестничные переключатели (ladder switches), переключатели Фейстеля (Feistel switches) и переключатели s-блоков (s-box switches).

Данный метод атаки является более эффективным, нежели атака методом грубой силы. Но при этом отмечается, что метод представляет в основном теоретическую ценность для специалистов и в ближайшее время не будет представлять угрозы практическим реализациям AES из-за высоких требований ко времени обработки и вычислительным мощностям. С другой стороны, этот метод можно весьма эффективно применять для криптографических атак хеш-функций.

Применение к хеш-функциямПравить

Так как многие хеш-функции реализованы на основе блочных шифров, естественно попробовать применить к ним атаку методом бумеранга, однако существует несколько препятствий. В частности, расшифровка, которая является неотъемлемой частью атаки методом бумеранга, может быть недоступна в контексте хеш-функций.

Тем не менее показано[6], что атака методом бумеранга, а именно её вариант, усиленная атака методом бумеранга на основе открытого текста, может быть использована для взлома хеш-функции. Данный вид атаки дает улучшение по сравнению с применяемыми ранее дифференциальными атаками.

Основная идея адаптации атаки заключается в использовании в дополнение к тщательно подобранному глобальному дифференциальному пути, который используется в классических дифференциальных атаках, нескольких дополнительных дифференциальных путей, которые очень хороши на ограниченном числе стадий, но не покрывают всю функцию полностью. Для того, чтобы объединить эти дифференциальные пути вместе, используется основная схема атаки блочных шифров методом бумеранга.

Данная атака была успешно применена к алгоритму SHA-1.

Недостатки алгоритмаПравить

Атака методом бумеранга является атакой с адаптивным выбором открытых текстов и шифртекстов. Это один из наиболее сложно осуществимых на практике типов криптографических атак.

Как и для метода дифференциального криптоанализа применение на практике атаки методом бумеранга ограничено высокими требованиями к времени обработки и объёму данных.

На практике атака методом бумеранга применялась в основном к шифрам с уменьшенным количеством раундов.

В связи с этим алгоритм в большей степени является теоретическим достижением.

ПримечанияПравить

ЛитератураПравить