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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Алгоритм эллиптической хеш-функции(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, которое удваивает размер эллиптической кривой в попытке остановить вторую атаку прообраза Халкроу-Фергюсона с предсказанием улучшенной или аналогичной производительности.

Ссылки[править | править код]