Upload
voliem
View
217
Download
0
Embed Size (px)
Citation preview
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Kryptografia kwantowa
Marek Góźdź
Uniwersytet Marii Curie–Skłodowskiej w LublinieWydział Matematyki, Fizyki i Informatyki
2.XII.2017
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Problemy kryptografii klasycznej
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, danebiometryczne),
• ...
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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 matematycznych.
Przykład: Bezpieczeństwo RSA oparte jest na dużej złożonościobliczeniowej klasycznych algorytmów rozkładających liczbę naczynniki pierwsze. Istnieje algorytm kwantowy Shora, który tozadanie wykonuje szybko.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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.
Algorytmy kwantowe są zabezpieczone prawami fizyki i samew sobie wydają się być bezpieczne. Luka może powstaćpodczas implementacji oraz doboru sprzętu.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Podstawy mechaniki kwantowej
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 staniewyliczyć, 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ą zeszczelin.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
W skali mikro pojawiają się problemy:
• (znajomość parametrów) cząstka mierząca jestporównywalna rozmiarami i masą z cząstką mierzoną, takwięc pomiar ma charakter zderzenia dwóch podobnychsobie obiektów,
• (determinizm) po zderzeniu nie jesteśmy w stanieprzewidzieć dokładnie losu cząstki mierzonej,
• (obserwacja) w związku z tym nieinwazyjna obserwacjaukładu nie jest możliwa (ale: non-demolitionmeasurements).
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Fizyka kwantowa pokazała, że:
• nie ma możliwości poznania wszystkich parametrówukładu z dowolną dokładnością (zasada nieoznaczonościHeisenberga),
(∆x)(∆p) ~/2 (∆t)(∆E) ~/2
• ewolucję układu możemy wyznaczyć jedynie z określonymprawdopodobieństwem i każda dopuszczalna opcja możezostać zrealizowana,
• nie ma możliwości sprawdzania stanu układu w trakcieprocesu, gdyż pomiar zaburzać będzie ten stan.
Fizyka kwantowa jest probabilistyczna. Mikroświat zachowujesię w sposób losowy, z pewnym rozkłademprawdopodobieństwa.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: Wymień podstawowe różnice między fizykąklasyczną a kwantową. Jakie mogą mieć one konsekwencje dlainformatyki opartej o prawa mechaniki kwantowej?
Zagadka: Dlaczego obiekty klasyczne nie zachowują siękwantowo?Odpowiedź: Z powodu statystyki. Duża liczba cząstek (liczbaAvogadro NA ∼ 1023) uśrednia swoje zachowanie.Prawdopodobieństwo, że efekt o prawdopodobieństwie pzaistnieje dla układu NA cząstek, wynosi ∼ pNA .Dodatkowo efekty kwantowe są niwelowane przez „obserwację”ze strony otoczenia. Otoczenie wykonuje ciągły pomiar.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: Wymień podstawowe różnice między fizykąklasyczną a kwantową. Jakie mogą mieć one konsekwencje dlainformatyki opartej o prawa mechaniki kwantowej?
Zagadka: Dlaczego obiekty klasyczne nie zachowują siękwantowo?
Odpowiedź: Z powodu statystyki. Duża liczba cząstek (liczbaAvogadro NA ∼ 1023) uśrednia swoje zachowanie.Prawdopodobieństwo, że efekt o prawdopodobieństwie pzaistnieje dla układu NA cząstek, wynosi ∼ pNA .Dodatkowo efekty kwantowe są niwelowane przez „obserwację”ze strony otoczenia. Otoczenie wykonuje ciągły pomiar.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: Wymień podstawowe różnice między fizykąklasyczną a kwantową. Jakie mogą mieć one konsekwencje dlainformatyki opartej o prawa mechaniki kwantowej?
Zagadka: Dlaczego obiekty klasyczne nie zachowują siękwantowo?Odpowiedź: Z powodu statystyki. Duża liczba cząstek (liczbaAvogadro NA ∼ 1023) uśrednia swoje zachowanie.Prawdopodobieństwo, że efekt o prawdopodobieństwie pzaistnieje dla układu NA cząstek, wynosi ∼ pNA .Dodatkowo efekty kwantowe są niwelowane przez „obserwację”ze strony otoczenia. Otoczenie wykonuje ciągły pomiar.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Jeśli układ potencjalnie może być w kilku stanach i żadenpomiar nie określił, który stan jest realizowany, układ znajdujesię we wszystkich tych stanach jednocześnie.Opisuje 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 żadendetektor nie będzie tego monitorował. Część, która przeszłaszczeliną 1 będzie mogła oddziaływać z częścią, która przeszłaszczeliną 2 (samoodziaływanie), prowadząc do pojawienia sięprążków interferencyjnych po drugiej stronie szczeliny.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Pomiar wykonany na superpozycji stanów powoduje wybranietego stanu, który odpowiada zmierzonej wartości i odrzuceniepozostałych, np.:
pomiar [ψ(x)] = pomiar[1√2ψ1(x) +
1√2ψ2(x)
]= ψ1(x).
Nazywane jest to „kolapsem funkcji falowej”. Widać stąd, że
• ciągły pomiar (obserwacja) ze strony otoczenia ograniczaukład do zachowań klasycznych,
• pomiar powoduje utratę informacji.
Pytanie: jaki ta właściwość może mieć wpływ na informatykękwantową?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Stan splątany może powstać wtedy, gdy układ dodatkowozwiązany jest jakąś zasadą zachowania. Stanu takiego niemoż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 towięc stan splątany.
Uwaga: Jeśli przypisać ↑= 1 i ↓= 0, to ψ = [|10〉+ |01〉] /√2.
Przed pomiarem funkcje φ niosą obie wartości każda. Naskutek pomiaru np. φ1 otrzymamy z równymprawdopodobieństwem 0 lub 1.Pytanie: co to za urządzenie?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Stany splątane dwóch cząstek są często wykorzystywanew informatyce kwantowej, gdyż pomiar wykonany na jednejz 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 orazQKD.Pary odpowiednio splątanych cząstek nazywa się parami EPR.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Jak właściwości kwantowe działają w praktyce?
Przykład: elektron ma spin w kierunku pionowym, przed nimjest „przesłona” skośna 45◦. Klasycznie „przesłona” zatrzymaelektron. 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ędziespin elektronu po przejściu „przesłony”? Co to jest zaurządzenie?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Opis matematyczny mechaniki kwantowej
Stany i ich transformacje określamy w tzw. przestrzeniHilberta. Jest to zespolona liniowa przestrzeń wektorowaposiadają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ć.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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:〈ψ|φ〉.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Postulaty mechaniki kwantowej.[I.Białynicki-Birula, Z.Białynicka-Birula, Elektrodynamika kwantowa, PWN 1974]
Stan układu utożsamiamy ze zbiorem informacji, jakieo układzie posiadamy. Każde pytanie o układ można wyrazićjako pytanie elementarne, na które odpowiedzią jest tylko taklub nie. Mechanika kwantowa pozwala na wyznaczenieprawdopodobieństwa uzyskania odpowiedzi tak.
Mechanikę kwantową bardzo często wprowadza się poprzezmniej lub bardziej udane postulaty. Można ją też wyprowadzićna bazie matematyki.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Postulat I: Każdemu pytaniu elementarnemu P odpowiadaoperator rzutowy P ,
P † = P P 2 = P
przy czym:
• operator 1 rzutujący na całą przestrzeń Hilbertaodpowiada pytaniu, na które odpowiedź jest zawsze tak,
• operator (1− P ) odpowiada zaprzeczeniu pytania P,• jeśli tak na P1 implikuje tak na P2, to podprzestrzeń dlaP1 jest zawarta w podprzestrzeni dla P2,
• pytaniu (P1 i P2) odpowiada operator P1P2, o ile takiezłożenie jest operatorem rzutowym,
• pytaniu (P1 lub P2) odpowiada operator P1 + P2, o iletakie złożenie jest operatorem rzutowym.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Postulat II: Każdemu stanowi układu odpowiadasamosprzężony nieujemny operator gęstości ρ o śladzie równymjeden:
ρ† = ρ,
〈ψ|ρψ〉 0 dla każdego stanu ψ,Tr(ρ) = 1.
Postulat III: Liczba p = Tr(ρP ) jest prawdopodobieństwemuzyskania odpowiedzi tak na pytanie P, gdy układ znajduje sięw stanie ρ.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Postulat IV: Każdej obserwabli J odpowiada rodzinaspektralna operatorów rzutowych EJλ . Każdy operator E
Jλ
reprezentuje pytanie: Czy wartość J jest nie większa niż λ?
Każdą macierz gęstości można przedstawić w postaci
ρ =∑i
piPψi ,
gdzie Pψi są operatorami rzutującymi na ψi (ortogonalnefunkcje własne operatora ρ), zaś pi są związanez prawdopodobieństwem odpowiedzi tak na pytanie Pψi dlaukładu będącego w stanie ρ.Z postulatu III wynika, że wartość średnia obserwabli J dlaukładu w stanie ρ jest dana przez:
〈J〉 = Tr(ρJ).
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bazy w przestrzeni wektorowej.
Pytanie: ile układów współrzędnych można narysować napłaszczyźnie? Czy wybór układu zmienia opisywany obiekt?
Ćwiczenie: narysuj na płaszczyźnie dwa prostokątne układywspółrzędnych o wspólnym początku, jeden o osiach 0◦ i 90◦,drugi 45◦ i 135◦. Podaj współrzędne jakiegoś wektora w obuukładach.
Pytanie: jaka jest rola rzutowania w tym procesie?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bazy w przestrzeni wektorowej.
Pytanie: ile układów współrzędnych można narysować napłaszczyźnie? Czy wybór układu zmienia opisywany obiekt?
Ćwiczenie: narysuj na płaszczyźnie dwa prostokątne układywspółrzędnych o wspólnym początku, jeden o osiach 0◦ i 90◦,drugi 45◦ i 135◦. Podaj współrzędne jakiegoś wektora w obuukładach.
Pytanie: jaka jest rola rzutowania w tym procesie?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bazy w przestrzeni wektorowej.
Pytanie: ile układów współrzędnych można narysować napłaszczyźnie? Czy wybór układu zmienia opisywany obiekt?
Ćwiczenie: narysuj na płaszczyźnie dwa prostokątne układywspółrzędnych o wspólnym początku, jeden o osiach 0◦ i 90◦,drugi 45◦ i 135◦. Podaj współrzędne jakiegoś wektora w obuukładach.
Pytanie: jaka jest rola rzutowania w tym procesie?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Przyjmijmy, że mamy dwie bazy: α1 . . . αn i β1 . . . βn. Zamianabazy następuje poprzez rzutowanie:
|βj〉 =n∑i=1
|αi〉〈αi|βj〉.
Jeśli iloczyn skalarny nie jest zerem to znaczy, że istniejeprzekrycie między wektorami bazowymi. Nie spotkałemsytuacji, w której każdy wektor z jednej bazy byłby prostopadłydo każdego wektora z drugiej.
Ćwiczenie: wykorzystując zmianę bazy wyjaśnij przejścieelektronu przez skośną „przesłonę”.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Działanie operatorów można wygodnie zdefiniować jako ichdziałanie na wektory bazowe. Korzysta się wtedy częstoz reprezentacji macierzowej operatora.Przykład: Baza składa się z |x〉 i |y〉. Operator B zdefiniowanyjest jako:
B|x〉 = α|x〉+ β|y〉,B|y〉 = γ|x〉+ δ|y〉.
Można go więc zapisać w postaci macierzy 2x2
B =
(α βγ δ
)
tak, że (α βγ δ
)(xy
)=
(αx+ βyγx+ δy
).
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Operatory w mechanice kwantowej mogą odpowiadaćwielkościom fizycznym takim jak: położenie, pęd, momentpę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 operatoremunitarnym, tj. U † = U−1. Operator taki jest z definicjiodwracalny, a więc zmiany układu muszą być odwracalnew czasie. Obecnie nie jest to do końca pewne.
Pytanie: co oznacza dla informatyki kwantowej ograniczeniesię do operacji odwracalnych?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Pytania?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Podstawy informatyki kwantowej[M.Le Bellac, Podstawy informatyki kwantowej, PWN 2011.]
[J.Preskill, Quantum Information and Computation (lecture notes), Caltech.]
W informatyce kwantowej nie da się zbudować dokładnegoodpowiednika 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 wersjekwantowe, zaś nie wszystkie operacje kwantowe dadzą sięprzenieść do układów klasycznych.
Informatyka kwantowa jest próbą odtworzenia informatykiklasycznej, realizowanej przez układy kwantowe. Ze względu naspecyfikę tych ostatnich, wersja kwantowa znacznie się różni odklasycznej.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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〉 =(10
), |1〉 =
(01
).
Stany |0〉, |1〉 tworzą bazę obliczeniową. Te same rachunkimożna prowadzić dla różnych baz. Końcowy wynik nie powinienzależeć od wyboru bazy (fizyka jest niezależna od opisumatematycznego).
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Kubit czyli bit kwantowy to obiekt o strukturze
|q〉 = c0|0〉+ c1|1〉,
przy czym |c0|2 + |c1|2 = 1.
Zespolone współczynniki c0 i c1 mają interpretację amplitudprawdopodobieństwa. Prawdopodobieństwo znalezieniaukładu w stanie |0〉 lub |1〉 to odpowiednio
p0 = c∗0c0 = |c0|2 i p1 = c∗1c1 = |c1|2,
gdzie, zgodnie z definicją,
|c0|2 + |c1|2 = p0 + p1 = 1.
Pytanie: skąd wzięły się wyrażenia c∗0c0 i c∗1c1?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Kubit:
• może mieć jednocześnie wartość 0 i 1,• operacje na kubitach mogą być wykonywane jednocześniena obu wartościach logicznych,
• możliwa jest interferencja kubitów, prowadząca dowygaszenia lub wzmocnienia któregoś ze stanów,
• kubit można obrócić o pewien kąt („dopisać do niegofazę”) eiα|q〉, co nie zmieni prawdopodobieństw, ponieważ
|eiαc0|2 = |c0|2, |eiαc1|2 = |c1|2,
• względna faza między dwoma kubitami gra rolę.
Pytanie: zastanów się nad rolą względnej fazy pomiędzydwoma kubitami.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Pytanie: jeśli bramki kwantowe mają być odwracalne(reprezentowane przez operator unitarny), jak wiele bramekunarnych można zbudować?
Często potrzebne są stany wielokubitowe. Jeśli pojedynczykubit reprezentuje stan z przestrzeni Hilberta H, to standwukubitowy będzie należał do iloczynu H2 = H⊗H.Formalnie najpoprawniejszy zapis
|a〉 ⊗ |b〉
będę skracał do
|a〉 ⊗ |b〉 = |a〉|b〉 = |ab〉.
Pamiętać tylko należy o kolejności: |ab〉 6= |ba〉.Analogicznie tworzymy i opisujemy stany n–kubitowez przestrzeni Hn = H⊗H⊗ · · · ⊗ H.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Przestrzeń H2 jest 4D (bo 2× 2 = 4), dlatego też bazaobliczeniowa w H2 składa się z czterech wektorów:
|00〉, |01〉, |10〉, |11〉.
Ogólna postać kubitu z H2 to
|ψ〉 = c00|00〉+ c01|01〉+ c10|10〉+ c11|11〉,
przy czym oczywiście |c00|2 + |c01|2 + |c10|2 + |c11|2 = 1.Jest to rozwinięcie funkcji ψ w bazie {|00〉, |01〉, |10〉, |11〉},ze współczynnikami rozwinięcia danymi przez c00, c01, c10, c11.
Każdą funkcję z danej przestrzeni można przedstawićw dowolnej bazie tej przestrzeni, dlatego właśnie operatorywystarczy zdefiniować poprzez ich działanie na stany bazowe.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Twierdzenie o nieklonowaniu
Twierdzenie Wootersa – Żurka
Nie istnieje kwantowa maszyna zdolna do tworzenia kopiinieznanego 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 uznaniaidealnych kwantowych kanałów przesyłania danych jakobezpiecznych, czyli niemożliwych do niezauważonegopodsłuchania.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ć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 niema binarnej operacji, która by się w ten sposób zachowywała?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Dowód twierdzenia Woottersa – Żurka o nieklonowaniu
Przyjmijmy, że |χ〉 jest nieznanym stanem kwantowym.Maszyna kopiująca wykonywałaby więc operację polegającą naskopiowaniu tego stanu na inny stan. Reprezentujemy ją przeztransformację unitarną U : H2 → H2 tak, że
U |χ〉|φ〉 = |χ〉|χ〉.
Powyższe równanie można zapisać sprzęgając obie strony pohermitowsku, zgodnie z regułą (AB)† = B†A†:
〈φ|〈χ|U † = 〈χ|〈χ|.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Załóżmy, że χ1 jest nieznanym stanem, który chcemyskopiować, 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
〈φ|〈χ2|U †U |χ1〉|φ〉 = 〈φ|〈χ2|χ1〉|φ〉= 〈χ2|χ1〉,
z drugiej strony
〈φ|〈χ2|U †U |χ1〉|φ〉 =(〈φ|〈χ2|U †
) (U |χ1〉|φ〉
)= 〈χ2|〈χ2|χ1〉|χ1〉= (〈χ2|χ1〉)2 .
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Otrzymujemy więc:
〈χ2|χ1〉 = (〈χ2|χ1〉)2
co implikuje bądź χ1 = χ2, bądź 〈χ2|χ1〉 = 0. Oba te warunkisą w sprzeczności z założeniem o dowolności stanu χ2.
Wnioski
• Kwantowa maszyna kopiująca nie istnieje dla dowolnychstanów.
• Kwantowa maszyna kopiująca istnieje dla stanówortogonalnych, a więc stany bazowe możemy kopiować.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramki kwantowe
Bramką kwantową na m kubitach nazywamy odwzorowanieunitarne w przestrzeni Hm = H⊗ · · · ⊗ H (m razy), działającena ustalonej liczbie kubitów.
Obwodem kwantowym na m kubitach nazywamyodwzorowanie unitarne w przestrzeni Hm, które możnaprzedstawić w postaci złożenia skończonej liczby bramekkwantowych.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Rejestrem kwantowym o długości m nazywamyuporządkowany układ m kubitów. Przestrzenią stanów jestHm = H⊗ · · · ⊗ H (m razy). Stany bazowe dane są przez{|x〉 : x ∈ {0, 1}m}. Jeśli utożsamimy je z zapisem binarnymliczb, odpowiada to liczbom {0, 1, . . . , 2m − 1}.
Bramką odwracalną (klasyczną) na m bitach nazywamypermutację nad dwuelementowym ciałem F2 podniesionym dopotęgi m: (F2)m.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
W praktyce:
• każde przekształcenie unitarne jest odwracalne(U † = U−1),
• fizyczne procesy mogą być odwracalne (unitarna ewolucjaczasowa) lub nieodwracalne (pomiar),
• pożądane jest, aby kwantowa bramka uniwersalna byłaodwracalna, gdyż, pomijając założenia modelu,...
• ...bramki nieodwracalne tracą część informacji (dysypacjaenergii, strata ciepła),
• żaden proces fizyczny nie jest dokładnie unitarny⇒ odtwarzanie zagubionej informacji,⇒ kwantowe algorytmy korekcji błędów.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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
U
(10
)= a
(10
)+ b
(01
)=
(a ?b ?
)(10
)
U
(01
)= c
(10
)+ d
(01
)=
(? c? d
)(01
)⇒ U =
(a cb d
)
Ćwiczenie: stwórz bramkę negacji NOT podając jejreprezentację macierzową.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Negacja
Bramka negacji zdefiniowana jest przez macierz
NOT =
(0 11 0
)
Łatwo sprawdzić, że
NOT|0〉 =(0 11 0
)(10
)=
(01
)= |1〉
NOT|1〉 =(0 11 0
)(01
)=
(10
)= |0〉
Ćwiczenie: pokaż, że NOT jest bramką odwracalną.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Pierwiastek kwadratowy z negacji
Bramka „pierwiastek z negacji” zdefiniowana jest przez macierz
√NOT =
12
(1 + i 1− i1− i 1 + i
)
Ćwiczenie: wyprowadź działanie tej bramki na stany bazowe|0〉 i |1〉.
Ćwiczenie: pokaż, że(√NOT
)2= NOT.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramka Hadamarda (Walsha)
Bramka Hadamarda zdefiniowana jest przez macierz
H =1√2
(1 11 −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ą wektoramiortonormalnymi, a więc mogą tworzyć bazę.
Ćwiczenie: pokaż, że H2 = 1.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramka zmiany fazy
Bramka zmiany fazy jest zdefiniowana przez macierz
Vα =
(1 00 eiα
)
i służy do zmiany fazy (obrotu) stanu.
Szczególny przypadek to α = π,
V =
(1 00 −1
),
co dajeV |0〉 = |0〉, V |1〉 = −|1〉.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramki binarne przyjmują dwa argumenty, a więc sąodwzorowaniami typu H2 → H2. Często wprowadza się bitkontrolny do bramek unarnych, który je „włącza” lub„wyłącza”.
Pytanie: Bramkami binarnymi są klasyczne AND, OR, XORi NAND. Bramki te nie mają kwantowych odpowiedników.Dlaczego?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Kontrolowane NOT
Bramka CNOT zdefiniowana jest jako przekształcenieCNOT : H2 → H2 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?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramka CNOT (Controlled-NOT) reprezentowana jest w bazie
|00〉, |01〉, |10〉, 11〉
przez macierz
CNOT =
1 0 0 00 1 0 00 0 0 10 0 1 0
.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
SWAP
Bramka SWAP zdefiniowana jest jako przekształcenieSWAP : H2 → H2 takie, że
SWAP|x〉|y〉 = |y〉|x〉
Ćwiczenie: podaj reprezentację macierzową bramki SWAP.
Ćwiczenie: sprawdź, czy macierz SWAP jest unitarna?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bramka SWAP reprezentowana jest w bazie
|00〉, |01〉, |10〉, 11〉
przez macierz
SWAP =
1 0 0 00 0 1 00 1 0 00 0 0 1
.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
FREDKIN, inaczej kontrolowane SWAP
Bramka Fredkina, inaczej CSWAP, zdefiniowana jest jakoprzekształcenie FREDKIN : H3 → H3 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 jakoprzekształcenie TOFFOLI : H3 → H3 takie, że
TOFFOLI|1〉|1〉|x〉 = |1〉|1〉|x〉TOFFOLI|a〉|b〉|x〉 = |a〉|b〉|x〉 a, b 6= 1
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
W informatyce klasycznej bazę stanowią operacje: NOT, AND,OR. Można je wszystkie wyrazić za pomocą złożonych bramekuniwersalnych takich jak NAND lub XOR. AND i OR sąnieodwracalne i nie mają swoich bezpośrednich kwantowychodpowiedników.
Bazę dla bramek odwracalnych stanowi np. trójka: NOT,CNOT, TOFFOLI (CCNOT). Te bramki pozwalają naodtworzenie bazy klasycznej.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Istnieją też kwantowe bramki uniwersalne. Udowodniono na tentemat kilka twierdzeń, m.in:
Można zbudować dowolny obwód kwantowy używając jedyniebramek 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 jedyniebramek Toffoliego oraz Hadamarda.
[Y.Shi, Quant. Inf. and Comp. 3 (2003) 84, quant-ph/0205115]
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Podsumowując założenia informatyki kwantowej:
• kubit może być jednocześnie zerem i jedynką; wykonanieoperacji na takim kubicie to wykonanie tej operacji nazerze i jedynce w pojedynczym przebiegu; nazywane jest tokwantowym 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 nawejściu lub używa się stanów splątanych.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Trudności pojawiające się przy praktycznej realizacji obwodówkwantowych:
• nie jesteśmy w stanie zbudować maszyny czystokwantowej,
• połączenie z częścią klasyczną (detektorem) musi siępojawić,
• pojawiają się błędy na skutek szumu, oddziaływaniaz otoczeniem, elementów klasycznych,
• nie jest prosto operować na pojedynczych cząstkach,w praktyce wykorzystuje się wiązki (WCP, weak coherentpulses),
• wynik działania algorytmu jest stochastyczny, więc abyotrzymać odpowiedź o dużym stopniuprawdopodobieństwa, algorytm często należy powtórzyćkilka razy.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Pytania?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
QKD czyli Quantum Key Distribution
Jak na razie nie istnieje kryptografia kwantowa.Dokładniej, to:
• powstały teoretyczne algorytmy pozwalające naszyfrowanie 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 strumieniadanych jest mocno nieefektywne,
• z tego powodu ograniczamy ich stosowanie dobezpiecznego przesłania klucza dla algorytmuklasycznego.
Dlatego poprawniej jest mówić o QKD, a nie o kryptografii.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ciekawostka: użycie pary splątanych cząstek daje wrażenie, żedziałanie na jednej z nich wpływa natychmiast na drugą. Czypozwala to na przesłanie informacji szybciej niż c?
Odpowiedź: okazuje się, że do skutecznej komunikacjikonieczne jest dostarczenie drugiej stronie jeszcze jednej porcjiinformacji, której nie ma w strumieniu kwantowym. Dlategooprócz kanału kwantowego użyć trzeba kanału klasycznegoi wszystko pozostaje w zgodzie z zasadami fizyki.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ciekawostka: użycie pary splątanych cząstek daje wrażenie, żedziałanie na jednej z nich wpływa natychmiast na drugą. Czypozwala to na przesłanie informacji szybciej niż c?
Odpowiedź: okazuje się, że do skutecznej komunikacjikonieczne jest dostarczenie drugiej stronie jeszcze jednej porcjiinformacji, której nie ma w strumieniu kwantowym. Dlategooprócz kanału kwantowego użyć trzeba kanału klasycznegoi wszystko pozostaje w zgodzie z zasadami fizyki.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Protokół BB84.[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 mado wyboru dwie bazy polaryzowania fotonu:
Baza 0 1
prosta + l ↔skośna × ↗↙ ↖↘
Pytanie: bazy + i × nie są do siebie prostopadłe. Co o takiejsytuacji 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żeotrzymać?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Schemat działania protokołu:
• Alicja posiada klucz (ciąg bitów) do przesłania,• Alicja koduje bity klucza polaryzując fotony, dla każdegobitu losując bazę polaryzacji,
• Alicja przesyła kanałem kwantowym spolaryzowane fotonydo Bolka,
• Bolek mierzy polaryzację fotonów w losowo wybranejbazie,
• kanałem klasycznym Alicja i Bolek uzgadniają, dla którychfotonów ich bazy były zgodne, a dla których przeciwne; tedrugie się odrzuca,
• na końcu może nastąpić faza korekcji błędów.Pytanie: uzasadnij użycie kwantowego i klasycznego kanałukomunikacji. Czy można użyć tylko jednego rodzaju kanału?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Algorytm przesłania klucza o długości N :
• Alicja losuje dwa ciągi bitów – an (klucz) i bn (bazapolaryzacji), n ∈ N,
• Alicja koduje fotony zgodnie z informacjami z ciągów ani bn, tworząc ciąg kubitów fn,
• Alicja przesyła kanałem kwantowym fn do Bolka,
• Bolek losuje ciąg b′n, który określa, w jakich bazach będziewykonywał pomiar polaryzacji fotonów,
• po pomiarze Bolek otrzymuje ciąg a′n,• Alicja i Bolek publikują jawnie (kanałem klasycznym)swoje ciągi bn i b′n odrzucając wyniki pomiarów przyniezgodnych bazach, a zachowując wyniki przy bazachzgodnych; na średnio połowa bitów zostanie odrzucona,
• spośród zgodnych bitów część może być opublikowanaw celu korekcji błędów.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Opis matematyczny.Bazę prostą można zapisać jako:
ψ00 = |0〉,ψ01 = |1〉.
Baza skośna to baza prosta obrócona o 45◦. Operatoremrealizują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〉).
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Przykład.Alicja losuje ciąg bitów an, z którego utworzony zostanie klucz,
an = {1, 1, 1, 0, 1, 0, 0}.
Następnie losuje ciąg bn wyznaczający bazy polaryzacji:
bn = {1, 0, 1, 1, 0, 1, 0}.
Niech w ciągu bn 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ędzieodkodowywał otrzymane fotony,
b′n = {1, 1, 0, 0, 1, 1, 0}.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Schematycznie można to zapisać w tabeli:
an 1 1 1 0 1 0 0bn 1 0 1 1 0 1 0baza sk pr sk sk pr sk pr
fn ↖↘ ↔ ↖↘ ↗↙ ↔ ↗↙ lb′n 1 1 0 0 1 1 0baza sk sk pr pr sk sk prf ′n ↖↘ ↗↙ la′n 1 0 0
Po porównaniu ciągów bn i b′n, co odbywa się kanałemklasycznym, część bitów zostaje uzgodniona i uznana za klucz.Niektóre bity z uzgodnionej części można ujawnić w celudodatkowej kontroli błędów.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Uwagi:
• trzy ciągi bitów klasycznych zostały wylosowane –algorytm wymaga użycia dobrego generatora liczblosowych,
• między Alicją a Bolkiem przesłano 7 fotonów; Bolekuzgodnił z Alicją 3 bity, czyli ok. 50% całkowitej liczbyprzesłanych cząstek,
• BB84 jest algorytmem nadmiarowym – w najprostszejsytuacji, aby uzgodnić N bitów klucza, należy przesłać 2Ncząstek; jeśli przeprowadza się korekcję błędów, liczbaprzesłanych cząstek może wzrosnąć do 4N lub więcej.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: niech losowane ciągi mają postać
an = {0, 0, 0, 1, 1}bn = {1, 0, 1, 0, 1}b′n = {1, 0, 1, 1, 0}
Ułóż tabelę i wyznacz, które bity odtworzy Bolek.
Ćwiczenie: metodą BB84, pracując w parach, ustalcie międzysobą 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?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: niech losowane ciągi mają postać
an = {0, 0, 0, 1, 1}bn = {1, 0, 1, 0, 1}b′n = {1, 0, 1, 1, 0}
Ułóż tabelę i wyznacz, które bity odtworzy Bolek.
Ćwiczenie: metodą BB84, pracując w parach, ustalcie międzysobą 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?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Bezpieczeństwo protokołu BB84.
Pytanie: w jaki sposób można zaatakować protokół BB84?Zastanówcie się nad:
• konstrukcją teoretyczną algorytmu,• implementacją programistyczną,• realizacją sprzętową.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ataki na BB84.[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 opisuzjawisk 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”?
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Atak Intercept and Resend (I/R). Jest to forma atakuMan-in-the-Middle.Ewa włącza się w komunikację pomiędzy Alicję i Bolka
• przechwytując ciąg fotonów fn 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.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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 bazpomiarowych.
• Znając bazy Ewa może wykonać pomiary na swoichfotonach bez wpływu na fotony Bolka, odtwarzając w tensposób klucz.
Od strony technicznej atak ten jest dość trudny doprzeprowadzenia, żeby nie zostać wykrytym. Poprawnieprzeprowadzony daje możliwość poznania pełnego klucza.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Atak Light Injection. Atak ten skupia się na urządzeniunadawczym Alicji.
• Ewa wysyła foton do nadajnika Alicji,• odbity foton wraca do Ewy niosąc informację o staniepolaryzatora Alicji,
• Ewa kontynuuje atak jako I/R, przesyłając odpowiedniospreparowany foton do Bolka.
W ten sposób Ewa wchodzi w posiadanie pełnej informacjio transmisji, nie wprowadzając do niej większych zmian.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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 generujew nim losowy ciąg bitów sprawiając wrażenie, że detektorodbiera sygnał od Alicji;
• Ewa poznaje klucz.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Wykorzystanie splątania podczas ataku.
• Ewa może zaatakować dokonując splątania swoich fotonówz fotonami Alicji.
• Można pokazać, że w tej sytuacji BB84 pozostajebezpieczny (patrz notatki J.Preskilla), a atak jest możliwydo wykrycia.
• W wersji wykorzystującej pary EPR Ewa musi splątaćswoje cząstki z cząstkami Alicji i cząstkami Bolka. Tenprotokół również jest zabezpieczony przed takim atakiem.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: zaproponuj inną wersję BB84, wykorzystującą paryEPR. Jakie są zalety i wady takiego rozwiązania?
Algorytm wykorzystujący pary EPR.
• Alicja i Bolek mogą posiadać po jednej cząstce z paryEPR.
• 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 innyośrodek, np. satelitę.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: zaproponuj inną wersję BB84, wykorzystującą paryEPR. Jakie są zalety i wady takiego rozwiązania?
Algorytm wykorzystujący pary EPR.
• Alicja i Bolek mogą posiadać po jednej cząstce z paryEPR.
• 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 innyośrodek, np. satelitę.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Algorytm 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 polaryzacjijednego daje jednoznacznie informację o polaryzacjidrugiego.
• Alicja i Bolek losowo wybierają bazy pomiaru polaryzacji.• W ok. połowie przypadków wybrali bazy tak samo – tewyniki posłużą do utworzenia klucza; pozostałe sąodrzucane.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Algorytm Time-Reversed EPR.
• Alicja i Bolek przygotowują próbki kubitów losowow jednym z czterech stanów | ↑z〉, | ↓z〉, | ↑x〉, | ↓x〉,
• zestawy kubitów są wysyłane do Celiny, która tworzyz nich pary EPR poprzez rzutowanie na bazę Bella.
• Celina ogłasza wyniki swojej operacji.• W połowie przypadków, gdy Alicja i Bob tworzyli stanwzdłuż tej samej osi, mają korelację i mogą użyć tegokubitu do dołączenia do klucza.
• Alicja i Bob mogą też zweryfikować część swoich kubitówaby sprawdzić, czy Celina nie przeprowadziła atakuMan-in-the-Middle.
• W tym schemacie nie ma konieczności tworzenia irozdzielania par EPR, kosztem dopuszczenia trzeciejstrony do procesu tworzenia klucza; Celina może prowadzićcentralną usługę pośredniczącą w generowaniu kluczy.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Algorytm SARG04.[C.Branciard et al., Phys. Rev. A 72 (2005) 032301.]
• Alicja koduje kubity w jednej z dwóch nieortogonalnych dosiebie baz (×, +) i przesyła je do Bolka.
• Bolek dokonuje pomiaru w losowej bazie.• Alicja ogłasza dwa stany, po jednym z każdej bazy: jedenstan 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ślizmierzył w innej bazie i otrzymał stan Alicji, znowu mazgodność. W tych przypadkach kubit jest odrzucany. Jeślizmierzył w innej bazie i otrzymał wynik nie zgadzający sięz Alicją, może wyznaczyć stan kubitu.
• Algorytm ma wydajność ok. 25%, ale jest bardziej odpornyna podsłuch Ewy, gdyż bazy kodowania nie są ogłaszanepublicznie.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Język programowania QCL
Powstało kilka języków programowania, które symulujądziałanie komputera kwantowego. Jednym z nich jest QCL(Quantum Computation Language) autorstwa BernhardaOmera.Źródła wraz z dokumentacją dostępne są pod adresem:tph.tuwien.ac.at/~oemer/qcl.htmlKompilacja 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 zmiennychQCLDIR i QCLBIN 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
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Uruchomienie i niektóre opcje startowe
[marek ~]$ qcl --helpUSAGE: qcl [options] [file] ...QCL 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żnapracować. Jeśli program wymaga większego rejestru, należyuruchomić 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.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
O czym trzeba pamiętać:
• Obiektom kwantowym nie przypisuje się wartości; opisujesię je pewnym wzorem, natomiast wartość ustalana jestpodczas pomiaru.
• Podczas fizycznej realizacji algorytmu nie ma możliwościsprawdzania stanu działającej maszyny; qcl dajemożliwość podglądu stanu komendą dump; nie jest onapomiarem (measure) i nie zmienia stanu rejestrów.
• Pomiar redukuje funkcję falową. Wynik jest otrzymywanyzgodnie 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.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Główna dokumentacja do qcl to: B. Omer, A ProceduralFormalism for Quantum ComputingPodstawowe wyrażenia:
// ... komentarz/* ... */ komentarzint real complex typy stałychboolean string typy stałych^ + - * / mod operatory arytmetyczne== != < <= > >= operatory logicznenot and or xor operatory logiczne& konkatenacja rejestrów# długość wyrażeniasin cos tan cot funkcje trygonometrycznesinh cosh tanh coth funkcje hiperboliczneexp log log(x,n) sqrt funckje inneRe Im abs conj funkcje na liczbach zespolonychceil floor zaokrągleniamax min dowolna liczba argumentówgcd lcm dowolna liczba argumentówrandom() liczba losowa <0,1)
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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żytkownikao wartość poprzez input.
Raz zadeklarowanych funkcji i operatorów nie możnaprzedefiniować. Opcja --allow-redefines ukrywakomunikaty o błędach i po cichu ignoruje próbyprzedefiniowania elementu.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Deklaracja i odwołanie się do rejestru:
qureg a[n] deklaruje n-kubitowy rejestrquconst deklaruje stały rejestrquvoid deklaruje pusty rejestrqufunct deklaracja funkcjia odwołanie do rejestru aa[i] odwołanie do qubitu i rejestru aa[i:j] odwołanie do qubitów od i do j rejestru aa[i\j] odwołanie do qubitu od i do i+j-1 rejestru aa&b konkatenacja rejestrów a i b
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Inne polecenia:
dump wypisuje stan maszynyload save ładuje (zapisuje) stan maszynyreset zeruje wszystkie kubity (*)shell uruchomienie podpowłokiexit wyjście z (pod)powłokilist wydrukuj wgrane definicje i rejestryprint wydrukuj na ekraniemeasure 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 nawpisanie wartości n
input ’plik.qcl’ wgranie pliku<< plik.qcl wgranie pliku
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
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 trzybramki CNOT.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
W qcl są trzy pętle: for, until, while, np.
qcl> int iqcl> for i=10 to 2 step -2 { print i^2; }
Niektóre zdefiniowane operatory:
Matrix2x2 deklaracja macierzy unitarnejMatrix4x4 deklaracja macierzy unitarnejMatrix8x8 deklaracja macierzy unitarnejRot(real theta, qureg q) obrót pojedynczego qubituMix(qureg q) bramka HadamardaCPhase(real phi, qureg q) dopisanie exp(i phi) do |1>
Niektóre zdefiniowane funkcje:
Perm2 4,8,16,32,64 permutacjeFanout(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)
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: przejrzyj pliki dołączone do qcl i znajdź innezdefiniowane 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.qclqcl> 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>
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: deklaracja rejestru, sprawdzenie jego stanu...
qcl> qureg a[1]qcl> dump: STATE: 1 / 32 qubits allocated, 31 / 32 qubits free1 |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)
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ć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))
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ć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
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: różnica pomiędzy dump a measure. Powtórzponiż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
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: sprawdź działanie symulatora BB84 dostępnegopod adresemfredhenle.net/bb84/demo.php
Ćwiczenie: sprawdź działanie symulatora BB84 autorstwaRoberta Dźwierzyńskiego, dostępnego pod adresemkft.umcs.lublin.pl/mgozdzPrzeanalizuj 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 napiszswój własny kod realizujący schemat BB84.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: sprawdź działanie symulatora BB84 dostępnegopod adresemfredhenle.net/bb84/demo.php
Ćwiczenie: sprawdź działanie symulatora BB84 autorstwaRoberta Dźwierzyńskiego, dostępnego pod adresemkft.umcs.lublin.pl/mgozdzPrzeanalizuj 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 napiszswój własny kod realizujący schemat BB84.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Ćwiczenie: sprawdź działanie symulatora BB84 dostępnegopod adresemfredhenle.net/bb84/demo.php
Ćwiczenie: sprawdź działanie symulatora BB84 autorstwaRoberta Dźwierzyńskiego, dostępnego pod adresemkft.umcs.lublin.pl/mgozdzPrzeanalizuj 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 napiszswój własny kod realizujący schemat BB84.
Kryptografiakwantowa
M. Góźdź
Problemykryptografiiklasycznej
Podstawymechanikikwantowej
Opismatematycznymechanikikwantowej
Podstawyinformatykikwantowej
AlgorytmBB84
Inne algorytmyQKD
Język progra-mowaniaQCL
Podsumowanie
Podsumowanie
• podatność kryptografii klasycznej na rozłamanie• różnice między fizyką klasyczną a kwantową• cechy informatyki kwantowej
• 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
• QKD• BB84• ataki na BB84• E91• SARG04