• Nie Znaleziono Wyników

krypt13.pdf ,

N/A
N/A
Protected

Academic year: 2021

Share "krypt13.pdf ,"

Copied!
51
0
0

Pełen tekst

(1)

Kryptografia

z elementami kryptografii kwantowej

Ryszard Tanaś

http://zon8.physd.amu.edu.pl/~tanas

(2)

Spis treści

19 Algorytmy kwantowe

3

19.1 Bit kwantowy — kubit (qubit)

. . . .

3

19.2 Twierdzenie o nieklonowaniu

. . . .

5

19.3 Bramki logiczne

. . . .

7

19.4 Problem Deutscha

. . . .

13

19.5 Kwantowy paralelizm

. . . .

16

19.6 Algorytm Shora

. . . .

19

(3)

19 Algorytmy kwantowe

19.1 Bit kwantowy — kubit (

qubit

)

Klasyczny bit może przyjmować dwie wartości {0, 1}.

Układ kwantowy, który ma dwa możliwe stany {|0i, |1i} może się znajdować w każdym z nich, ale także w stanie będącym

syperpozycją stanów bazowych

|Ψi = a|0i + b|1i

i taki stan nazywamy kubitem.

Oznacza to, że z prawdopodobieństwem p0 = |a|2 układ znajduje się

w stanie |0i i z prawdopodobieństwem p1 = |b|2 w stanie |1i, oczywiście p0 + p1 = 1. Stan układu kwantowego możemy przedstawić jako wektor na sferze Blocha

(4)

19 Algorytmy kwantowe

19.1 Bit kwantowy — kubit (

qubit

)

Klasyczny bit może przyjmować dwie wartości {0, 1}.

Układ kwantowy, który ma dwa możliwe stany {|0i, |1i} może się znajdować w każdym z nich, ale także w stanie będącym

syperpozycją stanów bazowych

|Ψi = a|0i + b|1i

i taki stan nazywamy kubitem.

Oznacza to, że z prawdopodobieństwem p0 = |a|2 układ znajduje się

w stanie |0i i z prawdopodobieństwem p1 = |b|2 w stanie |1i, oczywiście p0 + p1 = 1. Stan układu kwantowego możemy przedstawić jako wektor na sferze Blocha

(5)

19 Algorytmy kwantowe

19.1 Bit kwantowy — kubit (

qubit

)

Klasyczny bit może przyjmować dwie wartości {0, 1}.

Układ kwantowy, który ma dwa możliwe stany {|0i, |1i} może się znajdować w każdym z nich, ale także w stanie będącym

syperpozycją stanów bazowych

|Ψi = a|0i + b|1i

i taki stan nazywamy kubitem.

Oznacza to, że z prawdopodobieństwem p0 = |a|2 układ znajduje się

w stanie |0i i z prawdopodobieństwem p1 = |b|2 w stanie |1i, oczywiście p0 + p1 = 1. Stan układu kwantowego możemy przedstawić jako wektor na sferze Blocha

(6)

19 Algorytmy kwantowe

19.1 Bit kwantowy — kubit (

qubit

)

Klasyczny bit może przyjmować dwie wartości {0, 1}.

Układ kwantowy, który ma dwa możliwe stany {|0i, |1i} może się znajdować w każdym z nich, ale także w stanie będącym

syperpozycją stanów bazowych

|Ψi = a|0i + b|1i

i taki stan nazywamy kubitem.

Oznacza to, że z prawdopodobieństwem p0 = |a|2 układ znajduje się

w stanie |0i i z prawdopodobieństwem p1 = |b|2 w stanie |1i, oczywiście p0 + p1 = 1. Stan układu kwantowego możemy przedstawić jako wektor na sferze Blocha

(7)

|0i

|1i

|Ψi

(8)

19.2 Twierdzenie o nieklonowaniu

Nie istnieje transformacja unitarna U taka, że

U |Ψi|0i = |Ψi|Ψi

