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/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 . . . 93.2 Kubit (spin) na sferze Blocha . . . 10
4 Bramki kwantowe
16
4.1 Klasyczne bramki logiczne . . . 164.1.1 jednobitowe . . . 16
4.1.2 dwubitowe . . . 17
3/35
5 Algorytm Shora
26
5.1 Motywacja . . . 27 5.2 Algorytm RSA . . . 28 5.3 Kwantowa faktoryzacja . . . 316 Kryptografia kwantowa
33
7 Zaproszenie do fizyki
34
4/35
5/35
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.
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,
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,
7/35
Niech {A1, A2, . . . , An} będą zdarzeniami niezależnymi występującymi z
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)
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
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
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
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!
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!
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.
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.
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.
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.
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
10/35
11/35
•
x
y
z
|0i
12/35
•
x
y
z
|1i
13/35
•
x
y
z
1
√
2
(
|0i + |1i)
14/35
•
x
y
z
1
√
2
(
|0i + i|1i)
15/35
•
x
y
z
|Ψi = cos
θ
2
|0i + e
iϕ
sin
θ
16/35
Bramki kwantowe
Klasyczne bramki logiczne
jednobitowe
16/35
Bramki kwantowe
Klasyczne bramki logiczne
jednobitowe
0 N OT 1
1 N OT 0
17/35
dwubitowe
x y AN D x AN D y17/35
dwubitowe
x y AN D x AN D y x y OR x OR y17/35
dwubitowe
x y AN D x AN D y x y OR x OR y x y XOR x XOR y17/35
dwubitowe
x y AN D x AN D y x y OR x OR y x y XOR x XOR yPowyższe bramki dwubitowe są nieodwracalne
Bramka kontrolowane N OT x
y
CN OT x
x ⊕ y
18/35
Bramki kwantowe
jednobitowe
|0i N OT |1i18/35
Bramki kwantowe
jednobitowe
|0i N OT |1i18/35
Bramki kwantowe
jednobitowe
|0i N OT |1ia|0i + b|1i N OT a|1i + b|0i
Zmiana fazy
18/35
Bramki kwantowe
jednobitowe
|0i N OT |1ia|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
18/35
Bramki kwantowe
jednobitowe
|0i N OT |1ia|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
19/35
Pierwiastek z N OT
19/35 Pierwiastek z N OT
|0i √N OT 1+i2 |0i + 12−i|1i
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!
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
20/35
Ewolucja stanów kwantowych (kubitów) opisywana jest
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
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
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 , ,
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
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
21/35
Działanie bramki wygląda tak
21/35
Działanie bramki wygląda tak
N OT |0i = 0 1 1 0 1 0
21/35
Działanie bramki wygląda tak
N OT |0i = 0 1 1 0 1 0 = 0 1
21/35
Działanie bramki wygląda tak
N OT |0i = 0 1 1 0 1 0 = 0 1 = |1i
21/35
Działanie bramki wygląda tak
N OT |0i = 0 1 1 0 1 0 = 0 1 = |1i H|0i
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
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
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)
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
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
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
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
22/35
dwubitowe
|Ψ0i |Ψ1i U |Ψi22/35
dwubitowe
|Ψ0i |Ψ1i U |ΨiBazę 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
23/35 Weźmy |Ψ0i = √1 2(|0i − |1i),
23/35 Weźmy |Ψ0i = √1
23/35 Weźmy |Ψ0i = √1
2(|0i − |1i), |Ψ1i = |1i |Ψ0i ⊗ |Ψ1i = |Ψ0Ψ1i = 0|00i + √1
2|01i + 0|10i − 1 √
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
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 =
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
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)
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.
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!
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.
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
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
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
25/35
25/35
Procesor Chuanga to procesor 7 kubitowy.
Bramki wielokubitowe można konstruować z bramek jedno- i dwukubito-wych.
25/35
Procesor Chuanga to procesor 7 kubitowy.
Bramki wielokubitowe można konstruować z bramek jedno- i dwukubito-wych.
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?
26/35
Algorytm Shora
27/35
Motywacja
• Systemy kryptograficzne z kluczem publicznym wykorzystują fakt, że rozkład dużej liczby na czynniki jest trudny (czasochłonny)
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]
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
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
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
29/35
Jak to działa?
• Mnożymy dwie duże liczby pierwsze p i q N = pq
29/35
Jak to działa?
• Mnożymy dwie duże liczby pierwsze p i q N = pq
• Znajdujemy funkcję Eulera
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)
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.
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 ) .
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
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!
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
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
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!
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!
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
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
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
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
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
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
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
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
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
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
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!
33/35
Kryptografia kwantowa
Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?
33/35
Kryptografia kwantowa
Czy zbudowanie komputera kwantowego spowoduje, że bezpieczne przesy-łanie informacji stanie się niemożliwe?
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.
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/
34/35
Zaproszenie do fizyki
34/35
Zaproszenie do fizyki
Studiujcie fizykę kwantową!
a może34/35
Zaproszenie do fizyki
Studiujcie fizykę kwantową!
a możeInformatykę kwantową?!
Powodzenia!
35/35