Marek Góźdź 2.XII.2017

Podobne dokumenty
VIII. TELEPORTACJA KWANTOWA Janusz Adamowski

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

Kryptografia kwantowa. Marta Michalska

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

bity kwantowe zastosowania stanów splątanych

bity kwantowe zastosowania stanów splątanych

Obliczenia inspirowane Naturą

Wstęp do komputerów kwantowych

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Fizyka dla wszystkich

POSTULATY MECHANIKI KWANTOWEJ cd i formalizm matematyczny

Podstawy Fizyki IV Optyka z elementami fizyki współczesnej. wykład 24, Radosław Chrapkiewicz, Filip Ozimek

Komputery Kwantowe. Sprawy organizacyjne Literatura Plan. Komputery Kwantowe. Ravindra W. Chhajlany. 27 listopada 2006

Wstęp do informatyki kwantowej

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

Protokół teleportacji kwantowej

Kwantowe przelewy bankowe foton na usługach biznesu

Miary splątania kwantowego

IX. MECHANIKA (FIZYKA) KWANTOWA

Wprowadzenie do teorii komputerów kwantowych

Splątanie a przesyłanie informacji

Kwantowe języki programowania

Kryptografia kwantowa

Seminarium: Efekty kwantowe w informatyce

Informatyka kwantowa. Karol Bartkiewicz

O informatyce kwantowej

II. POSTULATY MECHANIKI KWANTOWEJ W JĘZYKU WEKTORÓW STANU. Janusz Adamowski

VIII Festiwal Nauki i Sztuki. Wydziale Fizyki UAM

1. Matematyka Fizyki Kwantowej: Cześć Druga

W5. Komputer kwantowy

Wstęp do Modelu Standardowego

Historia. Zasada Działania

V. KWANTOWE BRAMKI LOGICZNE Janusz Adamowski

Efekt Comptona. Efektem Comptona nazywamy zmianę długości fali elektromagnetycznej w wyniku rozpraszania jej na swobodnych elektronach

Arytmetyka liczb binarnych

ANALIZA PORÓWNAWCZA PROTOKOŁÓW BB84 ORAZ SARG COMPARATIVE ANALYSIS OF PROTOCOLS BB84 AND SARG

Postulaty mechaniki kwantowej

Kwantowa kooperacja. Robert Nowotniak. Wydział Fizyki Technicznej, Informatyki i Matematyki Stosowanej Politechnika Łódzka

Postulaty interpretacyjne mechaniki kwantowej Wykład 6

Mechanika kwantowa Schrödingera

Matematyka dyskretna

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

Internet kwantowy. (z krótkim wstępem do informatyki kwantowej) Jarosław Miszczak. Instytut Informatyki Teoretycznej i Stosowanej PAN

Akwizycja i przetwarzanie sygnałów cyfrowych

Symulacja obliczeń kwantowych

IX. KRYPTOGRAFIA KWANTOWA Janusz Adamowski

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Wykłady z Mechaniki Kwantowej

, to liczby γ +δi oraz γ δi opisują pierwiastki z a+bi.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Zadania egzaminacyjne

Kwantowe stany splątane. Karol Życzkowski Instytut Fizyki, Uniwersytet Jagielloński 25 kwietnia 2017

Równanie Schrödingera

Wykłady z Mechaniki Kwantowej


XIII Poznański Festiwal Nauki i Sztuki. Wydziale Fizyki UAM

Wstęp do algorytmiki kwantowej

VI. KORELACJE KWANTOWE Janusz Adamowski

Zad. 3: Układ równań liniowych

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

PODSTAWY RACHUNKU WEKTOROWEGO

interpretacje mechaniki kwantowej fotony i splątanie

Informatyka kwantowa i jej fizyczne podstawy Rezonans spinowy, bramki dwu-kubitowe

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Podstawy informatyki kwantowej

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

1. PODSTAWY TEORETYCZNE

fotony i splątanie Jacek Matulewski Karolina Słowik Jarosław Zaremba Jacek Jurkowski MECHANIKA KWANTOWA DLA NIEFIZYKÓW

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

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

VII. CZĄSTKI I FALE VII.1. POSTULAT DE BROGLIE'A (1924) De Broglie wysunął postulat fal materii tzn. małym cząstkom przypisał fale.

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

Biostatystyka, # 3 /Weterynaria I/

VII Festiwal Nauki i Sztuki. Wydziale Fizyki UAM

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Jak łatwo zauważyć, zbiór form symetrycznych (podobnie antysymetrycznych) stanowi podprzestrzeń przestrzeni L(V, V, K). Oznaczamy ją Sym(V ).

Wykorzystanie stanów splątanych w informatyce kwantowej

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

1 Przestrzeń liniowa. α 1 x α k x k = 0

Mechanika Kwantowa. Maciej J. Mrowiński. 24 grudnia Funkcja falowa opisująca stan pewnej cząstki ma następującą postać: 2 x 2 )

z = x + i y := e i ϕ z. cos ϕ sin ϕ = sin ϕ cos ϕ

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

2 Kryptografia: algorytmy symetryczne

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Informatyka kwantowa

1 Grupa SU(3) i klasyfikacja cząstek

Informacja o przestrzeniach Hilberta

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

φ(x 1,..., x n ) = a i x 2 i +

Notacja Diraca. Rozdział Abstrakcyjna przestrzeń wektorów stanu

FUNKCJE. (odwzorowania) Funkcje 1

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Przekształcenia liniowe

Algorytm. a programowanie -

Kryptografia kwantowa

Gry kwantowe na łańcuchach spinowych

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Matematyka dyskretna

Jak wygrywać w brydża znając mechanikę kwantową?

Transkrypt:

Kryptografia Marek Góźdź Uniwersytet Marii Curie Skłodowskiej w Lublinie Wydział Matematyki, Fizyki i Informatyki 2.XII.2017

Kryptografia umożliwia szyfrowanie i deszyfrowanie danych. W procesie tym przynajmniej jeden element jest zatajony: metoda kodowania i dekodowania, klucz szyfrujący, klucz deszyfrujący, element dodatkowy (kod jednorazowy, token, dane biometryczne),...

Standardowe metody łamania szyfrów: czynnik ludzki (socjotechnika), podsłuchanie hasła (przejęcie pakietów), odtworzenie hasła (analiza kryptogramów, podsłuch CPU), zgadnięcie hasła (metoda słownikowa, siłowa), pozyskanie hasła (ze sprzętu lub systemu, np. coldboot), odwrócenie operacji ch. Przykład: Bezpieczeństwo RSA oparte jest na dużej złożoności obliczeniowej klasycznych algorytmów rozkładających liczbę na czynniki pierwsze. Istnieje algorytm kwantowy Shora, który to zadanie wykonuje szybko.

Jak się bronić przed rosnącą mocą obliczeniową urządzeń? Można stosować: dłuższe klucze, klucze jednorazowe, biometrykę, zabezpieczenia wieloetapowe, silniejsze algorytmy. Żaden algorytm klasyczny nie jest odporny na rozłamanie. Skomplikowane algorytmy są trudniejsze do pokonania, ale są powolne i wymagają mocnego sprzętu. y kwantowe są zabezpieczone prawami fizyki i same w sobie wydają się być bezpieczne. Luka może powstać podczas implementacji oraz doboru sprzętu.