dla dowolnego |Ψi.

Dowód:

Przypuśćmy, że istnieje U takie, że

U |Ψi|0i = |Ψi|Ψi U |Φi|0i = |Φi|Φi

dla dowolnych |Ψi i |Φi.

Transformacja U reprezentowała by maszynę klonującą, gdyby taka istniała.

(9)

19.2 Twierdzenie o nieklonowaniu

Nie istnieje transformacja unitarna U taka, że

U |Ψi|0i = |Ψi|Ψi

dla dowolnego |Ψi.

Dowód:

Przypuśćmy, że istnieje U takie, że

U |Ψi|0i = |Ψi|Ψi U |Φi|0i = |Φi|Φi

dla dowolnych |Ψi i |Φi.

Transformacja U reprezentowała by maszynę klonującą, gdyby taka istniała.

(10)

19.2 Twierdzenie o nieklonowaniu

Nie istnieje transformacja unitarna U taka, że

U |Ψi|0i = |Ψi|Ψi

dla dowolnego |Ψi.

Dowód:

Przypuśćmy, że istnieje U takie, że

U |Ψi|0i = |Ψi|Ψi U |Φi|0i = |Φi|Φi

dla dowolnych |Ψi i |Φi.

Transformacja U reprezentowała by maszynę klonującą, gdyby taka istniała.

(11)

19.2 Twierdzenie o nieklonowaniu

Nie istnieje transformacja unitarna U taka, że

U |Ψi|0i = |Ψi|Ψi

dla dowolnego |Ψi.

Dowód:

Przypuśćmy, że istnieje U takie, że

U |Ψi|0i = |Ψi|Ψi U |Φi|0i = |Φi|Φi

dla dowolnych |Ψi i |Φi.

Transformacja U reprezentowała by maszynę klonującą, gdyby taka istniała.

(12)

Z unitarności U wynika jednak, że

hΨ|h0|U†U |Φi|0i = hΨ|ΦihΨ|Φi hΨ|Φih0|0i = hΨ|ΦihΨ|Φi

co nie jest prawdziwe dla dowolnych |Ψi i |Φi, natomiast może zachodzić dla stanów ortogonalnych hΨ|Φi = {0, 1}.

Stany ortogonalne (klasyczne bity) mogą być kopiowane, natomiast dowolne stany kwantowe nie.

(13)

Z unitarności U wynika jednak, że

hΨ|h0|U†U |Φi|0i = hΨ|ΦihΨ|Φi hΨ|Φih0|0i = hΨ|ΦihΨ|Φi

co nie jest prawdziwe dla dowolnych |Ψi i |Φi, natomiast może zachodzić dla stanów ortogonalnych hΨ|Φi = {0, 1}.

Stany ortogonalne (klasyczne bity) mogą być kopiowane, natomiast dowolne stany kwantowe nie.

(14)

19.3 Bramki logiczne

klasyczne kwantowe

x x a|0i + b|1i

a|0i + b|1i a|1i + b|0i

a|0i − b|1i

|1i √21 (|0i + |1i) S

R

(15)

klasyczne kwantowe x x x x y y y x ∧ y x ⊕ y x ⊕ y CNOT

(16)

• W bazie stanów

{|0i, |1i}

, mamy

|0i ≡

1

0

,

|1i ≡

0

1

• Wtedy operacje na stanach kwantowych mają

reprezentację

macierzową

, i tak na przykład

U

NOT

=

0

1

1

0

U

NOT

|0i =

0

1

1

0

1

0

=

0

1

≡ |1i

(17)

• W bazie stanów

{|0i, |1i}

, mamy

|0i ≡

1

0

,

|1i ≡

0

1

• Wtedy operacje na stanach kwantowych mają

reprezentację

macierzową

, i tak na przykład

U

NOT

=

0

1

1

0

U

NOT

|0i =

0

1

1

0

1

0

=

0

1

≡ |1i

(18)

• Operacja

przesunięcia fazy

