Универсальное семейство хеш-функций — различия между версиями
Martoon (обсуждение | вклад) (Попарная независимость) |
Martoon (обсуждение | вклад) |
||
Строка 42: | Строка 42: | ||
|definition= | |definition= | ||
Пусть <tex> H </tex> {{---}} универсальное семейство хеш-функций. | Пусть <tex> H </tex> {{---}} универсальное семейство хеш-функций. | ||
− | Говорят что оно обладает свойством '''попарной независимости''', если | + | Говорят что оно обладает свойством '''попарной независимости''', если при фиксированных <tex> x, y</tex> <tex> (0 \le x, y \le m-1)</tex> для каждой пары ключей <tex> k, l \in U, (k\ne l) </tex> количество хеш-функций <tex> h \in H </tex>, для которых <tex> h(k) = x </tex> и <tex> h(l) = y </tex> не превышает <tex dpi = "180"> \frac{|H|}{m^2} </tex>. |
}} | }} | ||
+ | ==Построение универсального множества хеш-функций== | ||
+ | {{Теорема | ||
+ | |statement= | ||
+ | Семейство хеш функций, описанное выше, также является попарно независимым. | ||
+ | |proof= | ||
+ | Для функции <tex>h_{a,b}</tex> получаем | ||
+ | <tex>x \equiv (ak+b)</tex> <tex>mod</tex> <tex>p</tex> <tex>mod</tex> <tex>m</tex> | ||
+ | |||
+ | <tex>y \equiv (al+b)</tex> <tex>mod</tex> <tex>p</tex> <tex>mod</tex> <tex>m</tex> | ||
+ | |||
+ | что можно записать в таком виде: | ||
+ | |||
+ | <tex>x \equiv ak+b+im</tex> <tex>\pmod p</tex> | ||
+ | |||
+ | <tex>y \equiv al+b+jm</tex> <tex>\pmod p</tex>, | ||
+ | |||
+ | где <tex> 0 \le i, j < \frac{p}{m} </tex>. | ||
+ | |||
+ | Стоит отметить, что эту систему считаем верной если '''при каких-либо''' <tex>i</tex> и <tex>j</tex> входящие в неё равенства будут верными. | ||
+ | |||
+ | Выразим отсюда <tex>a</tex> и <tex>b</tex>. Вычтя из первого уравнения второе получим | ||
+ | |||
+ | <tex>x - y \equiv a(k - l)</tex> <tex>mod</tex> <tex>p</tex> <tex>\pmod m</tex> | ||
+ | |||
+ | Теперь сначала первое домножим на <tex>l</tex>, и второе на <tex>k</tex>; вычитая получим | ||
+ | |||
+ | <tex>lx - ky \equiv b(l - k)</tex> <tex>mod</tex> <tex>p</tex> <tex>\pmod m</tex> | ||
+ | |||
+ | }} | ||
==Источники== | ==Источники== |
Версия 20:47, 10 июня 2013
Содержание
Определение
Качественная хеш-функция удовлетворяет (приближенно) условию простого равномерного хеширования: для каждого ключа, независимо от хеширования других ключей, равновероятно помещение его в любую из ячеек. Но это условие обычно невозможно проверить, так как распределение вероятностей, с которыми поступают входные данные, как правило, неизвестно. К тому же, вставляемые ключи могут и не быть независимыми. Если наш противник будет умышленно выбирать ключи для хеширования при помощи конкретной хеш-функции, то при некоторых реализациях хеш-таблиц может получиться так, что все ключи будут записаны в одну и ту же ячейку таблицы, что приведет к среднему времени выборки . Таким образом, любая фиксированная хеш-функция становится уязвимой. И единственный эффективный выход из данной ситуации — случайный выбор хеш-функции. Такой подход называется универсальным хешированием. Он гарантирует хорошую производительность в среднем, вне зависимости от данных, выбранных нашим противником.
Определение: |
Пусть | — конечное множество хеш-функций, которые отображают пространство ключей в диапазон . Такое множество называется универсальным, если для каждой пары ключей количество хеш-функций , для которых не превышает .
Иными словами, при случайном выборе хеш-функции из вероятность коллизии между различными ключами не превышает вероятности совпадения двух случайным образом выбранных хеш-значений из множества , которая равна .
Построение универсального множества хеш-функций
Теорема: |
Множество хеш функций , где , , , — простое число, является универсальным. |
Доказательство: |
Рассмотрим . Пусть для данной хеш-функции, . , так как , а — простое число, и не равны нулю по модулю . Значит, произведение и также отлично от нуля по модулю . Таким, образом, коллизии "по модулю " отсутствуют. Более того, каждая из возможных пар , приводят к различным парам . Чтобы доказать это, достаточно рассмотреть возможность однозначного определения и по заданным и : . Поскольку имеется только возможных пар , то имеется взаимнооднозначное соответствие между парами и парами . Таким образом, для любых при равномерном случайном выборе пары из , получаемая в результате пара может быть с равной вероятностью любой из пар с отличающимися значениями по модулю .Отсюда следует, что вероятность того, что различные ключи приводят к коллизии, равна вероятности того, что при произвольном выборе отличающихся по модулю значений и . Для данного имеется возможное значение . При этом число значений и , не превышает. Вероятность того, что Значит, приводит к коллизии с при приведении по модулю , не превышает . , что означает, что множество хеш-функций является универсальным. |
Попарная независимость
Определение: |
Пусть | — универсальное семейство хеш-функций. Говорят что оно обладает свойством попарной независимости, если при фиксированных для каждой пары ключей количество хеш-функций , для которых и не превышает .
Построение универсального множества хеш-функций
Теорема: |
Семейство хеш функций, описанное выше, также является попарно независимым. |
Доказательство: |
Для функции получаем
что можно записать в таком виде:
, где .Стоит отметить, что эту систему считаем верной если при каких-либо и входящие в неё равенства будут верными.Выразим отсюда и . Вычтя из первого уравнения второе получим
Теперь сначала первое домножим на , и второе на ; вычитая получим |
Источники
- Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн Алгоритмы: построение и анализ — 2-е изд. — М.: «Вильямс», 2005. — с. 294. — ISBN 5-8459-0857-4