• Nie Znaleziono Wyników

Informatyka kwantowa (pdf)

N/A
N/A
Protected

Academic year: 2021

Share "Informatyka kwantowa (pdf)"

Copied!
114
0
0

Pełen tekst

(1)

1/35      

Zakład Optyki Nieliniowej

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

Informatyka kwantowa

wykład z cyklu

Zaproszenie do fizyki

Ryszard Tanaś

Umultowska 85, 61-614 Poznań

mailto:tanas@kielich.amu.edu.pl

(2)

2/35    

Spis treści

1 Komputer kwantowy liczy już do 15!

4

2 Informacja klasyczna — bit

6

2.1 Definicja . . . 6

2.2 Informacja jest wielkością fizyczną . . . 8

3 Informacja kwantowa — qubit (kubit)

9

3.1 Definicja . . . 9

3.2 Kubit (spin) na sferze Blocha . . . 10

4 Bramki kwantowe

16

4.1 Klasyczne bramki logiczne . . . 16

4.1.1 jednobitowe . . . 16

4.1.2 dwubitowe . . . 17

(3)

3/35      

5 Algorytm Shora

26

5.1 Motywacja . . . 27 5.2 Algorytm RSA . . . 28 5.3 Kwantowa faktoryzacja . . . 31

6 Kryptografia kwantowa

33

7 Zaproszenie do fizyki

34

(4)

4/35

  

(5)

5/35      

(6)

6/35

  

Informacja klasyczna — bit

Definicja

Niech A będzie zdarzeniem losowym, które występuje z prawdopodobień-stwem P (A). Jeśli dowiadujemy się, że takie zdarzenie nastąpiło, to uzy-skujemy

I(A) = log 1 P (A)

jednostek informacji. Jeśli logarytm jest przy podstawie 2, to jednostka informacji nazywa się bit. Zauważmy, że dla P (A) = 12, I(A) = 1.

(7)

6/35      

Informacja klasyczna — bit

Definicja

Niech A będzie zdarzeniem losowym, które występuje z prawdopodobień-stwem P (A). Jeśli dowiadujemy się, że takie zdarzenie nastąpiło, to uzy-skujemy

I(A) = log 1 P (A)

jednostek informacji. Jeśli logarytm jest przy podstawie 2, to jednostka informacji nazywa się bit. Zauważmy, że dla P (A) = 12, I(A) = 1.

Jeden bit to ilość informacji jaką uzyskujemy kiedy zachodzi jedna z dwóch alternatywnych możliwości,

(8)

6/35

  

Informacja klasyczna — bit

Definicja

Niech A będzie zdarzeniem losowym, które występuje z prawdopodobień-stwem P (A). Jeśli dowiadujemy się, że takie zdarzenie nastąpiło, to uzy-skujemy

I(A) = log 1 P (A)

jednostek informacji. Jeśli logarytm jest przy podstawie 2, to jednostka informacji nazywa się bit. Zauważmy, że dla P (A) = 12, I(A) = 1.

Jeden bit to ilość informacji jaką uzyskujemy kiedy zachodzi jedna z dwóch alternatywnych możliwości,

(9)

7/35      

Niech {A1, A2, . . . , An} będą zdarzeniami niezależnymi występującymi z

(10)

7/35

  

Niech {A1, A2, . . . , An} będą zdarzeniami niezależnymi występującymi z

praw-dopodobieństwami {P (A1), P (A2), . . . , P (An)}, wtedy H = X i P (Ai) log 1 P (Ai) = − X i P (Ai) log P (Ai)

(11)

7/35      

Niech {A1, A2, . . . , An} będą zdarzeniami niezależnymi występującymi z

praw-dopodobieństwami {P (A1), P (A2), . . . , P (An)}, wtedy H = X i P (Ai) log 1 P (Ai) = − X i P (Ai) log P (Ai)

określa średnią informację (entropię) takiego źródła informacji.

Weźmy np.

Zdarzenie A1 A2 A3

(12)

7/35

  

Niech {A1, A2, . . . , An} będą zdarzeniami niezależnymi występującymi z

praw-dopodobieństwami {P (A1), P (A2), . . . , P (An)}, wtedy H = X i P (Ai) log 1 P (Ai) = − X i P (Ai) log P (Ai)

określa średnią informację (entropię) takiego źródła informacji.