, która nie zmienia stanu

|0i

zaś

stan

|1i

zmienia na

−|1i

, ma postać

U

S

=

1

0

0

−1

• Operacja

Hadamarda

, czasem nazywana pierwiastkiem

kwadratowym z NOT (

NOT

), ma postać

H

=

1

2

1

1

1

−1

(19)

• Operacja

przesunięcia fazy

, która nie zmienia stanu

|0i

zaś

stan

|1i

zmienia na

−|1i

, ma postać

U

S

=

1

0

0

−1

• Operacja

Hadamarda

, czasem nazywana pierwiastkiem

kwadratowym z NOT (

NOT

), ma postać

H

=

1

2

1

1

1

−1

(20)

• Istnieje nieskończenie wiele bramek kwantowych generowanych

przez

rotacje

o kąt

θ

U

R

(θ)

=

cos θ

− sin θ

sin θ

cos θ

• oraz

przesunięcia faz

U

P

1

, ϕ

2

)

=

e

iϕ1

0

0

e

iϕ2

(21)

• Istnieje nieskończenie wiele bramek kwantowych generowanych

przez

rotacje

o kąt

θ

U

R

(θ)

=

cos θ

− sin θ

sin θ

cos θ

• oraz

przesunięcia faz

U

P

1

, ϕ

2

)

=

e

iϕ1

0

0

e

iϕ2

(22)

• Operacja

CNOT

(kontrolowane NOT) na dwóch kubitach ma

postać

U

CN

=

1

0

0

0

0

1

0

0

0

0

0

1

0

0

1

0

(23)

19.4 Problem Deutscha

• Przypuśćmy, że mamy kwantową czarną skrzynkę obliczającą

funkcję

f (x)

, tzn. wykonującą transformację unitarną na

dwóch kubitach przedstawioną poniżej

|xi

?

|f (x)i

f : {0, 1} → {0, 1}

U

f

: |xi|yi → |xi|y ⊕ f (x)i

• Pytanie: Czy po jednym przebiegu kwantowego komputera

możemy stwierdzić, że

f (0) = f (1)

?

(24)

19.4 Problem Deutscha

• Przypuśćmy, że mamy kwantową czarną skrzynkę obliczającą

funkcję

f (x)

, tzn. wykonującą transformację unitarną na

dwóch kubitach przedstawioną poniżej

|xi

?

|f (x)i

f : {0, 1} → {0, 1}

U

f

: |xi|yi → |xi|y ⊕ f (x)i

• Pytanie: Czy po jednym przebiegu kwantowego komputera

możemy stwierdzić, że

f (0) = f (1)

?

(25)

19.4 Problem Deutscha

• Przypuśćmy, że mamy kwantową czarną skrzynkę obliczającą

funkcję

f (x)

, tzn. wykonującą transformację unitarną na

dwóch kubitach przedstawioną poniżej

|xi

?

|f (x)i

f : {0, 1} → {0, 1}

U

f

: |xi|yi → |xi|y ⊕ f (x)i

• Pytanie: Czy po jednym przebiegu kwantowego komputera

możemy stwierdzić, że

f (0) = f (1)

?

(26)

19.4 Problem Deutscha

• Przypuśćmy, że mamy kwantową czarną skrzynkę obliczającą

funkcję

f (x)

, tzn. wykonującą transformację unitarną na

dwóch kubitach przedstawioną poniżej

|xi

?

|f (x)i

f : {0, 1} → {0, 1}

U

f

: |xi|yi → |xi|y ⊕ f (x)i

• Pytanie: Czy po jednym przebiegu kwantowego komputera

możemy stwierdzić, że

f (0) = f (1)

?

(27)

• Weźmy następujący

obwód kwantowy

|0i

H

H

Pomiar

|1i

H

U

f

(28)

• Weźmy następujący

obwód kwantowy

|0i

H

H

Pomiar

|1i

H

U

f

(29)

19.4.1 Działanie obwodu

