Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
Now you are in the subtree of Lecture Notes public knowledge tree. 

Односторонние функции

Определение

Функция f:{0,1}k(n){0,1}l(n) называется сильно односторонней, если f вычисляется за время poly(n) и
p {Rn}n=1 N n>N Prx{0,1}k(n){f(Rn(f(x)))=f(x)}<1p(n)
Здесь Rn -- семейства схем полиномиального размера


Определение

Функция f:{0,1}k(n){0,1}l(n) называется слабо односторонней, если f вычисляется за время poly(n) и
q {Rn}n=1 N n>N Prx{0,1}k(n){f(Rn(f(x)))=f(x)}<11q(n)
Здесь Rn - семейства схем полиномиального размера


Замечание

Любая сильно односторонняя функция является слабо односторонней. Достаточно взять p=2.


Утверждение

Если существует слабо одностороняя функция, то PNP

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

Рассмотрим для произвольной функции f язык L={y{0,1}l(n):x{0,1}k(n)f(x)=y}. Очевидно, LNP.

Если P=NP, то соответствующая задача поиска решается за полиномиальное время. А эта задача обращает f(x).


Свойства

  1. Если f - односторонняя функция, то h(x)=f(x)00 (l(n) нулей) - односторонняя функция.

    Дан y, хотим найти x:f(x)=y. Запишем y дополненный l(n) нулями, обратим h, получим x.

  2. Если f - одностороння функция, то h(x)=f(x)f(x) (конкатенация) - односторонняя функция.

    Дан y, хотим найти x:f(x)=y. Запишем y два раза подряд, обратим g, получим x.


Определение 

Функция f:{0,1}k(n){0,1}l(n) называется сильно односторонней в вероятностной схеме, если f вычисляется за время poly(n) и p{Rn}n=1Nn>NPrx{0,1}k(n),r{f(Rn(f(x),r))=f(x)}<1p(n)
Здесь Rn - семейства схем полиномиального размера


Предложение

Сильно односторонняя функция является сильно односторонней в вероятностной схеме и наоборот


Примеры предположительно односторонних функций:

  1. Умножение (cлабо односторонняя функция) 
    f(x)=xy 
    |x|=|y|=n

  2. SUBSET-SUM 
    (n1,,nk,s)(n1,,nk,N), |s|=k 
    N=i:si=1ni


Теорема

Если существует сильно односторонняя функция, то существует слабо одностороняя функция, не являющаяся сильно односторонней.

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

Пусть f -- сильно односторонняя. Определим g следующими равенствами:
g(x0)=f(x)0
g(x1)=x1
Такая g - слабо односторонняя, ибо если ее можно обратить с вероятностью 23, то ее можно обратить в первом случае с вероятностью 13. Тогда и f можно обратить с такой вероятностью, а значит, f -- не сильно односторонняя.


Предложение

Посмотрим на два высказывания о функции f:
{Rn} p() N n>N Pr{f(Rn(f(x)))=f(x)}<11p(n)
p() {Rn} N n>N Pr{f(Rn(f(x)))=f(x)}<11p(n)
Второе из них -- определение того, что f слабо непрерывна. Очевидно, что из второго следует первое. На самом деле, эти утверждения равносильны.


Теорема

Если существует слабо одностороняя функция, то существет сильно одностороняя функция.

Идея доказательства

F(x1,,xN)=f(x1)f(xN) 
Пусть обратитель F пытается обратить все компоненты по отдельности. Тогда вероятность успеха (11q(n))N=ln

Нужно по обратителю F построить обратитель f
S(y): запуск R(y,f(x2),,f(xN)), проверка успешности 
запуск R(y,f(x2),,f(xN)), проверка успешности 
запуск R(y,f(x2),,f(xN)), проверка успешности 

Достаточно доказать следующее утверждение:

Если R успешен с вероятностью 1p(n), то 
q m S успешен с вероятностью11q(n)

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

S1(x)=Prx2,,xn{f(R1(f(x),f(x2),,f(xN)))=f(x)}
Si(x)=Prx1,,xi1,xi+1,,xN{f(R1(f(x1),,f(xi1),f(x),f(xi+1),,f(xN)))=f(x)} Вероятность успеха 1 шага Smax{S1(x),,SN(x)} 

Если maxSi(x)>1poly(n), тогда за счет выбора m можно повысить вероятность успеха до 11q(n) таких x, что maxSi(x)<1poly(n), мало.