Семейство универсальных попарно независимых хеш-функций — различия между версиями
Rinatvr (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
(не показано 26 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | + | {{Определение | |
− | <tex> H_{n, k} = \{ h | h: 2^n \to 2^k \}</tex> называется семейством универсальных попарно независимых хеш-функций, если для <tex> \forall x_1, x_2 \in 2^n, x_1 \ne x_2</tex> и <tex> \forall y_1, y_2 \in 2^k</tex> и равномерной выборки функции <tex> h \in H_{n, k} </tex> будет выполнено <tex>P(h(x_1) = y_1 \land h(x_2) = y_2) = \frac{1}{2^{2k}}</tex> | + | |definition=<tex> H_{n, k} = \{ h | h: 2^n \to 2^k \}</tex> называется '''семейством универсальных попарно независимых хеш-функций''', если для <tex> \forall x_1, x_2 \in 2^n, x_1 \ne x_2</tex> и <tex> \forall y_1, y_2 \in 2^k</tex> и равномерной выборки функции <tex> h \in H_{n, k} </tex> будет выполнено <tex>P(h(x_1) = y_1 \land h(x_2) = y_2) = \frac{1}{2^{2k}}</tex>}} |
− | + | {{Лемма | |
− | Для любого <tex>n \in N </tex> существует <tex>H_{n, n}</tex> | + | |statement=Для любого <tex>n \in N </tex> существует <tex>H_{n, n}</tex> |
+ | |proof= Рассмотрим функцию <tex> h_{a, b} = ((ax+b)\ mod\ p)\ mod\ 2^n</tex> для простого <tex>p \in (2^n; 2^{n+1}]</tex>, любых <tex>a, b \in \mathbb{Z}_p</tex>, <tex>a \ne 0</tex> | ||
− | + | Для <tex>r=(ax_1+b)\ mod\ p</tex> и <tex>s=(ax_2+b)\ mod\ p</tex> | |
− | Для | ||
− | === | + | <tex> P(r = r_1 \land s = s_1)= \frac{1}{p^2}</tex>, где <tex>r_1, s_1 \in [0; p)</tex>. |
− | Построим <tex>H_{n, k}</tex> следующим образом: | + | Раз <tex>p \in (2^n; 2^{n+1}]</tex>, то можно записать следующую оценку: |
+ | |||
+ | <tex>\frac{1}{p^2} \left(\frac{p}{2^n} \right)^2 \leqslant P(r\ mod\ 2^n = y_1 \land s\ mod\ 2^n=y_2) \leqslant \frac{1}{p^2} \left( \frac{p}{2^n}+1 \right)^2 </tex> | ||
+ | |||
+ | <tex> P(h(x_1)=y_1 \land h(x_2)=y_2) = \frac{1}{2^{2n}}</tex> | ||
+ | |||
+ | <tex>h_{a, b} \in H_{n, n}</tex> | ||
+ | }} | ||
+ | |||
+ | |||
+ | {{Теорема | ||
+ | |statement=Для любых <tex>n, k \in N</tex> существует <tex>H_{n, k}</tex> | ||
+ | |proof=Построим <tex>H_{n, k}</tex> следующим образом: | ||
При <tex>n=k</tex> существование <tex>H_{n, k}</tex> следует из леммы. | При <tex>n=k</tex> существование <tex>H_{n, k}</tex> следует из леммы. | ||
− | При <tex>n | + | При <tex>n > k </tex> получим переменную <tex> x' </tex> обрезав первые <tex>n-k</tex> бит переменной <tex>x</tex>. Тогда для переменной <tex>x'</tex> существует <tex>H_{k, k}</tex>, а для <tex>x</tex> - соответственно <tex>H_{n, k}</tex>. |
+ | |||
+ | При <tex>n < k </tex> Сперва получим <tex>H_{k, k}</tex>. <tex>H_{n, k}</tex> можно получить отбросив у значений хеш-функций из <tex>H_{k, k}</tex> первые <tex>n-k</tex> бит. | ||
+ | }} | ||
+ | |||
+ | == См. также == | ||
+ | *[[Универсальное семейство хеш-функций]] | ||
+ | == Источники == | ||
+ | *[https://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%85%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 Wikipedia - Универсальное хеширование] | ||
− | + | [[Категория: Хеширование]] |
Текущая версия на 11:44, 1 сентября 2022
Определение: |
называется семейством универсальных попарно независимых хеш-функций, если для и и равномерной выборки функции будет выполнено |
Лемма: |
Для любого существует |
Доказательство: |
Рассмотрим функцию для простого , любых ,Для и, где . Раз , то можно записать следующую оценку:
|
Теорема: |
Для любых существует |
Доказательство: |
Построим следующим образом:При существование следует из леммы.При При получим переменную обрезав первые бит переменной . Тогда для переменной существует , а для - соответственно . Сперва получим . можно получить отбросив у значений хеш-функций из первые бит. |