H : |0i →

1

2

(|0i + |1i),

|1i →

1

(30)

19.4.1 Działanie obwodu

H : |0i →

1

2

(|0i + |1i),

|1i →

1

2

(|0i − |1i)

|0i|1i →

1

(31)

19.4.1 Działanie obwodu

H : |0i →

1

2

(|0i + |1i),

|1i →

1

2

(|0i − |1i)

|0i|1i →

1

2

(|0i + |1i)(|0i − |1i)

1

2



(32)

19.4.1 Działanie obwodu

H : |0i →

1

2

(|0i + |1i),

|1i →

1

2

(|0i − |1i)

|0i|1i →

1

2

(|0i + |1i)(|0i − |1i)

1

2



(−1)

f (0)

|0i + (−1)

f (1)

|1i



(|0i − |1i)

1

2





(−1)

f (0)

+ (−1)

f (1)



|0i

+



(−1)

f (0)

− (−1)

f (1)



|1i



1

2

(|0i − |1i)

(33)

19.4.1 Działanie obwodu

H : |0i →

1

2

(|0i + |1i),

|1i →

1

2

(|0i − |1i)

|0i|1i →

1

2

(|0i + |1i)(|0i − |1i)

1

2



(−1)

f (0)

|0i + (−1)

f (1)

|1i



(|0i − |1i)

1

2





(−1)

f (0)

+ (−1)

f (1)



|0i

+



(−1)

f (0)

− (−1)

f (1)



|1i



1

2

(|0i − |1i)

|mi =

±|0i

dla

f (0) = f (1)

±|1i

dla

f (0) 6= f (1)

(34)

19.5 Kwantowy paralelizm

Przypuśćmy, że mamy funkcję działającą na N bitów o 2N

możliwych wartościach. Aby obliczyć tablicę funkcji f (x)

musielibyśmy policzyć wartość funkcji 2N razy (dla N = 100 ∼ 1030)!

Na komputerze kwantowym działającym zgodnie z

Uf : |xi|0i → |xi|f (x)i

możemy wybrać stan początkowy (kwantowy rejestr) w postaci

|ψ0i =  1 √ 2(|0i + |1i) N = 1 2N/2 2N−1 X x=0 |xi

(35)

19.5 Kwantowy paralelizm

Przypuśćmy, że mamy funkcję działającą na N bitów o 2N

możliwych wartościach. Aby obliczyć tablicę funkcji f (x)

musielibyśmy policzyć wartość funkcji 2N razy (dla N = 100 ∼ 1030)!

Na komputerze kwantowym działającym zgodnie z

Uf : |xi|0i → |xi|f (x)i

możemy wybrać stan początkowy (kwantowy rejestr) w postaci

|ψ0i =  1 √ 2(|0i + |1i) N = 1 2N/2 2N−1 X x=0 |xi

(36)

19.5 Kwantowy paralelizm

Przypuśćmy, że mamy funkcję działającą na N bitów o 2N

możliwych wartościach. Aby obliczyć tablicę funkcji f (x)

musielibyśmy policzyć wartość funkcji 2N razy (dla N = 100 ∼ 1030)!

Na komputerze kwantowym działającym zgodnie z

Uf : |xi|0i → |xi|f (x)i

możemy wybrać stan początkowy (kwantowy rejestr) w postaci

|ψ0i =  1 √ 2(|0i + |1i) N = 1 2N/2 2N−1 X x=0 |xi

(37)

i obliczając f (x) tylko raz otrzymujemy stan

|ψi =

1

2

N/2 2N−1

X

x=0

|xi|f (x)i

Stan ten jest superpozycją wartości funkcji dla wszystkich wartości jej argumentów. Mamy tu do czynienia z kwantowym paralelizmem.

(38)

i obliczając f (x) tylko raz otrzymujemy stan

|ψi =

1

2

N/2 2N−1

X

x=0

|xi|f (x)i