Weźmy np. Zdarzenie A1 A2 A3 Prawdopodobieństwo 12 13 16 wtedy H = −1 2 log 1 2 − 1 3 log 1 3 − 1 6 log 1 6 ≈ 1.46

(13)

8/35      

Informacja jest wielkością fizyczną

Zasada Landauera

Wymazanie jednego bitu informacji w otoczeniu o temperaturze T wymaga straty energii (wydzielenia ciepła) o wartości co najmniej kT ln 2

(14)

8/35

  

Informacja jest wielkością fizyczną

Zasada Landauera

Wymazanie jednego bitu informacji w otoczeniu o temperaturze T wymaga straty energii (wydzielenia ciepła) o wartości co najmniej kT ln 2

Komputer jest układem fizycznym

Jeden bit informacji jest reprezentowany, w układach fizycznych z których zbudowane są obecne komputery, przez około 1010 atomów!

(15)

8/35      

Informacja jest wielkością fizyczną

Zasada Landauera

Wymazanie jednego bitu informacji w otoczeniu o temperaturze T wymaga straty energii (wydzielenia ciepła) o wartości co najmniej kT ln 2

Komputer jest układem fizycznym

Jeden bit informacji jest reprezentowany, w układach fizycznych z których zbudowane są obecne komputery, przez około 1010 atomów!

Jeśli obecny trend w miniaturyzacji układów scalonych się utrzyma, to około roku 2020 jeden bit będzie reprezentowany przez jeden atom!

(16)

8/35

  

Informacja jest wielkością fizyczną

Zasada Landauera

Wymazanie jednego bitu informacji w otoczeniu o temperaturze T wymaga straty energii (wydzielenia ciepła) o wartości co najmniej kT ln 2

Komputer jest układem fizycznym

Jeden bit informacji jest reprezentowany, w układach fizycznych z których zbudowane są obecne komputery, przez około 1010 atomów!

Jeśli obecny trend w miniaturyzacji układów scalonych się utrzyma, to około roku 2020 jeden bit będzie reprezentowany przez jeden atom!

Fizyka w skali pojedynczego atomu to fizyka kwantowa — rządzą tu prawa mechaniki kwantowej.

(17)

9/35      

Informacja kwantowa — qubit (kubit)

Definicja

Kwantowym odpowiednikiem klasycznego bitu jest dowolny układ dwusta-nowy: dwa poziomy atomu, spin połówkowy, foton o dwóch wzajemnie ortogonalnych stanach polaryzacji, itp.

(18)

9/35

  

Informacja kwantowa — qubit (kubit)

Definicja

Kwantowym odpowiednikiem klasycznego bitu jest dowolny układ dwusta-nowy: dwa poziomy atomu, spin połówkowy, foton o dwóch wzajemnie ortogonalnych stanach polaryzacji, itp.

(19)

9/35      

Informacja kwantowa — qubit (kubit)

Definicja

Kwantowym odpowiednikiem klasycznego bitu jest dowolny układ dwusta-nowy: dwa poziomy atomu, spin połówkowy, foton o dwóch wzajemnie ortogonalnych stanach polaryzacji, itp.

Taki układ to qubit (quantum bit); po polsku kubit.

Klasyczny bit może przyjmować tylko dwie wartości {0, 1}; układ znajduje się albo w stanie 0 albo w stanie 1.

(20)

9/35

  

Informacja kwantowa — qubit (kubit)

Definicja

Kwantowym odpowiednikiem klasycznego bitu jest dowolny układ dwusta-nowy: dwa poziomy atomu, spin połówkowy, foton o dwóch wzajemnie ortogonalnych stanach polaryzacji, itp.

Taki układ to qubit (quantum bit); po polsku kubit.

Klasyczny bit może przyjmować tylko dwie wartości {0, 1}; układ znajduje się albo w stanie 0 albo w stanie 1.

Kubit (qubit) to dowolny stan kwantowy układu dwupoziomowego o stanach własnych |0i i |1i, który może być superpozycją stanów własnych

(21)

10/35      

(22)

11/35   

x

y

z

|0i

(23)

12/35      

x

y

z

|1i

(24)

13/35   

x

y

z

1

2

(

|0i + |1i)

(25)

14/35      

x

y

z

1

2

(

|0i + i|1i)

(26)

15/35   

x

y

z

|Ψi = cos

θ

2

|0i + e

sin

θ

(27)

16/35      

Bramki kwantowe

Klasyczne bramki logiczne

jednobitowe

(28)

16/35

  

