Nagy számok faktorizációja a Shor-algoritmussal

Hasonló dokumentumok
Shor kvantum-algoritmusa diszkrét logaritmusra

Számelméleti alapfogalmak

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Waldhauser Tamás december 1.

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

Sapientia Egyetem, Matematika-Informatika Tanszék.

Diszkrét matematika I.

KOVÁCS BÉLA, MATEMATIKA I.

Diszkrét matematika I.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

Klasszikus algebra előadás. Waldhauser Tamás március 24.

SzA XIII. gyakorlat, december. 3/5.

Mintafeladat az RSA algoritmus szemléltetésére

Információs társadalom alapismeretek

Számelmélet Megoldások

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

Kongruenciák. Waldhauser Tamás

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

illetve a n 3 illetve a 2n 5

Nagy Gábor compalg.inf.elte.hu/ nagy

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Titkosírás. Biztos, hogy titkos? Szabó István előadása. Az életben sok helyen használunk titkosítást (mobil, internet, jelszavak...

Polinomok (el adásvázlat, április 15.) Maróti Miklós

Data Security: Public key

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Algoritmuselmélet 18. előadás

Diszkrét matematika 2.

Prímtesztelés, Nyilvános kulcsú titkosítás

Szakács Lili Kata megoldása

Vektorok, mátrixok, lineáris egyenletrendszerek

A parciális törtekre bontás?

Hatványozás. A hatványozás azonosságai

Sapientia Egyetem, Matematika-Informatika Tanszék.

Egészrészes feladatok

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Gauss elimináció, LU felbontás

17. előadás: Vektorok a térben

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Saj at ert ek-probl em ak febru ar 26.

NEVEZETES SZÁMELMÉLETI FÜGGVÉNYEKRŐL

GROVER-algoritmus. Sinkovicz Péter. ELTE, MSc II dec.15.

Kvantumszámítógép a munkára fogott kvantummechanika

Algoritmuselmélet gyakorlat (MMN111G)

2018, Diszkre t matematika. 10. elo ada s

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Számsorozatok (1) First Prev Next Last Go Back Full Screen Close Quit

Kalkulus. Komplex számok

Algoritmuselmélet 12. előadás

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Elemi matematika szakkör

Kvantum-számítógépek, univerzalitás és véges csoportok

Számelmélet. 1. Oszthatóság Prímszámok

I. Egyenlet fogalma, algebrai megoldása

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Függvény határérték összefoglalás

Nagy Gábor compalg.inf.elte.hu/ nagy

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

Függvények december 6. Határozza meg a következő határértékeket! 1. Feladat: x 0 7x 15 x ) = lim. Megoldás: lim. 2. Feladat: lim.

Polinomok (előadásvázlat, október 21.) Maróti Miklós

Egyenletek, egyenlőtlenségek X.

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

Függvények július 13. Határozza meg a következ határértékeket! 1. Feladat: x 0 7x 15 x ) = lim. x 7 x 15 x ) = (2 + 0) = lim.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Kvantumkriptográfia II.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Számelmélet

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Permutációk véges halmazon (el adásvázlat, február 12.)

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?

2017, Diszkrét matematika

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

6. előadás Faktorizációs technikák közepes méretű osztókra

6. előadás Faktorizációs technikák közepes méretű osztókra

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 1. Számítsd ki a következő kifejezések pontos értékét!

Diszkrét matematika 1.

SHk rövidítéssel fogunk hivatkozni.

Analízis előadás és gyakorlat vázlat

Függvények határértéke, folytonossága

Függvények növekedési korlátainak jellemzése

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Formális nyelvek és automaták

Zárthelyi feladatok megoldásai tanulságokkal Csikvári Péter 1. a) Számítsuk ki a 2i + 3j + 6k kvaternió inverzét.

Átírás:

Nagy számok faktorizációja a Shor-algoritmussal Koronka Gábor May 3,

Tartalomjegyzék Bevezetés 3 A Shor-algoritmus vázlata 6. Az algoritmus lépései....................... 6. Hatvány tulajdonság ellenőrzése................. 7.3 Nem prímhatvány esetén a nem triviális felbontás....... 7.4 Példa számítás.......................... 9 3 Kvantumszámítógépek bevezetése 3. A kvantum bit........................... 3. A kvantum számítások...................... 3.3 Tenzorszorzat........................... 3.4 A kvantum kapuk......................... 4 3.5 Hagyományos számítógépek szimulálása kvantumszámítógépen...................... 6 3.6 Fourier-transzformáció kvantumszámítógépekkel........ 7 4 Kvantum algoritmus a rend meghatározására 4. Az input kezelése, és regiszterek beállítása........... 4. A rend adott függvényének meghatározása speciális esetben. 4.3 A rend adott függvényének meghatározása általános esetben. 3 4.4 A rend meghatározása az outputból leolvasható függvényéből. 7 4.5 A rend meghatározása példaszámítással............. 8

Bevezetés A számítógépek által megoldható problémákkal és ezen megoldások futásidejével, bonyolultságával a számítástudomány foglalkozik. Ez a tudományág foglalkozik azzal is, hogy mely problémákat tudunk megoldani és melyeket nem különböző számítógépmodellek segítségével. Ezzel a témával kapcsolatos első jelentősebb eredmények a huszadik század elején jelentek meg, melyek többek közt Church, Turing, és Post nevéhez fűződik. Az eredményeik között szerepeltek Turing-géppel megoldható és nem megoldható problémák. Turing többek között megmutatta, hogy létezik nem felismerhető nyelv, vagyis léteznek olyan szavai ennek a nyelvnek, amiről nem tudjuk eldönteni Turing-géppel, hogy ez a bizonyos szó eleme-e a nyelvnek. Tehát ennek eldöntése nem megoldható Turing-géppel. A legfontosabb tézis Church nevéhez fűződik, amelyben azt állítja, hogy akármilyen számítógépre írt algoritmus szimulálható Turing-géppel. Ennek azért van nagy jelentősége, mert ekkor minden, amit nem tudunk megoldani a Turing-géppel, azt egyéb más számítógépmodellekkel sem fogjuk tudni megoldani. Church nevéhez fűződik az előbbi tézis egy erősebb verziója is, amely azt mondja, hogy bármely fizikai gép lépései szimulálhatóak Turinggéppel, mégpedig annak polinomiálisan sok lépésével. Ez igen erős állítás, mert ha P NP, akkor semmilyen számítógéppel nem lesznek megoldhatóak gyorsan az NP nehéz problémák. A fenti egyenlőtlenségben a P a determinisztikusan polinomiális lépésszámmal megoldható problémák halmaza, mely probléma megoldásának lépésszáma az input méretének olyan függvénye, amit felülről tudunk becsülni egy polinom függvénnyel. A másik halmaz az NP-beli problémák halmaza, melynek elemeit nem determinisztikusan meg tudjuk polinom időben oldani, vagyis a lépésszám az inputtól polinomiálisan függ. Ez a két halmaz lehet ugyanaz a két halmaz, de jelenleg nem ismert bizonyítás arra, hogy megegyeznének, és cáfolni sem tudták még. Így jelenleg azoknak a problémáknak, amikről tudják, hogy NP-beliek, de amelyekről nem ismert, hogy P-beliek lennének-e, a megoldásához determinisztikus algoritmussal exponenciális lépésre van szükség, ami elég nagy input esetén lefuttathatatlan. Ezért fontos kérdés, hogy bizonyos problémák P-beliek-e, és így polinom lépésben futó algoritmussal megoldhatóak-e. Megjegyezhetjük, hogy természetesen nagyon magas fokú polinom esetén, nagy inputra megint csak túl hosszú időre lenne szükség egy ilyen lépésszámú algoritmus lefuttatásához. Így a gyakorlatban olyan, minél 3

