Эллиптическая хеш-функция

Алгоритм эллиптической хеш-функции(ECOH) был представлен в качестве кандидата на SHA-3 в конкурсе хеш-функций NIST. Однако он был отклонен в начале конкурса, так как была обнаружена вторая предварительная атака.

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

ECOH не использует случайных оракулов, и его безопасность не связана напрямую с проблемой дискретного логарифма, но она по-прежнему основана на математических функциях. ECOH связан с задачей Семаева о нахождении решений низкой степени полиномов суммирования над бинарным полем, называемой задачей полинома суммирования. Эффективный алгоритм решения этой проблемы до сих пор не существует. Хотя не была доказано, что задача NP-полная, предполагается, что такого алгоритма не существует. При определенных предположениях нахождение коллизии в ECOH может также рассматриваться как экземпляр задачи о сумме подмножеств. Помимо решения задачи суммирования полиномов, существует еще один способ, как найти вторые предварительные образы и, следовательно, коллизии, обобщенная атака дня рождения Вагнера.

ECOH является хорошим примером хеш-функции, которая основана на математических функциях (с доказуемым подходом к безопасности), а не на перемешивании и арифметических операциях над битами для получения хеша.

Алгоритм править

Дано  , ECOH-  делит сообщение   на   блоков   длиной  . Если последний блок неполный, он выравнивается одной единицей и затем подходящим числом нулей.   вычисляется для каждого блока с помощью конкатенации блока и    -битного представлением индекса сообщения  .   вычисляется с помощью двух концентраций и XOR с битовой строкой  , представляющей битовое представление наименьшего неотрицательного числа длиной  , представляющего x координату точки эллиптической кривой. Затем каждой   ставится в соответствие точка эллиптической кривой   с координатой  . Каждый блок преобразуется в точку эллиптической кривой   и эти точки складываются.

 

 

 

 

 

  складывает все точки эллиптической кривой. Наконец, результат передается через выходную функцию преобразования  , где   выходной размер функции, а   фиксированная для кривой точка-генератор, чтобы получить результат  . подробнее об этом алгоритме см. В разделе «ECOH: Эллиптическая хеш функция».

Примеры править

Было предложено четыре алгоритма ECOH, ECOH-224, ECOH-256, ECOH-384 и ECOH-512. Это число соответствует выходному размеру. Они отличаются по длине параметров, размеру блока и используемой эллиптической кривой. Первые два используют эллиптическую кривую B-283:  , с параметрами (128, 64, 64). ECOH-384 использует кривую B-409:  , с параметрами (192, 64, 64). ECOH-512 использует кривую B-571:  , с параметрами (256, 128, 128). Он может хешировать сообщения длиной до   бит.

Свойства править

  • Инкрементальность: ECOH сообщение может быть быстро обновлено, учитывая небольшое изменение в сообщении и промежуточное значение в вычислении ECOH.
  • Параллелезуемость: это означает, что вычисление   может быть выполнено на параллельных системах.
  • Скорость: Алгоритм ECOH примерно в тысячу раз медленнее, чем SHA-1. Однако, учитывая развитие настольного оборудования в сторону распараллеливания и умножения без переноса, ECOH может через несколько лет быть таким же быстрым, как SHA-1 для длинных сообщений. Для коротких сообщений ECOH является относительно медленным, если не используются расширенные таблицы.

Безопасность править

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

Суммирующий Многочлен Семаева править

Одним из способов нахождения коллизий или вторых прообразов является решение многочленов суммирования Семаева. Для данной эллиптической кривой E, существует полиномы   симметричные в   переменных и которые исчезают, когда сумма точек, оцененных на абсциссе, равна 0 в  . До сих пор эффективного алгоритма для решения этой проблемы не существует, и предполагается, что он труден (но не доказано, что он NP-полный).

Более формально: пусть   конечное поле,   эллиптическая кривая с уравнением Вейерштрасса, имеющая коэффициенты в   и   точка бесконечности. Известно, что существует полиномы от многих переменных   тогда и только тогда, если они существуют <   такие, что  . Этот многочлен имеет степень   по каждой переменной. Задача состоит в том, чтобы найти этот многочлен.

Обсуждение доказуемой безопасности править

Задача нахождения коллизий в ECOH аналогична задаче суммирования подмножеств. Решение задачи о сумме подмножеств почти так же сложно, как задача о дискретном логарифме. Обычно предполагается, что это невозможно сделать за полиномиальное время. Однако следует учитывать, что координата   может является неслучайной, и иметь определенную структуру. Если учесть это предположение, то нахождение коллизий ECOH можно рассматривать как пример задачи о сумме подмножеств.

Вторая атака прообраза существует в форме обобщенной атаки на день рождения.

Второй прообраз атаки править

Описание атаки: это общий случай атаки Дня Рождения Вагнера. Это требует 2143 времени для ECON-224 и ECON-256, 2206 времени для ECOH-384 и 2287 времени для ECOH-512. Атака устанавливает блок контрольной суммы в фиксированное значение и использует поиск коллизий в точках эллиптической кривой. Для этой атаки у нас есть сообщение M и попробуйте найти M', которое хеширует одно и то же сообщение. Сначала мы разделили длину сообщения на шесть блоков. . Пусть K-натуральное число. Мы выбираем K различных чисел для   и определим   как  .Мы вычисляем K, соответствующее точкам на эллиптических кривых  и храним их в списке. Затем мы выбираем K различных случайных значений для  , определим  , вычисляем  , и храним их во втором списке. Обратите внимание, что цель Q известна.   зависит только от длины сообщения, которое мы зафиксировали.   зависит от длины и XOR всех блоков сообщений, но мы выбираем блоки сообщений таким образом, что это всегда равно нулю. Таким образом,   фиксировано для всех наших попыток.

Если K больше квадратного корня из числа точек на эллиптической кривой, то мы ожидаем одну коллизию между двумя списками. Это дает нам сообщение   с   Это означает, что это сообщение ведет к целевому значению Q и, следовательно, ко второму прообразу, о котором шла речь. Рабочая нагрузка, которую мы должны сделать здесь, — это два раза K частичных хеш-вычислений. Для получения дополнительной информации см. «A Second Pre-image Attack Against Elliptic Curve Only Hash (ECOH)».

Фактически параметры:

  • ECON-224 и ECOH-256 используют эллиптическую кривую B-283 с приблизительно   точек на кривой. Мы выбираем   и получаем атаку со сложностью  .
  • ECOH-384 использует эллиптическую кривую B-409 с приблизительно   точек на кривой. Выбрав   дает атаку со сложностью  .
  • ECOH-384 использует эллиптическую кривую B-409 с приблизительно   точек на кривой. Выбрав   дает атаку со сложностью  .

ECOH2 править

Официальные комментарии по ECOH включали предложение под названием ECOH2, которое удваивает размер эллиптической кривой в попытке остановить вторую атаку прообраза Халкроу-Фергюсона с предсказанием улучшенной или аналогичной производительности.

Ссылки править