Bramki kwantowe

Klasyczne bramki logiczne

jednobitowe

0 N OT 1

1 N OT 0

(29)

17/35      

dwubitowe

x y AN D x AN D y

(30)

17/35   

dwubitowe

x y AN D x AN D y x y OR x OR y

(31)

17/35      

dwubitowe

x y AN D x AN D y x y OR x OR y x y XOR x XOR y

(32)

17/35   

dwubitowe

x y AN D x AN D y x y OR x OR y x y XOR x XOR y

Powyższe bramki dwubitowe są nieodwracalne

Bramka kontrolowane N OT x

y

CN OT x

x ⊕ y

(33)

18/35      

Bramki kwantowe

jednobitowe

|0i N OT |1i

(34)

18/35   

Bramki kwantowe

jednobitowe

|0i N OT |1i

(35)

18/35      

Bramki kwantowe

jednobitowe

|0i N OT |1i

a|0i + b|1i N OT a|1i + b|0i

Zmiana fazy

(36)

18/35   

Bramki kwantowe

jednobitowe

|0i N OT |1i

a|0i + b|1i N OT a|1i + b|0i

Zmiana fazy

a|0i + b|1i S a|0i − b|1i

Bramka Hadamarda

|0i H √1

(37)

18/35      

Bramki kwantowe

jednobitowe

|0i N OT |1i

a|0i + b|1i N OT a|1i + b|0i

Zmiana fazy

a|0i + b|1i S a|0i − b|1i

Bramka Hadamarda

|0i H √1

2(|0i + |1i)

|1i H √1

(38)

19/35

  

Pierwiastek z N OT

(39)

19/35       Pierwiastek z N OT

|0i √N OT 1+i2 |0i + 12−i|1i

(40)

19/35

  

Pierwiastek z N OT

|0i √N OT 1+i2 |0i + 12−i|1i

|1i √N OT 12−i|0i + 1+i2 |1i

(√N OT )2 = N OT

W informatyce kwantowej liczba nietrywialnych bramek logicznych jest znacz-nie większa!

(41)

19/35       Pierwiastek z N OT

|0i √N OT 1+i2 |0i + 12−i|1i

|1i √N OT 12−i|0i + 1+i2 |1i

(√N OT )2 = N OT

W informatyce kwantowej liczba nietrywialnych bramek logicznych jest znacz-nie większa!

Interferencja kwantowa pozwala uzyskać operacje logiczne niedostępne w klasycznej informatyce

(42)

20/35

  

Ewolucja stanów kwantowych (kubitów) opisywana jest

(43)

20/35      

Ewolucja stanów kwantowych (kubitów) opisywana jest

równaniem Schrödingera.

Bramka kwantowa to operacja przekształcająca stan kwantowy |Ψi w nowy stan |Ψ0i

(44)

20/35

  

Ewolucja stanów kwantowych (kubitów) opisywana jest

równaniem Schrödingera.

Bramka kwantowa to operacja przekształcająca stan kwantowy |Ψi w nowy stan |Ψ0i

|Ψi U |Ψ0i

W bazie {|0i, |1i}, stany bazowe reprezentowane są przez macierze jedno-kolumnowe (wektory) |0i =   1 0  , |1i =   0 1  

(45)

20/35      

Ewolucja stanów kwantowych (kubitów) opisywana jest

równaniem Schrödingera.

Bramka kwantowa to operacja przekształcająca stan kwantowy |Ψi w nowy stan |Ψ0i

|Ψi U |Ψ0i

W bazie {|0i, |1i}, stany bazowe reprezentowane są przez macierze jedno-kolumnowe (wektory) |0i =   1 0  , |1i =   0 1  

zaś jednokubitowa bramka U ma postać macierzy 2 × 2, np.

N OT =   0 1 1 0  , ,

(46)

20/35

  

Ewolucja stanów kwantowych (kubitów) opisywana jest

równaniem Schrödingera.

Bramka kwantowa to operacja przekształcająca stan kwantowy |Ψi w nowy stan |Ψ0i

|Ψi U |Ψ0i

W bazie {|0i, |1i}, stany bazowe reprezentowane są przez macierze jedno-kolumnowe (wektory) |0i =   1 0  , |1i =   0 1  

zaś jednokubitowa bramka U ma postać macierzy 2 × 2, np.

 0 1   1 √ √1 

(47)

20/35      

Ewolucja stanów kwantowych (kubitów) opisywana jest