gyorsabb algoritmusokat keresnek, amelyek lépésszámának az inputtól való függése nagyon kisfokú polinommal felülről becsülhető. A fenti tézist cáfolandó csináltak olyan elméleti számítógépeket, amelyekkel meg lehet oldani polinom időben NP nehéz problémákat. Viszont ezek a cáfolatok azért nem voltak sikeresek, mert nem feleltek meg a fizika szabályainak, így később nem is lehetett őket a valóságban megépíteni. Annak ellenére, hogy sokan dolgoztak különféle egyéb alternatív számítógépek kitalálásával és megcsinálásával, még nem sikerült olyan számítógépet építeni, amellyel meg lehet oldani NP nehéz problémát. Így jött az ötlet, amelyet 98-ben Richard Feynmann, Nobel-díjas fizikus vetett fel, hogy lehetne építeni olyan számítógépet, amely a kvantumfizika, a számítástechnikában különlegesnek számító tulajdonságait használná ki. Később több nagy matematikus is foglalkozott azzal a témával, hogy erre a számítógépre algoritmust írjon, eddig viszont csak két nagyobb eredmény született ebben a témában, ami Grover és Shor nevéhez fűződik. Shor-algoritmus nagy számokat faktorizál. E probléma történelme régebbre nyúlik vissza, és elég nagy jelentőségűvé vált a huszadik században. A nagy számok faktorizálásánál ezen nagy számok prímtényezős felbontását készítjük el. A faktorizálás jelentős művelet, és a számelméletben is nagy szerepe van. Egy adott szám sok különböző számelméleti függvényeknél felvett értéke és tulajdonságai a prímtényezős felbontásáról leolvashatóak, és abból kiszámíthatóak. Maga a faktorizálás azért is kapott még nagyobb figyelmet, mert később olyan titkosításokat találtak ki, amelyek számelméleti tulajdonságokat használnak ki. Így a faktorizálás segítségével ki tudjuk számítani a szükséges számelméleti függvények értékét is, ami a titkosított információk visszafejtésének lehetőségét adja a kezünkbe. Az egyik legfontosabb ilyen kód az RSA. Ezt a kódolást 976-ban Ron Rivest, Adi Shamir és Len Adleman fejlesztette ki, és ezzel megjelent az első nyílt kulcsú titkosítás. Ennek azért van nagy jelentősége, mert nem kell a kódnyelven kommunikáló feleknek titkos találkozón információkat megosztaniuk. Egy nyilvános és egy titkos kulcson alapul az eljárás. Egy nyílt kulcs segítségével bárki bekódolhat üzenetet, de csak az tudja a kódot elolvasni, akinek a titkos kulcs is megvan. Ez a fél küldi szét a nyilvános kulcsot is. Ez az eljárással fordított irányban is működik, a titkos kulccsal bekódolt információkat szétküldi a folyamat, azaz mindenki el tudja olvasni a nyilvános kulcs segítségével a titkosított információt, de senki más nem tud üzenetet írni, mert ahhoz szüksége lenne a titkos kulcsra is, ilyen módon készítenek digitális aláírásokat is. 4

A titkosításban és a titkosítással foglalkozó elméletben ez nagy előrelépés volt, és nagyon nagy hatással volt a világra. Ilyen, és ehhez hasonló kódokat alkalmaznak az internet kódolásakor. Például egy internetes oldalt csak a titkosító fél tudjon szerkeszteni, de mindenki képes legyen megnyitni, olvasni és böngészni. Hasonlóan a bankoknál is gyakran használnak ilyen kódolásokat. Mikor különböző tranzakciókat végzünk, ezek a kódok teszik lehetővé, hogy az adott tranzakció sikeres legyen, ahogyan azt is, hogy a bankszámla védett legyen. Egyszóval, a mai világunkban nagyon megnőtt a szerepe a nyíltkulcsú kódoknak. Ezzel természetesen együtt jár, hogy próbálnak különféle módszereket találni ezen titkosítások feltöréséhez, visszafejtéséhez. A fent említett RSA kód matematikailag visszafejthető, de olyan hosszú ideig tart egy-egy titkosított információ visszafejtése, hogy mire dekódolnak egy üzenetet, már régen elvesztette a lényegét a dekódolt információ. Ráadásul a kulcsokat, amin a titkosítás alapul, viszonylag sűrű időközönként frissítik, így teljesen felesleges a dekódolást elkezdeni is. Tehát, ha valaki szeretne feltörni egy ilyen kódot viszonylag gyors algoritmusra van szüksége. Ez sok matematikus és informatikus érdeklődését is felkeltette, de mindeddig a hagyományos számítógépre nem sikerült ilyen algoritmust írni. Később, amikor megjelentek új számítógép modellek, és ezekre algoritmusokat írtak, sikerült Shornak kvantum polinomiális időben megoldani ezt a problémát, vagyis olyan algoritmust írnia, amelynek lépésszáma az input méretétől polinomiálisan függ és faktorizál egy számot. Ennek segítségével már kényelmesen visszafejthető bármilyen titkosított információ. A probléma ezekkel a számítógépekkel, hogy megépíteni nem tudták őket, csak az elmélet volt meg hozzá. Így volt ez a kvantumszámítógéppel és a Shor által írt algoritmussal is. Jelenleg sincsen olyan kvantumszámítógép, ami elég nagy inputot tudna kezelni egy mai kód feltöréséhez. Azonban 998-ban az IBM, MIT, a Californiai Egyetem és az Oxford Egyetem kutatói közösen kifejlesztettek egy kvantumszámítógépet, aminek a processzora hidrogén és klóratomokból állt. Ezzel a géppel eredményesen tudtak demonstrálni néhány alapműveletet, és futtatni néhányat a legegyszerűbb algorimusokból, de a számítógép kapacitása túl kicsi volt ahhoz, hogy komolyabb algoritmusokat futtassanak rajta. Mindeddig nem sikerült elég kapacitással rendelkező kvantumszámítógépet építeni. 5

