• Nem Talált Eredményt

Egyirányú függvények

In document Algoritmusok bonyolultsága (Pldal 142-146)

7. Pszeudovéletlen számok 127

7.3. Egyirányú függvények

Pr(A(yi−1) = 1)−Pr(A(yi) = 1)

=

= 1

2+ 1 N

Pr(A(y0) = 1)−Pr(A(yN) = 1)

>1 2+ 1

nkN, ami nem elhanyagolhatóan nagyobb, mint1/2.

Az imént ismertetett pszeudo-véletlen bitgenerátorok létezése következik bizonyos (nem bizonyított, de valószínűnek tűnő) bonyolultságelméleti felté-telezésekből. Ezeket tárgyaljuk a következő alfejezetekben.

7.3. Egyirányú függvények

Az egyirányú függvény olyan függvény, melyet könnyű számolni, de nehéz megfordítani. A pontos definíció a következő:

7.3.1. Definíció. Egyf:{0,1}→ {0,1}függvénytegyirányúnaknevezünk, ha

I. létezik egyc≥1konstans, melyre|x|1/c<|f(x)|<|x|c; II. f(x)számolható polinom időben;

III. mindenApolinom idejű randomizált algoritmusra, mely 0-1 sorozato-kat számol0−1 sorozatokból, és egy véletleny sorozatra, mely egyen-letesen véletlenül van választva{0,1}n-ből, teljesül:

Pr f(A(f(y))) =f(y)

= NEGL(n). (7.3)

A III. feltétel magyarázatra szorul. Értelmezhetjük úgy, hogy amennyiben egynhosszú véletlenysorozatra kiszámítjukf(y)-t és ezutánAsegítségével megpróbáljuk kiszámítanif(y)ősét, akkor a siker valószínűsége elhanyagolha-tó. Vegyük észre, hogy nem tettük fel, hogyf invertálható, így nem írhatjuk azt, hogyA(f(y)) =y.

De miért nem írhatjuk egyszerűen azt, hogy Pr f(A(z)) =z

= NEGL(n) (7.4)

egy egyenletesen véletlenül választottz-re? A lényeg, hogy mivel f nem fel-tétlenül ráképezés, ezért lehet hogy a legtöbbzsorozatot nem is veszi fel f. Ekkor ez a valószínűség kicsi lenne még akkor is, ha mindenz-re amit felvesz

f, az ős könnyen számolható. Ezért (7.3) azokat az eseteket nézi, amikor van ős, és azt írja elő, hogy ezekre nehéz az ős meghatározása.

Azegyirányú permutáció egy olyan egyirányú függvény, mely egy-egy ér-telmű és|f(x)|=|x|minden xesetén. Világos, hogy ebben az esetben (7.4) és (7.3) ekvivalensek.

7.3.1. Tétel. Legyen gegy biztonságos véletlenszám-generátor és tegyük fel, hogy N=|g(x)| ≥2n, ahol n=|x|. Ekkor g egyirányú.

Bizonyítás. Tegyük fel, hogy g mégsem egyirányú. Ekkor létezik egy k >0 konstans, egy polinom idejű randomizáltAalgoritmus és végtelen soknérték, melyre teljesül, hogy egy egyenletesen véletlenül választotty∈ {0,1}n-ra

Pr g(A(g(y))) =g(y)

> 1 nk.

Tekintsük a következő véletlenséget ellenőrzőB algoritmust: egyz∈ {0,1}N sorozatot „nem véletlennek” nevezünk, hag(A(z))=z, egyébként pedig „vélet-lennek”. HaB-nek bemenetként megadunk egy valódi véletlenr=R1. . . RN

véletlen sorozatot vagy pedig g(x)-et (mindkettőt 1/2-1/2 valószínűséggel), akkor a sikeresség valószínűsége

Az első tag nagyon közel van1/2-hez. Valóban, az összesg(x)-szel megegyező hosszú sorozatok száma 2n, tehát annak valószínűsége, hogy r ezek egyike, 2n−N≤2−n, amennyibenN≥2n(és persze harhossza megfelelő, még akkor sem biztos, hogy egyenlőg(A(r))-rel). A második tag legalább1/nka feltétel alapján. A sikeresség valószínűsége tehát

A tétel megfordításaként megmutatjuk, miként lehet egyf egyirányú per-mutáció segítségével konstruálni egy biztonságos véletlenszám-generátort. (Ez a konstrukció Goldreichtől és Levintől származik.) Kétu=u1. . . un és v=