Fizyka klasyczna przyzwyczaiła nas do: znajomości parametrów układu (położenie, pęd, masa...) determinizmu: znając parametry układu jestem w stanie wyliczyć, co się z nim stanie później, możliwości ciągłej obserwacji układu. Przykład: mając przed sobą przesłonę z dwiema szczelinami, obiekt zostanie zatrzymany albo przejdzie przez jedną ze szczelin.

W skali mikro pojawiają się problemy: (znajomość parametrów) cząstka mierząca jest porównywalna rozmiarami i masą z cząstką mierzoną, tak więc pomiar ma charakter zderzenia dwóch podobnych sobie obiektów, (determinizm) po zderzeniu nie jesteśmy w stanie przewidzieć dokładnie losu cząstki mierzonej, (obserwacja) w związku z tym nieinwazyjna obserwacja układu nie jest możliwa (ale: non-demolition measurements).

Fizyka pokazała, że: nie ma możliwości poznania wszystkich parametrów układu z dowolną dokładnością (zasada nieoznaczoności Heisenberga), ( x)( p) /2 ( t)( E) /2 ewolucję układu możemy wyznaczyć jedynie z określonym prawdopodobieństwem i każda dopuszczalna opcja może zostać zrealizowana, nie ma możliwości sprawdzania stanu układu w trakcie procesu, gdyż pomiar zaburzać będzie ten stan. Fizyka jest probabilistyczna. Mikroświat zachowuje się w sposób losowy, z pewnym rozkładem prawdopodobieństwa.

Ćwiczenie: Wymień podstawowe różnice między fizyką klasyczną a kwantową. Jakie mogą mieć one konsekwencje dla opartej o prawa?

Ćwiczenie: Wymień podstawowe różnice między fizyką klasyczną a kwantową. Jakie mogą mieć one konsekwencje dla opartej o prawa? Zagadka: Dlaczego obiekty klasyczne nie zachowują się kwantowo?

Ćwiczenie: Wymień podstawowe różnice między fizyką klasyczną a kwantową. Jakie mogą mieć one konsekwencje dla opartej o prawa? Zagadka: Dlaczego obiekty klasyczne nie zachowują się kwantowo? Odpowiedź: Z powodu statystyki. Duża liczba cząstek (liczba Avogadro N A 10 23 ) uśrednia swoje zachowanie. Prawdopodobieństwo, że efekt o prawdopodobieństwie p zaistnieje dla układu N A cząstek, wynosi p N A. Dodatkowo efekty kwantowe są niwelowane przez obserwację ze strony otoczenia. Otoczenie wykonuje ciągły pomiar.

Obiekt kwantowy opisany jest przez stan. Ma on postać funkcji falowej ψ lub w ogólniejszej postaci macierzy gęstości ρ. Znając stan układu można wyznaczyć jego parametry, np.: prawdopodobieństwo znalezienia cząstki w przedziale (x, x + x), średnie położenie, średni pęd w kierunku z, energię całkowitą etc.

Jeśli układ potencjalnie może być w kilku stanach i żaden pomiar nie określił, który stan jest realizowany, układ znajduje się we wszystkich tych stanach jednocześnie. uje go wtedy superpozycja stanów, np.: ψ(x) = 1 2 [ψ 1 (x) + ψ 2 (x)]. Przykład: mając przed sobą przesłonę z dwiema szczelinami, obiekt kwantowy przejdzie przez obie z nich, o ile żaden detektor nie będzie tego monitorował. Część, która przeszła szczeliną 1 będzie mogła oddziaływać z częścią, która przeszła szczeliną 2 (samoodziaływanie), prowadząc do pojawienia się prążków interferencyjnych po drugiej stronie szczeliny.

Pomiar wykonany na superpozycji stanów powoduje wybranie tego stanu, który odpowiada zmierzonej wartości i odrzucenie pozostałych, np.: [ 1 pomiar [ψ(x)] = pomiar 2 ψ 1 (x) + 1 ] ψ 2 (x) = ψ 1 (x). 2 Nazywane jest to kolapsem funkcji falowej. Widać stąd, że ciągły pomiar (obserwacja) ze strony otoczenia ogranicza układ do zachowań klasycznych, pomiar powoduje utratę informacji. Pytanie: jaki ta właściwość może mieć wpływ na informatykę kwantową?

Stan splątany może powstać wtedy, gdy układ dodatkowo związany jest jakąś zasadą zachowania. Stanu takiego nie można przedstawić w postaci iloczynowej. Przykład: Przyjmijmy, że układ składa się z pary cząstek, której całkowity spin równy jest 0. Każda cząstka może mieć spin +1/2 lub 1/2. Oznacza to, że stan pary ma postać: ψ = 1 2 [φ 1 ( )φ 2 ( ) + φ 1 ( )φ 2 ( )]. Takiego stanu nie da się przedstawić jako iloczynu φ 1 φ 2, jest to więc stan splątany. Uwaga: Jeśli przypisać = 1 i = 0, to ψ = [ 10 + 01 ] / 2. Przed pomiarem funkcje φ niosą obie wartości każda. Na skutek pomiaru np. φ 1 otrzymamy z równym prawdopodobieństwem 0 lub 1. Pytanie: co to za urządzenie?

Stany splątane dwóch cząstek są często wykorzystywane w informatyce, gdyż pomiar wykonany na jednej z nich daje (niestety niepełną) informację o stanie drugiej. W praktyce splątanie realizowane jest m.in.: dla elektronów poprzez całkowity spin, dla fotonów poprzez polaryzację. Splątanie wykorzystywane jest m.in. przy teleportacji oraz. Pary odpowiednio splątanych cząstek nazywa się parami EPR.

Jak właściwości kwantowe działają w praktyce? Przykład: elektron ma spin w kierunku pionowym, przed nim jest przesłona skośna 45. Klasycznie przesłona zatrzyma elektron. Kwantowo, spin ma składową w kierunku 45 i elektron przez przesłonę się przedostanie. Pytanie: w jakim kierunku będzie spin elektronu po przejściu przesłony? Pytanie: elektron o spinie w kierunku 45, przesłona w kształcie krzyża pionowo-poziomo. W jakim kierunku będzie spin elektronu po przejściu przesłony? Co to jest za urządzenie?

Stany i ich transformacje określamy w tzw. przestrzeni Hilberta. Jest to zespolona liniowa przestrzeń wektorowa posiadająca iloczyn skalarny (+ pewne inne właściwości). Cechy iloczynu skalarnego: wynikiem jest liczba zespolona, ψ φ = φ ψ, ψ aφ 1 + bφ 2 = a ψ φ 1 + b ψ φ 2, ψ ψ 0. Iloczyn skalarny standardowo wyraża się jako: ψ(x) φ(x) = ψ (x)φ(x)dx, ale nie jest to jedyna możliwa postać.