Stan ten jest superpozycją wartości funkcji dla wszystkich wartości jej argumentów. Mamy tu do czynienia z kwantowym paralelizmem.

(39)

Na przykład, dla N = 2, stan początkowy może mieć postać

0

i =

1

2

(|00i + |01i + |10i + |11i)

|00i → |0i

|01i → |1i

|10i → |2i

|11i → |3i

0

i =

1

2

(|0i + |1i + |2i + |3i)

Otrzymujemy superpozycję czterech liczb, na których komputer kwantowy wykonuje operacje w jednym kroku!

(40)

Na przykład, dla N = 2, stan początkowy może mieć postać

0

i =

1

2

(|00i + |01i + |10i + |11i)

|00i → |0i

|01i → |1i

|10i → |2i

|11i → |3i

0

i =

1

2

(|0i + |1i + |2i + |3i)

Otrzymujemy superpozycję czterech liczb, na których komputer kwantowy wykonuje operacje w jednym kroku!

(41)

19.6 Algorytm Shora

Rejestr A Rejestr B 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0

Etap 1. Przygotowujemy rejestr A komputera

kwantowego w superpozycji wszystkich możliwych stanów

(42)

19.6 Algorytm Shora

Rejestr A Rejestr B 0 1 1 2 2 4 3 8 4 1 5 2 6 4 7 8 8 1 9 2 10 4 11 8 12 1 13 2 14 4 15 8

Etap 1. Przygotowujemy rejestr A komputera

kwantowego w superpozycji wszystkich możliwych stanów

Etap 2. Liczba, którą chcemy sfaktoryzować jest N,

N = 15. Wybieramy liczbę losową X,

1 < X < N − 1, X = 2. Wykonujemy operację

B = XA (mod N )

np. dla X = 2 mamy wyniki przedstawione w tabelce

(43)

19.6 Algorytm Shora

Rejestr A Rejestr B 0 1 1 2 2 4 3 8 4 1 5 2 6 4 7 8 8 1 9 2 10 4 11 8 12 1 13 2 14 4 15 8

Etap 1. Przygotowujemy rejestr A komputera

kwantowego w superpozycji wszystkich możliwych stanów

Etap 2. Liczba, którą chcemy sfaktoryzować jest N,

N = 15. Wybieramy liczbę losową X,

1 < X < N − 1, X = 2. Wykonujemy operację

B = XA (mod N )

np. dla X = 2 mamy wyniki przedstawione w tabelce

Etap 3. Obliczamy P = Xf /2 − 1; f = 4 i sprawdzamy czy P jest dzielnikiem N

w naszym przypadku

P = 24/2 − 1 = 3,

(44)

19.6 Algorytm Shora

Rejestr A Rejestr B 0 1 1 2 2 4 3 8 4 1 5 2 6 4 7 8 8 1 9 2 10 4 11 8 12 1 13 2 14 4 15 8

Etap 1. Przygotowujemy rejestr A komputera

kwantowego w superpozycji wszystkich możliwych stanów

Etap 2. Liczba, którą chcemy sfaktoryzować jest N,

N = 15. Wybieramy liczbę losową X,

1 < X < N − 1, X = 2. Wykonujemy operację

B = XA (mod N )

np. dla X = 2 mamy wyniki przedstawione w tabelce

Etap 3. Obliczamy P = Xf /2 − 1; f = 4 i sprawdzamy czy P jest dzielnikiem N

w naszym przypadku P = 24/2 − 1 = 3, P = 24/2 + 1 = 5; Hurra !!! 15/3 = 5 15/5 = 3

(45)

19.7 Kwantowa transformata Fouriera

QF T : |xi

1

q

q−1

X

y=0

e

2πixy/q

|yi

gdzie

q = 2

N

(46)

19.7 Kwantowa transformata Fouriera

QF T : |xi

1

q

q−1

X

y=0

e

2πixy/q

|yi

gdzie

q = 2

N

(47)

19.7.1 Okres funkcji

