stringtranslate.com

Устойчивость к столкновениям

В криптографии устойчивость к коллизиям является свойством криптографических хэш-функций : хеш-функция H устойчива к коллизиям, если трудно найти два входных сигнала, которые хэшируют один и тот же выход ; то есть два входа a и b , где ab , но H ( a ) = H ( b ). [1] : 136  Принцип «ячейки» означает, что любая хеш-функция с большим количеством входных данных, чем выходных, обязательно будет иметь такие коллизии; [1] : 136  , чем сложнее их найти, тем более криптографически безопасна хэш-функция.

« Парадокс дня рождения » накладывает верхний предел на устойчивость к коллизиям: если хеш-функция выдает N бит вывода, злоумышленник, который вычисляет только 2 N /2 (или ) хеш-операций на случайных входных данных, скорее всего, найдет два совпадающих вывода. Если есть более простой способ сделать это, чем атака методом перебора , это обычно считается недостатком хэш-функции. [2]

Криптографические хэш-функции обычно разрабатываются с учетом устойчивости к коллизиям. Однако многие хеш-функции, которые когда-то считались устойчивыми к коллизиям, позже были сломаны. В частности, MD5 и SHA-1 опубликовали методы, более эффективные, чем грубая сила, для обнаружения коллизий. [3] [4] Однако у некоторых хеш-функций есть доказательство того, что обнаружение коллизий по крайней мере так же сложно, как и какая-либо сложная математическая задача (например, факторизация целых чисел или дискретный логарифм ). Эти функции называются доказуемо безопасными . [2]

Определение

Семейство функций { h k  : {0, 1} m ( k ) → {0, 1} l ( k ) }, порожденное некоторым алгоритмом G , является семейством устойчивых к коллизиям хеш-функций, если | м ( к )| > | л ( к )| для любого k , т. е. h k сжимает входную строку, и каждый h k может быть вычислен за полиномиальное время при заданном k , но для любого вероятностного полиномиального алгоритма A мы имеем

Pr [ kG (1 n ), ( Икс 1 , Икс 2 ) ← A ( k , 1 n ) st Икс 1Икс 2 но час k ( Икс 1 ) = час k ( Икс 2 )] < negl( n ),

где negl(·) обозначает некоторую незначительную функцию, а n — параметр безопасности. [5]

Слабое и сильное сопротивление столкновению

Существует два разных типа устойчивости к столкновению.

Хэш-функция имеет слабую устойчивость к коллизиям, когда при заданной хеш-функции H и x невозможно найти другой x', такой, что H(x)=H(x'). Другими словами, если задан x, невозможно найти другой x', такой, что эта хэш-функция создала бы коллизию.

Хэш-функция имеет высокую устойчивость к коллизиям, когда для данной хеш-функции H невозможно найти произвольные x и x', где H(x)=H(x'). Другими словами, невозможно найти два x, где хеш-функция создала бы коллизию.

Обоснование

Устойчивость к столкновениям желательна по нескольким причинам.

Смотрите также

Рекомендации

  1. ^ аб Голдвассер, С. и Белларе, М. «Конспекты лекций по криптографии». Архивировано 21 апреля 2012 г. в Wayback Machine . Летний курс по криптографии, Массачусетский технологический институт, 1996–2001 гг.
  2. ^ Аб Пасс, Р. «Лекция 21: Устойчивые к коллизиям хэш-функции и общая схема цифровой подписи». Курс криптографии, Корнельский университет, 2009 г.
  3. ^ Сяоюнь Ван; Хунбо Ю. «Как взломать MD5 и другие хэш-функции» (PDF) . Архивировано из оригинала (PDF) 21 мая 2009 г. Проверено 21 декабря 2009 г.
  4. ^ Сяоюнь Ван; Ицюнь Лиза Инь ; Хонгобо Ю. Поиск коллизий в полном SHA-1 (PDF) . КРИПТО 2005. doi : 10.1007/11535218_2.
  5. ^ Додис, Евгений. «Лекция 12 «Введение в криптографию»» (PDF) . Проверено 3 января 2016 г., защита 1.