Рейтинг:1

Как злоумышленник расшифровывает хэш-функцию, ища линейность?

флаг tn

Чтение выбранного ответа на Разработка хэш-функции на основе первых принципов, а не в зависимости от эвристики очень проницателен.

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

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

Чтобы избежать этого, вам нужно сделать ваши уравнения нелинейными, используя оператор И. Хэши выполняют всевозможные операции сдвига и XOR, но именно этот нелинейный шаг делает их безопасными.

Но иметь нелинейные термины недостаточно. Вы должны убедиться, что злоумышленник не может эффективно исключить нелинейные члены из ваших уравнений, установив некоторые входные данные на 1 или 0. Также вам нужно убедиться, что члены не будут отменены, если злоумышленники возьмут разность двух уравнений. Если у вас формула ++ для одного и формула ++ для другого бита. Добавление этих двух даст +, который теперь является линейным и позволяет злоумышленнику решить его, чтобы получить отношение между двумя выходными битами. Каждое независимое линейное уравнение, которое может создать злоумышленник, снизит безопасность вашего хэша на 1 бит.

Можете подробнее объяснить, как это будет работать? Учитывая неработающую хэш-функцию, как вы могли бы показать эту ситуацию с линейностью на этой хеш-функции? По сути, скажем, md5 является примером (по какой-то причине небезопасным). Это небезопасно по этой причине линейности? Если да, то что это означает с точки зрения хеш-функции md5? Какие уравнения оказались линейными? Если md5 — плохой пример, то какой хороший? В принципе, как вы ищете линейность в хеш-функции побитно, какие методы использовать?

Я хотел бы знать методы, которые злоумышленник может использовать для «решения» хеш-функции только на основе ввода/вывода (не видя реализации). Но поскольку это, вероятно, слишком общий или слишком сложный вопрос, этот вопрос фокусируется только на этом аспекте линейного уравнения. Какие методы «линейного уравнения» может использовать злоумышленник для решения хеш-функции?

kelalaka avatar
флаг in
Не думаю, что можно найти такую ​​простую атаку.Например, MD5 атакован [дифференциальными путями](https://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf). алгебраическое уравнение, чтобы увидеть это. Это требует времени...
Morrolan avatar
флаг ng
Область линейной алгебры имеет [богатый набор инструментов] (https://en.wikipedia.org/wiki/System_of_linear_equations#Solving_a_linear_system) для эффективного решения систем линейных уравнений, например. Исключение Гаусса. Таким образом, если можно выразить связь между входом и выходом хеш-функции в виде линейной системы, то ее разбить несложно.
kelalaka avatar
флаг in
@Morrolan проблема заключается не в эффективном решении систем линейных уравнений, а в том, как их построить с учетом хеш-функции. Решение — это простая часть, найти решаемую хеш-функцию сложно. Кроме того, вместо линейных отношений, если вы получаете низкоуровневые уравнения, может помочь алгебраическая атака.[Линеаризация] (https://crypto.stackexchange.com/q/75357/18298), XLS и т.д....
Morrolan avatar
флаг ng
@kelalaka Мой комментарий касался аспекта вопроса OP, почему чисто линейная хеш-функция нежизнеспособна, а именно потому, что есть инструменты для ее тривиального решения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.