równaniem Schrödingera.

Bramka kwantowa to operacja przekształcająca stan kwantowy |Ψi w nowy stan |Ψ0i

|Ψi U |Ψ0i

W bazie {|0i, |1i}, stany bazowe reprezentowane są przez macierze jedno-kolumnowe (wektory) |0i =   1 0  , |1i =   0 1  

zaś jednokubitowa bramka U ma postać macierzy 2 × 2, np.

N OT =   0 1 1 0  , H =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2  , √N OT =   1+i 2 1−i 2 1−i 2 1+i 2  

(48)

21/35

  

Działanie bramki wygląda tak

(49)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  

(50)

21/35

  

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  

(51)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i

(52)

21/35

  

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i

(53)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  

(54)

21/35

  

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  

(55)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  = 1 √ 2(|0i + |1i)

(56)

21/35

  

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  = 1 √ 2(|0i + |1i) √ N OT |0i

(57)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  = 1 √ 2(|0i + |1i) √ N OT |0i =   1+i 2 1−i 2 1−i 2 1+i 2     1 0  

(58)

21/35

  

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  = 1 √ 2(|0i + |1i) √ N OT |0i =   1+i 2 1−i 2 1−i 2 1+i 2     1 0  =   1+i 2 1−i 2  

(59)

21/35      

Działanie bramki wygląda tak

N OT |0i =   0 1 1 0     1 0  =   0 1  = |1i H|0i =   1 √ 2 1 √ 2 1 √ 2 − 1 √ 2     1 0  =   1 √ 2 1 √ 2  = 1 √ 2(|0i + |1i) √ N OT |0i =   1+i 2 1−i 2 1−i 2 1+i 2     1 0  =   1+i 2 1−i 2  = 1 + i 2 |0i + 1 − i 2 |1i

(60)

22/35   

dwubitowe

|Ψ0i |Ψ1i U    |Ψi

(61)

22/35      

dwubitowe

|Ψ0i |Ψ1i U    |Ψi

Bazę w przestrzeni dwukubitowej tworzą stany {|00i, |01i, |10i, |11i}. Dwu-kubitowa bramka U opisywana jest w tej bazie macierzą 4 × 4, np.

CN OT =          1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0         

(62)

23/35    Weźmy |Ψ0i = √1 2(|0i − |1i),

(63)

23/35       Weźmy |Ψ0i = √1

(64)

23/35    Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1

2|01i + 0|10i − 1 √

(65)

23/35       Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1 2|01i + 0|10i − 1 √ 2|11i CN OT |Ψ0i|Ψ1i

(66)

23/35    Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1 2|01i + 0|10i − 1 √ 2|11i CN OT |Ψ0i|Ψ1i =          1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0                   0 1 √ 2 0 −√1 2          =

(67)

23/35       Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1 2|01i + 0|10i − 1 √ 2|11i CN OT |Ψ0i|Ψ1i =          1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0                   0 1 √ 2 0 −√1 2          =          0 1 √ 2 −√1 2 0         

(68)

23/35    Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1 2|01i + 0|10i − 1 √ 2|11i CN OT |Ψ0i|Ψ1i =          1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0                   0 1 √ 2 0 −√1 2          =          0 1 √ 2 −√1 2 0          = √1 2(|01i − |10i)

(69)

23/35       Weźmy |Ψ0i = √1

2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1 2|01i + 0|10i − 1 √ 2|11i CN OT |Ψ0i|Ψ1i =          1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0                   0 1 √ 2 0 −√1 2          =          0 1 √ 2 −√1 2 0          = √1 2(|01i − |10i)

Otrzymaliśmy stan, który nie daje się rozseparować na iloczyn dwóch stanów (kubitów). Taki stan nazywamy stanem splątanym.

(70)

24/35

  

Stan √1

2(|01i + |10i) jest znaną parą EPR. Pomiar jednego kubitu da 0 lub

1 z prawdopodobieństwem 12. Ale jeśli pomiar pierwszego kubitu dał 0 to drugiego musi dać 1, i na odwrót! Niezależnie od tego jak daleko od siebie oddalone są oba kubity!

(71)

24/35       Stan √1

2(|01i + |10i) jest znaną parą EPR. Pomiar jednego kubitu da 0 lub

1 z prawdopodobieństwem 12. Ale jeśli pomiar pierwszego kubitu dał 0 to drugiego musi dać 1, i na odwrót! Niezależnie od tego jak daleko od siebie oddalone są oba kubity!

