Kryptografia — wykład dla IV roku Kryptografia Wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej dla studentów IV roku Ryszard Tanaś Zakład Optyki Nieliniowej, Instytut Fizyki UAM [email protected]Serdecznie witam! Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 0
109
Embed
Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Kryptografia — wykład dla IV roku
Kryptografia
Wykład z podstaw klasycznejkryptografii z elementami
kryptografii kwantowejdla studentów IV roku
Ryszard TanaśZakład Optyki Nieliniowej, Instytut Fizyki UAM
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 0
Kryptografia — wykład dla IV roku
Literatura
• M. Kutyłowski i W. B. Strothmann Kryptografia: Teoria
i praktyka zabezpieczania systemów komputerowych, Wyd.READ ME, Warszawa, 1999, drugie wydanie dostępne wksięgarniach
• B. Schneier Kryptografia dla praktyków, WNT, Warszawa,2002, wydanie drugie
• R. Wobst, Kryptologia. Budowa i łamanie zabezpieczeń,RM, Warszawa, 2002
• A. J. Menezes, P. C. van Oorschot, S. A. VanstoneKryptografia stosowana, WNT, Warszawa, 2005;Handbook of Applied Cryptography, CRC Press, 1997, NewYork, dostępna w Internecie
• W. Stein An Explicit Approach to Elementary Number
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 6
Kryptografia — wykład dla IV roku
Kryptosystem hybrydowy
1. Bolek wysyła do Alicji swój klucz publiczny
2. Alicja generuje losowy klucz K dla obecnej sesji, szyfrujego kluczem publicznym Bolka i wysyła kryptogramklucza EB(K) do Bolka
3. Bolek deszyfruje kryptogram klucza używając swojegoklucza prywatnego, DB(EB(K))=K, otrzymując klucz Kdla obecnej sesji
4. oboje używają klucza K i symetrycznego algorytmu doszyfrowania i deszyfrowania informacji przesyłanych wczasie tej sesji
• Uwagi:
⋆ algorytmy symetryczne są szybsze niż algorytmyasymetryczne, co ma znaczenie przy przesyłaniu dużejilości danych
⋆ jeśli Ewa zdobędzie klucz K, to może go użyć dodeszyfrowania jedynie aktualnej sesji, potem już jestbezużyteczny
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 7
Kryptografia — wykład dla IV roku
Podpis cyfrowy: kryptosystem z kluczempublicznym
1. Alicja szyfruje dokument używając swojego kluczaprywatnego, podpisując w ten sposób dokument
2. Alicja przesyła tak podpisany dokument do Bolka
3. Bolek deszyfruje dokument używając klucza publicznegoAlicji, weryfikując w ten sposób podpis Alicji
• Uwagi:
⋆ podpis jest prawdziwy; Bolek weryfikuje go deszyfrująckryptogram kluczem publicznym Alicji
⋆ podpis nie może być sfałszowany; tylko Alicja zna jejklucz prywatny
⋆ podpis nie może być przeniesiony do innego dokumentu
⋆ podpisany dokument nie może być zmieniony; zmie-niony dokument nie da się rozszyfrować kluczempublicznym Alicji
⋆ podpis jest niezaprzeczalny;
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 8
Kryptografia — wykład dla IV roku
Jednokierunkowe funkcje hashujące (skrótu)
• dla każdego X łatwo jest obliczyć H(X)
• H(X) ma taką samą długość dla wszystkich tekstów X
• dla zadanego Y znalezienie takiego X, że H(X) = Y jestpraktycznie niemożliwe
• dla zadanego X trudno znaleźć X ′ takie, że H(X) =
H(X ′)
Elektroniczny notariusz
• dla danego dokumentu X obliczamy wartość H(X) ipublikujemy lub deponujemy u notariusza wartość H(X)
• chcąc udowodnić prawdziwość dokumentu X przedsta-wiamy dokument, obliczamy H(X) i porównujemy zopublikowaną wcześniej wartością
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 9
Kryptografia — wykład dla IV roku
Szyfr Cezara
• szyfr podstawieniowy monoalfabetyczny
ABCDEFGH I J KLMNOPRS T UVWXYZDEFGH I JKLMNOPRSTUVWXY Z ABC
tekst jawny=⇒KRYP T OGRAFI Akryptogram=⇒NUBTWS J UD I LD
Szyfr Vigenère’a
A B C D E F G H I J K L M N O P R S T U V W X Y ZB C D E F G H I J K L M N O P R S T U V W X Y Z AC D E F G H I J K L M N O P R S T U V W X Y Z A BD E F G H I J K L M N O P R S T U V W X Y Z A B CE F G H I J K L M N O P R S T U V W X Y Z A B C DF G H I J K L M N O P R S T U V W X Y Z A B C D EG H I J K L M N O P R S T U V W X Y Z A B C D E FH I J K L M N O P R S T U V W X Y Z A B C D E F GI J K L M N O P R S T U V W X Y Z A B C D E F G HJ K L M N O P R S T U V W X Y Z A B C D E F G H IK L M N O P R S T U V W X Y Z A B C D E F G H I JL M N O P R S T U V W X Y Z A B C D E F G H I J KM N O P R S T U V W X Y Z A B C D E F G H I J K LN O P R S T U V W X Y Z A B C D E F G H I J K L MO P R S T U V W X Y Z A B C D E F G H I J K L M NP R S T U V W X Y Z A B C D E F G H I J K L M N OR S T U V W X Y Z A B C D E F G H I J K L M N O PS T U V W X Y Z A B C D E F G H I J K L M N O P RT U V W X Y Z A B C D E F G H I J K L M N O P R SU V W X Y Z A B C D E F G H I J K L M N O P R S TV W X Y Z A B C D E F G H I J K L M N O P R S T UW X Y Z A B C D E F G H I J K L M N O P R S T U VX Y Z A B C D E F G H I J K L M N O P R S T U V WY Z A B C D E F G H I J K L M N O P R S T U V W XZ A B C D E F G H I J K L M N O P R S T U V W X Y
klucz =⇒S Z Y MPANS SZYMtekst =⇒KRY PTOGRAF I Akrypt.=⇒CPWC I OU I SEGM
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 10
Kryptografia — wykład dla IV roku
Operacja xor i one-time pad — szyfrVernama
0⊕ 0 = 00⊕ 1 = 11⊕ 0 = 11⊕ 1 = 0
• tekst jawny jest ciągiem bitów M=m1,m2, . . . ,mn
⋆ wynik operacji xor na rozszerzonym Ri i Ki dzielonyjest na 8 części po 6 bitów, z których każda przechodzido oddzielnego S-boksu (S1, . . . , S8)
⋆ 6 bitów wchodzących do S-boksu przekształcanychjest w 4 bity wyjściowe w specjalny sposób pierwszy iostatni bit 6 bitów wejściowych daje liczbę dwubitowąod 0–3 oznaczającą wiersz S-boksu, zaś bity 2–5 dająliczbę 4-bitową od 0–15, która odpowiada kolumnietabeli.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 18
Np. dla 110011 na wejściu, 1 i 6 bit dają 112 = 310,
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 19
Kryptografia — wykład dla IV roku
zaś bity 2–4 dają 10012 = 910, na przecięciu wiersza3 i kolumny 9 S1 mamy liczbę 1110 = 10112 (wierszei kolumny liczymy od zera). W wyniku otrzymujemy1011.
• wyniki z 8 S-boksów są łączone w 32 bitową liczbę
• na tych 32 bitach dokonuje się permutacji wg Tablicy 7oraz operacji xor z 32 bitami lewej połowy otrzymującnową prawą połowę, która przekazywana jest do następnejrundy
Rozszerzenie algorytmu DES, w którym stosuje się dwaklucze K1 i K2
• Szyfrowanie
1. wiadomość szyfrowana jest kluczem K1
2. wynik kroku 1. deszyfrowany jest kluczem K2
3. wynik kroku 2. jest ponownie szyfrowany kluczem K1
• Deszyfrowanie
1. kryptogram deszyfrowany jest kluczem K1
2. wynik kroku 1. szyfrowany jest kluczem K2
3. wynik kroku 2. jest powtórnie deszyfrowany kluczemK1
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 20
Kryptografia — wykład dla IV roku
Tryby szyfrowania: szyfrowanie blokowe
• ECB — Electronic Codebook (Elektroniczna książkakodowa)Tekst jawny dzielony jest na bloki o długości 64 bity ikażdy blok jest oddzielnie szyfrowany tym samym kluczem
⋆ zaleta — utrata lub uszkodzenie pojedynczych blokównie ma wpływu na możliwość deszyfrowania pozosta-łych; nadaje się do szyfrowania baz danych
⋆ wada — możliwa jest modyfikacja kryptogramu bezznajomości klucza
• CBC — Cipher Block Chaining (Wiązanie bloków)Szyfrowanie kolejnego bloku zależy od wyniku szyfrowaniapoprzedniego bloku; taki sam blok tekstu jawnego jest wróżnych miejscach szyfrowany inaczej — kolejny blok tek-stu jawnego jest poddawany operacji xor z kryptogramempoprzedniego bloku.Matematycznie wygląda to następująco:
C1 = EK(M1 ⊕ I)
Ci = EK(Mi ⊕ Ci−1)
M1 = DK(C1 ⊕ I)
Mi = DK(Ci)⊕ Ci−1
gdzie Mi jest i-tym blokiem wiadomości, Ci i-tym blokiem
kryptogramu, zaś I jest losowym ciągiem bitów, który jest
przesyłany bez szyfrowania
⋆ zalety — takie same bloki tekstu jawnego mają różnekryptogramy; zmiana bitu (przekłamanie) wewnątrzjednego bloku prowadzi do zmiany tekstu po deszyfro-waniu tylko w danym bloku i następnym
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 21
Kryptografia — wykład dla IV roku
⋆ wady — nie można usunąć żadnego bloku z kryp-togramu; nie nadaje się do szyfrowania baz danych;nieodporny na zakłócenia (dodatkowy bit lub utratajednego bitu psują dalszy przekaz)
• CFB — Cipher Feedback (Szyfrowanie ze sprzężeniemzwrotnym)Szyfrowaniu podlegają jednostki mniejsze niż blok (64bity), np. jeden znak ASCII (1 bajt = 8 bitów). Schematdziałania przedstawiony jest na Rys. 3. Tryb ważny wzastosowaniach sieciowych, np. komunikacja pomiędzyklawiaturą i serwerem. Istotnym elementem CFB jestrejestr przesuwający.
• Działanie CFB
1. na początku rejestr przesuwający zawiera losowy ciąg64 bitów
2. zawartość rejestru przesuwającego jest szyfrowana zapomocą klucza K np. algorytmem DES
3. 8 pierwszych bitów kryptogramu jest dodawane mo-dulo 2 z 8 bitami reprezentującymi literę wiadomości(Mi) dając kryptogram Ci przesyłany do odbiorcy
4. Ci jednocześnie przesyłane jest do rejestru przesu-wającego zajmując ostatnie 8 bitów i przesuwającpozostałe bity o 8 pozycji w lewo; przesunięcie tonie jest cykliczne, tzn. pierwszych 8 bitów jestusuwanych
5. przy deszyfrowaniu rola wejścia i wyjścia zostajezamieniona
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 22
Kryptografia — wykład dla IV roku
88
8
888
8
64
64
64
64
Ci
Ci
Mi
Mi
K
K
Kryptogram
Kryptogram
Szyfrowanie (DES)
Szyfrowanie (DES)
Rejestr przesuwający
Rejestr przesuwający
(a) Szyfrowanie
(b) Deszyfrowanie
Rysunek 3: Schemat działania CFB
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 23
Kryptografia — wykład dla IV roku
IDEA — International Data EncryptionAlgorithm
• IDEA jest algorytmem blokowym wprowadzonym w latach90-tych
• IDEA używa kluczy 128 bitowych
• IDEA jest używana w pakiecie PGP
• IDEA jest algorytmem opatentowanym; można go używaćbezpłatnie do celów niekomercyjnych
• IDEA działa na blokach 64 bitowych i wykorzystuje 3różne operacje: xor (⊕), dodawanie modulo 216 (⊞) orazmnożenie modulo 216+1 (⊙); schemat działania algorytmuprzedstawiony jest na Rys. 4
Szyfrowanie
• 64 bitowy blok jest dzielony na 4 bloki po 16 bitów:X1, X2, X3, X4, które stanowią dane wejściowe dla pierw-szej rundy algorytmu
• algorytm składa się z 8 rund
• w każdej rundzie wykonywane są wymienione wyżej 3typy operacji na 16 bitowych blokach z 16 bitowymipodkluczami (każda runda wymaga 6 podkluczy)
• w wyniku otrzymuje się 4 bloki po 16 bitów: Y1, Y2, Y3, Y4
• pomiędzy rundami blok 2 i 3 są zamieniane
• algorytm kończy przekształcenie końcowe, które wymaga4 podkluczy
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 24
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 25
Kryptografia — wykład dla IV roku
Generowanie podkluczy
• IDEA używa klucza 128 bitowego i wymaga 8×6+4=52podklucze
1. 128 bitowy klucz jest dzielony na bloki 16 bitowe, codaje 8 podkluczy
2. na kluczu wykonuje się przesunięcie cykliczne o 25pozycji i znowu dzieli na bloki 16 bitowe, co dajekolejne 8 podkluczy
3. operację z punktu 2 powtarza się tak długo aż wygene-ruje się wszystkie podklucze
Deszyfrowanie
• Deszyfrowanie algorytmem IDEA przebiega wg sche-matu przedstawionego na Rys. 4, w którym zamiastX1, X2, X3, X4 na wejściu podaje się bloki Y1, Y2, Y3, Y4
kryptogramu oraz klucz K (ten sam co przy szyfrowaniu)
• z klucza K generuje się podklucze K(r)i
• generuje się podklucze deszyfrujące K ′(r)i wg schematu
przedstawionego w Tablicy 8
Runda K′(r)1 K′(r)
2 K′(r)3 K′(r)
4 K′(r)5 K′(r)
6
r = 1“
K(10−r)1
”
−1
−K(10−r)2 −K
(10−r)3
“
K(10−r)4
”
−1
K(9−r)5 K
(9−r)6
2≤ r ≤ 8“
K(10−r)1
”
−1
−K(10−r)3 −K
(10−r)2
“
K(10−r)4
”
−1
K(9−r)5 K
(9−r)6
r = 9“
K(10−r)1
”
−1
−K(10−r)2 −K
(10−r)3
“
K(10−r)4
”
−1
— —
Tablica 8: Tworzenie podkluczy deszyfrujących K ′(r)i na pod-
stawie podkluczy szyfrujących K(r)i w algorytmie IDEA (dla
Ki = 0 przyjmuje się (Ki)−1
= 0; 216 ≡ −1 mod 216 + 1)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 26
Kryptografia — wykład dla IV roku
AES — Advanced Encryption Standard —Rijndael
• Nowy standard przyjęty w 2001 r. w USA
• algorytm blokowy, który zaprojektowali Joan Daemen iVincent Rijmen
• zarówno długość bloku jak i klucza może być wybranajako 128, 192 lub 256 bitów
• Rijndael jest ogólnie dostępny
• liczba rund zależy od długości bloku
• w każdej rundzie wykonywane są 4 operacje (macierzowe):podstawienie w S-boksie, przesunięcie wierszy, mieszaniekolumn i xor z podkluczem
• podklucze są generowane algorytmem, który zależy odrundy
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 27
Kryptografia — wykład dla IV roku
Algorytmy asymetryczne — RSA
• Witfield Diffie i Martin Hellman — idea kryptografii zkluczem publicznym, rok 1976
• RSA — Ron Rivest, Adi Shamir i Leonard Adleman, rok1978
• bezpieczeństwo algorytmu RSA opiera się na trudnościobliczeniowej związanej z rozkładem dużych liczb naczynniki (faktoryzacja)Wybierzmy dwie duże liczby pierwsze p i q i obliczmy ich
iloczyn (iloczyn łatwo obliczyć)
n = pq,
następnie wybierzmy losowo liczbę e < n względnie pierwszą
z liczbą (p − 1)(q − 1). Liczba e będzie kluczem szyfrującym.
Teraz znajdźmy liczbę d taką, że
ed ≡ 1 (mod (p− 1)(q − 1)),
lub inaczej
d ≡ e−1 (mod (p− 1)(q − 1)).
Liczby d i n są także względnie pierwsze. Do obliczenia d można
użyć rozszerzonego algorytmu Euklidesa. Liczba d jest kluczem
deszyfrującym. Liczby {e, n} stanowią klucz publiczny, który
ujawniamy, zaś liczby {d, n} stanowią klucz prywatny, który
powinien być ściśle chroniony (liczba d)
• SzyfrowanieWiadomość dzielimy na bloki mi mniejsze niż n, któreszyfrujemy używając formuły
ci ≡ mei (mod n)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 28
Kryptografia — wykład dla IV roku
• DeszyfrowanieTekst jawny z kryptogramu otrzymujemy obliczając
mi ≡ cdi (mod n)
• UzasadnieniePonieważ ed ≡ 1 (mod (p − 1)(q − 1)), to istnieje liczba
całkowita k taka, że ed = 1 + k(p − 1)(q − 1). Z małego
twierdzenia Fermata, dla NWD(m, p) = 1, mamy
mp−1 ≡ 1 (mod p)
podnosząc obie strony tej kongruencji do potęgi k(q − 1) oraz
mnożąc przez m otrzymujemy
m1+k(p−1)(q−1) ≡ m (mod p)
Kongruencja ta jest także prawdziwa dla NWD(m, p) = p,
ponieważ wtedy obie strony przystają do 0 (mod p). Zatem,
zawsze mamy
med ≡ m (mod p).
Podobnie,
med ≡ m (mod q),
a ponieważ p i q są różnymi liczbami pierwszymi, to z chińskiego
twierdzenia o resztach otrzymujemy
med ≡ m (mod n)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 29
Kryptografia — wykład dla IV roku
• Przykład (trywialny):Znajdowanie klucza:
p = 1123 q = 1237
n = pq = 1389151
φ = (p− 1)(q − 1) = 1386792
e = 834781
d ≡ e−1 (mod φ) = 1087477
Szyfrowanie:
m = 983415
c ≡ me (mod n)
983415834781 (mod 1389151) = 190498
Deszyfrowanie:
m ≡ cd (mod n)
1904981087477 (mod 1389151) = 983415
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 30
Kryptografia — wykład dla IV roku
Trochę matematyki
• Podzielność liczb
⋆ Dla danych liczb całkowitych a i b mówimy, że liczba
b jest podzielna przez a lub, że liczba a dzieli liczbę b,
jeżeli istnieje taka liczba całkowita d, że b = ad. Liczbę a
nazywamy dzielnikiem liczby b, a fakt ten zapisujemy a|b.
⋆ Każda liczba b > 1 ma co najmniej dwa dzielniki dodatnie:
1 i b.
⋆ Dzielnikiem nietrywialnym liczby b nazywamy dzielnik
dodatni różny od 1 i b.
⋆ Liczba pierwsza to liczba większa od 1 nie mająca innych
dzielników dodatnich niż 1 i ona sama.
⋆ Liczba mająca co najmniej jeden nietrywialny dzielnik jest
liczbą złożoną.
• Twierdzenie o rozkładzie na czynniki pierwszeKażda liczba naturalna n może być przedstawiona jedno-znacznie (z dokładnością do kolejności czynników) jakoiloczyn liczb pierwszych.Zwykle taki rozkład zapisujemy jako iloczyn odpowiednich
potęg różnych liczb pierwszych, np. 6600 = 23 · 3 · 52 · 11.
• Własności relacji podzielności
1. Jeśli a|b i c jest dowolną liczbą całkowitą, to a|bc.
2. Jeśli a|b i b|c, to a|c
3. Jeśli a|b i a|c, to a|b± c
4. Jeśli liczba pierwsza p dzieli ab, to p|a lub p|b
5. Jeśli m|a i n|a oraz m i n nie mają wspólnych dzielników
większych od 1, to mn|a
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 31
Kryptografia — wykład dla IV roku
• Największy wspólny dzielnik — NWD(a, b)
Największy wspólny dzielnik, NWD(a, b), dla danych dwóch
liczb całkowitych (nie będących jednocześnie zerami), to
największa liczba całkowita d będąca dzielnikiem zarówno a,
jak i b.
Przykład: NWD(12, 18) = 6
• Najmniejsza wspólna wielokrotność — NWW (a, b)
Najmniejsza wspólna wielokrotność, NWW (a, b), to najmniej-
sza dodatnia liczba całkowita, którą dzielą a i b.NWW (a, b) = a · b/NWD(a, b)
Przykład: NWW (12, 18) = 36 = 12 · 18/NWD(12, 18)
• Liczby względnie pierwszeLiczby a i b są względnie pierwsze jeżeli NWD(a, b) = 1,tzn. liczby a i b nie mają wspólnego dzielnika większegood 1.NWD(841, 160) = 1 zatem liczby 841 i 160 są względniepierwsze (patrz niżej)
• Algorytm EuklidesaAlgorytm Euklidesa pozwala znaleźć NWD(a, b) w czasiewielomianowym (dla a > b, O(ln2(a)))Dla a > b, dzielimy a przez b otrzymując iloraz q1 i resztę
r1, tzn. a = q1b + r1, w następnym kroku b gra rolę a, zaś
r1 gra rolę b: b = q2r1 + r2. Postępowanie to kontynuujemy
dzieląc kolejne reszty, ri−2 = qiri−1 + ri, aż do momentu kiedy
otrzymamy resztę, która dzieli poprzednią resztę. Ostatnia
niezerowa reszta jest NWD(a, b).
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 32
Kryptografia — wykład dla IV roku
Obliczmy NWD(841, 160)
841 = 5 · 160 + 41
160 = 3 · 41 + 37
41 = 1 · 37 + 4
37 = 9 · 4 + 1
4 = 4 · 1 + 0
Ponieważ NWD(841, 160) = 1, to liczby 841 i 160 są względnie
pierwsze.
• TwierdzenieNajwiększy wspólny dzielnik dwóch liczb może być przed-stawiony w postaci kombinacji liniowej tych liczb zewspółczynnikami całkowitymi: NWD(a, b) = xa+ yb,przy czym liczby x i y można znaleźć w czasie O(ln2(a)).W poprzednim przykładzie NWD(841, 160) = 1. Korzystając
z ciągu równości w algorytmie Euklidesa (idąc w przeciwną
stronę) otrzymujemy
1 = 37− 9 · 4
= 37− 9(41− 1 · 37) = 10 · 37− 9 · 41
= 10(160− 3 · 41)− 9 · 41 = 10 · 160− 39 · 41
= 10 · 160− 39 · (841− 5 · 160)
= −39 · 841 + 205 · 160
Zatem x = −39 i y = 205.
• Rozszerzony algorytm EuklidesaRozszerzony algorytm Euklidesa znajduje zarówno największy
wspólny dzielnik NWD(a, b) liczb a i b jak i liczby x i y będące
współczynnikami kombinacji liniowej NWD(a, b) = xa+ yb.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 33
Kryptografia — wykład dla IV roku
q r a b x x2 x1 y y2 y1
— — 841 160 — 1 0 — 0 1
5 41 160 41 1 0 1 -5 1 -5
3 37 41 37 -3 1 -3 16 -5 16
1 4 37 4 4 -3 4 -21 16 -21
9 1 4 1 -39 4 -39 205 -21 205
Na każdyn etapie mamy r = x · 841 + y · 160. Z ostatniego
wiersza odczytujemy:
NWD(841, 160) = 1 = −39 · 841 + 205 · 160
Przyporządkowania w algorytmie są następujące:
q = ⌊a/b⌋, r ← a− qb, x← x2 − qx1, y ← y2 − qy1
a← b, b← r, x2 ← x1, x1 ← x, y2 ← y1, y1 ← y
• KongruencjeDla danych trzech liczb całkowitych a, b i m mówimy,że liczba a przystaje do liczby b modulo m i piszemya ≡ b (mod m), gdy różnica a− b jest podzielna przezm. Liczbę m nazywamy modułem kongruencji.Własności
1. a ≡ a (mod m)
2. a ≡ b (mod m) wtedy i tylko wtedy, gdy b ≡ a
(mod m)
3. Jeśli a ≡ b (mod m) oraz b ≡ c (mod m), to a ≡ c
(mod m)
4. Jeśli a ≡ b (mod m) i c ≡ d (mod m), to a± c ≡ b± d(mod m) oraz ac ≡ bd (mod m)
Kongruencje względem tego samego modułu możnadodawać, odejmować i mnożyć stronami.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 34
Kryptografia — wykład dla IV roku
5. Jeśli a ≡ b (mod m), to a ≡ b (mod d) dla każdegodzielnika d|m
6. Jeśli a ≡ b (mod m), a ≡ b (mod n), oraz m i n sąwzględnie pierwsze, to a ≡ b (mod mn)
7. Dla ustalonej liczby m, każda liczba przystaje modulom do jednej liczby zawartej pomiędzy 0 i m− 1.
Przykłady:
27 ≡ 7 (mod 5) bo 27− 7 = 4 · 5
27 ≡ 2 (mod 5) bo 27− 2 = 5 · 5
−8 ≡ 7 (mod 5) bo −8− 7 = −3 · 5
• TwierdzenieLiczbami a, dla których istnieje liczba b taka, żeab ≡ 1 (mod m), są dokładnie te liczby a, dla któ-rych NWD(a,m) = 1. Taka liczba odwrotna b = a−1
może być znaleziona w czasie O(ln2(m)).Ponieważ NWD(841, 160) = 1 (patrz poprzedni przykład),
to istnieje liczba 160−1 (mod 841). Liczbę tę można obliczyć
za pomocą rozszerzonego algorytmu Euklidesa. Ponieważ
1 = −39 · 841 + 205 · 160, to 205 · 160 ≡ 1 (mod 841), a więc
160−1 (mod 841) = 205.
• Małe twierdzenie FermataNiech p będzie liczbą pierwszą. Wtedy każda liczba a
spełnia kongruencję ap ≡ a (mod p) i każda liczba a nie-podzielna przez p spełnia kongruencję ap−1 ≡ 1 (mod p).Liczba 1231 jest liczbą pierwszą i NWD(1231, 5871) = 1, więc
58711230 ≡ 1 (mod 1231)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 35
Kryptografia — wykład dla IV roku
• Chińskie twierdzenie o resztachJeśli liczby m1,m2, . . . ,mk są parami względnie pierw-sze, tzn. NWD(mi,mj) = 1 dla i 6= j, wtedy układkongruencji
x ≡ a1 (mod m1)
x ≡ a2 (mod m2)
. . . . . .
x ≡ ak (mod mk)
ma wspólne rozwiązanie modulo m = m1m2 . . .mk.Przykład:
x ≡ 1 (mod 11)
x ≡ 2 (mod 12)
x ≡ 3 (mod 13)
Niech Mi = m/mi będzie iloczynem wszystkich modułów z
wyjątkiem i-tego. Wtedy NWD(mi,Mi) = 1, a więc istnieje
taka liczba Ni, że MiNi ≡ 1 (mod mi), wtedy wspólnym
rozwiązaniem modulo m jest x =P
iaiMiNi. Dla każdego
i wszystkie składniki sumy poza i-tym są podzielne przez
mi, gdyż mi|Mj dla j 6= i zatem dla każdego i mamy
x ≡ aiMiNi ≡ ai (mod mi). W naszym przykładzie mamy:
m = 1716, M1 = 156, M2 = 143, M3 = 132. Aby znaleźć
wspólne rozwiązanie tego układu kongruencji należy znaleźć
liczby Ni będące odwrotnościami liczb Mi modulo mi. W
tym celu możemy użyć algorytmu Euklidesa. W wyniku
otrzymujemy liczby: N1 = 6, N2 = 11 i N3 = 7. Zatem
wspólnym rozwiązaniem jest x ≡ 6 · 156 + 2 · 11 · 143 + 3 · 7 · 132
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 36
Kryptografia — wykład dla IV roku
(mod 1716) ≡ 1706 (mod 1716). W tym przykładzie widać, że
liczba −10 daje takie reszty zatem x = −10 + 1716.
• Funkcja EuleraDla n ≥ 1, niech φ(n) będzie liczbą tych nieujemnychliczb b mniejszych od n, które są względnie pierwsze z n.Funkcja φ(n) nazywa się funkcją Eulera.Funkcja Eulera φ jest „multiplikatywna”, tzn. φ(mn) =
φ(m)φ(n), jeśli tylko NWD(m,n) = 1.
• Twierdzenie EuleraJeśli NWD(a,m) = 1, to aφ(m) ≡ 1 (mod m).WniosekJeśli NWD(a,m) = 1 i jeśli n′ jest resztą z dzielenia nprzez φ(m), to an ≡ an′
(mod m)
• Potęgowanie modulo metodą iterowanego podno-szenia do kwadratuPodstawowym działaniem w kryptografii jest obliczaniean (mod m), gdzie m i n są bardzo dużymi liczbami.Zauważmy, że rozwinięcie dwójkowe liczby n ma postać
n =
k−1∑
i=0
ni2i = n0 + 2n1 + 4n2 + · · ·+ 2k−1nk−1
,gdzie ni ∈ {0, 1} są cyframi rozwinięcia dwójkowego.Zatem
an =k−1∏
i=0
ani2i
=(
a20)n0
(
a21)n1
. . .(
a2k−1)nk−1
Załóżmy, że a < m oraz przyjmijmy, że przez b będziemyoznaczali częściowe iloczyny. Na początku b = 1. Jeżeli
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 37
Kryptografia — wykład dla IV roku
n0 = 1 to zastępujemy b przez a, w przeciwnym przypadkunadal b = 1. Następnie liczymy a1 ≡ a2 (mod m). Jeślin1 = 1, to mnożymy b przez a1 i redukujemy modulom, zaś jeśli n1 = 0 nie zmieniamy b. Następnie liczymya2 ≡ a2
1 (mod m). Znowu, jeśli n2 = 1, to mnożymyb przez a2; w przeciwnym przypadku nie zmieniamy b.Postępując dalej w ten sposób, w j-tym kroku mamy obli-czoną potęgę aj ≡ a2j (mod m). Jeśli nj = 1 to włączamyaj do iloczynu b, jeśli nj = 0 to b się nie zmienia. Po k− 1
krokach otrzymamy b ≡ an (mod m).Przykład:
Obliczmy 7698 (mod 1234) = 287
i 0 1 2 3 4 5 6 7 8 9
ni 0 1 0 1 1 1 0 1 0 1
ai 7 49 1167 787 1135 1163 105 1153 391 1099
b 1 49 49 309 259 121 121 71 71 287
• Czy wystarczy liczb pierwszych?TwierdzenieNiech π(x) oznacza liczbę liczb pierwszych ≤ x. Wtedy
limx→∞
π(x)
x/ lnx= 1
Dla x ≥ 17
π(x) >x
lnx
Dla przykładu, dla x = 1010, π(x) = 455052511, natomiast
⌊x/ lnx⌋ = 434294481.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 38
Kryptografia — wykład dla IV roku
• Testy pierwszościIstnieją probabilistyczne testy pierwszości liczb, którepozwalają z dużym prawdopodobieństwem w skończonymczasie dać odpowiedź czy dana liczba jest pierwsza.Test FermataTestujemy czy liczba n jest pierwsza. Wybieramy losowoliczbę a < n− 1, obliczamy r = an−1 (mod n), jeśli r 6= 1
to n jest liczbą złożoną. Test przeprowadzamy t-krotnie,t ≥ 1. Jeśli wszystkie testy wypadną pomyślnie, tzn.r = 1, to liczbę uznajemy za pierwszą, choć może tak niebyć.Test Millera-RabinaTestujemy czy liczba n jest pierwsza. Piszemy n−1 = 2sr,gdzie r jest nieparzyste. Wybieramy losowo liczbę a,1 < a < n − 1. Obliczamy b = ar (mod n). Jeśli b ≡ ±1
(mod n) to uznajemy, że n jest pierwsza. W przeciwnymprzypadku obliczamy a2jr (mod n) dla 0 < j < s. Jeślidla pewnego j < s otrzymamy a2jr ≡ −1 (mod n) touznajemy, że liczba n jest pierwsza. W przeciwnymprzypadku liczba n jest złożona. Test przeprowadzamyt-krotnie losując różne a.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 39
Kryptografia — wykład dla IV roku
• Reszty kwadratowe w Z∗p
⋆ Oznaczmy przez Zp = {0, 1, 2, . . . , p − 1} zbiór reszt
modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np.
Z11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
⋆ Przez Z∗
p będziemy oznaczali zbiór niezerowych elementów
zbioru Zp, a więc np. Z∗
11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
⋆ W zbiorze Z∗
p szukamy takich elementów, które są kwadra-
tami innych elementów, tzn. spełniona jest kongruencja
x2 ≡ a (mod p), dla {x, a} ∈ Z∗
p.
Liczby a, które są kwadratami nazywamy resztami kwa-
dratowymi modulo p, zaś pozostałe elementy nazywamy
nieresztami.
Przykład:
Weźmy Z∗
11 i policzmy x2 (mod 11) dla wszystkich x, mamy
wtedy
x 1 2 3 4 5 6 7 8 9 10
a = x2 (mod 11) 1 4 9 5 3 3 5 9 4 1
Resztami kwadratowymi w Z∗
11 są więc liczby {1, 3, 4, 5, 9}, a
pozostale liczby {2, 6, 7, 8, 10} są nieresztami
Symbol Legendre’aNiech a będzie liczbą całkowitą zaś p > 2 liczbą pierwszą;
symbol Legendre’a definiujemy
„
a
p
«
=
8
>
>
<
>
>
:
0, jeśli p|a
1, jeśli a jest resztą kwadratową modulo p
−1, jeśli a jest nieresztą modulo p
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 40
Kryptografia — wykład dla IV roku
Twierdzenie(
a
p
)
= ap−1
2 (mod p)
Własności symbolu Legendre’a
(1)
(
a
p
)
zależy tylko od a modulo p
(2)
(
ab
p
)
=
(
a
p
) (
b
p
)
(3)
(
ab2
p
)
=
(
a
p
)
, jeśli NWD(b, p) = 1
(4)
(
1
p
)
= 1 oraz(−1
p
)
= (−1)p−1
2
Twierdzenie
(
2
p
)
= (−1)p2
−1
8 =
1, jeśli p ≡ ±1 (mod 8)
−1, jeśli p ≡ ±3 (mod 8)
Prawo wzajemnościNiech p i q będą dwiema nieparzystymi liczbami pierwszymi.
Wtedy(
q
p
)
= (−1)p−1
2
q−1
2
(
p
q
)
=
−(
pq
)
, jeśli p ≡ q ≡ 3 (mod 4)(
pq
)
, w przeciwnym przypadku
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 41
Kryptografia — wykład dla IV roku
Przykład:
„
91
167
«
=
„
7 · 13
167
«
=
„
7
167
« „
13
167
«
= (−1)7−1
2
167−1
2
„
167
7
«
(−1)13−1
2
167−1
2
„
167
13
«
= −
„
167
7
« „
167
13
«
= −
„
6
7
« „
11
13
«
= −
„
2
7
« „
3
7
« „
11
13
«
= −
„
3
7
« „
11
13
«
− (−1)3−1
2
7−1
2
„
7
3
«
(−1)11−1
2
13−1
2
„
13
11
«
=
„
1
3
« „
2
11
«
= 1 · (−1) = −1
Pierwiastki kwadratowe modulo p
⋆ Prawo wzajemności pozwala szybko stwierdzić czy a jest
resztą kwadratową modulo p, a więc mówi, że istnieje
rozwiązanie kongruencji
x2 ≡ a (mod p) ,
chociaż nie daje wskazówek jak takie rozwiązanie znaleźć.
⋆ Nie jest znany efektywny deterministyczny algorytm obli-
czania pierwiastków kwadratowych w Z∗
p. Istnieje natomiast
efektywny algorytm probabilistyczny dla obliczania takich
pierwiastków jeśli p jest liczbą pierwszą.
• Reszty kwadratowe w Z∗n
⋆ Oznaczmy przez Zn = {0, 1, 2, . . . , n − 1} zbiór reszt
modulo n, gdzie n jest dodatnią liczbą całkowitą; np.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 50
Kryptografia — wykład dla IV roku
Algorytm ElGamala
U podstaw działania algorytmu ElGamala leży matematycznyproblem logarytmu dyskretnego.
• Wybór kluczaWybieramy odpowiednio dużą liczbę pierwszą p, taką, żeobliczenie logarytmu dyskretnego jest praktycznie niewy-konalne, wybieramy liczbę całkowitą 0 < a < p − 1 orazliczbę g, następnie obliczamy b ≡ ga (mod p). Liczby{b, g, p} stanowią klucz publiczny, zaś liczby {a, g, p} kluczprywatny.
• SzyfrowanieAby zaszyfrować wiadomość M wybieramy losowo liczbęk względnie pierwszą z p− 1, a następnie obliczamy
c1 ≡ gk (mod p)
c2 ≡ M bk (mod p)
Para liczb c1 i c2 tworzy kryptogram, który jest dwukrot-nie dłuższy od tekstu jawnego.
• Deszyfrowanie
M = c2(ca1)
−1 (mod p)
• Uzasadnieniec2(c
a1)−1 ≡M bk(gka)−1 ≡Mgka(gka)−1 ≡M (mod p)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 51
Kryptografia — wykład dla IV roku
• Prosty przykładZnajdowanie kluczaNiech p = 229 i g = 6, wybieramy a = 70, wtedy b ≡ 670
(mod 229) = 97, zatem klucz publiczny stanowią liczby
{97, 6, 229}, zaś klucz prywatny stanowią liczby {70, 6, 229}
SzyfrowanieNiech wiadomość M = 130, wybieramy k = 127 takie, że
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 52
Kryptografia — wykład dla IV roku
Jednokierunkowe funkcje hashujące (skrótu)
• dla każdego X łatwo jest obliczyć H(X)
• H(X) ma taką samą długość dla wszystkich tekstów X
• dla zadanego Y znalezienie takiego X, że H(X) = Y jestpraktycznie niemożliwe; funkcja jednokierunkowa
• dla danego X trudno znaleźć X ′ takie, że H(X) = H(X ′);funkcja słabo bezkonfliktowa
• nie jest praktycznie możliwe znalezienie X i X ′ takich, żeX 6= X ′ oraz H(X) = H(X ′); funkcja silnie bezkonflik-towa
Typowe zastosowania
• Przechowywanie haseł w komputerach
• Ochrona integralności danych
Algorytm MD5 (Message Digest)
Algorytm, zaprojektowany przez Rivesta, jest modyfikacjąwcześniejszego algorytmu MD4. Wiadomość dowolnej dłu-gości jest przekształcona w jej 128 bitowy „odcisk palca”(sumę kontrolną, skrót wiadomości). Zasadnicza proceduraalgorytmu działa na blokach 512 bitowych przekształcając jew 128 bitowe skróty.
Etapy MD5
• Krok 1Wiadomość dowolnej długości jest uzupełniana w taki
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 53
Kryptografia — wykład dla IV roku
sposób, że na końcu dodawany jest bit „1” i odpowiedniailość zer, tak aby ostatni blok miał długość 448 bitów.
• Krok 2Do ostatniego bloku dodawana jest 64 bitowa liczbareprezentująca długość wiadomości (w bitach) i w tensposób przygotowana wiadomość ma długość będącącałkowitą wielokrotnością 512 bitów. Tym samym wia-domość jest wielokrotnością 16 słów 32-bitowych. NiechM0,M1, . . .MN−1 oznaczają kolejne słowa wiadomości,gdzie N jest jest wielokrotnością 16.
• Krok 3Algorytm operuje na 32-bitowych zmiennych a, b, c, d,których wartości początkowe A,B,C,D w zapisie szes-nastkowym są następujące:A =0x67452301B =0xefcdab89C =0x98badcfeD =0x10325476
• Krok 4Główna pętla algorytmu składa się z 4 rund, w każdejrundzie 16 razy wykonywane są operacje na 32 bitowychsłowach. Operacje te zdefiniowane są przez 4 funkcjeF (X,Y, Z) = (X ∧ Y ) ∨ (¬X) ∧ ZG(X,Y, Z) = (X ∧ Z) ∨ Y ∧ (¬X)H(X,Y, Z) = X ⊕ Y ⊕ ZI(X,Y, Z) = Y ⊕ (X ∨ (¬Z))
gdzie ⊕ oznacza operację xor, ∧ operację and, ∨ operacjęor, zaś ¬ operację not.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 54
Kryptografia — wykład dla IV roku
Niech Xj = Mi∗16+j oznacza j-te słowo w i-tym blokuwiadomości M (j = 0, . . . , 15, i = 0, . . . , N/16 − 1),←֓ s niech oznacza cykliczne przesunięcie w lewo o s
bitów oraz zdefiniujmy liczby Tk (k = 1, . . . , 64) tak, żeTk = ⌊232 · | sink|⌋, gdzie k jest w radianach. Mamy wtedy:
⋆ Runda 1Niech [abcd j s k] oznacza operacjęa = b+ ((a+ F (b, c, d) +Xj + Tk) ←֓ s),wtedy 16 operacji tej rundy to:
⋆ Po tych 4 rundach wartości a, b, c, d są dodawane dowartości A,B,C,D i algorytm przechodzi do następ-nego bloku M .
Runda 1 Runda 2 Runda 3 Runda 4
Blok wiadomości M (512 bitów)
F G H I
A A
B B
C C
D D
Rysunek 5: Główna pętla algorytmu MD5
• Krok 5Po przejściu wszystkich 512-bitowych bloków wiadomościM algorytm łączy rejestry a, b, c, d dając 128 bitową liczbębędącą wartością funkcji hashującej.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 56
Kryptografia — wykład dla IV roku
SHA (Secure Hash Algorithm)
Algorytm opracowany przez NIST przy udziale NSA opu-blikowany w 1993. Nowsza wersja SHA-1 opublikowana w1995 r. Idea tego algorytmu oparta jest na MD4 i MD5.Wartość funkcji hashującej to liczba 160 bitowa i w związkuz tym algorytm wymaga 5 rejestrów zamiast 4. Używa teżw nieco inny sposób nieliniowych funkcji transformujących,dokonuje dodatkowych operacji na poszczególnych słowachwiadomości, w każdej rundzie wykonuje 20 operacji zamiast16. Zasada działania jest jednak bardzo podobna do MD5.Ogólnie uważa się, że jest bezpieczniejszy niż MD5 ze względuna „dłuższą” wartość funkcji hashującej i pewne ulepszeniasamego algorytmu.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 57
Kryptografia — wykład dla IV roku
Szyfrowanie strumieniowe i generatoryciągów pseudolosowych
• Synchroniczne szyfrowanie strumienioweCiąg bitów klucza generowany jest niezależnie od szyfro-wanej wiadomości i kryptogramu.
⋆ Musi być zachowana synchronizacja pomiędzy nadawcąi odbiorcą.
⋆ Zmiana bitu kryptogramu (przekłamanie) nie wpływana możliwość deszyfrowania pozostałych bitów.
⋆ Dodanie lub usunięcie bitu powoduje utratę synchroni-zacji.
⋆ Istnieje możliwość zmiany wybranych bitów kryp-togramu, a co za tym idzie zmiany deszyfrowanejwiadomości.
GKGKKK kiki
mi
mici
ci
(a) Szyfrowanie (b) Deszyfrowanie
Rysunek 6: Model synchronicznego szyfrowania strumieniowego
z dodawaniem modulo 2 (⊕), GK jest generatorem ciągu bitów
klucza, zaś K jest kluczem inicjalizującym generator
Tekst jawny szyfrowany jest bit po bicie (one-time pad).
Losowo generowane bity k1, k2, . . . , ki stanowią bity klucza,
które są dodawane modulo 2 (operacja xor) do bitów wia-
domości m1,m2, . . . ,mi w sposób ciągły dając kolejne bity
kryptogramu c1, c2, . . . , ci, gdzie ci = mi ⊕ ki
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 58
⋆ Utrata lub dodanie bitu w kryptogramie powodujeutratę tylko kawałka wiadomości — samosynchroniza-cja.
⋆ Ograniczona propagacja błędów.
⋆ Zmiana bitu kryptogramu powoduje, że kilka innychbitów będzie deszyfrowanych błędnie — łatwiej wykryćtaką zmianę.
⋆ Jednak na skutek samosynchronizacji wykrycie zmianw kryptogramie jest trudniejsze (jeśli zmiany dotyczątylko części kryptogramu, to dalsza część jest deszyfro-wana poprawnie).
b1 b1bn−2 bn−2bn−1 bn−1bn bn
GGKK ki ki
mi
mici
ci
(a) Szyfrowanie (b) Deszyfrowanie
. . . . . .. . . . . .
Rejestr przesuwający Rejestr przesuwający
Rysunek 7: Model samosynchronizującego szyfrowania strumie-
niowego
• Generatory ciągów pseudolosowychDo generowania klucza potrzebny jest generator losowegociągu bitów. Generowanie prawdziwie losowego ciągujest trudne, więc zwykle stosuje się ciągi pseudolosowe.Ciągi pseudolosowe to ciągi, które spełniają statystycznewłasności ciągów losowych, ale generowane są w sposób
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 59
Kryptografia — wykład dla IV roku
deterministyczny: generator startujący z takiego samegostanu początkowego generuje taki sam ciąg bitów. Ztego względu ciągi pseudolosowe używane w kryptografiimuszą spełniać warunki znacznie ostrzejsze niż np. ciągipseudolosowe używane w symulacjach.
• LFSR — Linear Feedback Shift Register (Rejestrprzesuwający z liniowym sprzężeniem zwrotnym)
b1b2b3b4b5b6b7bn−3bn−2bn−1bn . . . . . .
Rejestr przesuwającyGenerowane bity
Rysunek 8: Generowanie ciągu bitów za pomocą LFSR
⋆ LFSR posiada rejestr przesuwający o długości n bitów,który na początku zawiera losowe bity.
⋆ Niektóre bity rejestru są poddawane operacji xor (⊕)i wynik zastępuje najstarszy bit rejestru, jednocześniepozostałe bity przesuwane są o jedną pozycję w prawo inajmłodszy bit staje się kolejnym bitem generowanegociągu.
Przykład:
Weźmy rejestr 4-bitowy, którego pierwszy i czwarty bit są
poddawane operacji xor i niech początkowo rejestr zawiera
same jedynki. Wtedy otrzymujemy następujące stany rejestru:
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 60
Generowany ciąg to najmłodsze (prawe) bity kolejnych stanów
rejestru, czyli:
1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
Ponieważ n-bitowy rejestr może znaleźć się w jednym z 2n − 1
stanów, więc teoretycznie może on generować ciąg o długości
2n − 1 bitów. Potem ciąg się powtarza. (Wykluczamy ciąg
samych zer, który daje niekończący się ciąg zer)
• LFSR ma słabą wartość kryptograficzną gdyż znajomość2n kolejnych bitów ciągu pozwala na znalezienie wartościgenerowanych od tego miejsca.
• LFSR działa jednak bardzo szybko, zwłaszcza jeśli jestto układ hardware’owy, i stąd jest on bardzo atrakcyjnyw praktycznych zastosowaniach. Można konstruowaćbardziej skomplikowane układy zawierające kilka LFSRi nieliniową funkcję f przekształcającą bity generowaneprzez poszczególne LFSR.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 61
⋆ Generator Geffe ma słabe własności kryptograficzne zewzględu na korelacje pomiędzy generowanymi bitami i
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 62
Kryptografia — wykład dla IV roku
bitami LFSR 1 lub LFSR 2Niech y(t) = f(x1(t), x2(t), x3(t)), wtedy
P (y(t) = x1(t)) = P (x2(t) = 1) + P (x2(t) = 0) · P (x3(t) =
x1(t)) = 12
+ 12· 1
2= 3
4, i podobnie dla x3(t).
• Generatory sterowane zegaremGenerator o zmiennym kroku (alternating step gene-rator)
LFSR 1
LFSR 2
LFSR 3
Zegar Generowane bity
Rysunek 11: Generator o zmiennym kroku
⋆ LFSR 1 jest przesuwany w każdym takcie zegara.
⋆ Jeśli na wyjściu LFSR 1 jest 1 to LFSR 2 jest przesu-wany; LFSR 3 nie jest przesuwany (poprzedni bit jestpowtarzany).
⋆ Jeśli na wyjściu LFSR 1 jest 0 to LFSR 3 jest przesu-wany; LFSR 2 nie jest przesuwany (poprzedni bit jestpowtarzany).
⋆ Wyjściowe bity LFSR 2 i LFSR 3 są dodawane modulo2 (⊕) dając kolejny bit generowanego ciągu.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 63
Kryptografia — wykład dla IV roku
Shrinking generator
LFSR 1
LFSR 2
Zegar
ai
biwyślij bi jeżeli ai = 1
opuść bi jeżeli ai = 0
Rysunek 12: Shrinking generator
• Generatory, których bezpieczeństwo oparte jest natrudnościach obliczeniowychGenerator Blum-MicaliW generatorze tym wykorzystuje się trudność w obliczaniulogarytmu dyskretnego. Wybieramy dwie liczby pierwszea i p oraz liczbę x0 (zarodek), a następnie obliczamy
xi+1 = axi mod p dla i = 1, 2, 3, . . .
Pseudolosowy ciąg bitów tworzymy w następujący sposób:
ki =
1 jeżeli xi < (p− 1)/2
0 w przeciwnym przypadku
Generator RSAGenerator oparty na trudności z faktoryzacją liczb.Wybieramy dwie liczby pierwsze p i q (N = pq) oraz liczbęe względnie pierwszą z (p − 1)(q − 1). Wybieramy losową
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 64
Kryptografia — wykład dla IV roku
liczbę (zarodek) x0 mniejszą od N , a następnie obliczamy
xi+1 = xei (mod N)
generowanym bitem jest najmłodszy bit xi
Generator Blum-Blum-Shub — BBSZnajdujemy dwie duże liczby pierwsze p i q, takie, że p ≡ 3
(mod 4) oraz q ≡ 3 (mod 4); N = pq. Wybieramy losowąliczbę x względnie pierwszą z N , a następnie obliczamy
x0 = x2 (mod N)
x0 stanowi zarodek dla generatora. Teraz liczymy
xi+1 = x2i (mod N)
Generowanym bitem ki jest najmłodszy bit xi+1.
• Generator RC 4Generator RC 4 został opracowany przez Rona Rivestaw 1987 r. Przez kilka lat był to algorytm tajny. W1994 r. ktoś w Internecie opublikował program realizującyten algorytm. Od tego czasu algorytm nie stanowitajemnicy. Algorytm ten pracuje w trybie OFB (OutputFeedback). Ciąg generowany przez RC 4 jest losowymciągiem bajtów.
⋆ Algorytm używa dwóch wskaźników i, j przyjmują-cych wartości 0, 1, 2, . . . , 255 oraz S-boksu z warto-ściami S0, S1, . . . , S255, które tworzą permutację liczb0, 1, . . . , 255.
⋆ Inicjalizacja: Na początku i = j = 0, Sl = l dlal = 0, 1, . . . , 255, kolejna 256-bajtowa tablica wy-pełniana jest bajtami klucza, przy czym klucz jest
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 65
Kryptografia — wykład dla IV roku
używany wielokrotnie, aż do wypełnienia całej tablicyK0,K1, . . . ,K255. Następnie wykonujemy:for i = 0 to 255:j = (j + Si +Ki) (mod 256)
zamień Si z Sj
⋆ Generowanie kolejnego bajtu:i = i+ 1 (mod 256)
j = j + Si (mod 256)
zamień Si z Sj
l = Si + Sj (mod 256)
K = Sl
⋆ Otrzymany bajt K jest dodawany modulo 2 (xor)z kolejnym bajtem wiadomości dając kolejny bajtkryptogramu (przy deszyfrowaniu role tekstu jawnego ikryptogramu się zamieniają).
Algorytm RC 4 jest używany w wielu programach komer-cyjnych.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 66
Kryptografia — wykład dla IV roku
Podpis cyfrowy
Przypomnijmy:System kryptograficzny z kluczem publicznym może byćwykorzystany do podpisywania dokumentów cyfrowych.
1. Alicja szyfruje dokument używając swojego kluczaprywatnego, podpisując w ten sposób dokument
2. Alicja przesyła tak podpisany dokument do Bolka
3. Bolek deszyfruje dokument używając klucza publicznegoAlicji, weryfikując w ten sposób podpis Alicji
• Uwagi:
⋆ podpis jest prawdziwy; Bolek weryfikuje go deszyfrująckryptogram kluczem publicznym Alicji
⋆ podpis nie może być sfałszowany; tylko Alicja zna jejklucz prywatny
⋆ podpis nie może być przeniesiony do innego dokumentu
⋆ podpisany dokument nie może być zmieniony; zmie-niony dokument nie da się rozszyfrować kluczempublicznym Alicji
⋆ podpis jest niezaprzeczalny;
⋆ wadą tego sposobu podpisywania dokumentów jestjednak to, że podpis jest conajmniej tak długi jak samdokument
Podpis z wykorzystaniem jednokierunkowej funkcjihashującej
1. Alicja używa funkcji hashującej do dokumentu, który mapodpisać, otrzymując skrót („odcisk palca”) dokumentu
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 67
Kryptografia — wykład dla IV roku
2. Alicja podpisuje skrót dokumentu szyfrując go swoimkluczem prywatnym
3. Alicja przesyła Bolkowi dokument i podpisany skrót
4. Bolek używa tej samej funkcji hashującej do otrzymaniaskrótu dokumentu, a następnie deszyfruje podpisanyskrót używając klucza publicznego Alicji; jeśli zdeszy-frowany skrót zgadza się z otrzymanym przez niego topodpis jest prawdziwy
⋆ podpis jest znacznie krótszy od dokumentu
⋆ można sprawdzić istnienie podpisu bez oglądaniasamego dokumentu
Schemat ElGamala podpisu cyfrowego
• Generowanie kluczy⋆ Alicja wybiera dużą liczbę pierwszą p oraz liczbęg ∈ Zp (generator grupy multiplikatywnej Z
∗p)
⋆ Alicja wybiera liczbę losową 0 < a < p − 1 orazoblicza b ≡ ga (mod p)
⋆ Kluczem publicznym Alicji są liczby {b, g, p} zaśkluczem prywatnym liczby {a, g, p}
• Podpisywanie⋆ Alicja wybiera liczbę losową k (tajną), taką, że
0 < k < p− 1 oraz NWD(k, p− 1) = 1
⋆ Alicja oblicza
r = gk (mod p),
k−1 (mod p− 1),
s = k−1 [H(M)− ar] (mod p− 1).⋆ Podpisem Alicji dla wiadomości M jest para liczb{r, s}
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 68
• UzasadnieniePonieważ s ≡ k−1 [H(M)− ar] (mod p − 1), to mnożąc
stronami przez k mamy ks ≡ H(M)− ar (mod p− 1) i po
przekształceniu H(M) ≡ ar+ ks (mod p− 1), a co za tym
idzie gH(M) ≡ gar+ks ≡ (ga)rrs ≡ brrs (mod p). Tak więc
x1 = x2.
DSA — Digital Signature Algorithm
Algorytm podpisu cyfrowego zatwierdzony w 1994 r. przezNIST jako standard podpisu cyfrowego w USA (DigitalSignature Standard — DSS). Wykorzystuje funkcję hashującąSHA-1.
• Generacja klucza
⋆ Alicja wybiera liczbę pierwszą q o długości 160 bitów
⋆ Alicja wybiera liczbę pierwszą p o długości 512 ≤ l ≤1024, przy czym 64|l, taką, że q|p− 1
⋆ Alicja wybiera element g ∈ Zp i obliczab = g(p−1)/q (mod p);jeśli b = 1 to wybiera inne g.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 69
Kryptografia — wykład dla IV roku
⋆ Alicja wybiera liczbę losową a, 0 < a < q, i obliczac = ba (mod p)
⋆ Kluczem publicznym Alicji jest zbiór liczb {b, c, p, q}• Podpisywanie
⋆ Alicja wybiera tajną liczbą losową k, 0 < k < q,
⋆ Alicja oblicza
r = (bk (mod p)) (mod q),
k−1 (mod q),
s = k−1 [H(M) + ar] (mod q).
⋆ Podpisem Alicji dla wiadomości M jest para liczb {r, s}• Weryfikacja
⋆ Bolek pobiera klucz publiczny Alicji {b, c, p, q}⋆ Bolek sprawdza czy 0 < r < q i 0 < s < q, jeśli nie, to
podpis jest fałszywy
⋆ Bolek obliczaH(M) i w = s−1 (mod q),
u1 = wH(M) (mod q),
u2 = rw (mod q),
v = (bu1cu2 (mod p)) (mod q).⋆ Bolek uznaje podpis za prawdziwy jeśli v = r.
• UzasadnienieJeśli {r, s} jest prawdziwym podpisem Alicji dla wiadomości
M , to H(M) ≡ −ar + ks (mod q). Mnożąc stronami przez w i
przekształcając otrzymujemy wH(M) + arw ≡ k (mod q), co
jest równoważne u1 + au2 ≡ k (mod q). Podnosząc b do potęgi
lewej i prawej strony tej kongruencji otrzymujemy
(bu1+au2 (mod p)) (mod q) ≡ (bk (mod p)) (mod q) i dalej
mamy
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 70
Kryptografia — wykład dla IV roku
(bu1cu2 (mod p)) (mod q) ≡ (bk (mod p)) (mod q), a to
oznacza v = r.
Ślepe podpisy cyfrowe
Zasadniczym założeniem protokołów podpisów cyfrowychjest, że podpisujący dokument wie co podpisuje. Nie na-leży podpisywać dokumentów wyglądających na losowy ciągbitów. Od powyższej zasady są jednak odstępstwa. Przypu-śćmy, że Bolek jest notariuszem, zaś Alicja chce aby Bolekpotwierdził notarialnie istnienie dokumentu, ale nie chce abyten dokument obejrzał. Mamy wtedy do czynienia z tzw.ślepym podpisem. Wyobraźmy sobie, że Alicja wkłada listdo koperty łącznie z kalką, a potem prosi Bolka o złożeniepodpisu na zaklejonej kopercie. Po otwarciu koperty na liściebędzie kopia podpisu Bolka. Cyfrowo ślepy podpis możnazrealizować korzystając np. z algorytmu RSA.
• Ślepy podpis z użyciem RSA
⋆ Alicja pobiera klucz publiczny Bolka {e, n}⋆ Alicja wybiera liczbę losową k, 0 < k < n,
⋆ Alicja oblicza z = M ke (mod n) i przesyła z do Bolka
⋆ Bolek oblicza zd = (M ke)d (mod n) używając swojegoklucza prywatnego {d, n} i wynik przesyła Alicji
⋆ Alicja oblicza s = zd/k (mod n). Ponieważ zd ≡(M ke)d ≡ Mdk (mod n), więc zd/k = Mdk/k ≡ Md
(mod n), czyli s = Md (mod n) jest podpisem Bolkana wiadomości M .
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 71
Kryptografia — wykład dla IV roku
Niezaprzeczalne podpisy cyfrowe
Podpis niezaprzeczalny nie może być sprawdzony bez zgodyosoby podpisującej. Podpisujący nie może się wyprzećswojego podpisu, ale może także dowieść, że podpis jestfałszywy (jeśli jest).
• Niezaprzeczalny podpis oparty na logarytmachdyskretnychPrzypuśćmy, że stroną podpisującą dokument jest Alicja.
⋆ Generacja kluczaAlicja posiada klucz prywatny {a, g, p} oraz kluczpubliczny {b, g, p} wygenerowany jak w algorytmieElGamala.
⋆ PodpisywanieAlicja oblicza z = Ma (mod p) i to jest jej podpis dladokumentu M
⋆ Weryfikacja
1. Bolek wybiera dwie liczby losowe r i s mniejsze od p,oblicza w = zrbs (mod p) i przesyła Alicji
2. Alicja oblicza
t = a−1 (mod p− 1)
v = wt (mod p)
i przesyła Bolkowi v3. Bolek sprawdza czy v = Mrgs (mod p)
⋆ UzasadnienieZauważmy, że v = wt = zrtbst = (zt)r(bt)s = (Mat)r(gat)s =
Mrgs (mod p)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 72
Kryptografia — wykład dla IV roku
Uwierzytelnianie
Kluczową sprawą dla bezpieczeństwa systemów kompute-rowych jest zapewnienie dostępu do systemu i zasobówtylko osobom do tego uprawnionym. W systemie musi więcbyć wbudowany mechanizm sprawdzania, czy użytkownikpodający się za Alicję, naprawdę nią jest. Do tego celusłuży mechanizm uwierzytelniania lub identyfikacji (tutaj nierozróżniamy tych pojęć, chociaż czasem się je rozróżnia).
• HasłaNajczęściej stosowany system identyfikacji to system haseł.Alicja chcąc wejść do sytemu podaje tajne hasło znanetylko jej i systemowi.
⋆ Hasła w systemie Unix szyfrowane są programemcrypt, który stanowi pewną modyfikację DES. Użyt-kownik wybiera ośmioliterowe hasło. Z każdego bajtureprezentującego literę hasła wybieranych jest 7 bitów,które w rezultacie tworzą 56 bitowy klucz. Kluczten służy do szyfrowania 64 bitowego bloku znanegotekstu (zwykle same zera). Wynik podlega kolejnemuszyfrowaniu, i tak 25 razy. Dodatkowo używa się 12bitów („salt”) generowanych przez zegar systemowy wmomencie tworzenia hasła. Bity te są wykorzystanew permutacji rozszerzającej DES. Wynik szyfrowania(64 bity) plus „salt” (12 bitów) jest „przepakowany” izapisywany w postaci 11 znaków ASCII. Hasło prze-chowywane jest w postaci 13 znaków ASCII, którezawierają dwa znaki „salt” oraz 11 znaków zaszyfro-wanego hasła. Dodanie 12 bitów „salt” powoduje, że
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 73
Kryptografia — wykład dla IV roku
liczba możliwości dla wybranego hasła zwiększa się212 = 4096 razy.
⋆ W nowszych systemach stosuje się bezpieczniejszesposoby szyfrowania haseł, np. algorytm MD5
• PIN — Personal Identification NumberOdmianą hasła jest także PIN używany w przypadkukart kredytowych, bankowych, czy tzw. tokenów. Jestto zwykle liczba czterocyfrowa (czasem ośmiocyfrowa),która ma zabezpieczać przed użyciem karty przez osobyniepowołane, np. złodzieja.
• Protokół challenge-responseIdea tego sposobu identyfikacji polega na odpowiedzi Alicjina wyzwanie przesłane przez Bolka, która przekona Bolka,że ma do czynienie rzeczywiście z Alicją.
⋆ Protokół challenge-response z tajnym kluczem
1. Alicja i Bolek dysponują takim samym tajnymkluczem K (algorytm symetryczny) oraz umówili sięjakiej funkcji hashującej H będą używać.
2. Alicja komunikuje się z Bolkiem przedstawiając sięjako Alicja
3. Bolek generuje liczbę losową rB i wysyła ją Alicji4. Alicja oblicza H(K, rB) i przesyła wynik Bolkowi5. Bolek także oblicza H(K, rB) i jeśli wynik zgadza
się z wynikiem przysłanym przez Alicję to tożsamośćAlicji zostaje potwierdzona
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 74
Kryptografia — wykład dla IV roku
⋆ Protokół challenge-response z kluczem publicz-nym
1. Alicja komunikuje się z Bolkiem przedstawiając sięjako Alicja
2. Bolek generuje liczbę losową rB i wysyła ją Alicji3. Alicja szyfruje liczbę rB używając swojego klucza
prywatnego i kryptogram wysyła do Bolka4. Bolek deszyfruje kryptogram otrzymany od Alicji
używając jej klucza publicznego i jeśli w wynikuotrzyma rB to tożsamość Alicji jest potwierdzona
• Dowody z wiedzą zerową
D
W
Rysunek 13: Jaskinia
⋆ Alicja chce przekonać Bolka, że zna pewien sekret, alenie chce zdradzić samego sekretu. Alicja twierdzi, żepotrafi otworzyć drzwi zamykające przejście w jaskini.
⋆ Bolek stoi przy wejściu do jaskini
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 75
Kryptografia — wykład dla IV roku
⋆ Alicja wchodzi do jaskini i idzie albo w lewo albo wprawo dochodząc do drzwi zamykających przejście
⋆ Bolek dochodzi do rozwidlenia korytarza, rzuca monetąi w zależności od wyniku rzutu krzyczy, nakazującAlicji wyjść albo z lewego korytarza albo z prawego
⋆ Alicja wykonuje polecenie Bolka, otwierając drzwi jeślito konieczne
⋆ Doświadczenie takie powtarzają n-krotnie. Jeśli n jestdostatecznie duże, to prawdopodobieństwo tego, żeAlicja wykona polecenie Bolka nie potrafiąc otworzyćdrzwi jest znikomo małe (1/2n).
• Dowód o wiedzy zerowej dla logarytmu dyskret-negoAlicja chce przekonać Bolka, że zna wartość logarytmudyskretnego bez zdradzanie tej wartości. Czyli chce udo-wodnić, że zna liczbę x, która spełnia zależność ax = b
(mod p), gdzie p jest dużą liczbą pierwszą. Oboje znająp, a, b, natomiast Bolek nie zna x.
⋆ Alicja oblicza hi ≡ ari (mod p) i przesyła je Bolkowi
⋆ Alicja i Bolek wspólnie rzucają t razy monetą generującw ten sposób t bitów b1, b2, . . . , bt
⋆ Dla wszystkich bitów Alicja oblicza i przesyła Bolkowinastępujące liczby
ri jeśli bi = 0
si = ri − rj jeśli bi = 1
gdzie j jest największą wartością, dla której bj = 1
⋆ Dla wszystkich bitów t Bolek sprawdza czy
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 76
Kryptografia — wykład dla IV roku
ari ≡ hi (mod p) dla bi = 0
asi ≡ hih−1j (mod p) dla bi = 1
⋆ Dla każdego i, dla którego bi = 1, Alicja oblicza iwysyła Bolkowizi = (x− ri) (mod p− 1)
⋆ Bolek sprawdza czy azi ≡ bh−1i (mod p)
• Protokół Fiata-ShamiraBezpieczeństwo tego protokołu opiera się na trudnościobliczeniowej pierwiastków kwadratowych modulo n, gdzien jest iloczynem dwóch liczb pierwszych. Protokół tenwymaga udziału strony trzeciej, zaufanego arbitra —Trusted Authority (TA)
⋆ TA wybiera dwie liczby pierwsze p i q, oblicza ichiloczyn n = pq
⋆ Alicja wybiera losową liczbę względnie pierwszą z n,oblicza liczbę v = s2 (mod n) i rejestruje u TA v jakoswój klucz publiczny
⋆ TA udostępnia liczby n i v jako identyfikatory tożsa-mości Alicji
⋆ Alicja wybiera losowo liczbę r względnie pierwszą z n,oblicza x = r2 (mod n) i wysyła x Bolkowi
⋆ Bolek wysyła Alicji losowy bit b
⋆ Alicja wysyła Bolkowi
r jeśli b = 0
y = r · s (mod n) jeśli b = 1
⋆ Bolek sprawdza czy
x = r2 (mod n) jeśli b = 0
y2 = x · v (mod n) jeśli b = 1
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 77
Kryptografia — wykład dla IV roku
Pierwsza równość dowodzi, że Alicja zna pierwiastekkwadratowy z x, druga natomiast dowodzi, że Alicjazna s. Protokół ten powtarza się t razy, wtedyprawdopodobieństwo oszustwa przez Alicję wynosi1/2t.
• Protokół SchnorraProtokół ten opiera się na problemie logarytmu dyskret-nego. Protokół wykorzystuje certyfikaty wydawane przezTA. W etapie wstępnym należy wybrać liczbę pierwszą poraz drugą liczbę pierwszą q taką, że q|p − 1. Liczby tepowinny być dostatecznie duże (np. p długości 1024 bitya q > 160 bitów. Wybieramy także liczbę b = g(p−1)/q,gdzie g jest generatorem Zp. Każda ze stron otrzymujeliczby {p, q, b} oraz klucz publiczny pozwalający weryfi-kować podpisy TA. Ponadto należy wybrać parametr t(t ≥ 40, 2t < q), który określa poziom bezpieczeństwa.
⋆ TA ustala tożsamość Alicji w konwencjonalny sposób iprzydziela jej identyfikator IA
⋆ Alicja wybiera losowo tajną liczbę a oraz obliczav = ba (mod p) i rejestruje v u TA
⋆ TA generuje podpis cyfrowy S(IA, v) oraz wydaje Alicjicertyfikat C = (IA, v, S(IA, v)) wiążący IA z v
⋆ Alicja wybiera liczbę losową r < q i obliczax = br (mod p)
⋆ Alicja przesyła Bolkowi certyfikat C oraz liczbę x
⋆ Bolek sprawdza klucz publiczny Alicji sprawdzającpodpis TA na certyfikacie
⋆ Bolek wybiera losowo liczbę k (1 ≤ k ≤ 2t) i wysyła jąAlicji (challenge)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 78
Kryptografia — wykład dla IV roku
⋆ Alicja sprawdza 1 ≤ k ≤ 2t i wysyła Bolkowiy = ak + r (mod q) (response)
⋆ Bolek oblicza z = byvk (mod p) i jeśli z = x uznaje, żetożsamość Alicji jest potwierdzona.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 79
Kryptografia — wykład dla IV roku
Zarządzanie kluczami
• Generowanie kluczyDo wytwarzania kluczy najlepiej nadają się generatoryciągów losowych.Przykład: standard ANSI X9.17(Financial Institution Key Management)EDEK1,K2
(X) oznacza szyfrowanie 3-DES kluczamiK1,K2 liczby X. Niech V0 będzie tajną liczbą 64 bitową,a T znacznikiem czasu, wtedy klucz losowy Ri generujesię w następujący sposób:Ri = EDEK1,K2
(EDEK1,K2(Ti)⊕ Vi)
Vi+1 = EDEK1,K2(EDEK1,K2
(Ti)⊕Ri)
• Przesyłanie kluczyJeśli Alicja i Bolek zamierzają posługiwać się symetrycz-nym algorytmem kryptograficznym, to potrzebują tegosamego klucza. Alicja może wygenerować taki klucz uży-wając generatora ciągów losowych, ale pozostaje problemjak w bezpieczny sposób przekazać ten klucz Bolkowi.
• Przechowywanie kluczyNajbezpieczniejszym sposobem przechowywania kluczajest zapamiętanie go przez Alicję. Niestety sposób tenma tę wadę, że Alicja może zapomnieć taki klucz. Kluczemogą być przechowywane w pamięci ROM. Klucz takimoże być rozdzielony na połowy, z których jedna jestprzechowywana w terminalu a druga w pamięci ROM.W wielu sytuacjach istnieje konieczność przechowywaniakopii zapasowych klucza. Do tego celu wykorzystuje sięnp. karty inteligentne. Klucze na ogół mają strukturęhierarchiczną
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 80
Kryptografia — wykład dla IV roku
⋆ master keysklucze znajdujące się najwyżej w hierarchii, takie klu-cze nigdy nie są zmieniane. Taki klucz jest zwykletylko zapamiętywany przez użytkownika lub zapisanyw urządzeniu kryptograficznym. Może on być czę-ściowo zapisany na kartach inteligentnych a częściowozapamiętywany przez użytkownika. Master key służydo zabezpieczania innych kluczy.
⋆ klucze do szyfrowania kluczy (keys-encrypting keys)klucze wykorzystywane w protokołach do uzgadniania(przesyłania) kluczy.
⋆ klucze do szyfrowania danych (data keys)są to zwykle klucze o krótkim czasie ważności (np.klucze sesyjne) służące do szyfrowania danych
Uzgadnianie kluczy
• Algorytm Diffiego-Hellmana
⋆ Alicja i Bolek uzgadniają dwie liczby: dużą liczbępierwszą p oraz liczbę g, która jest generatorem Zp
⋆ Alicja wybiera losowo dużą liczbę całkowitą a < p− 1 iprzesyła Bolkowi x = ga (mod p)
⋆ Bolek wybiera losowo dużą liczbę całkowitą b < p− 1 iwysyła Alicji y = gb (mod p)
⋆ Alicja oblicza K = ya (mod p)
⋆ Bolek oblicza K = xb (mod p)
Uzasadnienie:
K = ya = (gb)a = gab (mod p)
K = xb = (ga)b = gab (mod p)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 81
Kryptografia — wykład dla IV roku
• Algorytm ElGamala
⋆ Bolek wybiera liczbę pierwszą p oraz generator g w Zp,a następnie wybiera losowo liczbę 0 < b < p−1, obliczagb (mod p) oraz ogłasza swój klucz publiczny {p, g, gb}
⋆ Alicja pobiera klucz publiczny Bolka, wybiera losowoliczbę 0 < a < p− 1 i wysyła Bolkowiga (mod p)
obliczając jednocześnie klucz K = (gb)a (mod p)
⋆ Bolek oblicza ten sam klucz K = (ga)b (mod p)
• Station-to Station protocol (STS)W tym protokole przyjmuje się, że Alicja ma certyfikatklucza publicznego Bolka i na odwrót Bolek ma certyfikatklucza publicznego Alicji. Niech E oznacza symetrycznyalgorytm szyfrujący, SA(M) oznacza podpis Alicji podwiadomością M : SA(M) = (H(M))dA (mod nA) (RSAna wartości funkcji hashującej). Każda ze stron wybieraodpowiednią liczbę pierwszą p oraz generator g w Zp.Każda ze stron wybiera klucze RSA do podpisu.
⋆ Alicja wybiera losowo liczbę a i wysyła Bolkowiga (mod p)
⋆ Bolek wybiera losowo liczbę b i oblicza klucz K = (ga)b
(mod p)
⋆ Bolek podpisuje konkatenację gb, ga, szyfruje podpiskluczem K i wysyła Alicjigb (mod p) oraz EK(SB(gb, ga))
⋆ Alicja oblicza klucz K = (gb)a (mod p), deszyfrujeotrzymane dane oraz używa klucza publicznego Bolkado sprawdzenia podpisu pod wartością funkcji hashu-
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 82
Kryptografia — wykład dla IV roku
jącej z konkatenacji obu eksponensów. Jeśli wartośćfunkcji hashującej zgadza się z otrzymaną przez niąwartością, Alicja akceptuje klucz K i wysyła BolkowiEK(SA(ga, gb))
⋆ Bolek deszyfruje otrzymaną wiadomość, weryfikujepodpis Alicji i jeśli wynik jest pozytywny, akceptujeklucz K
• Uzgadnianie klucza z szyfrowaniemZakładamy, że Alicja i Bolek (użytkownik i komputer)znają hasło P .
⋆ Alicja generuje losowo parę kluczy (publiczny i pry-watny), szyfruje klucz publiczny K ′ używając algo-rytmu symetrycznego wykorzystującego hasło P jakoklucz i wysyła do BolkaEP (K ′)
⋆ Bolek deszyfruje wiadomość otrzymaną od Alicjiotrzymując klucz K ′, następnie generuje klucz sesyjnyK, szyfruje ten klucz kluczem publicznym K ′ orazkluczem P i wysyła AlicjiEP (EK′(K))
⋆ Alicja deszyfruje wiadomość otrzymaną od Bolkauzyskując klucz K. Następnie generuje ciąg losowy rA,szyfruje go kluczem K i wysyła do BolkaEK(rA)
⋆ Bolek deszyfruje wiadomość otrzymaną od Alicjiotrzymując ciąg rA, generuje własny ciąg losowy rB,szyfruje obydwa ciągi kluczem K i wysyła AlicjiEK(rA, rB)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 83
Kryptografia — wykład dla IV roku
⋆ Alicja deszyfruje wiadomość uzyskując rA i rB. JeślirA jest prawidłowe, szyfruje rB i wysyła do BolkaEK(rB)
⋆ Bolek deszyfruje wiadomość i jeśli rB jest prawidłoweklucz K zostaje zaakceptowany jako klucz sesyjny.
Istnieją różne implementacje tego protokołu, z wykorzy-staniem algorytmu RSA czy ElGamala. Protokół tenwzmacnia bezpieczeństwo przy uzgadnianiu klucza sesyj-nego.
• ssh secure shell
Protokół umożliwiający bezpieczne logowanie się dokomputerów w sieci stworzony przez Tatu Ylönena,który skutecznie zapobiega takim metodom ataku jak IPSpoofing i DNS Spoofing, czy też podsłuchiwaniu haseł lubtransmitowanych danych. Obecnie rozwijana jest wersjaOpenSSH, na licencji GNU.
⋆ przy instalacji programu generowana jest para klu-czy algorytmu asymetrycznego przynależna danemukomputerowi — klucz publiczny komputera — host key
⋆ przy uruchomieniu demona sshd generowana jestnastępna para kluczy — server keys. Publiczny jestdostępny do czytania, a prywatny jest przechowywanyw pamięci komputera (nie jest zapisywany na dysku).Co godzinę para tych kluczy jest zmieniana.
⋆ każdy użytkownik generuje kolejną parę kluczy (ssh-
keygen), które służą do uwierzytelniania użytkownika.Klucz prywatny jest szyfrowany.
⋆ Kiedy Alicja próbuje zalogować się na komputer Bolka,
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 84
Kryptografia — wykład dla IV roku
to komputer ten wysyła jej swoje dwa klucze publicznehost key i server key. Komputer Alicji sprawdza czyhost key zgadza się z kluczem zapisanym w lokalnympliku known-hosts.
⋆ Jeśli wszystko się zgadza to Alicja generuje losowy kluczsesji i szyfruje go po kolei obydwoma kluczami publicz-nymi komputera Bolka i tak uzyskany kryptogramprzesyła do Bolka.
⋆ Bolek potrzebuje dwóch kluczy prywatnych do odszy-frowania klucza sesyjnego
⋆ Bolek przesyła Alicji liczbę losową rB zaszyfrowanąkluczem publicznym Alicji.
⋆ Alicja deszyfruje otrzymany kryptogram i odsyłaBolkowi H(rB) udowadniając mu swoją tożsamość.W ten sposób zostaje ustanowiony bezpieczny kanałkomunikacyjny.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 85
Kryptografia — wykład dla IV roku
Kryptoanaliza
• Podstawowe rodzaje ataku
⋆ Atak typu ciphertext-only — znane są tylko krypto-gramy — chcemy znaleźć klucz lub tekst jawny
⋆ Atak typu known plaintext — znane są pewne parykryptogram-tekst jawny — szukamy klucza
⋆ Atak typu chosen plaintext — znane są kryptogramydla dowolnie wybranego tekstu jawnego
⋆ Atak typu chosen ciphertext — atakujący ma możliwośćuzyskania tekstu jawnego dla dowolnie wybranegotekstu tajnego
⋆ Atak typu adaptive chosen plaintext — atakujący mamożliwość wielokrotnego szyfrowania tekstu jawnego,który jest modyfikowany w zależności od uzyskanychwcześniej wyników
• Kryptoanaliza różnicowaEli Biham i Adi Shamir w 1990 r. znaleźli metodę atakuna DES przy wybranym tekście jawnym, która okazałasię bardziej efektywna niż przeszukiwanie wszystkichmożliwości (atak brutalny). W kryptoanalizie różnicowejporównuje się pary kryptogramów, które powstały wwyniku zaszyfrowania par tekstów jawnych o ustalonychróżnicach. Przypuśćmy, że mamy dwa bloki o równejdługości X i X ′ i wprowadzimy różnicę obu bloków ∆X =
X⊕X ′ (operacja dodawania modulo dwa odpowiadającychsobie bitów obu bloków — operacja xor — w wyniku
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 86
Kryptografia — wykład dla IV roku
dostajemy jedynki na tych miejscach gdzie ciągi bitówsię różnią). Rozważmy parę wejściową X i X ′ tekstówjawnych i uwzględniając fakt, że operacje liniowe niezmieniają różnicy ∆X, co dotyczy także operacji xor zkluczem Ki, która daje:Y = X ⊕Ki, Y ′ = X ′ ⊕Ki,∆Y = (X ⊕Ki)⊕ (X ′ ⊕Ki) = X ⊕X ′ = ∆X ,a więc przed wejściem do S-boksa różnice się zachowująi nie zależą od wartości klucza. Nieliniowym elementemDES’a są S-boksy i różnica ∆Y zostanie przez S-boks naogół zmieniona. Jeśli wynikiem działania S-boksu będzieZ = S(Y ), to różnica ∆Z = S(Y )⊕ S(Y ′) będzie zależałaod klucza Ki i okazuje się, że tylko niektóre wartości dla∆Z są możliwe, a to oznacza, że możliwe jest uzyskanieinformacji o kluczu Ki. W tablicy 9 podane są liczbymożliwych ∆Z dla danej różnicy ∆X (różnice ∆X i ∆Z
podane są układzie szesnastkowym o czym przypominawskaźnik x). Liczba znajdująca się w tablicy podzielonaprzez 64 określa prawdopodobieństwo wystąpienia danejróżnicy ∆Z. W tabeli znajdujemy wiele zer, a to oznacza,że takie różnice nie mogą wystąpić. Prawdopodobieństwawystąpienia poszczególnych różnic znacznie się różnią iten fakt jest wykorzystywany w kryptoanalizie różnicowej.Np. dla ∆X = 1x istnieją tylko cztery pary które dająróżnicę ∆Z = Fx. Takie pary można wcześniej wyznaczyći w tym przypadku są to pary:{1Ex, 1Fx}, {1Fx, 1Ex}, {2Ax, 2Bx}, {2Bx, 2Ax}.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 87
Kryptografia — wykład dla IV roku
∆X ∆Z0x 1x 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 89
Kryptografia — wykład dla IV roku
Znajomość takich par oraz prawdopodobieństw ich wy-stąpienia pozwala przy wykorzystaniu ataku typu chosen
plaintext uzyskać informację o bitach klucza. Można w tensposób znacznie ograniczyć przestrzeń możliwych kluczy.Prawdopodobnie twórcy DES’a zdawali sobie sprawę zmożliwości kryptoanalizy różnicowej, chociaż pojawiła sięona później niż sam DES. Liczba rund DES’a została wy-brana w taki sposób, że nawet korzystanie z kryptoanalizyróżnicowej wymaga dużych nakładów (mocy obliczenio-wych) dla złamania szyfru.
• Kryptoanaliza liniowaInną metodą kryptoanalizy jest kryptoanaliza liniowazaproponowana przez Mitsuru Matsui w 1993 r. Ideakryptoanalizy liniowej polega na opisie działania urządze-nia szyfrującego poprzez aproksymację liniową. Mimo, żeS-boksy DES’a są elementami nieliniowymi, to mogą byćone aproksymowane formułami liniowymi. Oznacza to,że zależności liniowe aproksymujące działanie S-boksu sąspełnione z prawdopodobieństwem różnym niż 1/2. Jeślinp. wiemy, że pomiędzy bitami klucza ki, tekstu jawnegomi oraz kryptogramu ci zachodzą z prawdopodobieństwem90% zależnościm15 ⊕ k2 ⊕m7 ⊕ k6 = c2 ⊕m5 ⊕ c7m8 ⊕ k2 ⊕ k6 = c5 ⊕ c6,to znając mi i ci możemy z takim samym prawdopo-dobieństwem wyznaczyć k2 ⊕ k6. Oczywiście tego typuzależności należy najpierw znaleźć.
Dla DES’a przy ataku typu known plaintext kryptoanalizaliniowa wymaga średnio 243 par tekst jawny-kryptogram
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 90
Kryptografia — wykład dla IV roku
do znalezienia klucza. Matsui w 1994 r. potrzebował 50dni aby na 12 komputerach HP 9735 obliczyć klucz DES’a!
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 91
Kryptografia — wykład dla IV roku
Algorytmy kwantowe
• Bit kwantowy — kubit (qubit)Klasyczny bit może przyjmować dwie wartości {0, 1}.Układ kwantowy, który ma dwa możliwe stany {|0〉, |1〉}może się znajdować w każdym z nich, ale także w staniebędącym superpozycją stanów bazowych
|Ψ〉 = a|0〉+ b|1〉
i taki stan nazywamy kubitem. Oznacza to, że z prawdo-podobieństwem p0 = |a|2 układ znajduje się w stanie |0〉 iz prawdopodobieństwem p1 = |b|2 w stanie |1〉, oczywiściep0+p1 = 1. Stan układu kwantowego możemy przedstawićjako wektor na sferze Blocha
|0〉
|1〉
|Ψ〉
Rysunek 14: Kubit na sferze Blocha
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 92
Kryptografia — wykład dla IV roku
• Twierdzenie o nieklonowaniuNie istnieje transformacja unitarna U taka, że
U |Ψ〉|0〉 = |Ψ〉|Ψ〉
dla dowolnego |Ψ〉.Dowód:Przypuśćmy, że istnieje U takie, że
U |Ψ〉|0〉 = |Ψ〉|Ψ〉U |Φ〉|0〉 = |Φ〉|Φ〉
dla dowolnych |Ψ〉 i |Φ〉. Transformacja U reprezentowałaby maszynę klonującą, gdyby taka istniała. Z unitarnościU wynika jednak, że
co nie jest prawdziwe dla dowolnych |Ψ〉 i |Φ〉, natomiastmoże zachodzić dla stanów ortogonalnych 〈Ψ|Φ〉 = {0, 1}.Stany ortogonalne (klasyczne bity) mogą być kopiowane,natomiast dowolne stany kwantowe nie.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 93
Kryptografia — wykład dla IV roku
• Bramki logicznereplacemen
klasyczne kwantowe
x x a|0〉+ b|1〉
a|0〉+ b|1〉 a|1〉+ b|0〉
a|0〉 − b|1〉
|1〉 1√2(|0〉+ |1〉)
S
R
Rysunek 15: Jednobitowe bramki logiczne
klasyczne kwantowe
xx
x
x
y
y
y x ∧ y
x⊕ yx⊕ y
CNOT
Rysunek 16: Dwubitowe bramki logiczne
W bazie stanów {|0〉, |1〉}, mamy
|0〉 ≡
1
0
, |1〉 ≡
0
1
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 94
Kryptografia — wykład dla IV roku
Wtedy operacje na stanach kwantowych mają reprezenta-cję macierzową, i tak na przykład
UNOT =
0 1
1 0
UNOT|0〉 =
0 1
1 0
1
0
=
0
1
≡ |1〉
Operacja przesunięcia fazy, która nie zmienia stanu |0〉 zaśstan |1〉 zmienia na −|1〉, ma postać
US =
1 0
0 −1
Operacja Hadamarda, czasem nazywana pierwiastkiemkwadratowym z NOT (
√NOT), ma postać
H =1√2
1 1
1 −1
Istnieje nieskończenie wiele bramek kwantowych genero-wanych przez rotacje o kąt θ
UR(θ) =
cos θ − sin θ
sin θ cos θ
oraz przesunięcia faz
UP (ϕ1, ϕ2) =
eiϕ1 0
0 eiϕ2
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 95
Kryptografia — wykład dla IV roku
Operacja CNOT (kontrolowane NOT) na dwóch kubitachma postać
UCN =
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
• Problem DeutschaPrzypuśćmy, że mamy kwantową czarną skrzynkę oblicza-jącą funkcję f(x), tzn. wykonującą transformację unitarnąna dwóch kubitach przedstawioną poniżej
|x〉 ? |f(x)〉
f : {0, 1} → {0, 1}
Uf : |x〉|y〉 → |x〉|y ⊕ f(x)〉
Pytanie:czy po jednym przebiegu kwantowego komputera możemy
stwierdzić, że f(0) = f(1)?
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 96
Kryptografia — wykład dla IV roku
Weźmy następujący kwantowy obwód
|0〉 H H Pomiar
|1〉 H Ufgdzie H jest kwantową bramką Hadamarda.
Działanie obwodu
H : |0〉 → 1√2(|0〉+ |1〉)
|1〉 → 1√2(|0〉 − |1〉)
|0〉|1〉 → 1
2(|0〉+ |1〉)(|0〉 − |1〉)
→ 1
2
(
(−1)f(0)|0〉+ (−1)f(1)|1〉)
(|0〉 − |1〉)
→ 1
2
[
(
(−1)f(0) + (−1)f(1))
|0〉
+(
(−1)f(0) − (−1)f(1))
|1〉]
1√2(|0〉 − |1〉)
|m〉 =
|0〉 dla f(0) = f(1)
|1〉 dla f(0) 6= f(1)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 97
Kryptografia — wykład dla IV roku
• Kwantowy paralelizmPrzypuśćmy, że mamy funkcję działającą na N bitów o2N możliwych wartościach. Aby obliczyć tablicę funkcjif(x) musielibyśmy policzyć wartość funkcji 2N razy(dla N = 100 ∼ 1030)! Na komputerze kwantowymdziałającym zgodnie z
Uf : |x〉|0〉 → |x〉|f(x)〉
możemy wybrać stan początkowy (kwantowy rejestr) wpostaci
|ψ0〉 =
[
1√2(|0〉+ |1〉)
]N
=1
2N/2
2N−1∑
x=0
|x〉
i obliczając f(x) tylko raz otrzymujemy stan
|ψ〉 =1
2N/2
2N−1∑
x=0
|x〉|f(x)〉
Na przykład, dla N = 2
|ψ0〉 =1
2(|00〉+ |01〉+ |10〉+ |11〉)
|00〉 → |0〉
|01〉 → |1〉
|10〉 → |2〉
|11〉 → |3〉
|ψ0〉 =1
2(|0〉+ |1〉+ |2〉+ |3〉)
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 98
Kryptografia — wykład dla IV roku
Algorytm Shora
• Etap 1Przygotowujemy rejestr A komputerakwantowego w superpozycji wszyst-kich możliwych stanów
• Etap 2Liczba, którą chcemy sfaktoryzowaćjest N , N = 15 Wybieramy liczbę lo-sową X, 1 < X < N−1, X = 2. Wyko-nujemy operację B = (XA mod N)
np. dla X = 2 mamy wyniki przedsta-wione w tabelce
• Etap 3Obliczamy P = Xf/2 − 1; f = 4 isprawdzamy czy P jest dzielnikiem N
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 99
Kryptografia — wykład dla IV roku
Kwantowa transformata Fouriera
QFT : |x〉 → 1
q
q−1∑
y=0
e2πixy/q|y〉
gdzie q = 2N
• Okres funkcjiPrzygotowujemy stan
|ψ0〉 =1√q
q−1∑
x=0
|x〉|f(x)〉
Mierzymy drugi rejestr dostając |f(x0)〉, co powoduje, żepierwszy rejestr staje się superpozycją wszystkich stanów,które dają wartość f(x0) (funkcja jest okresowa z okresemr)
1√a
a−1∑
j=0
|x0 + jr〉 , a− 1 <q
r< a+ 1
Stosujemy QTF
1√qa
q−1∑
y=0
e2πix0ya−1∑
j=0
e2πijry/q|y〉
Prob(y) =a
q
∣
∣
∣
∣
∣
∣
1
a
a−1∑
j=0
e2πijry/q
∣
∣
∣
∣
∣
∣
2
Jeśli q/r jest całkowite (q/r = a), to
Prob(y) =1
a
∣
∣
∣
∣
∣
∣
1
a
a−1∑
j=0
e2πijy/q
∣
∣
∣
∣
∣
∣
2
=
1r y = a ∗ integer0 otherwise
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 100
Kryptografia — wykład dla IV roku
Kryptografia kwantowa
• Protokół BB84 (Bennett, Brassard, 1984)Wybierzmy dwie ortonormalne bazy dla pomiaru polary-zacji fotonu:
⋆ Baza prosta (+)Tworzą ją dwa stany o polaryzacji poziomej orazpionowej {|→〉, |↑〉}
⋆ Baza ukośna (×)Tworzą ją dwa stany o polaryzacji 45◦ oraz polaryzacji135◦ {|ր〉, |տ〉}
⋆ Zachodzą następujące relacje
|ր〉 =1√2
(|→〉+ |↑〉)
|տ〉 = − 1√2
(|→〉− |↑〉)
|→〉 =1√2
(|ր〉− |տ〉)
|↑〉 =1√2
(|ր〉+ |տ〉)
Wynika z nich, że pomiar polaryzacji fotonu “ukośnego”w bazie prostej daje z prawdopodobieństwem 1/2 stan|→〉 lub |↑〉, co oznacza, że pomiar taki nie daje żad-nych informacji o polaryzacji fotonu. To samo możemypowiedzieć o pomiarze fotonu “prostego” w bazie uko-śnej. Polaryzacja prosta i polaryzacja ukośna to dwiewielkości fizyczne, które zgodnie z prawami mechaniki
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 101
Kryptografia — wykład dla IV roku
kwantowej nie są współmierzalne. Obowiązuje tutajzasada nieoznaczoności Heisenberga.
⋆ Alfabety kwantoweMając dwie bazy możemy stworzyć dwa kwantowealfabety przypisując dwóm ortogonalnym stanom bazywartości binarne 0 i 1.
|→〉 ≡ 0
|↑〉 ≡ 1
|ր〉 ≡ 0
|տ〉 ≡ 1
⋆ Etapy BB84
1. Alicja wybiera losowo jedną z dwóch baz i jednąz dwóch ortogonalnych polaryzacji w wybranej ba-zie, co oznacza wybór jednej z czterech możliwychpolaryzacji i wysyła do Bolka foton o takiej polary-zacji. Zgodnie z przyjętymi alfabetami oznacza toodpowiadający wybranym polaryzacjom ciąg bitów.
2. Bolek losowo wybiera bazę prostą lub ukośną iwykonuje pomiar polaryzacji fotonu, który otrzymałod Alicji
3. Bolek notuje wyniki pomiarów zachowując je wtajemnicy
4. Bolek publicznie informuje Alicję jakiej bazy używał,zaś Alicja informuje go czy była to baza właściwaczy nie.
5. Alicja i Bolek przechowują wyniki, dla których Bolekużył właściwej bazy. Przypisując tym wynikom
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 102
Kryptografia — wykład dla IV roku
wartości binarne 0 i 1 zgodnie z przyjętymi alfabetamioboje otrzymują taki sam ciąg zer i jedynek (losowy),który może służyć jako klucz kryptograficzny.
Porównując bity wysłane przez Alicję z bitami za-rejestrowanymi przez Bolka możemy podzielić bityzarejestrowane przez Bolka na trzy kategorie: bitypewne (średnio 50 %) — te dla których Bolek wybrałprawidłową bazę i które mogą być traktowane jakoklucz kryptograficzny; bity prawidłowe pomimo złegowyboru bazy (średnio 25 %); bity nieprawidłowe (śred-nio 25 %). Prawdopodobieństwo wyboru jednej z dwóchmożliwych baz wynosi 1/2, prawdopodobieństwo zare-jestrowania prawidłowej polaryzacji przy prawidłowymwyborze bazy wynosi 1, prawdopodobieństwo pomiaru
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 103
Kryptografia — wykład dla IV roku
prawidłowej polaryzacji przy nieprawidłowo wybranejbazie wynosi 1/2, zatem prawdopodobieństwo tego, żezarejestrowany bit będzie prawidłowy (taki sam jak bitwysłany) jest równe 1
2 · 1 + 12 · 12 = 3
4 . Prawdopodobień-stwo zarejestrowania bitu nieprawidłowego (błędnego)wynosi więc 1− 3
Jeśli Ewa podsłuchuje stosując strategię tzw. nieprze-źroczystego podsłuchu, to wybiera losowo bazę prostąlub ukośną, dokonuje pomiaru polaryzacji w tej bazie inastępnie przesyła do Bolka foton o takiej polaryzacjijaką zmierzyła. Dokonywane przez Ewę pomiary musząwprowadzić błędy, które Alicja i Bolek mogą wykryćprzy uzgadnianiu klucza. W podanym niżej przykładzieostatni bit został zmieniony. Średnio 25 % bitów kluczazostanie zmienionych. Takie błędy Alicja i Bolek mogą
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 104
Kryptografia — wykład dla IV roku
wykryć wybierając losowo pewną liczbę bitów klucza iporównując publicznym kanałem ich wartości. Te bityoczywiście następnie się wyrzuca. Jeśli liczba błędówprzekracza założony poziom to uznaje się, że kanałbył podsłuchiwany i procedurę uzgadniania kluczarozpoczyna się od nowa.
Mechanika kwantowa nie dopuszcza możliwości pasyw-nego podsłuchu. Bezpieczeństwo kwantowego systemukryptograficznego gwarantowane jest przez prawa fizyki!
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 105
Kryptografia — wykład dla IV roku
• Protokół B92 (Bennett, 1992)W 1992 r. Charles Bennett zaproponował protokół wy-miany klucza oparty na dwóch nieortogonalnych stanachkwantowych. Niech takimi stanami będą {|→〉, |ր〉}. Bo-lek wykonuje pomiary polaryzacji w stanach ortogonalnychdo {|→〉, |ր〉}, tzn. w stanach {|↑〉, |տ〉}.⋆ Alfabet kwantowy
Alicja przygotowuje fotony o polaryzacji horyzontalnej|→〉 lub polaryzacji 45◦ |ր〉 przypisując im wartościbinarne
|→〉 ≡ 0
|ր〉 ≡ 1
⋆ Etapy B92
1. Alicja wybiera losowo jedną z dwóch polaryzacji{|→〉, |ր〉} i przesyła do Bolka foton o takiej pola-ryzacji. Powtarzając tę procedurę, Alicja wysyła doBolka losowy ciąg zer i jedynek.
2. Bolek losowo wybiera jeden ze stanów {|↑〉, |տ〉} imierzy polaryzację w takim stanie. Jeśli wybrał po-laryzację ortogonalną do polaryzacji wybranej przezAlicję, to nie zarejestruje fotonu. W przeciwnymrazie z prawdopodobieństwem 1/2 zarejestruje foton.Jeśli zarejestrował foton o polaryzacji |↑〉 to przypi-suje mu wartość binarną 1, zaś fotonowi o polaryzacji|տ〉 przypisuje wartość binarną 0.
3. Bolek przekazuje Alicji publicznym kanałem infor-mację dla których fotonów uzyskał wynik pozytywny
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 106
Kryptografia — wykład dla IV roku
(T), czyli zarejestrował foton, ale nie zdradza jakąpolaryzację zmierzył.
4. Alicja i Bolek przechowują ciąg bitów, dla którychBolek zarejestrował foton. Ciąg ten stanowi kluczkryptograficzny.
Bolek տ տ ↑ տ ↑ ↑ ↑ տ ↑ տ տ ↑ ↑N T N T T N N N N N N T N
0 0 1 1
A/B√ √ √ √
klucz 0 0 1 1
Podobnie jak w przypadku protokołu BB84 obecnośćEwy spowoduje błędy w kluczu, które Alicja i Bolekmogą wykryć.
Kryptografia kwantowa szybko się rozwija. Tutaj przedsta-wiłem tylko najprostsze protokoły. Istnieją inne protokołykwantowe uzgadniania klucza, np. protokół zaproponowanyprze Ekerta w 1991 r oparty na zjawisku EPR. Do kodowaniamożna używać np. fazy fotonu, a nie polaryzacji.Kryptografia kwantowa jest już faktem!.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 107
Kryptografia — wykład dla IV roku
Grupa prof. Gisina w Genewie przeprowadziła udane eks-perymenty z kwantową dystrybucją klucza na odległości 67km, używając komercyjnych światłowodów. Trwają inten-sywne prace nad kwantową dystrybucją klucza w otwartejprzestrzeni.
Mechanika kwantowa, która z jednej strony może spowo-dować, że klasyczne algorytmy kryptograficzne staną siębezużyteczne, z drugiej strony daje możliwość wykorzystaniajej praw do bezpiecznego przekazywania klucza kryptogra-ficznego.
Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 108