==Формулировка==
Пусть '''P''' Имеется набор из <tex>k =2^{n}</tex> '''NP'''. Имеется набор схем шифрования <tex>\{\langle E_{i}, D_{i}\rangle\}</tex>, где <tex>0 \le i \le k = 2^{n}</tex>, <tex>E_{i} \in P</tex>— функция для шифрования, <tex>D_{i} \in P</tex>— функция для расшифрования. Обе функции биективны. На схему подаются слова длины <tex>m</tex>, при этом <tex>m > n</tex>. То есть при любом <tex>i</tex> выполняется следующее: <tex>E_{i}(x) = c \Rightleftarrow D_{i}(c) = x</tex>. Тогда , если '''P''' <tex>=</tex> '''NP''', то существует функция <tex>\exists A: \{0,1\}^{m} \to \{0,1\}</tex>, <tex>A \in P</tex> вычислимая за полиномиальное время от входа, такая, что для нее в свою очередь существуют слова <tex> \exists x_{0}, </tex> и <tex>x_{1}</tex> такие, что вероятность <tex>P(A(E_{i}(x_{b}))=b) \ge 0.75</tex> по всем <tex>b \in \{0,1\}</tex> и всем <tex>i \in \{0,1\}^{n}</tex>. Если '''P''' <tex>=</tex> '''NP''', то получается, что для любого набора схем шифрования размером меньше, чем длина шифруемых слов, найдется пара таких слов, которые можно различить с высокой вероятностью. С другой стороны, как будет видно из доказательства, эта пара слов неконструктивна.
==Доказательство==