Układy wielokubitowe możemy traktować jako rejestry kwantowe, na któ-rych możemy wykonywać kwantowe operacje logiczne (unitarna ewolucja) lub pomiary.

(72)

24/35

  

Stan √1

2(|01i + |10i) jest znaną parą EPR. Pomiar jednego kubitu da 0 lub

1 z prawdopodobieństwem 12. Ale jeśli pomiar pierwszego kubitu dał 0 to drugiego musi dać 1, i na odwrót! Niezależnie od tego jak daleko od siebie oddalone są oba kubity!

Układy wielokubitowe możemy traktować jako rejestry kwantowe, na któ-rych możemy wykonywać kwantowe operacje logiczne (unitarna ewolucja) lub pomiary.

Stan

|Ψi = 1

(73)

24/35       Stan √1

2(|01i + |10i) jest znaną parą EPR. Pomiar jednego kubitu da 0 lub

1 z prawdopodobieństwem 12. Ale jeśli pomiar pierwszego kubitu dał 0 to drugiego musi dać 1, i na odwrót! Niezależnie od tego jak daleko od siebie oddalone są oba kubity!

Układy wielokubitowe możemy traktować jako rejestry kwantowe, na któ-rych możemy wykonywać kwantowe operacje logiczne (unitarna ewolucja) lub pomiary.

Stan

|Ψi = 1

2(|00i + |01i + |10i + |11i) = 1

(74)

24/35     Stan √1

2(|01i + |10i) jest znaną parą EPR. Pomiar jednego kubitu da 0 lub

1 z prawdopodobieństwem 12. Ale jeśli pomiar pierwszego kubitu dał 0 to drugiego musi dać 1, i na odwrót! Niezależnie od tego jak daleko od siebie oddalone są oba kubity!

Układy wielokubitowe możemy traktować jako rejestry kwantowe, na któ-rych możemy wykonywać kwantowe operacje logiczne (unitarna ewolucja) lub pomiary.

Stan

|Ψi = 1

2(|00i + |01i + |10i + |11i) = 1

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

jest dwukubitowym rejestrem kwantowym w stanie superpozycji z jedna-kowymi amplitudami,w którym liczby od 0 − 3 reprezentowane są z takim

(75)

25/35      

(76)

25/35

  

Procesor Chuanga to procesor 7 kubitowy.

Bramki wielokubitowe można konstruować z bramek jedno- i dwukubito-wych.

(77)

25/35      

Procesor Chuanga to procesor 7 kubitowy.

Bramki wielokubitowe można konstruować z bramek jedno- i dwukubito-wych.

(78)

25/35

  

Procesor Chuanga to procesor 7 kubitowy.

Bramki wielokubitowe można konstruować z bramek jedno- i dwukubito-wych.

W ten sposób możemy konstruować komputer kwantowy!

Co taki komputer potrafi?

(79)

26/35      

Algorytm Shora

(80)

27/35

  

Motywacja

• Systemy kryptograficzne z kluczem publicznym wykorzystują fakt, że rozkład dużej liczby na czynniki jest trudny (czasochłonny)

(81)

27/35      

Motywacja

• Systemy kryptograficzne z kluczem publicznym wykorzystują fakt, że rozkład dużej liczby na czynniki jest trudny (czasochłonny)

• Najszybszy obecnie algorytm wymaga czasu

∼ exp[(649 )1/3(ln ln N )2/3]

(82)

27/35

  

Motywacja

• Systemy kryptograficzne z kluczem publicznym wykorzystują fakt, że rozkład dużej liczby na czynniki jest trudny (czasochłonny)

• Najszybszy obecnie algorytm wymaga czasu

∼ exp[(649 )1/3(ln ln N )2/3]

faktoryzacja liczby 400 cyfrowej wymagałaby 1010 lat

• W 1994 r. RSA 129 został złamany na 1600 stacjach roboczych w ciągu 8 miesięcy

(83)

27/35      

Motywacja

• Systemy kryptograficzne z kluczem publicznym wykorzystują fakt, że rozkład dużej liczby na czynniki jest trudny (czasochłonny)

• Najszybszy obecnie algorytm wymaga czasu

∼ exp[(649 )1/3(ln ln N )2/3]

faktoryzacja liczby 400 cyfrowej wymagałaby 1010 lat