Zapis bra-ket Diraca: stan oznaczamy przez ket: ψ, ket sprzężony zamienia się w bra: ψ = ψ, bra ψ ma charakter operatora, którym można podziałać na stan, działanie takiego operatora ma postać iloczynu skalarnego: ψ φ.

Postulaty. [I.Białynicki-Birula, Z.Białynicka-Birula, Elektrodynamika, PWN 1974] Stan układu utożsamiamy ze zbiorem informacji, jakie o układzie posiadamy. Każde pytanie o układ można wyrazić jako pytanie elementarne, na które odpowiedzią jest tylko tak lub nie. Mechanika pozwala na wyznaczenie prawdopodobieństwa uzyskania odpowiedzi tak. Mechanikę kwantową bardzo często wprowadza się poprzez mniej lub bardziej udane postulaty. Można ją też wyprowadzić na bazie matematyki.

Postulat I: Każdemu pytaniu elementarnemu P odpowiada operator rzutowy P, przy czym: P = P P 2 = P operator 1 rzutujący na całą przestrzeń Hilberta odpowiada pytaniu, na które odpowiedź jest zawsze tak, operator (1 P ) odpowiada zaprzeczeniu pytania P, jeśli tak na P 1 implikuje tak na P 2, to podprzestrzeń dla P 1 jest zawarta w podprzestrzeni dla P 2, pytaniu (P 1 i P 2 ) odpowiada operator P 1 P 2, o ile takie złożenie jest operatorem rzutowym, pytaniu (P 1 lub P 2 ) odpowiada operator P 1 + P 2, o ile takie złożenie jest operatorem rzutowym.

Postulat II: Każdemu stanowi układu odpowiada samosprzężony nieujemny operator gęstości ρ o śladzie równym jeden: ρ = ρ, ψ ρψ 0 dla każdego stanu ψ, Tr(ρ) = 1. Postulat III: Liczba p = Tr(ρP ) jest prawdopodobieństwem uzyskania odpowiedzi tak na pytanie P, gdy układ znajduje się w stanie ρ.

Postulat IV: Każdej obserwabli J odpowiada rodzina spektralna operatorów rzutowych E J λ. Każdy operator EJ λ reprezentuje pytanie: Czy wartość J jest nie większa niż λ? Każdą macierz gęstości można przedstawić w postaci ρ = i p i P ψi, gdzie P ψi są operatorami rzutującymi na ψ i (ortogonalne funkcje własne operatora ρ), zaś p i są związane z prawdopodobieństwem odpowiedzi tak na pytanie P ψi dla układu będącego w stanie ρ. Z postulatu III wynika, że wartość średnia obserwabli J dla układu w stanie ρ jest dana przez: J = Tr(ρJ).

Bazy w przestrzeni wektorowej. Pytanie: ile układów współrzędnych można narysować na płaszczyźnie? Czy wybór układu zmienia opisywany obiekt?

Bazy w przestrzeni wektorowej. Pytanie: ile układów współrzędnych można narysować na płaszczyźnie? Czy wybór układu zmienia opisywany obiekt? Ćwiczenie: narysuj na płaszczyźnie dwa prostokątne układy współrzędnych o wspólnym początku, jeden o osiach 0 i 90, drugi 45 i 135. Podaj współrzędne jakiegoś wektora w obu układach.

Bazy w przestrzeni wektorowej. Pytanie: ile układów współrzędnych można narysować na płaszczyźnie? Czy wybór układu zmienia opisywany obiekt? Ćwiczenie: narysuj na płaszczyźnie dwa prostokątne układy współrzędnych o wspólnym początku, jeden o osiach 0 i 90, drugi 45 i 135. Podaj współrzędne jakiegoś wektora w obu układach. Pytanie: jaka jest rola rzutowania w tym procesie?

Przyjmijmy, że mamy dwie bazy: α 1... α n i β 1... β n. Zamiana bazy następuje poprzez rzutowanie: n β j = α i α i β j. i=1 Jeśli iloczyn skalarny nie jest zerem to znaczy, że istnieje przekrycie między wektorami bazowymi. Nie spotkałem sytuacji, w której każdy wektor z jednej bazy byłby prostopadły do każdego wektora z drugiej. Ćwiczenie: wykorzystując zmianę bazy wyjaśnij przejście elektronu przez skośną przesłonę.

Działanie operatorów można wygodnie zdefiniować jako ich działanie na wektory bazowe. Korzysta się wtedy często z reprezentacji macierzowej operatora. Przykład: Baza składa się z x i y. Operator B zdefiniowany jest jako: B x = α x + β y, B y = γ x + δ y. Można go więc zapisać w postaci macierzy 2x2 ( ) α β B = γ δ tak, że ( α β γ δ ) ( ) x = y ( ) αx + βy. γx + δy

Operatory w mechanice mogą odpowiadać wielkościom fizycznym takim jak: położenie, pęd, moment pędu, spin, energia, ale również polom, oddziaływaniom etc. Standardowo przyjmowało się, że operatory muszą być hermitowskie, tj. J = J T = J. Obecnie warunek ten został osłabiony. Zapostulowano, że ewolucja w czasie dana jest operatorem unitarnym, tj. U = U 1. Operator taki jest z definicji odwracalny, a więc zmiany układu muszą być odwracalne w czasie. Obecnie nie jest to do końca pewne. Pytanie: co oznacza dla ograniczenie się do operacji odwracalnych?

Pytania?

[M.Le Bellac,, PWN 2011.] [J.Preskill, Quantum Information and Computation (lecture notes), Caltech.] W informatyce nie da się zbudować dokładnego odpowiednika algebry Boole a. Klasycznie mamy tylko dwa bity. Kwantowo te dwa bity tworzą bazę dla przestrzeni stanów. Dodatkowo nie wszystkie operacje klasyczne mają swoje wersje kwantowe, zaś nie wszystkie operacje kwantowe dadzą się przenieść do układów klasycznych. Informatyka jest próbą odtworzenia, realizowanej przez układy kwantowe. Ze względu na specyfikę tych ostatnich, wersja znacznie się różni od.

Bity 0 i 1 reprezentowane są przez dwa ortonormalne stany: stany to 0, 1, unormowanie: 0 0 = 1 1 = 1, ortogonalność: 0 1 = 0. Wygodna jest reprezentacja macierzowa w postaci 0 = ( ) 1, 1 = 0 ( ) 0. 1 Stany 0, 1 tworzą bazę obliczeniową. Te same rachunki można prowadzić dla różnych baz. Końcowy wynik nie powinien zależeć od wyboru bazy (fizyka jest niezależna od opisu matematycznego).

Kubit czyli bit kwantowy to obiekt o strukturze przy czym c 0 2 + c 1 2 = 1. q = c 0 0 + c 1 1, Zespolone współczynniki c 0 i c 1 mają interpretację amplitud prawdopodobieństwa. Prawdopodobieństwo znalezienia układu w stanie 0 lub 1 to odpowiednio p 0 = c 0c 0 = c 0 2 i p 1 = c 1c 1 = c 1 2, gdzie, zgodnie z definicją, c 0 2 + c 1 2 = p 0 + p 1 = 1. Pytanie: skąd wzięły się wyrażenia c 0 c 0 i c 1 c 1?

