Рейтинг:1

Как найти 6 основных свойств криптографических хеш-функций при реализации хеш-функции?

флаг tn

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

  • Детерминированный: одно и то же сообщение всегда приводит к одному и тому же хешу;
  • Быстрый: быстро вычислить хеш-значение для любого данного сообщения;
  • Односторонняя функция: невозможно сгенерировать сообщение из его хеш-значения, кроме как перепробовав все возможные сообщения;
  • Лавинный эффект: небольшое изменение в сообщении должно изменить значение хеш-функции настолько сильно, что новое значение хеш-функции окажется некоррелированным со старым значением хеш-функции;
  • Устойчивость к столкновениям: невозможно найти два разных сообщения с одинаковым значением хеш-функции.
  • Устойчивость к предварительным атакам: атака с предварительным изображением на криптографические хэш-функции пытается найти сообщение, имеющее определенное хэш-значение. Криптографическая хеш-функция должна противостоять атакам на свой прообраз.

Насколько я могу себе представить, первых 3 довольно легко придерживаться (не реализовав криптографически безопасную функцию хеширования). Но как вы спроектируете что-то, что имеет последние 3?

  1. Лавинный эффект.
  2. Устойчивость к столкновениям.
  3. Устойчивость к атакам предварительного изображения.

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

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

kelalaka avatar
флаг in
3 легко? Можете ли вы доказать, что существует односторонняя функция? это связано с сопротивлением прообраза, но не равно. Хэш-функции MD используют конструкцию блочных шифров, чтобы иметь хорошую [функцию сжатия] (https://en.wikipedia.org/wiki/One-way_compression_function). Эффект лавины: блочный шифр что-то значит для вас? Я предлагаю вам прочитать книгу BLAKE2. KECCAK, как другой класс, с другой стороны, использует перестановки.
kelalaka avatar
флаг in
Об атаках и о том, как их смягчить, см. [Документ Жу] (https://crypto.stackexchange.com/q/98092/18298) и о том, как SHAx улучшается с годами. Пока кто-то не покажет обратное, почти все предполагаемые пока нет доказательства границ, таких как универсальные хеш-функции
Thorham avatar
флаг jp
kelalaka — Простое добавление — это уже один из способов.

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

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