• W 1994 r. RSA 129 został złamany na 1600 stacjach roboczych w ciągu 8 miesięcy

• Algorytm kwantowy Petera Shora wymaga czasu

∼ (ln N )2+

komputer kwantowy, który faktoryzowałby liczbę 130 cyfrową w ciągu miesiąca, sfaktoryzowałby liczbę 400 cyfrową w czasie krótszym niż 3 lata

(84)

28/35

  

Algorytm RSA

(Ron Rivest, Adi Shamir, Len Adleman)

Kryptografia z kluczem publicznym

Klucz publiczny: {e, N }

Klucz prywatny: {d, N }

Szyfrowanie: C = Me mod N

(85)

29/35      

Jak to działa?

• Mnożymy dwie duże liczby pierwsze p i q N = pq

(86)

29/35

  

Jak to działa?

• Mnożymy dwie duże liczby pierwsze p i q N = pq

• Znajdujemy funkcję Eulera

(87)

29/35      

Jak to działa?

• Mnożymy dwie duże liczby pierwsze p i q N = pq

• Znajdujemy funkcję Eulera

ϕ(N ) = N − p − q + 1 = (p − 1)(q − 1)

(88)

29/35

  

Jak to działa?

• Mnożymy dwie duże liczby pierwsze p i q N = pq

• Znajdujemy funkcję Eulera

ϕ(N ) = N − p − q + 1 = (p − 1)(q − 1)

• Wybieramy losowo e < ϕ(N ) względnie pierwsze z ϕ(N ).

• Ujawniamy e i N — to jest nasz klucz publiczny.

Teraz każdy może użyć naszego klucza publicznego do zaszyfrowania informacji przesyłanej do nas.

(89)

29/35      

Jak to działa?

• Mnożymy dwie duże liczby pierwsze p i q N = pq

• Znajdujemy funkcję Eulera

ϕ(N ) = N − p − q + 1 = (p − 1)(q − 1)

• Wybieramy losowo e < ϕ(N ) względnie pierwsze z ϕ(N ).

• Ujawniamy e i N — to jest nasz klucz publiczny.

Teraz każdy może użyć naszego klucza publicznego do zaszyfrowania informacji przesyłanej do nas.

• Wyznaczamy d < ϕ(N ) takie, że de = 1 mod ϕ(N ) .

(90)

30/35   

Przykład

Weźmy: p = 11, q = 13; N = 11 ∗ 13 = 143; ϕ(N ) = 10 ∗ 12 = 120 wybieramy: e = 7; (120 − 1)/7 = 17 jest całkowite; d = 120 − 17 = 103.

Weźmy: M = 31 (to jest wiadomość do zaszyfrowania) Szyfrujemy: 317 mod 143 = 125

(91)

30/35      

Przykład

Weźmy: p = 11, q = 13; N = 11 ∗ 13 = 143; ϕ(N ) = 10 ∗ 12 = 120 wybieramy: e = 7; (120 − 1)/7 = 17 jest całkowite; d = 120 − 17 = 103.

Weźmy: M = 31 (to jest wiadomość do zaszyfrowania) Szyfrujemy: 317 mod 143 = 125

Rozszyfrowujemy: 125103 mod 143 = 31

Jeśli chcesz się pobawić z większymi liczbami to ściągnij program autorstwa Michała Tanasia demostrujący działanie algorytmu RSA i łamanie szyfru. Do skompilowania programu pod Linuksem potrzebne są biblioteki GNU MP 4.1 oraz QT 3.x dostępne w Internecie. Po skompilowaniu programu można go uruchomić klikając na RSA demo poniżej. Pamiętaj jednak, że faktoryzacja jest problemem trudnym obliczeniowo!

(92)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

(93)

31/35      

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

(94)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

(95)

31/35      

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

(96)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

(97)

31/35      

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(98)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(99)

31/35      

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(100)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(101)

31/35      

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(102)

31/35

  

Kwantowa faktoryzacja

Chcemy sfaktoryzować liczbę N, N = 15. Wybieramy liczbę losową 1 < X < N − 1 względnie pierwszą z N, tzn. taką, że N W D(N, X) = 1, powiedzmy

X = 2.

• Przygotowujemy rejestr kwantowy w stanie superpozycji wszystkich liczb od 0 do 15

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

• Wykonujemy operację B = XA mod N, wykorzystując kwantowy paralelizm i wyniki umieszczamy w rejestrze B. Komputer kwantowy wykonuje taką operację w jednym kroku!

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

