Протокол Голдвассер-Сипсера для оценки размера множества

Материал из Викиконспекты
Перейти к: навигация, поиск

Описание протокола[править]

Рассмотрим множество [math]S \subseteq \left\{ 0, 1 \right\} ^m[/math], для которого существует сертификат проверки на принадлежность. Протоколом Голдвассер-Сипсера является двухуровневый интерактивный протокол, в котором [math]V[/math] старается принять множество [math]S[/math], если [math]|S| \ge K[/math], и отвергнуть, если [math]|S| \le \frac{K}{2}[/math].

Выберем [math]k[/math] так, чтобы [math]2^{k - 2} \le K \le 2^{k - 1}[/math]. Тогда протокол устроен следующим образом:

[math]V:[/math] Отправляет [math]P[/math] случайным образом выбранные [math]h : \left\{ 0, 1 \right\} ^ m \rightarrow \left\{ 0, 1 \right\} ^ k[/math] из семейства универсальных попарно независимых хеш-функций [math]H_{m, k}[/math] и [math]y[/math] из [math]\left\{ 0, 1 \right\} ^ k[/math].

[math]P:[/math] Пытается найти [math]x \in S[/math], такой что [math]h(x) = y[/math]. Отправляет [math]V[/math] найденный [math]x[/math] и сертификат [math]c[/math], подтверждающий принадлежность [math]x[/math] множеству [math]S[/math].

[math]V:[/math] Если верно, что [math]x \in S[/math] и [math]h(x) = y[/math], то множество [math]S[/math] принимается. В противном случае [math]V[/math] отвергает множество [math]S[/math].

Оценки вероятностей[править]

Пусть [math]p = \frac{K}{2^k}[/math]. Если [math]|S| \le \frac{K}{2}[/math], тогда [math]|h(S)| \le \frac{p\cdot2^k}{2}[/math]. Отсюда получаем, что [math]P[y \in h(S)] \le \frac{p}{2}[/math]. Необходимо показать, что в случае [math]|S| \ge K[/math], [math]V[/math] будет принимать [math]S[/math] с вероятностью различимо большей [math]\frac{p}{2}[/math].

Утверждение:
Если [math]K \le |S| \le 2^{k - 1}[/math], то [math]P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4}\cdot\frac{|S|}{2^k}[/math], где [math]h[/math] случайным образом выбрано из [math]H_{m, k}[/math], а [math]y~-[/math] из [math]\left\{0,1\right\}^k[/math].
[math]\triangleright[/math]

Покажем, что для каждого [math]y \in \left\{0,1\right\}^k[/math] и случайно выбранной функции [math]h \in H_{m,k}[/math] справедливо [math]P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4} p[/math].

Для каждого [math]x \in S[/math] определим событие [math]E_x = \left\{h \in H_{m, k} \bigm| h(x) = y\right\}[/math]. Тогда [math]P[\exists x \in S \bigm| h(x) = y] = P[\bigcup \limits_{x \in S}E_x][/math], что формуле включения-исключения не меньше, чем [math]\sum \limits_{x \in S}P[E_x] - \sum\limits_{x_1 \ne x_2 \in S}P[E_{x_1} \cap E_{x_2}][/math]. Поскольку выбирались [math]h \in H_{m, k}[/math], то [math]P[E_x] = \frac{1}{2^k}[/math] и [math]P[E_{x_1} \cap E_{x_2}] = \frac{1}{2^{2k}}[/math]. Тогда [math]P[\bigcup \limits_{x \in S}E_x] \ge \frac{|S|}{2^k} - \frac{1}{2}\cdot\frac{|S|^2}{2^{2k}} \ge \frac{3}{4}\cdot\frac{|S|}{2^k} \ge \frac{3}{4}p[/math].
[math]\triangleleft[/math]

Стоит отметить, что если [math]|S| \gt 2^{k - 1}[/math], то [math]P[/math] может выбрать [math]C \subseteq S[/math] так, чтобы [math]K \le |C| \le 2^{k - 1}[/math]. А значит, в качестве нижней оценки [math]P[\exists x \in S \bigm| h(x) = y][/math] в этом случае можно использовать [math]\frac{3}{4}p[/math].

Итого:

  1. если [math]|S| \le \frac{K}{2}[/math], то [math]P[V(|S| \ge K) = 1] \le \frac{p}{2}[/math].
  2. если [math]|S| \ge K[/math], то [math]P[V(|S| \ge K) = 1] \ge \frac{3}{4}p[/math].

Источники[править]