Przygotowujemy stan

0

i =

1

q

q−1

X

x=0

|xi|f (x)i

Mierzymy drugi rejestr dostając |f (x0)i, co powoduje, że pierwszy

rejestr staje się superpozycją wszystkich stanów, które dają wartość

f (x0)

(funkcja jest okresowa z okresem r)

1

a

a−1

X

j=0

|x

0

+ jri ,

a − 1 <

q

r

< a + 1

(48)

19.7.1 Okres funkcji

Przygotowujemy stan

0

i =

1

q

q−1

X

x=0

|xi|f (x)i

Mierzymy drugi rejestr dostając |f (x0)i, co powoduje, że pierwszy

rejestr staje się superpozycją wszystkich stanów, które dają wartość

f (x0)

(funkcja jest okresowa z okresem r)

1

a

a−1

X

j=0

|x

0

+ jri ,

a − 1 <

q

r

< a + 1

(49)

19.7.1 Okres funkcji

Przygotowujemy stan

0

i =

1

q

q−1

X

x=0

|xi|f (x)i

Mierzymy drugi rejestr dostając |f (x0)i, co powoduje, że pierwszy

rejestr staje się superpozycją wszystkich stanów, które dają wartość

f (x0)

(funkcja jest okresowa z okresem r)

1

a

a−1

X

j=0

|x

0

+ jri ,

a − 1 <

q

r

< a + 1

(50)

Stosujemy QT F

1

qa

q−1

X

y=0

e

2πix0y a−1

X

j=0

e

2πijry/q

|yi

Prob(y) =

a

q

1

a

a−1

X

j=0

e

2πijry/q

2

Jeśli q/r jest całkowite (q/r = a), to

Prob

(y) =

1

a

1

a

a−1

X

j=0

e

2πijy/q

2

=

1 r

y = a ∗

integer

0

otherwise

(51)

Stosujemy QT F

1

qa

q−1

X

y=0

e

2πix0y a−1

X

j=0

e

2πijry/q

|yi

Prob(y) =

a

q

1

a

a−1

X

j=0

e

2πijry/q

2

Jeśli q/r jest całkowite (q/r = a), to

Prob

(y) =

1

a

1

a

a−1

X

j=0

e

2πijy/q

2

=

1 r

y = a ∗

integer

0

otherwise

Cytaty

Powiązane dokumenty

Transformacja użyta przez Bartka „unieważnia” zatem dowolny ruch Alicji i doprowadza do sytuacji, że końcową strategią Alicji zapisaną w | jest „współpraca”, podczas

Stan stacjonarny układu kwantowego – stacjonarne (bezczasowe) równanie Schroedingera jako zagad- nienie własne dla operatora energii układu; widmo operatora Hamiltona;

Dodatkowo, wykorzystując obecnie dostępne maszyny kwantowe, zaprezentowana zostanie implementacja tych przykładów bazująca na dostępnych zestawach bibliotek, udostępnianych

U chorych wrzodowych ciśnienie prawidłowe przed leczeniem w przeważającej większości przypadków nie zmieniło się po leczeniu, Podwyższone ciśnienie obniżyło się po leczeniu

Zauważmy, że każdej parze atakujących się wież odpowiadają dokładnie trzy linie, w których nie znajdują się żadne inne wieże – mianowicie te linie, w których te dwie

Przy założeniu, że zmiana natężenia pola magnetycznego odbywa się dostatecznie wolno i ewolucja układu kubitów odbywa się adiabatycznie, układ kubitów pozostanie cały czas

Nie ma wątpliwości co do tego, że fizycy bardzo dobrze poznali własności świata kwantowego, chociaż nie można wykluczyć, iż coraz dokładniejsze eksperymenty przyniosą jakieś

Ten sam zespół zbadał także możliwość nabycia przez boli- muszkę (Diptera: Muscidae; Stomoxys calcitrans L.) wiru- sa PRRSV wraz z krwią, którą się żywią, oraz czas