narzędzia |
Algorytm faktoryzacji ShoraKwantowy algorytm Shora – algorytm kwantowy umożliwiający rozkład na czynniki pierwsze liczby naturalnej N w czasie O((log N)3) 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. 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
[edytuj] ProceduraNa wejściu algorytmu dostajemy liczbę naturalną N. Naszym zadaniem jest znalezienie liczby p między 1 a N która dzieli N. Algorytm Shora składa się z dwóch części:
[edytuj] Część klasyczna
[edytuj] Część kwantowa: Znajdowanie okresu funkcji
[edytuj] Analiza algorytmu[edytuj] Część klasycznaLiczby naturalne mniejsze od N i względnie pierwsze z N z mnożeniem modulo N tworzą grupę skończoną. Każdy element a należący do tej grupy ma więc jakiś skończony rząd r – najmniejszą liczbę dodatnią taką że: Zatem N | (a r − 1). Jeśli potrafimy obliczyć r i jest ono parzyste, to: Skoro r jest najmniejszą liczbą taką że a r ≡ 1, to N nie może dzielić (a r / 2 − 1). Jeśli N nie dzieli również (a r / 2 + 1), to N musi mieć nietrywialny wspólny dzielnik z obiema liczbami: (a r / 2 − 1) i (a r / 2 + 1). Otrzymujemy w ten sposób jakąś faktoryzację N. Jeśli N jest iloczynem dwóch liczb pierwszych, jest to jego jedyna faktoryzacja. [edytuj] Część kwantowaAlgorytm 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. Do wykonania kwantowego algorytmu niezbędna jest kwantowa implementacja trzech operacji:
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
dla 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 / r2. 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. [edytuj] LiteraturaOryginalna praca Shora: Podręcznik obliczeń kwantowych:
Implementacja algorytmu Shor's do faktoryzacji liczby 15: |
| kreatyna kreatyna www.activebody.pl | Gry Online Gry Online www.pozycjonarka.in… | Plaza 3 star hotel Los Angeles www.triptake.com | krynica noclegi krynica noclegi,ośrodek, wypoczynk… gornik.com.pl | Kredyty odnawialne Kredyty odnawialne www.eskarbiec.pl |