=v1. . . vn azonos hosszúságú 0-1 sorozathoz definiáljuk az u·v =u1v1

⊕. . .⊕unvn értéket, ahol⊕a kizáró vagy (másképpen modulo 2 összeadás) művelet.

Konstruálunk egy véletlenszám-generátort. Legyenf:{0,1}n→ {0,1}negy függvény. Húzzunk szét egy(x, p) = ((x1, . . . , xn),(p1, . . . , pn))véletlen soro-zatot (a sorozat hossza2n, tehát páros a kényelem kedvéért) egyN hosszú pszeudo-véletlen sorozattá a következőképpen. Számoljuk ki a

yt=ft(x)

sorozatokatt= 1, . . . , N-re (ittftazf t-szeres iterációja) és legyen Gt=p·yt, G(x, p) =G1·GN.

7.3.2. Tétel. Tegyük fel, hogy f egyirányú permutáció. Ekkorg egy bizton-ságos véletlenszám-generátor.

Bizonyítás. A 7.2.1. tételt és a kimondását követő megjegyzést felhasználva elég annyit bizonyítanunk, hogy minden 1≤i≤N és minden polinom ide-jűBrandomizált algoritmus esetén,1/2-nél csak elhanyagolhatóan nagyobb annak valószínűsége, hogy a kimenete éppenGi, ha a bemeneteGN. . . Gi+1. Legyünk nagylelkűek és engedjük meg az algoritmusnak, hogy ne csak ezen biteket használhassa, hanem azft(x)sorozatot is mindent≥i+1-re, és még a p sorozatot is (amikből GN. . . Gi+1 könnyen számolható). Ekkor viszont nem kell megadnunk azfi+2(x), . . . ,fN(x)sorozatokat, mert ezek könnyen számolhatókfi+1(x)-ből.

Mivelf az{0,1}negy permutációja, azft(x)vektor is egy permutáció, te-hát egyenletes eloszlású{0,1}n-en mindent-re. Legyeny=fi(x)ész=fi+1(x).

Mivelf egyirányú, tudjuk, hogy nincs olyan polinomiális algoritmus, ami nem elhanyagolható valószínűséggel kiszámítanáy-tz-ből.

Így aBalgoritmusz=fi+1(x)-ből megtippeliGi=p·f−1(z)értékét. Ezt a tippet jelöljükB(p, z)-vel vagy simánB(p)-vel (az-től való függőség nem lesz lényeges). Megmutatjuk, hogy tetszőleges olyan algoritmus, ami1/2-nél nem elhanyagolhatóan nagyobb valószínűséggel találja el a jó választ, azy=f−1(z) sorozatot is nem elhanyagolható valószínűséggel ki tudja számítani.

Bemelegítésként tegyük fel, hogy van egy olyanBalgoritmusunk, ami min-den p-re jól megadja ap·y értéket. Ekkory-t is könnyű kiszámítani, hiszen azi-edik bitje éppen yi=ei·y=B(ei), ahol ei= 0i−110n−i (az azn hosszú sorozat, melyben csak azi-edik bit 1).

Sajnos esetünkben a helyzet bonyolultabb: nem lehetünk biztosak benne, hogyBmindigp·y-t számítja ki, csak azt tudjuk, hogy egy olyan tippet ad, ami1/2-nél egy kicsit többször jó (hap-re,y-ra és a Báltal használt összes lehetséges érmefeldobásra vonunk átlagot). Tehát nincs semmi garancia arra, hogy az algoritmus helyes választ ad akkor, ha a nagyon speciálisp=eiértéket adjuk be neki.

A következő ötlet az, hogy használjuk azt, hogy mindenp-re yi=ei·y= (p⊕ei)·y⊕p·y.

Ez mutatja, hogy használhatnánkyi tippjeként a B(p⊕ei)⊕B(p)

értéket. Mivel hap-t véletlennek (azaz egyenletes eloszlással{0,1}n-ből) vá-lasztjuk, tudjuk, hogy1/2-nél egy kicsi, de nem elhanyagolható értékkel na-gyobb az esélyünk arra, hogyp·y-t adjaB(p), és mivel ekkorp⊕eiis egyenletes