B 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 • Zauważamy, że wyniki w rejestrze B są okresowe z okresem r = 4

(103)

32/35      

• Jeśli r jest nieparzyste, to wybieramy inne X i zaczynamy procedurę od nowa. Jeśli r jest parzyste, obliczamy P = Xr/2 − 1 lub P = Xr/2 + 1

i sprawdzamy czy P jest dzielnikiem N. W naszym przykładzie r = 4 i

(104)

32/35

  

• Jeśli r jest nieparzyste, to wybieramy inne X i zaczynamy procedurę od nowa. Jeśli r jest parzyste, obliczamy P = Xr/2 − 1 lub P = Xr/2 + 1

i sprawdzamy czy P jest dzielnikiem N. W naszym przykładzie r = 4 i

P = 24/2 − 1 = 3 lub P = 24/2 + 1 = 5.

Hurra !!!

15/3 = 5 15/5 = 3

(105)

32/35      

• Jeśli r jest nieparzyste, to wybieramy inne X i zaczynamy procedurę od nowa. Jeśli r jest parzyste, obliczamy P = Xr/2 − 1 lub P = Xr/2 + 1

i sprawdzamy czy P jest dzielnikiem N. W naszym przykładzie r = 4 i

P = 24/2 − 1 = 3 lub P = 24/2 + 1 = 5.

Hurra !!!

15/3 = 5 15/5 = 3

(106)

32/35

  

• Jeśli r jest nieparzyste, to wybieramy inne X i zaczynamy procedurę od nowa. Jeśli r jest parzyste, obliczamy P = Xr/2 − 1 lub P = Xr/2 + 1

i sprawdzamy czy P jest dzielnikiem N. W naszym przykładzie r = 4 i

P = 24/2 − 1 = 3 lub P = 24/2 + 1 = 5.

Hurra !!!

15/3 = 5 15/5 = 3

Ten wynik udało się już uzyskać eksperymentalnie!

Komputer kwantowy liczy już do 15!

(107)

33/35      

Kryptografia kwantowa

Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?

(108)

33/35

  

Kryptografia kwantowa

Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?

(109)

33/35      

Kryptografia kwantowa

Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?

Nie!

Bezpieczne przesyłanie informacji zapewnia

kryptografia kwantowa.

(110)

33/35

  

Kryptografia kwantowa

Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?

Nie!

Bezpieczne przesyłanie informacji zapewnia

kryptografia kwantowa.

Popularny wyklad na temat kryptografii kwantowej można znaleźć na mojej stronie:

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

(111)

34/35      

Zaproszenie do fizyki

(112)

34/35

  

Zaproszenie do fizyki

Studiujcie fizykę kwantową!

a może

(113)

34/35      

Zaproszenie do fizyki

Studiujcie fizykę kwantową!

a może

Informatykę kwantową?!

Powodzenia!

(114)

35/35

  

Obraz

Rysunek 2: Isaac L. Chuang i jego procesor kwantowy
Rysunek 3: Peter Shor

Cytaty

Powiązane dokumenty

b) Wyznacz współrzędne punktu D tak, aby czworokąt ABCD

− projektuje doświadczenie chemiczne Badanie działania zasady i kwasu na tlenki metali i niemetali oraz zapisuje odpowiednie równania reakcji chemicznych. − określa

− projektuje doświadczenie chemiczne Otrzymywanie wodorotlenku żelaza(II) i badanie jego właściwości oraz zapisuje odpowiednie równania reakcji chemicznych. −

− projektuje doświadczenie chemiczne Badanie działania zasady i kwasu na tlenki metali i niemetali oraz zapisuje odpowiednie równania reakcji chemicznych. − określa

odbiornika wzmacnia- nego sygnału, znamienny tym, że wzmacniany sygnał elektryczny z wejścia układu (1) doprowadza się poprzez układ inwertera (A0) posiadający jedno

 omawia typowe właściwości chemiczne kwasów (zachowanie wobec metali, tlenków metali, wodorotlenków i soli kwasów o mniejszej mocy) oraz zapisuje odpowiednie równania

− projektuje doświadczenie chemiczne Badanie działania zasady i kwasu na tlenki metali i niemetali oraz zapisuje odpowiednie równania reakcji chemicznych. − określa

Osoby, które się jeszcze nie zalogowały na platformie proszę o kontakt przez komunikator w dzienniku.. Opracowała: