Algorytm faktoryzacji Petera Shora dla komputera kwantowego

Podobne dokumenty
Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 13

Historia. Zasada Działania

Algorytmy asymetryczne

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Przykładowe zadania z teorii liczb

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Algorytmy i struktury danych. Wykład 4

Wybrane zagadnienia teorii liczb

Wstęp do komputerów kwantowych

W5. Komputer kwantowy

Informatyka Kwantowa Sekcja Informatyki Kwantowej prezentacja

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Informatyka kwantowa. Karol Bartkiewicz

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Załóżmy, że musimy zapakować plecak na wycieczkę. Plecak ma pojemność S. Przedmioty mają objętości,,...,, których suma jest większa od S.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

9. Dyskretna transformata Fouriera algorytm FFT

Komputery Kwantowe. Ravindra W. Chhajlany. 16 stycznia Komputery Kwantowe

Zarys algorytmów kryptograficznych

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Zadania do samodzielnego rozwiązania

Transformaty. Kodowanie transformujace

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

1. Wykład NWD, NWW i algorytm Euklidesa.

FFT i dyskretny splot. Aplikacje w DSP

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1

Zaawansowane algorytmy i struktury danych

Kongruencje twierdzenie Wilsona

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Matematyka dyskretna

Algorytmy w teorii liczb

Luty 2001 Algorytmy (7) 2000/2001

Matematyka dyskretna

VIII. TELEPORTACJA KWANTOWA Janusz Adamowski

Matematyka dyskretna

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

0.1 Pierścienie wielomianów

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Parametry systemów klucza publicznego

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

Prawdopodobieństwo i statystyka

Matematyka dyskretna

Kryptologia przykład metody RSA

Elementy teorii liczb. Matematyka dyskretna

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Obliczenia inspirowane Naturą

Wstęp do algorytmiki kwantowej

Układy stochastyczne

0 + 0 = 0, = 1, = 1, = 0.

Informatyka kwantowa

KONSPEKT FUNKCJE cz. 1.

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

Podstawy programowania. Podstawy C# Przykłady algorytmów

Kryptografia kwantowa

Algorytm i złożoność obliczeniowa algorytmu

Matematyka dyskretna

Wprowadzenie do teorii komputerów kwantowych

bity kwantowe zastosowania stanów splątanych

WYRAŻENIA ALGEBRAICZNE

Bezpieczeństwo systemów komputerowych

Kongruencje pierwsze kroki

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Zasady analizy algorytmów

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

bity kwantowe zastosowania stanów splątanych

Laboratorium kryptograficzne dla licealistów 6

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

Funkcje. Część pierwsza. Zbigniew Koza. Wydział Fizyki i Astronomii

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Ciała skończone. 1. Ciała: podstawy

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Pierścień wielomianów jednej zmiennej

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Do gimnazjum by dobrze zakończyć! Do liceum by dobrze zacząć! MATEMATYKA. Na dobry start do liceum. Zadania. Oficyna Edukacyjna * Krzysztof Pazdro

Wymagania edukacyjne z matematyki klasa II technikum

Transformata Fouriera

Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Transkrypt:

Algorytm faktoryzacji Petera Shora dla komputera kwantowego

Peter Shor (ur. 14 sierpnia 1959 roku w USA Matematyk oraz informatyk teoretyk Autor kwantowego Algorytmu Shora Pracuje w AT&T Bell Laboratories w Murray Hill w stanie New Jersery Nagrody za algorytm w 1998 (Nevalinny), 1999 ( Nagroda Gödla).

Kwantowy algorytm Shora algorytm umożliwiający rozkład na czynniki pierwsze liczby naturalnej N w czasie O log N 2 loglog n i pamięci O log N, przy wykorzystaniu komputera kwantowego. Algorytm ten stanowi teoretyczne zagrożenie dla powszechnie używanego w internecie kryptosystemu RSA. Klucz publiczny w RSA jest iloczynem dwóch dużych liczb pierwszych. Możliwość efektywnego odtworzenia tych liczb na podstawie klucza publicznego pozwalałaby poznać klucz prywatny i tym samym złamać cały szyfr. Najlepszy algorytm na klasyczny komputer ma złożoność obliczeniową rzędu 3 O exp c log n log log n 1 2 3

Jak większość algorytmów kwantowych, algorytm Shora jest algorytmem probabilistycznym: zwraca poprawną odpowiedź jedynie z pewnym prawdopodobieństwem. Ponieważ jednak odpowiedź może być szybko sprawdzona, powtarzanie algorytmu umożliwia uzyskanie poprawnej odpowiedzi w sposób efektywny z dowolnie dużym prawdopodobieństwem. Algorytm ten opublikował Peter Shor w 1994 roku. W 2001 roku grupa informatyków z firmy IBM i Uniwersytetu Stanford zademonstrowała jego działanie na 7-kubitowym komputerze kwantowym opartym o jądrowy rezonans magnetyczny. Dokonano wtedy rozkładu liczby 15 = 3* 5. Do tej pory jest to największe znane obliczenie kwantowe.

Zamiast od razu podać algorytm na faktoryzację n, p odamy najpierw kwantowy algorytm znajdujący rząd elementu x w grupie multiplikatywnej; czyli najmniejszą taką liczbę całkowitą r, że x r 1 mod. n Wiadomo,że jeśli zastosuje się losowość to faktoryzacja może być zredukowana do znalezienia rzędu elementu. By znaleźć dzielnik liczby nieparzystej n, znając metodę obliczania rzędu rr elemetnu x, wybierz losowo x, znajdź jego rząd r, oraz oblicz gcd x 2 1, n. Tutaj gcd(a,b) jest największym wspólnym dzielnikiem a oraz b. Do obliczenia gcd wykorzystuje się algorytm Euklidesa. Ponieważ r r r x 2 1 x 2 1 =x r 1 0 mod n, gcd x 2 1, n jest trywialnym dzielnikiem n wtedy gdy r jest nieparzyste lub x 2 1 mod n r

Korzystając z powyższego kryterium można pokazać, 1 1 że ta procedura działa poprawnie z prawdopodobieństwem, 2 k 1 gdzie k jest liczbą różnych nieparzystych dzielników liczby n. Opiszmy teraz algorytm znajdujący rząd elementu x (mod n) na komputerze kwantowym.. Algorytm ten będzie korzystać z dwóch kwantowych rejestrów, które będą przechowywały całkowite liczby reprezentowane binarnie. Cały algorytm składa się z następujących dwóch części: a) Część klasyczna wykonywana na klasycznym komputerze b) Część kwantowa: znajdowanie okresu funkcji

Część klasyczna

Część Kwantowa znajdowanie okresu funkcji

Kroki Algorytmu Shora 1. Stwierdź czy n jest liczbą pierwszą, liczba parzysta, lub potęga liczby pierwszej. Jeśli jest to nie użyjemy algorytmu Shora. Istnieją efektywna klasyczne stwierdzające czy liczba n należy do jednej z powyższych grup, oraz dają rozkład liczby na czynniki. Ten krok może być przygotowany na klasycznym komputerze. 2. Weź liczbę q, która jest potęgą dwójki tak, że n 2 q 2n 2 Ten krok może być wykonany na klasycznym komputerze