eloszlású{0,1}n-ben, ezért ez áll(p⊕ei)·y-ra is. Sajnos ettől még nagyon rossz korlátot kapunk annak a valószínűségére, hogy minden tipp jó.

A fő ötlet a következő értékek használata:

g(p) =B(p⊕ei)⊕p·y. (7.5) Hap-re B(p⊕ei) jól tippel, akkor ez a bit pont yi, ha téved, akkor pe-dig yi. Mivel átlagosan B gyakrabban tippel jól, mint rosszul, azt kapjuk, hogy átlagosan azonv vektorok száma, melyekre ez yi legalább (1 +n−c )-szerese azokénak, melyekre yi. Így elég megmutatni, hogy mi a többsége a g(p)biteknek.

Ezzel a módszerrel két gond van: először is, nem tudjuk kiértékelnig(p)-t, mivel a (7.5) képletbenyismeretlen. Másodszor pedig, túl hosszú ideig tarta-na az összesg(p)érték kiszámítása, mely szükséges annak eldöntéséhez, hogy a 0 vagy az 1 a többség.

Habár már úgy tűnik, hogy az első probléma is megöli a módszert, mi mégis a másodikkal foglalkozunk előbb, és meglepő módon az ötletet ad majd az első megoldására is.

Megpróbálhatjukyi-t mintavételezéssel megállapítani: válasszunk elég sok p1, . . . , pk egymástól független véletlen vektort, és adjuk ki g(p1), . . . , g(pk) közül a többséget, mint azyi-re vonatkozó tippet. Ekkor valószínűségszámí-tásból (pontosabban a nagy számok erős törvényéből) tudjuk, hogy a többség a mintában nagy valószínűséggel ugyanaz lesz, mint az összes szám között.

A pontos számolás standard valószínűségszámítási technikákat használ, de a későbbiek miatt végig megyünk rajta. Tegyük fel, hogy (mondjuk)xi= 0, azaz ag(p)értékek többségepösszes lehetséges értékét tekintve 0, tehát azon pvektorok száma amireg(p)=1egyM≤(1/2−n−c)2nszám. A mintában azt várjuk, hogyg(pj) = 1 körülbelül kM2−n≤(1/2−n−c)k-szor tapasztalunk.

Ha a minta rossz következtetést ad, akkor Xk

Így a Markov egyenlőtlenség szerint (7.6)k/(n−2ck2) =n2c/k-nál kisebb va-lószínűséggel teljesül.

Fontos megjegyeznünk, hogy ahhoz, hogy a fenti következtetésre jussunk nincs szükségünk független mintára, elég, ha a p1, . . . , pk vektorok páron-ként függetlenek. Ez azért jelentős, mert páronpáron-ként független vektorok vá-lasztásához kevesebb „véletlenség” kell. Pontosabban, legyenk= 2r−1, ve-gyünkr független p1, . . . , pr vektort egyenletes eloszlással {0,1}n-ből, és le-gyen pr+1, . . . , pk ezek összes lehetséges lineáris kombinációja GF(2) felett (mondjuk pr+1=p1⊕p2, pr+2=p1⊕p2⊕p3 stb.; nem számít milyen sor-rendben írjuk fel őket). Ekkor könnyen látható, hogy ap1, . . . , pk vektorok páronként függetlenek, és így használhatóak mintának.

Eleve érdekes, hogy az érmefeldobáson tudunk spórolni, viszontp1, . . . , pk

fenti előállításának van egy másik, sokkal fontosabb előnye: ennek segítségével kiutat találhatunk abból a bajból, hogy nem ismerjüky-t a (7.5) formulában.

Valóban, elég tudnunkp1·y, . . . , pr·yértékét (mivel ekkorpr+1·y=p1·y⊕p2·y stb.).

Tehát csak r bitnyi információra van szükség y-ról. Ez sokkal kevesebb, mint n, de hogy kaphatnánk meg? A válasz az, hogy sehogy. Egyszerűen kipróbáljunk az összes lehetséges0-ból és1-ből állór-est. Ez csak2j=k+1 =

=O(nc)esetet jelent. Minden próbálkozásra megpróbáljuk rekonstruálniy-t a fent leírt módon. Tudni fogjuk, ha sikerrel jártunk, mivel ellenőrizhetjük, hogyf(y)=zteljesül e a kapotty-ra, és ez nem elhanyagolható valószínűséggel teljesülni is fog.

In document Algoritmusok bonyolultsága (Pldal 142-146)