A Shor-algoritmus vázlata. Az algoritmus lépései Kezdetben bemutatjuk az algoritmus lépéseit, és csak majd ezt követően részletezzük, és magyarázzuk meg azokat. Adott egész szám inputra annak prímtényezős felbontását adja meg az algoritmus. Elsőként az N inputot, ha lehetséges, nem-triviális módon felbontjuk két egész szám szorzatára, majd a szorzat tagjait ilyen módon tovább bontjuk, amíg a szorzat egyik tagja sem bontható tovább. Ekkor a szorzat minden tagja már prím. A következőkben egy szám nem triviális felbontását részletezzük.. Lefutattunk egy prímtesztet N-re. Ha prím, nem bontható tovább, és készen vagyunk. Egyéb esetben futtatjuk a. lépést.. Ha N páros, akkor ismerjük egy nem-triviális felbontását N-nek. Ha páratlan, akkor futtatjuk a 3. lépést. 3. Megkeressük, hogy mely s egésznek a hatványa N. Ha találtunk, akkor ezzel N-et szorzatra bontottuk. Ha viszont nem találunk ilyet, akkor N nem lehet prímhatvány, az. lépés miatt nem lehet prím, ezért legalább két prímtényezője van, ekkor futtatjuk a 4. lépést. 4. Választunk véletlenszerűen egy m számot. Legyen (m, N = d, ha d, akkor d N egy nem-triviális felbontás. Ha d = akkor d futtatjuk az 5. lépést. 5. Keressük P -t, ahol O N (m = P. Ebben a lépésben használjuk ki a kvantum számítógép tulajdonságait, így kvantum polinomiális időben kiszámítható m rendje, azaz P. Ezután futtatjuk a 6. lépést. 6

6. Ha P páros, és (N, m P, (N, m P +, akkor (N, m P (N, m P + egy nem-triváilis felbontás. A feltétel nem teljesülése esetén futtatjuk a 3. lépést.. Hatvány tulajdonság ellenőrzése Megnézzük minden k log N esetén k N egész-e. Ezt úgy csináljuk, hogy N k-adik gyökét olyan pontossággal közelítjük, hogy csak néhány egész szám essen a hibahatárok közé. Ezeket az egész számokat k- dikra emelve ellenőrizhetjük, hogy N k-adik gyökei-e, és így polinomiális időben megtaláljuk az összes egész számot, amelynek hatványa N. Mivel a gyökvonást ilyen pontossággal polinomiális időben el tudjuk végezni. Hasonlóan a visszaszorzásokat is konstansszor polinomiális időben végig tudjuk számolni. Ezeket a műveleteket pedig annyiszor kell elvégezni, ahány féle lehet k, vagyis log N-szer, amivel együtt még így is polinomiális időben fut az algoritmus ezen része..3 Nem prímhatvány esetén a nem triviális felbontás Egy véletlen m választása után az euklideszi-algoritmussal polinomiális időben megkapjuk (N, m = d-t. Ha d készen vagyunk. Ha d = kiszámítjuk P -t, hogy O N (m = P. Ezt később részletezzük. Tegyük fel, hogy P páros, és (N, m P, (N, m P +, ekkor m P (mod N, vagyis és tehát m P m P = (m P N (m P (mod N, (m P +, (m P +, így (N, m P (N, m P + nem triviális felbontása N-nek. 7

Állítás: P((P páratlanvagy((n, m P = vagy((n, m P + =. Vagyis annak a valószínűsége, hogy a választott m számunk segítségével 4 nem tudjuk felbontani N-et, és új véletlen számot kell választanunk. Bizonyítás: Legyen k i= pα i i = N prímtényezős felbontása. Ekkor a kínai maradéktételből következően Z N izomorf Z p α Z p α Z p 3 α 3 Z p k α k -el, az a (a, a, a 3,..., a k kölcsönösen egyértelmű relációtartó hozzárendelésre nézve, ahol Z N -ben mod N, míg Z p i α i -ben pedig mod p i α i relációkat tekintjük. Itt a relációtartást a következőképpen definiáljuk: a mod N a mod p α, a mod p α, a 3 mod p α 3 3,..., a k mod p α k k. Tehát, a véletlenszerűen választott m helyett választhatunk véletlenszerűen egy az m i Z p i α i elemekből álló (m, m,..., m k vektort amivel egyértelműen meghatározzuk az m számot. Legyen m az a szám amelyre teljesül, hogy m N, és m i -k által meghatározott kongruencia-rendszer megoldása m, vagyis m m (mod p α, m m (mod p α,..., m m k (mod p α k k Így ha az (m, m,..., m k vektort egyenletesen választjuk, akkor ez a fentiek alapján meghatározott m-nek is egy egyenletes eloszlású választását adja. g x i i Legyen g i a Z p α i i multiplikatív csoport generátoreleme, x i olyan, hogy m i (mod p α i i, r i = O pi α i(g x i i, és X i = {x : x r i }. Ekkor x i m i = g x i i egy kölcsönösen egyértelmű hozzárendelés X i elemei és Z p i α i elemei közt. Így (x X, x X,... x k X k a {,,..., N} egy kongruenciatartó kölcsönösen egyértelmű hozzárendelés X X X k elemei és {,,..., N} elemei közt. Ezért a fentiek alapján véletlenszerűen választott m-et helyettesíthetjük egy véletlen (x, x,..., x k vektorral, amely a g i -k kitevőjeként egyértelműen meghatározza m i -ket, és így m-et is. Legyen s az az index, melyre l r s -t, viszont minden i-re l+ r i -t. Ha P, akkor l =, és mivel O α p i (g i i, ekkor x i szükségszerűen, viszont P( x i, ebből pedig már tisztán következik, hogy P( P. Legyen O α p i (g i i legnagyobb kettő-hatvány osztója h i. Ha minden i k-ra l r i -t, ekkor hi l x i, de hi l+ x i. Tetszőleges ismert, a fenti 8

módon definiált, r s esetén, ha i s P( h i l x i, h i l+ x i. Ekkor tehát bármilyen is r s, i s esetén az x i -knek maximum a fele teljesíti a feltételt. Vagyis P( P, l : i( l r i, l+ r i ( k + ( k Ha nem prímhatvány N, akkor k, és így legalább 4 valószínűséggel P páros, és létezik i, hogy l r i. Erre az i-re vagyis ekkor viszont p α i i m P. (g x i i P (mod p α i i, m P (mod p α i i, Másrészt P az r i -k legkisebb közös többszöröse, így P -nek is l -en a legnagyobb kettő-hatvány osztója. Ezért, és mert ciklikus Z p s αs (g xs s P (mod p α s s, m P (mod p α s s, vagyis p αs s m P +. Tehát ekkor (N, m P, (N, m P +..4 Példa számítás Legyen az N =, erre az egész inputra futtassuk az algoritmust. következőben az algoritmus lépésein haladunk végig erre az inputra. A. Lefuttatunk egy prímtesztet a -re. A tesztelés után kiderül, hogy nem prím, és az algoritmus futtatja a következő lépést.. Leellenőrzi, hogy páros-e, de nem osztható kettővel, így az algoritmus futtatja a 3. lépést. 3. Ebben a részben keres egy számot, amely valahanyadik gyöke -nek, de ilyet nem talál, mert nem hatvány. Ezért futtatja a 4. lépést. 9

4. Válasszuk véletlenszerűen a -t. Megnézzük a és a legnagyobb közös osztóját. Mivel relatív prímek, ezért a legnagyobb közös osztójuk az. Tehát futtatjuk az 5. lépést. 5. Ebben a lépésben a kvantumszámítógép kiszámolja a rendjét -nek modulus mellett. Ezt hagyományos számítógéppel jelenleg nem tudjuk polinomiális időben megtenni, ezért fontos itt a kvantumszámítógép használata. A rendmeghatározó algoritmust később taglaljuk, és a példával be is mutatjuk a működését. A rendje 6 lesz modulus mellett. 6. Mivel a rend a 6 páros, így megnézhetjük és a 6 = 7 legnagyobb közös osztóját, ami a 7. Illetve megnézhetjük a és 6 + = 9 legnagyobb közös osztóját, ami a 3. Ilyen módon a -et faktorizáltuk = 7 3. Az algoritmus befejeződik. Megjegyezzük, hogy a 3 és a 7 a prímtesztelésnél kiderül, hogy prímek, és így ott az egész algoritmus is megáll. A választása szerencsés volt, mivel ezzel sikerül felbontani a -et. Egy kis számolással kijön, hogy mely számok azok amelyekkel felbomlik a. Ezek a számok a, 3, 5, 6, 7, 8, 9,,,, 3, 4, 5, 8, 9. Ami tehát rossz választás lett volna az a 4, 6, 7,. Tehát a 9 számból összesen 4 rossz volt, így 4 eséllyel jót választottunk. 5

3 Kvantumszámítógépek bevezetése A kvantumszámítógépek előnye abból származik, hogy adott méretű input a méretéhez képest exponenciális információt hordoz. De ezek a méréseknél csak bizonyos valószínűségekkel kaphatóak meg. 3. A kvantum bit A kvantumszámítógép egy bitje alapesetben vagy lehet. Viszont szuperpozícióban lévő kvantumbit bizonyos valószínűségekkel mindkét értéket felveheti. Általános esetben a kvantumbitet egy C komplex euklideszi tér egy egységvektorával modellezhetjük, így egy q kvantumbit, vagy más néven qubit felírható q = a + b alakban, ahol a, b C, és a + b =. Ez azt jelenti, hogy a kvantumbit mérésekor -t kapunk a és -et kapunk b valószínűséggel. Hasonlóan működik több bitre is, így például egy szuperpozícióban lévő két kvantumbitből álló rendszert a következőképpen írhatunk le: a + b + c + d, ahol a, b, c, d C, a + b + c + d =. Ekkor annak a valószínűsége, hogy -t, -t, -t, -t mérünk, rendre a, b, c, d. Általánosabban, egy n kvantumbites rendszer modellje egy ϕ : {,,..., n } C hullámfüggvény, ahol ϕ = n i= a i i, és n i= a i =, i jelentse az i kettes számrendszerbeli alakja által meghatározott n-bites bázisvektort. Másrészről ezt a ϕ-t tekinthetjük a C n euklideszi tér egy egységvektorának is. Ekkor a hagyományos módon jelölve a bázisvektorokat, bizonyos szempontból könnyebben kezelhető modellt kapunk. Ezek a n dimenziós standard bázisvektorok.. j =, ahol csak a j-edik tag, a többi. Vagyis például egy bit.

esetén = (, és = (. Ekkor pedig n i= a i i = n i=. a i.. 3. A kvantum számítások A kvantumszámítógépek a kvantum regisztert módosítva jutnak el az inputból az outputig. A kvantumszámítógép minden lépésben csak unitér transzformációkat tud alkalmazni a kvantumregiszterre, mivel a kvantumszámítógép minden állapotában csak egységvektort tud tárolni, és így az input és az output is csak egységvektor lehet. Tehát csak olyan transzformációkat tudunk elvégezni, ami egységvektorból egységvektorba képez, vagyis unitér transzformációkat. Ekkor U(ϕ = ϕ, ahol U unitér transzformáció, ϕ pedig az input, és így transzformációt követően a kapott ϕ is egységvektor lesz, tehát teljesíti a kvantum regiszterre vonatkozó tulajdonságokat. Másrészről feltételezzük, hogy a kvantumszámítógépek csak konstans nagyságú mátrixszal leírható transzformációt tudnak kezelni, illetve így azok tenzorszorzatait. Ezzel a feltételezéssel a számítógép gyakorlatban való elkészítésének kritériumait, és így magát az elkészítést is egyszerűsíthetjük. 3.3 Tenzorszorzat v v Legyen v =., w = v n w w. w m v w v w, ekkor a tenzorszorzatuk v w =.. v w.

Például legyen v =, w = lesz. (, így a tenzorszorzatuk v w = Legyen V egy n, W pedig egy m dimenziós vektortér. Ekkor V W tenzorszorzat egy nm dimenziós vektortér lesz, melynek elemei a v w vektorok lineáris kombinációi, ahol v V, w W. Emellett v, v V, w, w W, és z C teljesíti a következőket:. z( v w = (z v w = v (z w. (v +v (w +w = v (w +w +v (w +w = i= j= v i w j Megjegyezzük, hogy a tenzorszorzás nem kommutatív. Lineáris operátorokra a következőképpen definiáljuk: Legyen A, B lineáris operátor rendre V -n, illetve W -n értelmezve. Ekkor az A B lineáris operátor V W -n. Az A B-t reprezentáló mátrixot a következő képen számíthatjuk ki: a, B a, B a,n B a, B a, B a,n B A B =....... a m, B a m, B a m,n B Itt A egy n n-es, B pedig egy m m-es mátrix, amik reprezentálják rendre A, illetve B azonos betűkkel jelölt lineáris operátorokat. Így a keletkező A B mátrix nm nm-es lesz. Például legyen A = (, B =, ekkor az A B a következő lesz: A B =. 3

Unitér transzformációk tenzorszorzata is unitér transzformáció. Így unitér transzformációk tenzorszorzatát is alkalmazhatjuk a kvantum regiszterre. Ezzel elérhető, hogy csak a j-edik bitjét módosítsuk a regiszternek I j j U j I n j n j, ahol I az identitás. 3.4 A kvantum kapuk Elsőként az egy[ qubites ] kapukat nézzük. Ebből az identitás után a legalapvetőbb a, ez a NOT kapu. Természetes módon a NOT kaput úgy definiálnánk, hogy N OT =, és N OT [ ] =. [ ] Ez teljesül is. Tekintsük a bázisvektoros modellt, ekkor =, =. Így [ ] [ ] [ ] [ ] NOT = = [ ] [ ] [ ] [ ] NOT = = A Hadamar kapunak [ ] hasonlóan fontos a szerepe. Ennek egy q-bitre a mátrixa H =. Itt H H [ ] = [ ] [ ] [ ] = [ ] [ ] Vagyis H = +, H =. = [ ] = [ ] Ennek az önmagával való tenzorszorzatait véve hasonló alakra jutunk a... inputra: H = (H H( = H H = + + = ( + + + = ( + + + 3 4

H n... = (H n + = ( n = n i n Másik fontos -qubites kapu a CNOT kapu. Itt az egyik a kontroll qubittől függően változik meg a másik a cél qubit. Hasonlóan működik mint a NOT kapu, csak az inputja a kontroll qubit lesz, míg a cél qubitet módosítja. Tehát ha a kontroll qubit, nem történik semmi, viszont ha a kontroll qubit, a cél qubit értékét megváltoztatja. Példában bemutatjuk -qubites rendszerben a kapu működését. Több qubites rendszerben az identitásokkal tenzorszorozva a -qubites CN OT kaput megkaphatunk bármely CN OT kaput, melynek kontroll és cél qubitje rendszer tetszőleges két bitjén hat. Ekkor tehát a CNOT =, és a CNOT =, viszont CN OT =, és CN OT =. Vagyis a CN OT kaput modellező mátrixot a következőképpen írhatjuk fel:, mivel =, =, =, =, így tehát a CN OT kapu hatása a bázisvektorokra ilyen módon számolható: CNOT = =, CNOT = =, CNOT = =, CNOT = = i= 5

3.5 Hagyományos számítógépek szimulálása kvantumszámítógépen Ebben az alfejezetben azt tárgyaljuk, hogyan lehet kvantumszámítógéppel ugyanazokat a számításokat elvégezni, mint hagyományos számítógépen. Ezzel arra is rámutatunk, hogy a kvantumszámítógépekkel sokkal bővebb eszköztár van a kezünkben, mint a hagyományos esetben. A hagyományos számítógép processzora logikai kapukat használ a számítások elvégzéséhez. Alapvetően három logikai kapuról szoktunk beszélni az AND, az OR, és a NOT. Azért elég ezeket a kapukat használni, mert ezek logikailag teljes rendszert alkotnak, vagyis az AN D, OR, N OT segítségével bármilyen f : {i, h} n {i, h} logikai függvény leírható. Itt az OR és az AN D közül elég csak az egyik kaput megcsinálni, mert azzal szimulálható a másik is. Tehát, ha a kvantumszámítógéppel szimulálni szeretnénk egy hagyományos számítógépet, akkor elég a N OT és az AN D vagy az OR kapukat megcsinálni. A probléma alapvetően az, hogy a kvantumszámítógépben lévő kapuk unitér transzformációval leírhatóak, vagyis invertálhatóak is, de a logikai függvényeknek legtöbb esetben nincs egyértelmű inverze, így azokat nem tudjuk unitér transzformációkkal leírni. Ezt a problémát úgy oldjuk meg, hogy az outputunkban az input is benne lesz, a logikai művelet eredménye mellett. Így egyértelmű az inverze az outputnak, és ezt már meg tudjuk csinálni unitér transzformációval. Másrészről az outputnak csak azt a részét vesszük figyelembe, ami a logikai művelet végeredménye, és így szimulálni tudjuk a hagyományos számítógépeket. A N OT kapu szerencsésen hagyományos értelemben is azt a műveletet végzi el, amit a kvantum NOT kapu csinál, ahogy ezt a kapu bevezetésekor is megjegyeztük. Így elég csak az AN D vagy az OR kapu valamelyikét szimulálnunk. Ezekhez a logikai műveletekhez bevezetjük a Fredkin és Toffoli kapukat. Mindkét kapunak 3-qubites az inputja és az outputja is. A Toffoli kapu outputja csak akkor különbözik az inputtól, ha az első két inputbit -es, és ekkor az output 3. bitje megváltozik. A Fredkin kapu az input utolsó két bitjét felcseréli, ha az input első bitje, és nem változtat semmit, ha az input első bitje -es. 6

Toffoli kapu Fredkin kapu input output input output Ekkor a Toffoli kapunál a harmadik inputbitet -re állítva, és az outputban kapott utolsó bitet negálva, vagyis alkalmazva rá a N OT kaput, ugyanazt kapjuk, mintha az első két inputbitre alkalmaznánk az AN D műveletet. Hasonlóan, ha a Fredkin kapunál az utolsó inputbitet -ra állítjuk, akkor az output második bitjének értéke ugyan az, mint amit az első két inputbitre alkalmazott AN D művelet ad. Tehát így tudjuk kvantumszámítógéppel szimulálni az AN D kaput is, és a N OT kaput, amit az elöző fejezetben részleteztünk. Ezek pedig logikailag teljes rendszert alkotnak, tehát a számítógépre írt minden algoritmust kvantumszámítógépen tudunk szimulálni. 3.6 Fourier-transzformáció kvantumszámítógépekkel A Fourier-transzformációnak elég nagy szerepe van a kvantumalgoritmusokban. A Shor-algoritmusban is a leglényegesebb lépésben is a Fourier-transzformációt alkalmazzuk, aminek köszönhetően adott szám rendjét kvantumpolinomiális időben meg tudjuk határozni. A Diszkrét Fourier-transzformáció hagyományos definíciója alapján egy j bázisvektor transzformáltját a következőképpen definiáljuk: DF T ( j = N e πijk N k N k= A következőkben a transzformált alakot szeretnénk kiszámolni kvantumszámítógéppel. Ehhez a szummát alakítjuk át egy könnyebben kezelhető alakra, ahol a szummában szereplő bázisvektorok kettes számrendszerbeli alakja k = k k... k n : 7

DF T ( j = N N k= e πijk N k DF T ( j = n k = k = n k l k n= eπij l= l k k k n DF T ( j = n k = k = n k n= l= DF T ( j = n n l= k l = (e πij k l l k l DF T ( j = n n l= ( + e πij l DF T ( j = ( +e πij ( +e πij ( e πij k l l k l ( πij +e n Tehát például két qubit esetén a bázisvektorok diszkrét fourier transzformáltja a következő képpen néz ki: ( DF T ( = + ( + ( DF T ( = ( +i ( DF T ( = + ( ( DF T ( = ( i Így egy bázisvektorra ki tudjuk számolni n kaput alkalmazva, de mivel n darab bázisvektorunk van, és mindre ki kell számolni, így ez exponenciális időben menne csak. Ezért csinálunk egy olyan algoritmust, ami általános input bázisvektorra annak a fourier transzformáltját adja ki outputnak. Elsőként a fent levezetett n tagú tenzorszorzat l-edik tagját számoljuk ki, ( πij ( nk= j +e l πi k n k = +e l = ( πi k=n j k +e k=l k l+ Ehhez bevezetünk két új kaput az R k -t, és a CR k -t, amit a j k+l qubit kontrollál. Ha j k+l = a CR k identitás lesz, és nem változtat semmit, ha j k+l = a CR k = R k. R k = [ ] [ ] e πi, CR k = k e πi j k+l k 8

Ekkor nevezzük P R m -nek azt a modult, amelyben sorban alkalmazzuk a CR m -től a CR -ig a kapukat. P R n+ l = CR n+ l CR n l... CR P R n+ l = [ ] ( k=n+ l exp πi j k+l [ k ] ( ( P R n+ l = j exp πi n + j n + + j n l+ n l l [ ] ( ( P R n+ l = j exp πi n l+ Legyen + = ( +, ekkor az Hadamard kapu definíciója miatt j l H j l = +eπi = CR +. j n l+ Ekkor pedig P R n+ l + = +eπi. Ezzel előállítottuk a tenzrszorzat n + l-edik tagját, így az l megfelelő választásával a fenti tenzorszorzat minden tagját elő tudjuk állítani. Figyelnünk kell arra, hogy ne módosítsuk azokat a biteket, amelyek későbbi lépésben még kontrolláló bitként szerepelnek. Ezért az utolsó bitet módosító modult kell elsőnek alkalmazni a P R n -et. Itt még az n-edik bit is kontrolláló bitként szerepel, de későbbi P R k -kra már nincs hatással. Majd sorban alkalmazzuk a modulokat n-től egészen -ig, ahol P R -nél már csak az első bitnek van kontrolláló szerepe. Viszont azzal, hogy visszafele alkalmaztuk a kapukat, sajnos a bitsorrend is megfordul. Ahhoz, hogy a Fourier transzformáltat kapjuk, vagy fordított sorrendben olvassuk az outputot, vagy kell egy algoritmus, amely megfordítja a bitek sorrendjét. Ehhez elsőként mutatunk egy modult, amely képes két bitet felcserélni, majd ezután ezt alkalmazzuk az első és az n-edik bitre, majd a második és (n -edik bitre, és így tovább, amíg végül az n -edik és az (n + n edik bitre is alkalmaztuk. Így tehát már a biteket fordított sorrendben kapjuk. A kérdés most tehát, hogy hogyan lehet az l-edik és a k-adik biteket felcserélni. Ehhez használjuk fel a CN OT kaput. A modul három lépésből áll. Elsőként az l-edik bit legyen a kontroll bit, és a k-adik a cél bit, második lépésként a k-adik legyen a kontroll, és az l-edik a cél bit, végül pedig megint legyen az l-edik a kontroll és a k-adik a cél bit. 9

Ezt alkalmazva a és bitekre a kontroll bit volta miatt a második bit értéke nem változik, és mindhárom lépésben ez történik, így végül a és biteket kapjuk outputként. Ha és az input, az első lépésben a második bit megváltozik és és biteket kapjuk, a második lépésben az első bit változik meg, így és -et kapunk, és végül a harmadik lépésben nem módosul az érték így ez lesz az output is. Ha és az input, az első lépésben nem változik az értékük, a második lépésben az első bit megváltozik és így és lesz, végül a harmadik lépésben módosul a második bit, és így az output és lesz. Az utolsó eset pedig, ha és a két bit. Ekkor az első lépésben a második bit módosul, majd a következőben az első bit nem módosul, és végül a harmadik bit megint megváltozik, és így megint és lesznek az output bitek. Tehát minden esetben az input fordítottja az output, így ez a modul tényleg felcseréli a két bitet. Tehát a Fourier transzformáltat megkaphatjuk a fenti módon megfordítva a P R k modulokat alkalmazó fenti algoritmus eredeti outputját. A fenti algoritmusban szereplő P R k -k maximum n darab kaput használnak, és így az adott kapuk segítségével O(n időben ki tudjuk számolni tetszőleges bázisvektor transzformáltját. A kvantumpárhuzamosság miatt, ezt tetszőleges inputra alkalmazva, kvantumpolinomiálisan megkaphatjuk annak Fourier transzformáltját.

4 Kvantum algoritmus a rend meghatározására 4. Az input kezelése, és regiszterek beállítása Adott N szám faktorizálásának problémáját redukáltuk egy véletlen m szám rendjének meghatározására. Ezen probléma megoldásához használjuk a kvantumszámítógépet. Legyen t az a szám, melyre N t < N, és n pedig olyan, hogy n = log N. Továbbá legyen a keresett O N m = P. Első lépésként két kezdeti állapotban lévő kvantum regisztert inicializálunk. Az elsőt t a másodikat n qubitesnek definiáljuk. Ezeken futtatjuk a kvantum algoritmust, és az algoritmus outputja ezeken a regisztereken mért érték lesz. A kvantumszámítógép állapotait ϕ-vel jelöljük, ahol ϕ k a k-adik lépés utáni állapot. ϕ =...... Ezt követően alkalmazzuk a Hadamard kaput az első regiszter minden qubitjére. Ekkor azt kapjuk, hogy ϕ = t j. t Itt az első regiszter szuperpozícióba kerül azonos amplitúdókkal, vagyis minden bázisvektort azonos valószínűséggel kapnánk meg mérési eredményként, ha most mérnénk meg az első regisztert. A második regiszter ekkor még változatlan. Legyen V x az az unitér lineáris operátort, amelyre j= V x ( j k = j k + x j. Ezt alkalmazva a két regiszterre a következőt kapjuk: V x (ϕ = ϕ = t j x j. t Ezzel inicializáltuk és beállítottuk a regisztereket, és innentől futtatjuk az algoritmus lényegi részét. j=

4. A rend adott függvényének meghatározása speciális esetben A kezdeti beállítás után az első regiszterben lévő j-t bontsuk szét egy összegre, amelynek egyik tagja P többszöröse, a másik tagja pedig a maradék. Vagyis legyen a, b N, b < P, és ekkor j = ap + b teljesüljön. A következőkben P t. Ebben a speciális esetben könnyen látható, hogy hogyan egyszerűsödik majd le a kifejezés, és a későbbiekben részletezzük majd az általános esetet. ϕ = t P b= ( t P ap + b x b. Ezután az első regiszterre alkalmazzuk a Fourier transzformációt, majd a belső kifejezést hatványazonosság szerint szorzattá alakítjuk, hogy a szummából majd később kiemelhessük a e πijb -t: ϕ 3 = P t P t b= ϕ 3 = P t b= t P ( t ( t k= t k= πik(ap +b e t k e πikap t e πikb t k x b, x b. A szummákat felcserélve, egy olyan alakot kapunk, ahol az adott x b modulo N maradékok és az első regiszterben szereplő j értékekhez tartozó összes együtthatót összegezzük. ϕ 3 = P t b= ϕ 3 = P t ϕ 3 = P t b= b= t k= t k= t k= ( t P ( t e πikb P t ( t e πikb P t e πikap t e πikb t k e πikap t k x b. x b. ( πikp a k exp x b. t A mértani sorozat összegképletébe n i= qi = qn+, ahol q q behelyettesítve a q = exp( πikp -t, ha a nevező exp( πikp, t t

akkor értelmes lesz a képlet. Ekkor a számláló értéke exp( πikp e πikp t t P = exp(πik =, vagyis az egész összeg lesz. t t P = Most nézzük meg mikor alkalmazhatjuk a fenti összegképletet. Az exp( πikp feltétel akkor teljesül, ha k l t, ahol l Z. Egyéb t P esetben, amikor nem alkalmazhatjuk a fenti módszert k = l t. Ekkor P az összegben szereplő tagok exp(πiak P = exp(πial t P =, vagyis t P t a szumma értéke ekkor t = t. Tehát ezen egyszerűsítéseket, és P P összevonásokat elvégezve a mérhető értékek könnyebben átlátható alakját kapjuk. ( ϕ 3 = P e πijb t l t P P x b. b= 4.3 A rend adott függvényének meghatározása általános esetben Általános esetben is, hasonlóan a fenti esethez, az első regiszter eloszlása speciális. Vagyis l t értékeket lényegesen nagyobb valoszínűséggel mérünk, P mint más értékeket. Megjegyezzük, hogy általános esetben nullánál nagyobb valószínűséggel mérhetünk más értékeket is. A következőkben végigszámoljuk általános esetet. A jelölés egyszerűsítése érdekében legyen t = Q, r legyen olyan, hogy r Q mod P, Q < P, és legyen Q = Q r. Vagyis Q : P = Q + r egy P P maradékos osztás. Valamint w = e πi/t legyen. Ekkor a következő képpen írhatjuk fel a ϕ 3 -at: ϕ 3 = Q [ Q P ( P Q b= Q r w k(ap +b k x b + k= k= b= w k(p Q P +b k x b ], ϕ 3 = Q [ Q Q P P k= r w k(ap +b k x b + b= b= w k(p Q P +b k x b ], 3

ϕ 3 = Q ϕ 3 = Q Q k= [ Q P k= b= [ P b= Q P ( Q P w kb r w kap w kb k x b + b= ( r w k x kap b + w kb b= w kp Q P w kb k x b w k Q P P ], k x b Ekkor a két szummát összevonhatjuk oly módon, hogy a kerek zárójelekben lévőket egy szummában írjuk fel. Ezt azért tehetjük meg mert a -tól Q -ig megy, a másik felében az összegnek pedig Q van. Ezt viszont P P csak azon b-kre tehetjük meg, amelyek szerepelnek mindkét szummában, vagyis csak r darabban. ϕ 3 = Q [ Q r k= ( Q P P w kb w k x kap b + b= b=r ( Q P w kb ] w kap k x b A kerek zárójelben lévő részeket összegezve, és leosztva Q-val megkapjuk egy adott k x b regiszter együtthatóját. A fenti összegzés abszolutértékét a szummák elejére kiemelt Q-val leosztva az együttható abszolutérték kapjuk, és ennek négyzete az adott bitsorozat mérésének valószínűsége. Az összegzést a mértani sorozat összegképletének segítségével számoljuk ki. Ezt a különböző b-kre összegezve megkapjuk P rob(k-t, amivel azt jelöljük, hogy mekkora valószínűséggel mérünk az első regiszterben k értéket. P rob(k = r Q b= Q P Q w kap + P P w kap Q b=r Q P rob(k = r P Q w kap + P r P w kap Q Q P rob(k = r w kp ( Q + P + P r w kp Q P Q w kp Q w kp P rob(k = r e πi Q kp ( Q + P Q e πi Q kp 4 + P r Q e πi Q kp Q P Q kp e πi, ].

Legyen {k} Q k mod Q, és Q < {k} Q Q. Vagyis {k} Q a legkisebb abszolutértékű maradékát jelöli k-nak modulo Q-ra. A következőkben megmutatjuk, hogy azon speciális esetek valószínűsége, amikor π{kp } Q Q Q P < π az körüli érték. Az egyenlőtlenséget átrendezve a P következot kapjuk π{kp } Q Q Q P = {kp } Q < P Q {kp } Q P Q π < π Q Q < P Ezen speciális eseteket két részre kell bontanunk a mértani-sorozat összegképletére vonatkozó megkötés miatt, így < {P k} Q P ( N, és {P k} Q = eseteket fogjuk elemezni, és ezek valószínűségeit fogjuk most kiszámolni. Elsőként egy-két egyenlőséget, és egyenlőtlenséget említünk meg, amelyek segítségével fogjuk becsülni ezeket az értékeket. Q Q = Q r Q = r Q N N = N Mivel Q = t -t úgy választottuk, hogy N t N. Másrészt tudjuk, hogy e iα = cos α + i sin α = (cos α + sin α = cos α + sin α + cos α ( = cos α ( ( = sin α ( α = 4 sin Ezek alapján a fenti becslésben az abszolútérték négyzeteket a szinuszos kifejezésekre cserélve a következőt kapjuk: ( P rob(k = r sin π{kp }Q ( Q Q Q sin ( π{kp }Q Q P + + P r Q sin ( π{kp }Q Q Q P sin ( π Q 5

Továbbá α < π, esetén 4 α sin α α, mivel π α sin α α. Most π azon k-k valószínűségét nézzük, amikre π{kp } Q Q Q P < π, itt felhasználhatjuk az egyenlőtlenséget is. P rob(k r Q ( 4 π{kp }Q ( Q π Q ( π{kp }Q Q + P + P r Q ( 4 π{kp }Q Q π Q P ( π{kp }Q Q P rob(k P rob(k ( r 4 π{kp }Q ( Q + π Q P + (P r 4 ( Q π{kp } Q ( ( r {kp } Q ( Q + Q P + (P r (π{kp } Q ( π{kp }Q π Q {kp } Q Q Q P Q P ( ( Q ( P rob(k r πq P + + (P r πq ( P rob(k P πq Q P 4 π P ( Q 4 Q π P Q P ( N Most tekintsük azokat a k értékeket, amelyekre nem alkalmazhatjuk a szummát egyszerűsítő képletet, mivel a képletben szereplo nevező nulla lenne, vagyis w kp =. Fent belátott Q Q Q P rob(k = r P w kap Q Q P rob(k = r P a Q = N + P r Q + P r Q Q P w kap Q P a miatt teljesül, hogy Q P Q P rob(k Q P Q ( ( ( P N P N P N 6

4.4 A rend meghatározása az outputból leolvasható függvényéből Legyen most d olyan szám, ami kp Q kerekített értéke, vagyis d kp Q. Ekkor kp Qd = {P k} Q P Amit tovább írhatunk úgy, hogy k Q d P Q N P A következőkben egy algoritmust mutatunk, amivel egy valós számot tudunk tetszőlegesen megközelíteni egy tőrtekből álló sorozattal, amely tagoknak nevezője és számlálója relatív prímek. Ez az algoritmus a valós számot átalakítja lánctörté, és úgy adja meg a sorozat tagjait, hogy a lánctört első bizonyos számú elemét veszi csak figyelembe, és az azok által meghatározott törtet adja. Az algoritmus lépései során minden olyan tőrt értéket felvesz, amelyre igaz, hogy x a b. Vagyis a fent igazoltak alapján az algoritmus b segítségével megkaphatjuk a P értékét, mint nevezőt, ha relatív prím d-hez. Az alapgondolat az, hogy legyen egy a, a, a... sorozat, ahol a, és x = a + a + a + a 3 +... Itt az x tetszőleges valós szám. Ekkor a = x, x = x a, és ha x n, akkor a n+ = x n, és xn+ = x n a n+. Az a n sorozat ezen definiciójával a fenti módon tetszőlegesen megközelíthető az x értéke. Ha a sorozat első néhány tagjára alkalmazzuk a fenti módszert, akkor egy racionális számot kapunk, amelyet felírhatunk pn q n alakban, ahol p n és q n relatív prímek. Úgy adjuk meg ekkor ezt a két számot, hogy p = a, p = a a +, q =, q = a, és p n = a n p n + p n, q n = a n q n + q n. Tehát most ezen algoritmus segítségével, ha P és d relatív prímek, végül kiszámolható a rend, vagyis P. Mivel tudjuk, hogy egy racionális számot alakítunk lánctörté, így tudjuk, hogy az algoritmus által meghatározott sorozat véges, és a sorozat elemszáma 7 (

az input méretétől logaritmikusan függ. Ekkor tehát a sorozatban szereplő tagok nevezőinek valamelyike veszi fel P értékét, így azokra ellenőrizzük a rendre vonatkozó tulajdonságot, vagyis, hogy m P (mod N. A hatványozást polinom időben ki tudjuk számolni, ezt pedig maximum annyiszor kell kiszámolni, ahány potenciális P van, és ezzel együtt is polinom ídőben kiszámítható. Most már csak azt kell ellenőriznünk, hogy P és d relatív prímségének a valószínűsége egy konstanssal alulról becsülhető. Ezt fogjuk becsülni a következőben úgy, hogy k legyen az első regiszterben mért érték, d pedig a fentebb leírt módon a k, Q és P -vel definiált érték. Azon k értékekből, amelyek segítségével tudunk számolni, csak azok lesznek jók amik P -hez relatív prím d értéket adnak. Ez tovább szűkíti a jó mérések valószínűségét. A d érték által felvehető P darab érték közül nekünk csak φ(p darab lesz jó, és ezzel a jó mérések valószínásége egy φ(p -s szorzót kap. P P rob(k : (P, d = = 4 ( φ(p π N P ( Bizonyos δ konstansokra megmutatták, hogy P rob φ(p δ >. Ezt P log log P felhasználva tehát O(log log P időben találunk alkalmas d számot. Ezen d szám mellett megtaláljuk polinom időben a m rendjét P -t, ami nagy valószínűséggel olyan lesz, hogy segítségével már N-t is szorzattá tudjuk alakítani. Egyéb esetben újabb véletlen m számot választunk, és arra futtatjuk az algoritmust. Így tehát most már polinom időben tudjuk faktorizálni N-t kvantumszámítógép segítségével. 4.5 A rend meghatározása példaszámítással Előbbiekben egy példán bemutattuk a Shor-algoritmus azon lépéseinek futását, amelyekhez nem szükséges kvantumszámítógép. Most ezekkel a számokkal folytatjuk a példát, és bemutatjuk, hogy mit csinál a kvantumszámítógép ezen inputokon. A fentebb bemutatott példában N = -et választottuk, és hozzá véletlenszerűen a -t mint a -hez relatív prímszám. Mivel N = 44, ezért N = 44 t = 5 = 9 < N = 88, vagyis t = 9. Kezdeti állapotban mindkét regiszter -n áll. ϕ =...... 8

Majd az első regisztert a hadamard kapu segítségével szétbontjuk egyenlő együtthatójú részekre ϕ = 5 j 5 j= Ezután a V x operátort alkalmazzuk, és így a második regiszterben a azon hatványait kapjuk modulo, amelyek hatványa az első regiszterben lévő érték. ϕ = 5 ( + + 4 + 3 8 + 4 6 + 5 + 6 + 7 + 8 4 + 9 8 + 6 + + + + 5 Ezután átcsoportosítottuk a szummát a második regiszter szerint. ϕ = 5 [ ( + 6 + + + 54 + 5 + ( + 7 + 3 + + 55 + 5 + ( + 8 + 4 + + 56 4 + ( 3 + 9 + 5 + + 57 8 + ( 4 + + 6 + + 58 6 + ] ( 5 + + 7 + + 59 A mért véletlen érték a második regiszterben legyen a, ezen mutattuk be a számolásokat az elöző példánál is. Ekkor nézzük csak azokat a lehetséges állapotokat, ahol a második regiszter, és ezekre megszorítva vizsgáljuk a további lépéseket. Itt a megszorítás lényegében annyit jelent, hogy a szumma többi tagját nem írjuk le, így egyszerűsítve a lépések leírását, és mivel feltételeztük, hogy lesz az érték, amit mérünk, így a szumma többi tagja nem is lényeges az algoritmus szempontjából. ϕ = 86 ( + 7 + 3 + + 55 + 5 Erre alkalmazzuk most a Diszkrét Fourier-transzformációt: ( 85 DF T (ϕ = ϕ 3 = DF T 6a + 86 9

ϕ 3 = 5 ([ 85 e 5 86 j= 6ja πi 5 ] e πi j 5 j Most tekintsük az első regiszter mérésének lehetőségét. Ez már a rend meghatározása szempontjából sokkal nagyobb szerepet játszik, a második regiszterben mért érték lényegében nem fontos. Az első regiszterben mérhető értékek valószínűsége: P rob(j = 85 e 5 86 6ja πi 5 Itt a legtöbb érték közel valószínűséggel mérhető, de a, 85, 7, 56, 34, 47 értékeket nagy valószínűséggel mérhetjük. Ezekből, ha -t mérünk, akkor újra kell futtatni az algoritmust és új mérést kell végeznünk. Most tegyük fel, hogy a 85 értéket mérjük. 85 6 85 a πi P rob(85 = e 5, 4 5 86 Ezután a 85 -hez tartozó lánctört segítségével próbáljuk megkeresni a rendet. 5 85 5 = 6 + ( 4 + Tehát, ezzel a módszerrel kapott konvergens sorozat tagjai, amelynek tagjai olyan racionális számok, amelyeknek a nevezője és számlálója relatív prímek, a következőek:, 4, 85. Ezek alapján az első tagra ellenőrizzük le elsőként, 6 53 5 hogy teljesíti-e a feltételt. Ha erre nem lenne igaz, akkor a következő tagra is ellenőrizzük, és így tovább. Az első tag alapján P = 6, vagyis 6 (mod kongruenciát kell ellenőriznünk, ez pedig teljesül, vagyis a rend 6. Irodalomjegyzék [] Peter W. Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer, Proceedings of the 35th Annual Symposiump on Foundations of Computer Science, Santa Fe (994 3

[] SAMUEL J. LOMONACO, JR., A LECTURE ON SHOR S QUANTUM FACTORING ALGORITHM VERSION. ( [3] C. Lavor, L.R.U. Manssur, and R. Portugal, Shor s Algorithm for Factoring Large Integers (8 3