Kubit: może mieć jednocześnie wartość 0 i 1, operacje na kubitach mogą być wykonywane jednocześnie na obu wartościach logicznych, możliwa jest interferencja kubitów, prowadząca do wygaszenia lub wzmocnienia któregoś ze stanów, kubit można obrócić o pewien kąt ( dopisać do niego fazę ) e iα q, co nie zmieni prawdopodobieństw, ponieważ e iα c 0 2 = c 0 2, e iα c 1 2 = c 1 2, względna faza między dwoma kubitami gra rolę. Pytanie: zastanów się nad rolą względnej fazy pomiędzy dwoma kubitami.

Pytanie: jeśli bramki kwantowe mają być odwracalne (reprezentowane przez operator unitarny), jak wiele bramek unarnych można zbudować? Często potrzebne są stany wielokubitowe. Jeśli pojedynczy kubit reprezentuje stan z przestrzeni Hilberta H, to stan dwukubitowy będzie należał do iloczynu H 2 = H H. Formalnie najpoprawniejszy zapis będę skracał do a b a b = a b = ab. Pamiętać tylko należy o kolejności: ab ba. Analogicznie tworzymy i opisujemy stany n kubitowe z przestrzeni H n = H H H.

Przestrzeń H 2 jest 4D (bo 2 2 = 4), dlatego też baza obliczeniowa w H 2 składa się z czterech wektorów: Ogólna postać kubitu z H 2 to 00, 01, 10, 11. ψ = c 00 00 + c 01 01 + c 10 10 + c 11 11, przy czym oczywiście c 00 2 + c 01 2 + c 10 2 + c 11 2 = 1. Jest to rozwinięcie funkcji ψ w bazie { 00, 01, 10, 11 }, ze współczynnikami rozwinięcia danymi przez c 00, c 01, c 10, c 11. Każdą funkcję z danej przestrzeni można przedstawić w dowolnej bazie tej przestrzeni, dlatego właśnie operatory wystarczy zdefiniować poprzez ich działanie na stany bazowe.

Twierdzenie o nieklonowaniu Twierdzenie Wootersa Żurka Nie istnieje maszyna zdolna do tworzenia kopii nieznanego stanu kwantowego. [W. K. Wootters, W. H. Żurek, A single quantum cannot be cloned, Nature 299 (1982) 802] Istnienie takiej maszyny pozwalałoby na: skopiowaniu nieznanego ciągu kubitów i dokonaniu pomiaru na kopii, a więc poznaniu ciągu kubitów bez ich zniszczenia. Twierdzenie o nieklonowaniu jest podstawą do uznania idealnych kwantowych kanałów przesyłania danych jako bezpiecznych, czyli niemożliwych do niezauważonego podsłuchania.

Ćwiczenie: spróbuj obalić twierdzenie Wootersa Żurka. Maszyna kopiująca nieznany stan χ powinna działać tak: U χ φ = χ χ, gdzie stan φ jest kontrolowany przeze mnie. Czy na pewno nie ma binarnej operacji, która by się w ten sposób zachowywała?

Dowód twierdzenia Woottersa Żurka o nieklonowaniu Przyjmijmy, że χ jest nieznanym stanem kwantowym. Maszyna kopiująca wykonywałaby więc operację polegającą na skopiowaniu tego stanu na inny stan. Reprezentujemy ją przez transformację unitarną U : H 2 H 2 tak, że U χ φ = χ χ. Powyższe równanie można zapisać sprzęgając obie strony po hermitowsku, zgodnie z regułą (AB) = B A : φ χ U = χ χ.

Załóżmy, że χ 1 jest nieznanym stanem, który chcemy skopiować, zaś χ 2 jest dowolnym innym stanem. Mamy więc U χ 1 φ = χ 1 χ 1 φ χ 2 U = χ 2 χ 2 Liczymy iloczyn skalarny. Z jednej strony U U = 1, więc z drugiej strony φ χ 2 U U χ 1 φ = φ χ 2 χ 1 φ φ χ 2 U U χ 1 φ = = χ 2 χ 1, ( φ χ 2 U ) ( ) U χ 1 φ = χ 2 χ 2 χ 1 χ 1 = ( χ 2 χ 1 ) 2.

Otrzymujemy więc: χ 2 χ 1 = ( χ 2 χ 1 ) 2 co implikuje bądź χ 1 = χ 2, bądź χ 2 χ 1 = 0. Oba te warunki są w sprzeczności z założeniem o dowolności stanu χ 2. Wnioski Kwantowa maszyna kopiująca nie istnieje dla dowolnych stanów. Kwantowa maszyna kopiująca istnieje dla stanów ortogonalnych, a więc stany bazowe możemy kopiować.

Bramki kwantowe Bramką kwantową na m kubitach nazywamy odwzorowanie unitarne w przestrzeni H m = H H (m razy), działające na ustalonej liczbie kubitów. Obwodem kwantowym na m kubitach nazywamy odwzorowanie unitarne w przestrzeni H m, które można przedstawić w postaci złożenia skończonej liczby bramek kwantowych.

Rejestrem kwantowym o długości m nazywamy uporządkowany układ m kubitów. Przestrzenią stanów jest H m = H H (m razy). Stany bazowe dane są przez { x : x {0, 1} m }. Jeśli utożsamimy je z zapisem binarnym liczb, odpowiada to liczbom {0, 1,..., 2 m 1}. Bramką odwracalną (klasyczną) na m bitach nazywamy permutację nad dwuelementowym ciałem F 2 podniesionym do potęgi m: (F 2 ) m.

W praktyce: każde przekształcenie unitarne jest odwracalne (U = U 1 ), fizyczne procesy mogą być odwracalne (unitarna ewolucja czasowa) lub nieodwracalne (pomiar), pożądane jest, aby bramka uniwersalna była odwracalna, gdyż, pomijając założenia modelu,......bramki nieodwracalne tracą część informacji (dysypacja energii, strata ciepła), żaden proces fizyczny nie jest dokładnie unitarny odtwarzanie zagubionej informacji, kwantowe algorytmy korekcji błędów.

