Односторонние функции и псевдослучайные генераторы — различия между версиями
(→Определение) |
|||
Строка 3: | Строка 3: | ||
* Функция <tex> \epsilon(n) </tex> называется ''пренебрежимо малой'', если <tex> \forall c > 0 </tex> и достаточно больших <tex> n:~\epsilon(n) = o(n^{-c}) </tex>. Пример: <tex> 1/2^n </tex>. | * Функция <tex> \epsilon(n) </tex> называется ''пренебрежимо малой'', если <tex> \forall c > 0 </tex> и достаточно больших <tex> n:~\epsilon(n) = o(n^{-c}) </tex>. Пример: <tex> 1/2^n </tex>. | ||
− | * Функция <tex> f </tex> называется ''односторонней'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> существует пренебрежимо малая функция <tex> \epsilon (n)</tex> такая, что для любого натурального <tex> n </tex> вероятность <tex> P_{A}(A(f(x)) = x) < \epsilon (n)</tex> | + | * Функция <tex> f </tex> называется ''односторонней'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> существует пренебрежимо малая функция <tex> \epsilon (n)</tex> такая, что для любого натурального <tex> n </tex> вероятность <tex> P_{A}(A(f(x)) = x) < \epsilon (n)</tex> для случайно выбранного <tex> x \in \{0,1\}^n </tex>. |
== Гипотеза == | == Гипотеза == | ||
Строка 18: | Строка 18: | ||
Рассмотрим язык <tex> L = \{\langle a,y \rangle ~|~ \exists x, a </tex> - префикс <tex> x, f(x) = y \} </tex>. | Рассмотрим язык <tex> L = \{\langle a,y \rangle ~|~ \exists x, a </tex> - префикс <tex> x, f(x) = y \} </tex>. | ||
− | <tex> L \in NP </tex> и, так как по условию <tex> NP = P </tex>, то <tex> L \in P </tex>. Заметим, что подбирая по одному биту, <tex> x </tex> легко восстанавливается за полином | + | <tex> L \in NP </tex> и, так как по условию <tex> NP = P </tex>, то <tex> L \in P </tex>. Заметим, что подбирая по одному биту, <tex> x </tex> легко восстанавливается за полином и, следовательно, односторонних функций существовать не может. |
== Определение == | == Определение == | ||
− | [[системы шифрования|Система шифрования]] называется ''вычислительно безопасной'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что вероятность <tex> P(A(E_{k}(x)) = (i,b) \wedge x_{i} = b) \le 1/2 + \epsilon(n) </tex> | + | [[системы шифрования|Система шифрования]] называется ''вычислительно безопасной'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что вероятность <tex> P(A(E_{k}(x)) = (i,b) \wedge x_{i} = b) \le 1/2 + \epsilon(n) </tex> для случайно выбранного <tex> x \in \{0,1\}^m </tex> и произвольного ключа <tex> k \in K = \{0,1\}^n </tex>. То есть любой выбранный наугад бит текста в лучшем случае может быть угадан перехватчиком с вероятностью, большей, чем <tex> 1/2 </tex>, на пренебрежимо малую величину. |
== Теорема == | == Теорема == | ||
Строка 29: | Строка 29: | ||
= Псевдослучайные генераторы = | = Псевдослучайные генераторы = | ||
== Определение == | == Определение == | ||
− | Функция <tex> G: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''псевдослучайным генератором'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что разность вероятностей <tex> |P(A(G(x)) = 1) - P(A(y) = 1)| < \epsilon (n)</tex> | + | Функция <tex> G: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''псевдослучайным генератором'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что разность вероятностей <tex> |P(A(G(x)) = 1) - P(A(y) = 1)| < \epsilon (n)</tex> для случайно выбранных <tex> x \in \{0,1\}^n, y \in \{0,1\}^m </tex>. Иначе говоря, полиномиальному перехватчику невозможно различить случайно сгенерированную строку длины <tex> m </tex> и строку, созданную генератором <tex> G </tex> из более короткой случайной строки длины <tex> n </tex>. |
== Теорема == | == Теорема == | ||
Строка 36: | Строка 36: | ||
== Определение == | == Определение == | ||
− | Функция <tex> G: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''непредсказуемой'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что вероятность <tex> P(A(1^n, y_{1},...,y_{i-1}) = y_{i} \wedge y = G(x)) \le 1/2 + \epsilon(n) </tex> | + | Функция <tex> G: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''непредсказуемой'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, что вероятность <tex> P(A(1^n, y_{1},...,y_{i-1}) = y_{i} \wedge y = G(x)) \le 1/2 + \epsilon(n) </tex> для случайно выбранного <tex> x \in \{0,1\}^n </tex>. Иными словами, предсказать <tex>i</tex>-й бит, зная предыдущие <tex>i-1</tex> бит, трудно для любого полиномиального алгоритма. |
== Теорема == | == Теорема == | ||
Функция <tex> G </tex> является случайным генератором тогда и только тогда, когда <tex> G </tex> - непредсказуемая. | Функция <tex> G </tex> является случайным генератором тогда и только тогда, когда <tex> G </tex> - непредсказуемая. | ||
===== Без доказательства. ===== | ===== Без доказательства. ===== |
Версия 17:01, 1 июня 2010
Содержание
Односторонние функции
Определения
- Функция называется пренебрежимо малой, если и достаточно больших . Пример: .
- Функция называется односторонней, если для любого полиномиального вероятностного алгоритма существует пренебрежимо малая функция такая, что для любого натурального вероятность для случайно выбранного .
Гипотеза
- Односторонние функции существуют.
Строго говоря, нам пока не известна ни одна односторонняя функция. Однако предложено несколько функций, которые могут оказаться односторонними — для этих функций в настоящее время, несмотря на интенсивные исследования, не известны эффективные алгоритмы нахождения обратной функции.
- RSA:
- Функция Рабина:
Теорема
Если P = NP, то не существует односторонних функций.
Доказательство:
Рассмотрим язык
- префикс .и, так как по условию , то . Заметим, что подбирая по одному биту, легко восстанавливается за полином и, следовательно, односторонних функций существовать не может.
Определение
Система шифрования называется вычислительно безопасной, если для любого полиномиального вероятностного алгоритма существует пренебрежимо малая функция такая, что вероятность для случайно выбранного и произвольного ключа . То есть любой выбранный наугад бит текста в лучшем случае может быть угадан перехватчиком с вероятностью, большей, чем , на пренебрежимо малую величину.
Теорема
Если существуют односторонние функции, то для любого натурального
существует - вычислительно безопасная схема: , то есть использующая ключи длины для сообщений размера .Без доказательства.
Псевдослучайные генераторы
Определение
Функция
называется псевдослучайным генератором, если для любого полиномиального вероятностного алгоритма и любого натурального существует пренебрежимо малая функция такая, что разность вероятностей для случайно выбранных . Иначе говоря, полиномиальному перехватчику невозможно различить случайно сгенерированную строку длины и строку, созданную генератором из более короткой случайной строки длины .Теорема
Если существуют односторонние функции, то существуют псевдослучайные генераторы.
Без доказательства.
Определение
Функция
называется непредсказуемой, если для любого полиномиального вероятностного алгоритма и любого натурального существует пренебрежимо малая функция такая, что вероятность для случайно выбранного . Иными словами, предсказать -й бит, зная предыдущие бит, трудно для любого полиномиального алгоритма.Теорема
Функция
является случайным генератором тогда и только тогда, когда - непредсказуемая.