Семейство универсальных попарно независимых хеш-функций — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 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>
 
<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>, что <tex> h_{a, b} = (ax+b)</tex> для любых <tex>a, b</tex> в поле <tex> \mathbb{F}_{2n}</tex>
  
 
==Теорема==
 
==Теорема==
 
Для любых <tex>n, k \in N</tex> существует <tex>H_{n, k}</tex>
 
Для любых <tex>n, k \in N</tex> существует <tex>H_{n, k}</tex>
  
==Лемма==
+
===Доказательство===
Для любого <tex>n \in N </tex> существует <tex>H_{n, n}</tex>, что <tex> h_{a, b} = (ax+b)</tex> для любых <tex>a, b</tex> в поле <tex> \mathbb{F}_{2n}</tex>
+
 
 +
Построим <tex>H_{n, k}</tex> следующим образом:
 +
 
 +
При <tex>n=k</tex> существование <tex>H_{n, k}</tex> следует из леммы.
 +
 
 +
При <tex>n < k </tex> получим переменную <tex> x' </tex> обрезав первые <tex>n-k</tex> бит переменной <tex>x</tex>. Тогда для переменной <tex>x'</tex> существует <tex>H_{n, n}</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> бит.

Версия 22:27, 7 мая 2010

Определение

[math] H_{n, k} = \{ h | h: 2^n \to 2^k \}[/math] называется семейством универсальных попарно независимых хеш-функций, если для [math] \forall x_1, x_2 \in 2^n, x_1 \ne x_2[/math] и [math] \forall y_1, y_2 \in 2^k[/math] и равномерной выборки функции [math] h \in H_{n, k} [/math] будет выполнено [math]P(h(x_1) = y_1 \land h(x_2) = y_2) = \frac{1}{2^{2k}}[/math]

Лемма

Для любого [math]n \in N [/math] существует [math]H_{n, n}[/math], что [math] h_{a, b} = (ax+b)[/math] для любых [math]a, b[/math] в поле [math] \mathbb{F}_{2n}[/math]

Теорема

Для любых [math]n, k \in N[/math] существует [math]H_{n, k}[/math]

Доказательство

Построим [math]H_{n, k}[/math] следующим образом:

При [math]n=k[/math] существование [math]H_{n, k}[/math] следует из леммы.

При [math]n \lt k [/math] получим переменную [math] x' [/math] обрезав первые [math]n-k[/math] бит переменной [math]x[/math]. Тогда для переменной [math]x'[/math] существует [math]H_{n, n}[/math], а для [math]x[/math] - соответственно [math]H_{n, k}[/math].

При [math]n \gt k [/math] получим [math]H_{k, k}[/math]. [math]H_{n, k}[/math] можно получить, обрезав значение хеш-функции из [math]H_{k, k}[/math], на первые [math]n-k[/math] бит.