Bramki unarne (jednoargumentowe) ogólnie definiuje się przez ich działanie na oba stany 0 i 1, U : { 0 a 0 + b 1 1 c 0 + d 1 Wykorzystując reprezentację macierzową prowadzi to do ( ) ( ) ( ) ( ) ( ) 1 1 0 a? 1 U = a + b = 0 0 1 b? 0 ( ) a c ( ) ( ) ( ) ( ) ( ) U = b d 0 1 0? c 0 U = c + d = 1 0 1? d 1 Ćwiczenie: stwórz bramkę negacji NOT podając jej reprezentację macierzową.

Negacja Bramka negacji zdefiniowana jest przez macierz ( ) 0 1 NOT = 1 0 Łatwo sprawdzić, że NOT 0 = ( ) ( ) 0 1 1 1 0 0 = ( ) ( ) 0 1 0 NOT 1 = = 1 0 1 ( ) 0 = 1 1 ( ) 1 = 0 0 Ćwiczenie: pokaż, że NOT jest bramką odwracalną.

Pierwiastek kwadratowy z negacji Bramka pierwiastek z negacji zdefiniowana jest przez macierz NOT = 1 2 ( 1 + i ) 1 i 1 i 1 + i Ćwiczenie: wyprowadź działanie tej bramki na stany bazowe 0 i 1. ( ) 2 Ćwiczenie: pokaż, że NOT = NOT.

Bramka Hadamarda (Walsha) Bramka Hadamarda zdefiniowana jest przez macierz H = 1 ( ) 1 1 2 1 1 i służy do zamiany bazy 0, 1 na H 0, H 1. Z definicji: H 0 = 1 2 ( 0 + 1 ), H 1 = 1 2 ( 0 1 ). Ćwiczenie: sprawdź, że H 0 i H 1 są wektorami ortonormalnymi, a więc mogą tworzyć bazę. Ćwiczenie: pokaż, że H 2 = 1.

Bramka zmiany fazy Bramka zmiany fazy jest zdefiniowana przez macierz ( ) 1 0 V α = 0 e iα i służy do zmiany fazy (obrotu) stanu. Szczególny przypadek to α = π, ( ) 1 0 V =, 0 1 co daje V 0 = 0, V 1 = 1.

Bramki binarne przyjmują dwa argumenty, a więc są odwzorowaniami typu H 2 H 2. Często wprowadza się bit kontrolny do bramek unarnych, który je włącza lub wyłącza. Pytanie: Bramkami binarnymi są klasyczne AND, OR, XOR i NAND. Bramki te nie mają kwantowych odpowiedników. Dlaczego?

Kontrolowane NOT Bramka CNOT zdefiniowana jest jako przekształcenie CNOT : H 2 H 2 takie, że CNOT 0 x = 0 x, CNOT 1 x = 1 x. CNOT można zapisać za pomocą klasycznego XOR, ponieważ CNOT a b = a a b. Ćwiczenie: podaj reprezentację macierzową bramki CNOT. Ćwiczenie: sprawdź, czy macierz CNOT jest unitarna? Pytanie: czy CNOT dla b = 0 nie jest przypadkiem maszyną klonującą Wootersa Żurka?

Bramka CNOT (Controlled-NOT) reprezentowana jest w bazie 00, 01, 10, 11 przez macierz 1 0 0 0 0 1 0 0 CNOT = 0 0 0 1. 0 0 1 0

SWAP Bramka SWAP zdefiniowana jest jako przekształcenie SWAP : H 2 H 2 takie, że SWAP x y = y x Ćwiczenie: podaj reprezentację macierzową bramki SWAP. Ćwiczenie: sprawdź, czy macierz SWAP jest unitarna?

Bramka SWAP reprezentowana jest w bazie 00, 01, 10, 11 przez macierz 1 0 0 0 0 0 1 0 SWAP = 0 1 0 0. 0 0 0 1

FREDKIN, inaczej kontrolowane SWAP Bramka Fredkina, inaczej CSWAP, zdefiniowana jest jako przekształcenie FREDKIN : H 3 H 3 takie, że FREDKIN 0 x y = 0 x y FREDKIN 1 x y = 1 y x TOFFOLI, inaczej kontrolowane-kontrolowane NOT Bramka Toffoliego, inaczej CCNOT, zdefiniowana jest jako przekształcenie TOFFOLI : H 3 H 3 takie, że TOFFOLI 1 1 x = 1 1 x TOFFOLI a b x = a b x a, b 1

W informatyce bazę stanowią operacje: NOT, AND, OR. Można je wszystkie wyrazić za pomocą złożonych bramek uniwersalnych takich jak NAND lub XOR. AND i OR są nieodwracalne i nie mają swoich bezpośrednich kwantowych odpowiedników. Bazę dla bramek odwracalnych stanowi np. trójka: NOT, CNOT, TOFFOLI (CCNOT). Te bramki pozwalają na odtworzenie bazy.

Istnieją też kwantowe bramki uniwersalne. Udowodniono na ten temat kilka twierdzeń, m.in: Można zbudować dowolny obwód kwantowy używając jedynie bramek CNOT oraz bramek unarnych. [A.Barenco et al., PRA 52 (1995) 3457, quant-ph/9503016] Można zbudować dowolny obwód kwantowy używając jedynie bramek Toffoliego oraz Hadamarda. [Y.Shi, Quant. Inf. and Comp. 3 (2003) 84, quant-ph/0205115]

Podsumowując założenia : kubit może być jednocześnie zerem i jedynką; wykonanie operacji na takim kubicie to wykonanie tej operacji na zerze i jedynce w pojedynczym przebiegu; nazywane jest to kwantowym zrównolegleniem, stosując idealne bramki, wszystkie operacje są odwracalne; nie ma więc strat energii i nie mogą pojawić się błędy, algorytmy często projektuje się dla pojedynczej cząstki na wejściu lub używa się stanów splątanych.

Trudności pojawiające się przy praktycznej realizacji obwodów kwantowych: nie jesteśmy w stanie zbudować maszyny czysto, połączenie z częścią klasyczną (detektorem) musi się pojawić, pojawiają się błędy na skutek szumu, oddziaływania z otoczeniem, elementów klasycznych, nie jest prosto operować na pojedynczych cząstkach, w praktyce wykorzystuje się wiązki (WCP, weak coherent pulses), wynik działania algorytmu jest stochastyczny, więc aby otrzymać odpowiedź o dużym stopniu prawdopodobieństwa, algorytm często należy powtórzyć kilka razy.

Pytania?

czyli Quantum Key Distribution Jak na razie nie istnieje kryptografia. Dokładniej, to: powstały teoretyczne algorytmy pozwalające na szyfrowanie transmisji, powstały ich implementacje i są one używane, algorytmy, łącza i urządzenia są powolne i mało wydajne, więc ich stosowanie do szyfrowania całego strumienia danych jest mocno nieefektywne, z tego powodu ograniczamy ich stosowanie do bezpiecznego przesłania klucza dla algorytmu klasycznego. Dlatego poprawniej jest mówić o, a nie o.

Ciekawostka: użycie pary splątanych cząstek daje wrażenie, że działanie na jednej z nich wpływa natychmiast na drugą. Czy pozwala to na przesłanie informacji szybciej niż c?

Ciekawostka: użycie pary splątanych cząstek daje wrażenie, że działanie na jednej z nich wpływa natychmiast na drugą. Czy pozwala to na przesłanie informacji szybciej niż c? Odpowiedź: okazuje się, że do skutecznej komunikacji konieczne jest dostarczenie drugiej stronie jeszcze jednej porcji informacji, której nie ma w strumieniu kwantowym. Dlatego oprócz kanału kwantowego użyć trzeba kanału klasycznego i wszystko pozostaje w zgodzie z zasadami fizyki.

Protokół. [C.H. Bennett, G. Brassard, Proc. IEEE Int. Conf. on Comp., Systems and Signal Processing 175 (1984) 8.] Celem jest bezpieczne przekazanie klucza od Alicji do Bolka. Nośnikiem informacji w kanale kwantowym są fotony. Alicja ma do wyboru dwie bazy polaryzowania fotonu: Baza 0 1 prosta + skośna Pytanie: bazy + i nie są do siebie prostopadłe. Co o takiej sytuacji mówi twierdzenie o nieklonowaniu? Pytanie: jeśli Alicja wyśle foton zakodowany w jednej bazie, a Bolek postanowi go zmierzyć w drugiej, to jaki wynik może otrzymać?

Schemat działania protokołu: Alicja posiada klucz (ciąg bitów) do przesłania, Alicja koduje bity klucza polaryzując fotony, dla każdego bitu losując bazę polaryzacji, Alicja przesyła kanałem kwantowym spolaryzowane fotony do Bolka, Bolek mierzy polaryzację fotonów w losowo wybranej bazie, kanałem klasycznym Alicja i Bolek uzgadniają, dla których fotonów ich bazy były zgodne, a dla których przeciwne; te drugie się odrzuca, na końcu może nastąpić faza korekcji błędów. Pytanie: uzasadnij użycie kwantowego i klasycznego kanału komunikacji. Czy można użyć tylko jednego rodzaju kanału?

przesłania klucza o długości N: Alicja losuje dwa ciągi bitów a n (klucz) i b n (baza polaryzacji), n N, Alicja koduje fotony zgodnie z informacjami z ciągów a n i b n, tworząc ciąg kubitów f n, Alicja przesyła kanałem kwantowym f n do Bolka, Bolek losuje ciąg b n, który określa, w jakich bazach będzie wykonywał pomiar polaryzacji fotonów, po pomiarze Bolek otrzymuje ciąg a n, Alicja i Bolek publikują jawnie (kanałem klasycznym) swoje ciągi b n i b n odrzucając wyniki pomiarów przy niezgodnych bazach, a zachowując wyniki przy bazach zgodnych; na średnio połowa bitów zostanie odrzucona, spośród zgodnych bitów część może być opublikowana w celu korekcji błędów.

. Bazę prostą można zapisać jako: ψ 00 = 0, ψ 01 = 1. Baza skośna to baza prosta obrócona o 45. Operatorem realizującym taki obrót jest bramka Hadamarda, więc ψ 10 = Hψ 00 = H 0 = 1 2 ( 0 + 1 ), ψ 11 = Hψ 01 = H 1 = 1 2 ( 0 1 ).

Przykład. Alicja losuje ciąg bitów a n, z którego utworzony zostanie klucz, a n = {1, 1, 1, 0, 1, 0, 0}. Następnie losuje ciąg b n wyznaczający bazy polaryzacji: b n = {1, 0, 1, 1, 0, 1, 0}. Niech w ciągu b n 0 oznacza bazę prostą (pr), a 1 bazę skośną (sk). Bolek losuje swój własny ciąg b n, zgodnie z którym będzie odkodowywał otrzymane fotony, b n = {1, 1, 0, 0, 1, 1, 0}.

Schematycznie można to zapisać w tabeli: a n 1 1 1 0 1 0 0 b n 1 0 1 1 0 1 0 baza sk pr sk sk pr sk pr f n b n 1 1 0 0 1 1 0 baza sk sk pr pr sk sk pr f n a n 1 0 0 Po porównaniu ciągów b n i b n, co odbywa się kanałem klasycznym, część bitów zostaje uzgodniona i uznana za klucz. Niektóre bity z uzgodnionej części można ujawnić w celu dodatkowej kontroli błędów.

Uwagi: trzy ciągi bitów klasycznych zostały wylosowane algorytm wymaga użycia dobrego generatora liczb losowych, między Alicją a Bolkiem przesłano 7 fotonów; Bolek uzgodnił z Alicją 3 bity, czyli ok. 50% całkowitej liczby przesłanych cząstek, jest algorytmem nadmiarowym w najprostszej sytuacji, aby uzgodnić N bitów klucza, należy przesłać 2N cząstek; jeśli przeprowadza się korekcję błędów, liczba przesłanych cząstek może wzrosnąć do 4N lub więcej.

Ćwiczenie: niech losowane ciągi mają postać a n = {0, 0, 0, 1, 1} b n = {1, 0, 1, 0, 1} b n = {1, 0, 1, 1, 0} Ułóż tabelę i wyznacz, które bity odtworzy Bolek.

Ćwiczenie: niech losowane ciągi mają postać a n = {0, 0, 0, 1, 1} b n = {1, 0, 1, 0, 1} b n = {1, 0, 1, 1, 0} Ułóż tabelę i wyznacz, które bity odtworzy Bolek. Ćwiczenie: metodą, pracując w parach, ustalcie między sobą 5-bitowy klucz: niech liczba przesyłanych cząstek wynosi 12; powtórzcie to ćwiczenie przekazując klucz w drugą stronę, tj. od Bolka do Alicji; ile wyniosła skuteczność transmisji?

Bezpieczeństwo protokołu. Pytanie: w jaki sposób można zaatakować protokół? Zastanówcie się nad: konstrukcją teoretyczną algorytmu, implementacją programistyczną, realizacją sprzętową.

Ataki na. [R.Aggarwal et al., Int. J. Comp. App. 20 (2011) 28.] Ataki na algorytmy kwantowe mogą wykorzystywać: błędy teoretyczne w algorytmach, błędy w implementacji algorytmu błędy programistyczne, konieczność użycia komputera klasycznego do opisu zjawisk kwantowych, dyskretna reprezentacja ciągłych parametrów fizycznych, niedoskonałość realizacji sprzętowej opóźnienia, czas reakcji urządzeń, trudność posługiwania się pojedynczą cząstką, nieprecyzyjne sterowanie, przeciążenia sprzętu. Pytanie: dlaczego na liście nie ma czynnika ludzkiego?

Atak Intercept and Resend (I/R). Jest to forma ataku Man-in-the-Middle. Ewa włącza się w komunikację pomiędzy Alicję i Bolka przechwytując ciąg fotonów f n od Alicji, wykonując na nim pomiary w losowo wybranych bazach, odsyłając do Bolka powielone fotony, które zmierzyła. Uwagi: Atak jest tym skuteczniejszy, im lepszy sprzęt jest użyty (wydajność detektorów, opóźnienia etc.). Ewa powinna wysyłać fotony do Bolka z taką samą częstotliwością, z jaką odbiera fotony od Alicji. Ingerencja Ewy obniża szansę sukcesu Bolka. W wydajniejszej wersji Ewa podsłuchuje również kanał klasyczny, zwiększając ryzyko swojego wykrycia.

Atak Photon Number Splitting. PNS jest możliwy, gdyż w praktyce trudno jest manipulować pojedynczymi cząstkami; używa się zamiast nich WCP. Paczka fotonów może zostać rozdzielona przez Ewę, Ewa może jedną część przechwycić......i poczekać na ogłoszenie przez Alicję i Bolka baz pomiarowych. Znając bazy Ewa może wykonać pomiary na swoich fotonach bez wpływu na fotony Bolka, odtwarzając w ten sposób klucz. Od strony technicznej atak ten jest dość trudny do przeprowadzenia, żeby nie zostać wykrytym. Poprawnie przeprowadzony daje możliwość poznania pełnego klucza.

Atak Light Injection. Atak ten skupia się na urządzeniu nadawczym Alicji. Ewa wysyła foton do nadajnika Alicji, odbity foton wraca do Ewy niosąc informację o stanie polaryzatora Alicji, Ewa kontynuuje atak jako I/R, przesyłając odpowiednio spreparowany foton do Bolka. W ten sposób Ewa wchodzi w posiadanie pełnej informacji o transmisji, nie wprowadzając do niej większych zmian.

Atak oślepiający detektor Bolka. Rodzaj ataku I/R. Ewa przerywa transmisję pomiędzy Alicją i Bolkiem, odbiera sygnał od Alicji,......jednocześnie oślepiając detektor Bolka tak, że generuje w nim losowy ciąg bitów sprawiając wrażenie, że detektor odbiera sygnał od Alicji; Ewa poznaje klucz.

Wykorzystanie splątania podczas ataku. Ewa może zaatakować dokonując splątania swoich fotonów z fotonami Alicji. Można pokazać, że w tej sytuacji pozostaje bezpieczny (patrz notatki J.Preskilla), a atak jest możliwy do wykrycia. W wersji wykorzystującej pary EPR Ewa musi splątać swoje cząstki z cząstkami Alicji i cząstkami Bolka. Ten protokół również jest zabezpieczony przed takim atakiem.

Ćwiczenie: zaproponuj inną wersję, wykorzystującą pary EPR. Jakie są zalety i wady takiego rozwiązania?

Ćwiczenie: zaproponuj inną wersję, wykorzystującą pary EPR. Jakie są zalety i wady takiego rozwiązania? wykorzystujący pary EPR. Alicja i Bolek mogą posiadać po jednej cząstce z pary EPR. Pomiar wykonany na jednej cząstce ustala stan drugiej. Cząstki takie mogą czekać aż do momentu pomiaru. Pary EPR mogą być tworzone i rozsyłane przez inny ośrodek, np. satelitę.

E91. [A.Ekert, Phys. Rev. Lett. 67 (1991) 661.] Alicja i Bolek otrzymują po jednym fotonie z pary EPR. Pary te mogą być wytwarzane przez nich lub przez kogoś innego. Cząstki w parach są tak skorelowane, że pomiar polaryzacji jednego daje jednoznacznie informację o polaryzacji drugiego. Alicja i Bolek losowo wybierają bazy pomiaru polaryzacji. W ok. połowie przypadków wybrali bazy tak samo te wyniki posłużą do utworzenia klucza; pozostałe są odrzucane.

Time-Reversed EPR. Alicja i Bolek przygotowują próbki kubitów losowo w jednym z czterech stanów z, z, x, x, zestawy kubitów są wysyłane do Celiny, która tworzy z nich pary EPR poprzez rzutowanie na bazę Bella. Celina ogłasza wyniki swojej operacji. W połowie przypadków, gdy Alicja i Bob tworzyli stan wzdłuż tej samej osi, mają korelację i mogą użyć tego kubitu do dołączenia do klucza. Alicja i Bob mogą też zweryfikować część swoich kubitów aby sprawdzić, czy Celina nie przeprowadziła ataku Man-in-the-Middle. W tym schemacie nie ma konieczności tworzenia i rozdzielania par EPR, kosztem dopuszczenia trzeciej strony do procesu tworzenia klucza; Celina może prowadzić centralną usługę pośredniczącą w generowaniu kluczy.

SARG04. [C.Branciard et al., Phys. Rev. A 72 (2005) 032301.] Alicja koduje kubity w jednej z dwóch nieortogonalnych do siebie baz (, +) i przesyła je do Bolka. Bolek dokonuje pomiaru w losowej bazie. Alicja ogłasza dwa stany, po jednym z każdej bazy: jeden stan który wysłała, drugi losowy z drugiej bazy. Jeśli Bolek dokonał pomiaru w bazie, w której kubit był zakodowany, ma zgodność z oboma stanami Alicji. Jeśli zmierzył w innej bazie i otrzymał stan Alicji, znowu ma zgodność. W tych przypadkach kubit jest odrzucany. Jeśli zmierzył w innej bazie i otrzymał wynik nie zgadzający się z Alicją, może wyznaczyć stan kubitu. ma wydajność ok. 25%, ale jest bardziej odporny na podsłuch Ewy, gdyż bazy kodowania nie są ogłaszane publicznie.

Powstało kilka języków programowania, które symulują działanie komputera kwantowego. Jednym z nich jest (Quantum Computation Language) autorstwa Bernharda Ömera. Źródła wraz z dokumentacją dostępne są pod adresem: tph.tuwien.ac.at/~oemer/qcl.html Kompilacja i instalacja (jeśli nie ma qcl założonego): pobrać i rozpakować źródła qcl-0.6.4.tgz edycja pliku Makefile: zmienić wartości zmiennych DIR i BIN na swój katalog domowy make jeśli nie ma w systemie libplotter zakomentować odpowiednie dwie linie w Makefile i powtórzyć kompilację make install

Uruchomienie i niektóre opcje startowe [marek ~]$ qcl --help USAGE: qcl [options] [file]... interpeter and quantum computer simulator Startup Options: -h, --help display this message -b, --bits=n set number of qubits (32) -f, --dump-format=x,d,b list vectors as HEX/DEC/BIN Liczba kubitów określa pojemność rejestru, na którym można pracować. Jeśli program wymaga większego rejestru, należy uruchomić qcl z wyższą wartością --bits=. Opcja --dump-format określa sposób podglądu stanu rejestru. Najczęściej interesuje nas wersja binarna b. Ćwiczenie: przejrzyj pozostałe opcje qcl.

O czym trzeba pamiętać: Obiektom kwantowym nie przypisuje się wartości; opisuje się je pewnym wzorem, natomiast wartość ustalana jest podczas pomiaru. Podczas fizycznej realizacji algorytmu nie ma możliwości sprawdzania stanu działającej maszyny; qcl daje możliwość podglądu stanu komendą dump; nie jest ona pomiarem (measure) i nie zmienia stanu rejestrów. Pomiar redukuje funkcję falową. Wynik jest otrzymywany zgodnie z odpowiednim rozkładem prawdopodobieństwa. Po wykonaniu pomiaru algorytmu nie da się wznowić, trzeba całość przygotować i uruchomić od nowa. Niektóre operacje są nieodwracalne (reset, measure) i należy ich używać ostrożnie. Często zaczynają lub kończą algorytm.

Przykładowe uruchomienie qcl: [marek ~]$ qcl [marek ~]$ qcl -b 64 [marek ~]$ qcl -b 12 -f b Wyjście z powłoki lub podpowłoki poprzez komendę exit.

Główna dokumentacja do qcl to: B. Ömer, A Procedural Formalism for Quantum Computing Podstawowe wyrażenia: //... komentarz /*... */ komentarz int real complex typy stałych boolean string typy stałych ^ + - * / mod operatory arytmetyczne ==!= < <= > >= operatory logiczne not and or xor operatory logiczne & konkatenacja rejestrów # długość wyrażenia sin cos tan cot funkcje trygonometryczne sinh cosh tanh coth funkcje hiperboliczne exp log log(x,n) sqrt funckje inne Re Im abs conj funkcje na liczbach zespolonych ceil floor zaokrąglenia max min dowolna liczba argumentów gcd lcm dowolna liczba argumentów random() liczba losowa <0,1)

Stałe deklarujemy poprzez const, np. qcl> const seed=random() Zmienne można definiować z lub bez ich typu, np. qcl> complex z=(0,1) qcl> y=exp(z*pi) Drukowanie na wyjściu poprzez print, zapytanie użytkownika o wartość poprzez input. Raz zadeklarowanych funkcji i operatorów nie można przedefiniować. Opcja --allow-redefines ukrywa komunikaty o błędach i po cichu ignoruje próby przedefiniowania elementu.

Deklaracja i odwołanie się do rejestru: qureg a[n] quconst quvoid qufunct a a[i] a[i:j] a[i\j] a&b deklaruje n-kubitowy rejestr deklaruje stały rejestr deklaruje pusty rejestr deklaracja funkcji odwołanie do rejestru a odwołanie do qubitu i rejestru a odwołanie do qubitów od i do j rejestru a odwołanie do qubitu od i do i+j-1 rejestru a konkatenacja rejestrów a i b

Inne polecenia: dump wypisuje stan maszyny load save ładuje (zapisuje) stan maszyny reset zeruje wszystkie kubity (*) shell uruchomienie podpowłoki exit wyjście z (pod)powłoki list wydrukuj wgrane definicje i rejestry print wydrukuj na ekranie measure q,m mierzy rejestr q i zapisuje wynik do m (*) measure q mierzy rejestr q i zapomina wynik (*) (*) Uwaga: reset i measure są nieodwracalne! Polecenie input: input "tekst", n wyświetl tekst i czekaj na wpisanie wartości n input plik.qcl wgranie pliku << plik.qcl wgranie pliku

Przykład: implementacja operatora SWAP extern qufunct CNot(qureg q,quconst c); qufunct Swap(qureg a,qureg b) { int i; if #a!= #b { exit "Swap: unmatching register sizes"; } for i=0 to #a-1 { CNot(a[i],b[i]); // a,b> -> a xor b,b> CNot(b[i],a[i]); // a xor b,b> -> a xor b,a> CNot(a[i],b[i]); // a xor b,a> -> b,a> } } Ćwiczenie: pokaż, że SWAP może być zrealizowany przez trzy bramki CNOT.

W qcl są trzy pętle: for, until, while, np. qcl> int i qcl> for i=10 to 2 step -2 { print i^2; } Niektóre zdefiniowane operatory: Matrix2x2 deklaracja macierzy unitarnej Matrix4x4 deklaracja macierzy unitarnej Matrix8x8 deklaracja macierzy unitarnej Rot(real theta, qureg q) obrót pojedynczego qubitu Mix(qureg q) bramka Hadamarda CPhase(real phi, qureg q) dopisanie exp(i phi) do 1> Niektóre zdefiniowane funkcje: Perm2 4,8,16,32,64 permutacje Fanout(quconst a,quvoid b) F i,j> = i,i xor j> Swap(qureg a,qureg b) S i,j> = j,i> Not(qureg a) CNot(qureg a, quconst c)

Ćwiczenie: przejrzyj pliki dołączone do qcl i znajdź inne zdefiniowane funkcje i operatory: default.qcl, examples.qcl, linalg.qcl, modarith.qcl, primes.qcl Ćwiczenie: uruchom qcl, wgraj i uruchom algorytm Shora. Ten algorytm rozłamuje efektywnie RSA. qcl> << shor.qcl qcl> shor(15) : chosen random x = 7 : measured zero in 1st register. trying again... : chosen random x = 8 : measured 64, approximation for 0.25 is 1 / 4 : possible period is 4 : 8 ^ 2 + 1 mod 15 = 5, 8 ^ 2-1 mod 15 = 3 : 15 = 5 * 3 [0/32] 1 0>

Ćwiczenie: deklaracja rejestru, sprawdzenie jego stanu... qcl> qureg a[1] qcl> dump : STATE: 1 / 32 qubits allocated, 31 / 32 qubits free 1 0> qcl> Not(a) [1/32] 1 1> qcl> dump a : SPECTRUM a: <0> 1 1> qcl> Not(a) [1/32] 1 0> qcl> dump a : SPECTRUM a: <0> 1 0> qureg, x[2], dump, dump x, Not(x)

Ćwiczenie: bramka Hadamarda, czyli obrót bazy... qcl> qureg x[1] qcl> H(x) [1/32] 0.70711 0> + 0.70711 1> qcl> H(x) [1/32] 1 0> qcl> Not(x) [1/32] 1 1> qcl> H(x) [1/32] 0.70711 0> - 0.70711 1> qcl> H(x) [1/32] 1 1> H(x) (to samo co: Mix(x))

Ćwiczenie: bramka V(alfa,x) dopisze fazę do 1>: V(alfa) 1> = exp(i alfa) 1> qcl> qureg x[1] qcl> H(x) [1/32] 0.70711 0> + 0.70711 1> qcl> V(pi/2,x) [1/32] 0.70711 0> + 0.70711i 1> V(alfa,x) (to samo co: CPhase(alfa,x)), pi, i

Ćwiczenie: różnica pomiędzy dump a measure. Powtórz poniższy zestaw poleceń 3-4 razy. qcl> qureg x[1] qcl> H(x) [1/32] 0.70711 0> + 0.70711 1> qcl> measure x [1/32] 1 1> qcl> measure x [1/32] 1 1> qcl> measure x [1/32] 1 1> measure x

Ćwiczenie: sprawdź działanie symulatora dostępnego pod adresem fredhenle.net/bb84/demo.php

Ćwiczenie: sprawdź działanie symulatora dostępnego pod adresem fredhenle.net/bb84/demo.php Ćwiczenie: sprawdź działanie symulatora autorstwa Roberta Dźwierzyńskiego, dostępnego pod adresem kft.umcs.lublin.pl/mgozdz Przeanalizuj kod a potem go uruchom.

Ćwiczenie: sprawdź działanie symulatora dostępnego pod adresem fredhenle.net/bb84/demo.php Ćwiczenie: sprawdź działanie symulatora autorstwa Roberta Dźwierzyńskiego, dostępnego pod adresem kft.umcs.lublin.pl/mgozdz Przeanalizuj kod a potem go uruchom. Ćwiczenie: w kodzie bb84.qcl znajdź te fragmenty, które są bezpośrednio związane z algorytmem. Na ich podstawie napisz swój własny kod realizujący schemat.

podatność na rozłamanie różnice między fizyką klasyczną a kwantową cechy kubit superpozycja stanów i kwantowe zrównoleglenie splątanie rola pomiaru, interpretacja statystyczna izolacja układu, środowisko operacje odwracalne i nieodwracalne twierdzenie o nieklonowaniu ataki na E91 SARG04