3. Weź losową liczbę x, która jest względnie pierwsza z n. (to znaczy największy wspólny dzielnik tych liczb jest równy 1. Są klasyczne metody wybierające taki x. Ten krok także może być wykonany na klasycznym komputerze. 4. Stwórz kwantowy rejestr oraz podziel go na dwa zbiory, rejestr pierwszy oraz rejestr drugi. Następnie stan naszego komputera może być odczytany przez: left reg1,reg2>. Rejestr pierwszy musi posiadać wystarczająco dużo kubitów by reprezentować liczbę tak dużą jak q-1. Rejestr drugi musi posiadać tak dużo kubitów by reprezentować liczbę tak dużą jak n-1.

5. Załaduj rejestr pierwszy wyważoną superpozycją wszystkich liczb od 0 do q-1. Załaduj rejestr drugi stanem 0. Ta operacja powinna być wykonana przez komputer kwantowy. Cały stan kwantowej pamięci rejestr w tym punkcie wynosi 1 q q 1 a,0> a=0 6. Zastosuj transformację x a mod n dla każdej liczby zapisanej w rejestrze pierwszym oraz zapisz wynik w rejestrze drugim. W wyniku kwantowej równoległowości to zajmie tylko jeden krok, kwantowy komputer obliczy tylko x a> mod n, gdzie a> jest superpozycją stanów stworzonych w kroku 5. Stan rejestru pamięci kwantowej w tym punkcie będzie wynosił: q 1 1 q a, x a mod n > a=0

7. Zmierzmy rejestr drugi, oraz zaobserwujmy pewne wartości k. x a mod n=k 1 Stan kwantowej pamięci po tym kroku wynosić będzie: A a ', k > a ' A Gdzie A jest zbiorem takich a, że x a mod n=k oraz A jest liczbą elementów zbioru A 8. Oblicz dyskretną transformatę Fouriera na rejestrze pierwszym. Dyskretna transformata Fouriera zastosowana do stanu a> zmienia go w następującym znaczeniu: a 1 q 1 >= q c > e 2пiac/q c=0 Po transformacie nasz rejestr będzie w stanie 1 A a ' A 1 q q 1 2пia ' c/q c,k > e c=0

Algorytm Shora może zawieść z wielu powodów, na przykład dyskretna transformata Fouriera może być zmierzona jako 0 w kroku 9, wykonująć obliczenia w punkcie 10. Innym razem algorytm może znaleźć rozkład jako 1 i n, który jest poprawy lecz bezużyteczny. 9.Zmierz stan rejestru pierwszego, nazwijmy tą wartość m, m z bardzo dużym prawdopodobieństwem będzie wielokrotnością q/r, gdzie r jest szukanym okresem. 10. Weź wartość m, następnie na klasycznym komputerze wykonaj parę obliczeń, które wyliczają r znając m oraz q. Jest wiele możliwości wykonania tych obliczeń, są one złożone 11. Jak tylko otrzymałeś r, dzielnik n może być wyznaczony przez gcd x r /2 1,n oraz gcd x r/2 1,n Jeśli znalazłeś rozkład na czynniki liczby n to STOP, jeśli nie to wróć do kroku 4.

Analiza algorytmu część klasyczna Mamy daną grupę skończoną ( z mnożeniem modulo N) Każdy element a tej grupy ma jakiś skończony rząd r. Jeśli potrafimy obliczyć r i jest ono parzyste to: r r a r 2 1= a 1 a 2 1 0 mod N N a r r 2 2 1 a 1 Skoro r jest najmniejszą liczbą taką że a r 1 r r to N nie może dzielić a 2 1 Jeśli N nie dzieli również a 2 1 to N musi mieć nietrywialny wspólny dzielnik z obiema powyższymi liczbami. Otrzymujemy w ten sposób jakąś faktoryzację N. Jeśli N jest iloczynem dwóch liczb pierwszych, jest to jego jedyna faktoryzacja.

Część kwantowa Algorytm znajdowania okresu funkcji bazuje na zdolności komputera kwantowego do jednoczesnych obliczeń na wielu stanach. Obliczamy wartość funkcji jednocześnie dla wszystkich wartości x, uzyskując superpozycję wszystkich wartości. Fizyka kwantowa nie umożliwia nam jednak bezpośredniego odczytania tych informacji. Każdy pomiar niszczy superpozycję, pozwalając nam odczytać tylko jedną z wartości. Zamiast odczytywać te wartości, dokonujemy transformacji Fouriera która zamienia wartości funkcji na wartości jej okresów. Późniejszy odczyt daje z dużym prawdopodobieństwem wartość bliską jakiemuś okresowi funkcji.

Część kwantowa (cd) Do wykonania kwantowego algorytmu niezbędna jest kwantowa implementacja trzech operacji: 1. Stworzenia superpozycji stanów. Można tego łatwo dokonać aplikując bramki Hadamarda (opis na jednym z kolejnych slajdów) do wszystkich kubitów w rejestrze. 2. Funkcji f jako funkcji kwantowej. Używany do tego jest algorytm szybkiego potęgowania, w wersji modulo N. Należy zauważyć że ten krok jest najtrudniejszy w implementacji, i wymaga dodatkowych kubitów i największej ilości kwantowych bramek logicznych. 3. Odwrotnej kwantowej transformacji Fouriera. Używając kontrolowanych bramek obrotu i bramek Hadamarda Shor zaprojektował układ który realizuje to przy użyciu O log N 2 bramek.

Część kwantowa (cd) Po zastosowaniu tych przekształceń, pomiar stanu rejestru da przybliżoną wartość okresu r. Przykładowo, załóżmy dla uproszczenia że istnieje takie y że yr/n jest całkowite. Wtedy prawdopodobieństwo uzyskania dobrego y jest równe 1. Aby to pokazać wystarczy zauważyć że exp( 2πibyr / N) = 1dla dowolnego całkowitego b. Zatem suma czynników dających wartość y będzie równa N/r, bo istnieje N/r różnych wartości b dających ten sam wykładnik. Prawdopodobieństwo każdego takiego y wynosi zatem 1 / r^2. Istnieje r różnych y takich że yr/n jest całkowite, oraz r różnych możliwych wartości f(x0). W sumie prawdopodobieństwo uzyskania dobrego r wynosi zatem 1.

Kwantowa transformata Fouriera Kwantowa transformata Fouriera (ang. QFT - Quantum Fourier transform) jest kwantową analogią dyskretnej transformaty Fouriera. Na dowolny n-kubitowy stan bazowy j> działa ona jak następuje: j > 1 N 1 e 2π i j N k=0 k N k > gdzie N =2 n. Warto zwrócić uwagę, że wielkość ω = e2πi / N jest "zespolonym pierwiastkiem N-tego rzędu" z liczby 1 (ze wzóru de Moivre'a). Spostrzeżenie to pomaga wyobrazić sobie jak działa QFT, obrazując ją sobie w układzie współrzędnych przestrzeni zespolonej.

Bramka Hadamarda Bramka Hadamarda (ozn. w skrócie symbolem H) jest bramką kwantową jednokubitową. Bramka kwantowa Hadamarda jest reprezentowana przez 2 x 2 wymiarową macierz unitarną będącą iloczynem 1 i macierzy Hadamarda: 2 Działanie bramki Hadamarda H dla wektorów bazowych (stanów bazowych) 0> oraz 1> można przedstawić następująco: Wektory { H 0>,H 1>} stanowią bazę w przestrzeni stanów jednego qubitu, którą nazywa się bazą Hadamarda. Bramka Hadamarda ma podstawowe znaczenie dla obliczeń kwantowych.

Postęp w algorytmach kwantowych Minięło już ponad 12 lat od wymyślenia algorytmu faktoryzacji na komputerze kwantowym, od tego czasu powstało niewiele algorytmów kwantowych rozwiązujących klasyczne problemy. Według Shora są dwie przyczyny tego, że algorytmy kwantowe są trudne do wymyślenia. - pierwszą jest to, że może być tylko kilka problemów dla których komputery kwantowe mogą zaoferować istotne przyśpieszenie wykonywania algorytmów wykonywanych na klasycznym komputerze; najbardziej pesymistyczny scenariusz, wynaleźliśmy już większość znaczących algorytmów. - drugą jest to, że komputery kwantowe działają w sposób tak nieintuicyjny, i tak różny od klasycznych komputerów, że całe doświadczenie ostatnich pięćdziesięciu lat w algorytmice oferuje mały wgląd w to jak znajdować kwantowe algorytmy, więc na dzień dzisiejszy wydajne algorytmy kwantowe dla wielu problemów istnieją, lecz są bardzo trudne do wymyślenia.

Klasa problemów kwantowych Klasa problemów, które mogą być efektywnie rozwiązane przez kwantowy komputer jest nazwana BQP("bounded error, quantum, polynomial time").komputery kwantowe wykonują tylko probabilistyczne algorytmy, więc BQP na kwantowym komputerze jest odpowiednikiem klasy BPP na komputerze klasycznym. Jest zdefiniowana jako zbiór problemów rozwiązywalnych w czasie wielomianowym, w których prawdopodobieństwo błedu jest ograniczone przez ¼. Mówimy że komputer kwanotwy rozwiązuje problem jeśli dla każdej instancji problemu, jego odpowiedz będzie prawidlowa z dużym prawdopodobieństwem. Jeśli rozwiązanie jest znajdowane w czasie wielomianowym, wtedy problem należy do BQP.

Spodziewana zależność między klasą BQP oraz innymi przestrzeniami problemów

Przykłady algorytmów kwantowych algorytm Deutscha-Jozsa (odróżniania funkcji zrównoważonej od stałej) 1992 algorytm Shora (znajdowania liczb pierwszych oraz logarytm dyskretny) 1994 algorytm Grovera (przeszukiwania bazy danych) 1995 algorytm Simona (znajdowania maski XOR funkcji 2-na-1) 1997

Literatura i. Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer - Peter W. Shor (1996) szczegółowo opisany algorytm, oraz wyjaśnione podstawy obliczeń kwantowych ii. Progress in quantum algorithms - Peter W. Shor (2005) iii. www.wikipedia.pl iv.http://alumni.imsa.edu/~matth/quant/299/paper/node18.html