Рейтинг:0

Является ли идеальная хэш-функция той же концепцией, что и хэш-функция, устойчивая к коллизиям?

флаг in
Tim

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

6.1 Определения

Хеш-функции — это просто функции, которые принимают входные данные некоторой длины и сжимайте их в короткие выходные данные фиксированной длины.Классическое использование (не- криптографические) хэш-функции находятся в структурах данных, где их можно использовать для создавать хэш-таблицы, которые обеспечивают время поиска O (1) при сохранении набора элементов. В частности, если диапазон хеш-функции H имеет размер N, то элемент x хранится в строке H(x) таблицы размера N. Чтобы получить x, достаточно вычислить H(x) и проверить эту строку таблицы на предмет хранящихся там элементов. Хорошая хэш-функция для этой цели та, которая дает мало коллизий, где коллизия — это пара различных элементов x и x0 для которого H(x) = H(x0); в этом случае мы также говорим, что x и x0 столкнуться. (При столкновении два элементы в конечном итоге хранятся в одной и той же ячейке, что увеличивает время поиска.)

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

О концепции идеального хеширования в CLRS «Введение в алгоритмы»:

11.5 Идеальное хеширование

Мы называем метод хеширования идеальным хешированием, если для выполнения поиска в худшем случае требуется O(1) обращений к памяти.

Чтобы создать идеальную схему хеширования, мы используем два уровня хеширования с универсальным хешированием на каждом уровне. Первый уровень по существу такой же, как и при хешировании с цепочкой: мы хэшируем n ключей в m слотов, используя хеш-функцию h, тщательно отобранную из семейства хеш-функций. универсальные хэш-функции. Однако вместо создания связанного списка ключей, хеширующих слот j, мы используем небольшую вторичную хэш-таблицу Sj с ассоциированной хэш-функцией hj. Выбрав хэш-функции h j тщательно, мы можем гарантировать отсутствие коллизий на вторичном уровне.

И в https://en.wikipedia.org/wiki/Perfect_hash_function

В информатике идеальная хэш-функция h для множества S — это хеш-функция, которая отображает различные элементы в S в набор из m целых чисел, без столкновений. С математической точки зрения, это инъективная функция.

Верно ли, что в книге Каца хэш-функция, устойчивая к коллизиям, означает именно хэш-функцию без коллизий? (Я так думаю.)

Является ли идеальная хеш-функция в Википедии такой же, как устойчивая к коллизиям хеш-функция в книге Каца? (Я так думаю.)

Является ли идеальная хэш-функция в книге CLRS такой же, как устойчивая к коллизиям хеш-функция в книге Каца? (CLRS определяет идеальную хеш-функцию с точки зрения сложности доступа к памяти, равной O(1), и реализует идеальную хеш-функцию как хэш-функцию, устойчивую к коллизиям, поэтому я думаю, что хеш-функция, устойчивая к коллизиям, также является идеальным хэшем. функция, но я не уверен, что идеальная хэш-функция обязательно устойчива к коллизиям.)

Является ли идеальная хэш-функция в книге CLRS такой же, как и идеальная хэш-функция в Википедии?

Спасибо.

kelalaka avatar
флаг in
[Канонический ответ об информационной безопасности от нашего Squeamish ossifrage] (https://security.stackexchange.com/a/219656/86735) и обратите внимание, что речь идет о хеш-таблицах CS.
Рейтинг:3
флаг gb

Верно ли, что в книге Каца хэш-функция, устойчивая к коллизиям, означает именно хэш-функцию без коллизий?

Нет. Здесь действуют две разные концепции. А криптографический хэш-функция обеспечивает такие гарантии, как устойчивость к коллизиям, но хеш-функции, используемые в структурах данных, не являются криптографическими хеш-функциями. Для алгоритмов нам действительно нужен хороший эффективный способ сопоставить некоторые входные данные с ячейкой памяти/целым числом/и т.д.

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

С математической точки зрения, это инъективная функция.

Хеш-функции в криптографии не являются инъективными, потому что, как упоминалось выше, выходное пространство намного меньше входного. Так что они, конечно, не то же самое, что идеальные хэш-функции.

Является ли идеальная хэш-функция в книге CLRS такой же, как и идеальная хэш-функция в Википедии?

Да, в обоих этих случаях хеш-функции не имеют коллизий (коллизий не существует).

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

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