Проблема с поиском когтей
— Задача поиска когтей классическая задача теории сложности , имеющая несколько приложений в криптографии . Короче говоря, для данных двух функций f , g , рассматриваемых как оракулы , проблема состоит в том, чтобы найти x и y , такие как f ( x ) = g ( y ). Пара ( x , y ) тогда называется клешней . Некоторые проблемы, особенно в криптографии, лучше всего решаются, если рассматривать их как задачу поиска когтей, поэтому любое алгоритмическое улучшение решения проблемы поиска когтей обеспечивает лучшую атаку на криптографические примитивы, такие как хэш-функции .
Определение
[ редактировать ]Позволять быть конечными множествами, и , две функции. Пара называется клешней, если . Задача поиска клешни определяется как найти такую клешню, если она существует.
Если мы посмотрим как случайные функции, мы ожидаем, что клешня существует тогда и только тогда, когда . Точнее, есть именно пары формы с ; вероятность того, что такая пара является клешней, равна . Итак, если , ожидаемое количество клешней не менее 1.
Алгоритмы
[ редактировать ]Если используются классические компьютеры, лучший алгоритм аналогичен атаке « Встреча посередине» , впервые описанной Диффи и Хеллманом . [1] Алгоритм работает следующим образом: предположим . Для каждого , сохрани пару в хеш-таблице, индексированной . Тогда для каждого , посмотрите таблицу на . Если такой индекс существует, мы нашли коготь. Этот подход требует времени и память .
Если использовать квантовые компьютеры , Сейитиро Тани показал, что коготь можно найти по сложности
если и
если . [2]
Шэнъюй Чжан показал, что асимптотически эти алгоритмы являются наиболее эффективными из возможных. [3]
Приложения
[ редактировать ]Как уже отмечалось, большинство приложений задачи поиска когтей встречаются в криптографии . Примеры включают в себя:
- коллизий Обнаружение в криптографических хеш-функциях .
- Атаки «встреча посередине» : с помощью этой техники можно найти k бит раундовых ключей примерно за 2 времени. к/2+1 . Здесь f — шифрование на полпути, а g — расшифровка на полпути. Вот почему Triple DES применяет DES три раза, а не только два.
Ссылки
[ редактировать ]- ^ Диффи, Уитфилд; Хеллман, Мартин Э. (июнь 1977 г.). «Исчерпывающий криптоанализ стандарта шифрования данных NBS» (PDF) . Компьютер . 10 (6): 74–84. дои : 10.1109/CM.1977.217750 .
- ^ Тани, Сейитиро (ноябрь 2009 г.). «Алгоритмы поиска когтей с использованием квантовой прогулки». Теоретическая информатика . 410 (50): 5285–5297. arXiv : 0708.2584 . дои : 10.1016/j.tcs.2009.08.030 .
- ^ Чжан, Шэнъюй (2005). «Обещанный и распределенный квантовый поиск». Вычисления и комбинаторика . Конспекты лекций по информатике. Том. 3595. Шпрингер Берлин Гейдельберг. стр. 430–439. дои : 10.1007/11533719_44 . ISBN 978-3-540-28061-3 .