Изменения

Перейти к: навигация, поиск

Односторонние функции и псевдослучайные генераторы

1759 байт добавлено, 19:06, 4 сентября 2022
м
rollbackEdits.php mass rollback
== Определения ==
* Функция <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> \forall g epsilon (n)</tex>такая, удовлетворяющей классу [[Сложностный класс BPP|BPP]], что для любого натурального <tex> n </tex> вероятность <tex> PP_{A}(gA(f(x)) = x) < \epsilon (n) </tex> -- пренебрежимо маладля случайно выбранного <tex> x \in \{0,1\}^n </tex>.
== Гипотеза ==
* Односторонние функции существуют.
Строго говоря, нам пока не известна ни одна односторонняя функция. Однако предложено несколько функций, которые могут оказаться односторонними — для этих функций в настоящее время, несмотря на интенсивные исследования, не известны эффективные алгоритмы инвертированиянахождения обратной функции.
# <tex> f(x,y) = xy </tex>
# RSA: <tex> f_{e,n}(x) = x^e~mod~\bmod n </tex># Функция Рабина: <tex> f(x,n) = x^2~mod~\bmod n </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> A </tex>существует пренебрежимо малая функция <tex> \epsilon (n) </tex> такая, удовлетворяющего классу [[Сложностный класс BPP|BPP]] выполнено:  что вероятность <tex> P(A(E_{k}(x)) = (i,b) \wedge x_{i} = b) \le 1/2 + \epsilon(n) </tex> по всем для случайно выбранного <tex> k x \in K = \{0,1\}^n, x m </tex> и произвольного ключа <tex> k \in K = \{0,1\}^m n </tex>. То есть любой выбранный наугад бит текста в лучшем случае может быть угадан перехватчиком с вероятностью, большей, где функция чем <tex> \epsilon(n) 1/2 </tex> - , на пренебрежимо маламалую величину.
== Теорема ==
Если существуют односторонние функции, то для любого натурального <tex> \forall c ~\exists </tex> существует <tex>\langle E,D \rangle</tex> -- вычислительно безопасная схема: <tex> |k| = n, |x| = n^c </tex>, то есть использующая ключи длины <tex>n</tex> для сообщений размера <tex>n^{c}</tex>.
===== Без доказательства. =====
= Псевдослучайные генераторы =
== Определение ==
Слово <tex> x: |x| = n </tex> называется ''с - случайным'', если его нельзя вывести программой на языке Pascal длиной не более <tex> cn </tex>, где <tex> 0 < c < 1 </tex>. == Определение ==Функция <tex> gG: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''псевдослучайным генератором'', если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \forall A epsilon (n) </tex>такая, удовл. классу [[Сложностный класс BPP|BPP]] что разность вероятностей <tex> |P(A(gG(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>.
== Теорема ==
== Определение ==
Функция <tex> gG: \{0,1\}^n \to \{0,1\}^m, m > n </tex> называется ''непредсказуемой'', если если для любого полиномиального вероятностного алгоритма <tex> A </tex> и любого натурального <tex> n </tex> существует пренебрежимо малая функция <tex> \forall A epsilon (n) </tex>такая, удовл. классу [[Сложностный класс BPP|BPP]] что вероятность <tex> P(A(1^n, y_{1},...,y_{i-1},1^n) = y_{i} \wedge y = gG(x)) \le 1/2 + \epsilon(n) </tex>, где для случайно выбранного <tex> x \in \{0,1\}^n </tex>. Иными словами, а функция предсказать <tex> \epsilon(n) i</tex> -й бит, зная предыдущие <tex>i- пренебрежимо мала1</tex> бит, трудно для любого полиномиального алгоритма.
== Теорема ==
Функция <tex> g G </tex> является случайным генератором тогда и только тогда, когда <tex> g G </tex> - непредсказуемая.
===== Без доказательства. =====
1632
правки

Навигация