Bezpieczeństwo systemów komputerowych

Podobne dokumenty
Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Spis treści. Przedmowa... 9

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

Parametry systemów klucza publicznego

Liczby pierwsze wielomianowo - ekstremalnie trudne?

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Algorytmy asymetryczne

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Wybrane zagadnienia teorii liczb

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Wykład IV. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Matematyka dyskretna

Metoda Lenstry-Shora faktoryzacji dużych liczb całkowitych

Matematyka dyskretna

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

1. Wykład NWD, NWW i algorytm Euklidesa.

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

Pierwiastki pierwotne, logarytmy dyskretne

Matematyka dyskretna

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Liczby pierwsze na straży tajemnic

Elementy kryptografii Twierdzenie Halla. Pozostałe tematy. Barbara Przebieracz B. Przebieracz Pozostałe tematy

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

Zarys algorytmów kryptograficznych

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

Matematyka dyskretna

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Współczesna kryptografia schematy bazujące na parowaniu punktów krzywej eliptycznej

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Matematyka dyskretna

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Kryptografia na procesorach wielordzeniowych

Matematyka dyskretna. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki

Kryptologia przykład metody RSA

Ataki na algorytm RSA

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

Kongruencje twierdzenie Wilsona

Algorytmy i struktury danych. Wykład 4

Równania wielomianowe

0.1 Pierścienie wielomianów

Elementy teorii liczb i kryptografii Elements of Number Theory and Cryptography. Matematyka Poziom kwalifikacji: II stopnia

Grupy, pierścienie i ciała

Projekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego

Zadanie 2: Kryptosystem Rabina

2 Kryptografia: algorytmy symetryczne

Przykładowe zadania z teorii liczb

Problem logarytmu dyskretnego i protokół Diffiego-Hellmana. Mateusz Paluch

Odwrotne twierdzenie Fermata. Odwrotne twierdzenie Fermata

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

Bezpieczeństwo danych, zabezpieczanie safety, security

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 1

Zadania do samodzielnego rozwiązania

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Algorytmy w teorii liczb

Haszowanie. dr inż. Urszula Gałązka

Paweł Gładki. Algebra. pgladki/

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Teoretyczne podstawy informatyki

Elementy teorii liczb. Matematyka dyskretna

Szyfrowanie RSA (Podróż do krainy kryptografii)

Sumy kwadratów kolejnych liczb naturalnych

KRYPTOGRAFIA Z KLUCZEM PUBLICZNYM (Ellis 1970)

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Kryptografia szyfrowanie i zabezpieczanie danych

W. Guzicki: Liczby pierwsze 1 LICZBY PIERWSZE. Warszawa, 11 kwietnia 2013 r.

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Piotr Majkowski. Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Zastosowania informatyki w gospodarce Wykład 5

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

(c) Oba działania mają elementy neutralne (0 dla dodawania i 1 dla mnożenia). (d) (a c b c) ab c ---

Badanie pierwszości liczby, klasa NP i test Rabina

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Krzywe Freya i Wielkie Twierdzenie Fermata

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

1. Rozproszone łamanie szyfrów

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Bezpieczeństwo systemów komputerowych

Kongruencje pierwsze kroki

Transkrypt:

Bezpieczeństwo systemów komputerowych Szyfry asymetryczne Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 10 listopada 2015 Na podstawie wykładu Anny Kosieradzkiej z 2009 r.

Uczestnicy gry Alicja ma klucz prywatny i publiczny. Bolek wysyła Alicji wiadomości zaszyfrowane jej kluczem publicznym. Alicja deszyfruje wiadomości od Bolka, używając swojego klucza prywatnego. Cezary, Ewa,... próbują odszyfrować te wiadomości lub zdobyć klucz prywatny Alicji.

Najpopularniejszym szyfrem asymetrycznym jest RSA p, q losowo wybrane duże liczby pierwsze n = pq moduł e liczba względnie pierwsza z (p 1)(q 1) d liczba wyznaczona tak, że zachodzi ed mod (p 1)(q 1) = 1 (n, d) klucz prywatny (n, e) klucz publiczny Szyfrowanie C = M e mod n Deszyfrowanie M = C d mod n

Testy pierwszości Potrzebujemy efektywnie znajdować duże liczby pierwsze. Wielomianowy algorytm deterministyczny Agrawal, Kayal, Saxena: Õ(log n) 7,5 Lenstra, Pomerance: Õ(log n) 6 Algorytmy probabilistyczne Rozumowanie a contrario Używamy twierdzenia postaci: jeśli n jest liczbą pierwszą, to S(n), gdzie S(n) jest formułą łatwą do sprawdzenia. Jeśli zachodzi S(n), twierdzimy, że z dużym prawdopodobieństem n jest pierwsza. Zły przykład S(n): liczba n jest równa 2 lub jest nieparzysta.

Test pierwszości Fermata Wybieramy jako S(n) małe twierdzenie Fermata: jeśli n jest pierwsza, to a n 1 1 (mod n). Losujemy a i sprawdzamy, czy powyższe zachodzi. Niestety istnieją liczby złożone (liczby Carmichaela), dla których zachodzi a n 1 1 (mod n) dla dowolnego a względnie pierwszego z n.

Test pierwszości Solovaya Strassena Symbol Legendre a, dla liczby pierwszej p ( ) a = p 0, jeśli p dzieli a, 1, jeśli istnieje b, takie że b 2 a (mod p), 1, w p.p. Symbol Jacobiego ( a ) ( ) a α1 ( a = n p 1 p 2 ) α2 ( ) a αk, p k gdzie n = p α 1 1 pα 2 2 pα k k. Jeśli n jest nieparzystą liczbą pierwszą, to ( a ) a (n 1)/2 (mod n). n

Test pierwszości Solovaya Strassena, cd. Losujemy 0 < a < n i jeśli ( a ) a (n 1)/2 n (mod n), to n jest liczbą złożoną, a a jest tego świadkiem. W p.p. n jest pierwsza lub złożona. Dla każdej liczby złożonej n prawdopodobienstwo, że losowo wybrane a jest świadkiem, wynosi co najmniej 1/2. Jeśli wypróbujemy m losowych wartości a i żadna z nich nie okaże się świadkiem złożoności dla n, to z prawdopodobieństwem co najmniej 1 2 m liczba n jest pierwsza. Potrafimy efektywnie potęgować modulo i obliczać symbol Jacobiego.

Test pierwszości Millera Rabina Dla danego nieparzystego n niech n 1 = 2 s t, gdzie t jest nieparzyste. Jeśli liczba n jest pierwsza, to a n 1 1 (mod n) (małe twierdzenie Fermata). Jeśli liczba n jest pierwsza i a 2r t 1 (mod n) dla 0 < r s, to a 2r 1t 1 (mod n) albo a 2r 1t 1 (mod n). Losujemy 0 < a < n i obliczamy: a t mod n, a 2t mod n, a 4t mod n,..., a 2s 1t mod n, a n 1 mod n. Jeśli ostatnia liczba na powyższej liście jest różna od 1 lub, przeglądając od końca, pierwsza napotkana liczba różna od 1 jest też różna od n 1, to a jest świadkiem, że n jest złożona. Dla każdej liczby złożonej n prawdopodobienstwo, że losowo wybrane a jest świadkiem, wynosi co najmniej 3/4. Jeśli wypróbujemy m losowych wartości a i żadna z nich nie okaże się świadkiem złożoności dla n, to z prawdopodobieństwem co najmniej 1 (1/4) m liczba n jest pierwsza.

Łamanie RSA Znajomość ϕ(n) = (p 1)(q 1) jest równoważna znajomości rozkładu n na czynniki pierwsze. Znając p i q, łatwo obliczamy ϕ(n). Znając n i ϕ(n), rozwiązujemy układ równań: ϕ(n) = (p 1)(q 1), n = pq.

Liczby e i d w szyfrowaniu RSA są dobierane tak, żeby 1. e było względnie pierwsze z pq, gdzie p i q to duże liczby pierwsze, 2. e było względnie pierwsze z d, 3. e było względnie pierwsze z p(q 1), gdzie p i q to duże liczby pierwsze. 4. e było względnie pierwsze z (p 1)(q 1), gdzie p i q to duże liczby pierwsze.

Sposoby łamania RSA Faktoryzacja n brutalne poszukiwanie dzielnika (ang. brute force) metoda sita kwadratowego... Wykorzystanie słabości zbyt bliskie p i q zbyt małe d lub e częściowa znajomość d atak z pomiarem czasu...

Faktoryzacja za pomocą sita kwadratowego Każdy wie, że jeśli n = a 2 b 2, to n = (a + b)(a b). Rozważamy kolejne a, począwszy od n, i sprawdamy, czy a 2 n jest kwadratem. Jeśli znajdziemy takie całkowite b, że b 2 = a 2 n, to poznamy rozkład n. Jak długo będziemy szukać?

Faktoryzacja za pomocą sita kwadratowego, przykład Niech n = 1649, n = 41, mamy: 41 2 n = 32, 42 2 n = 115, 43 2 n = 200,..., 57 2 n = 1600 = 40 2. Trzeba szukać dość długo, pierwszy kwadrat pojawia się dla a = 57. Znaleźliśmy rozkład 1649 = (57 + 40)(57 40) = 97 17. Szukanie kwadratów nie jest szybsze niż próbowanie kolejnych dzielników.

Liczby gładkie i faktoryzacja Liczbę nazywamy gładką (B-gładką), jeśli jej dzielniki pierwsze są małe (mniejsze niż B). Szukamy liczb gładkich wśród liczb a 2 n, np. sitem Erastotenesa. Szukamy wśród nich kombinacji takich liczb, których iloczyn jest kwadratem. Używamy wektora wykładników, np. liczbę 504 = 2 3 3 2 7 reprezentujemy jako wektor (3, 2, 0, 1). Mnożeniu liczb odpowiada dodawanie wektorów.

Proste słabości RSA Łatwo jest rozłożyć n na czynniki, jeśli p i q są zbyt bliskie. Jeśli p 1 i q 1 mają zbyt małe dzielniki, to można użyć algorytmu p 1 Pollarda. Dwie osoby używają tego samego n i różnych e 1, e 2. Zwykle wtedy e1, e 2 są względnie pierwsze. Kryptoanalityk może uzyskać szyfrogramy tego samego tekstu jawnego M, czyli C 1 = M e1 mod n, C 2 = M e2 mod n. Algorytmem Euklidesa może wyznaczyć takie r i s, że re 1 + se 2 = 1. Można założyć, że r < 0, wtedy M = (C 1 1 ) r C2 s mod n. Należy rozważnie używać RSA, np. szyfrowanie każdej litery osobno umożliwia złamanie za pomocą analizy częstości występowania liter.

Atak Wienera na zbyt małe d Przez zbyt małe d rozumiemy d < 1 4 3 n. Mamy ed kϕ(n) = 1, czyli e ϕ(n) k d = 1 dϕ(n). Aproksymując ϕ(n) przez n, można dowieść, że e n k d < 1 2d 2. Znamy ułamek e/n, szukamy ułamka k/d. Takich ułamków k/d jest mało, O(log n).

Atak Wienera na zbyt małe d, cd. Rozwijamy e/n w ułamek łańcuchowy e n = a 1 0 +. 1 a 1 + a 2 + 1 a 3 +... Dowodzi się, że wszystkie k/d są reduktami tego ułamka. Sprawdzamy początkowe O(log n) redukty.

W faktoryzacji liczby n za pomocą sita kwadratowego 1. rozważamy liczby a większe lub równe od (n), 2. rozważamy liczby a ostro większe od (n), 3. rozważamy liczby a większe lub równe od n 2, 4. rozważamy liczby a ostro większe od n 2,

Atak z pomiarem czasu Alicja deszyfruje komunikat C otrzymany od Bolka. Alicja potęguje M = C d mod n, stosując prosty algorytm {d = d[k-1] d[k-2]... d[1] d[0]} x := C; M := 1; for i := 0 to k-1 do begin if d[i] = 1 then M := M * x mod n; x := x * x mod n; end Znamy oczywiście bit d[0], szukamy bitu d[1].

Atak z pomiarem czasu, cd. Cezary wysyła Alicji zaszyfrowane (jej kluczem publicznym) wiadomości C 1,..., C m. Cezary mierzy czasy: t i deszyfrowania wiadomości C i, t i mnożenia C i razy Ci 2. Jeśli bit d[1] jest równy 1, to ciągi (t i ) i (t i ) są skorelowane. Jeśli bit d[1] jest równy 0, nie widać żadnej korelacji. Cezary, poznawszy d[1], próbuje poznać kolejne bity d.

Atak na implementację korzystającą z chińskiego twierdzenia o resztach Alicja podpisuje wiadomość M, czyli oblicza C = M d mod n. Dla ułatwienia obliczeń Alicja korzysta z chińskiego twierdzenia o resztach: dp = d mod (p 1), d q = d mod (q 1), Cp = M dp mod p, C q = M dq mod q, s p 1 (mod p), s p 0 (mod q), s q 1 (mod q), s q 0 (mod p), C = sp C p + s q C q. Wszystko działa...

Atak na implementację korzystającą z chińskiego twierdzenia o resztach, cd. Przypuśćmy, że nastąpiło prekłamanie i Alicja obliczyła C p prawidłowo, ale zamiast C q otrzymała błędne B q. W efekcie Alicja wysyła Cezaremu błędny podpis B, dla którego zachodzi B e M (mod p) i B e M (mod q). Wtedy Cezary oblicza NWD(n, B e M) = p.

Nie wolno używać tej samej pary kluczy do szyfrowania i podpisywania wiadomości Alicja otrzymuje zaszyfrowaną wiadomość c = m e mod n. Ewa podsłuchała tę wiadomość. Ewa losuje liczbę r < n. Ewa oblicza: x = r e mod n, y = xc mod n. Zauważmy, że r = x d mod n. Ewa wysyła Alicji do podpisania wiadomość y. Alicja odsyła Ewie u = y d mod n. Ewa oblicza r 1 u mod n = x d y d mod n = x d x d c d mod n = m.

Krzywe eliptyczne Krzywą eliptyczną E nad ciałem K nazywamy krzywą zadaną równaniem postaci y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 o współczynnikach z ciała K.

Krzywe eliptyczne przykłady Krzywe opisane równaniami y 2 = x 3 x + b/10 dla b = 0, 1, 2, 3, 4, 5 nad ciałem liczb rzeczywistych

Krzywe eliptyczne jeszcze jeden przykład Krzywa opisana równaniem y 2 = x 3 + x nad Z 23 składa się z 23 punktów: (0, 0), (1, 5), (1, 18), (9, 5), (9, 18), (11, 10), (11, 13), (13, 5), (13, 18), (15, 3), (15, 20), (16, 8), (16, 15), (17, 10), (17, 13), (18, 10), (18, 13), (19, 1), (19, 22), (20, 4), (20, 19), (21, 6), (21, 17) oraz punktu w nieskończoności, oznaczanego przez 0.

Krzywe eliptyczne dodawanie Punkty krzywej eliptycznej tworzą grupę addytywną. Elementem neutralnym dodawania jest punkt w nieskończoności. Dla krzywej z poprzedniego przykładu: (x, y) + 0 = (x, y), 0 + (x, y) = (x, y), (x, y) = (x, y), (0, 0) + (1, 5) = (1, 18), (0, 0) + (9, 5) = (18, 13),... Definiuje się mnożenie punktu krzywej eliptycznej przez liczbę całkowitą. Dla krzywej z poprzedniego przykładu: 2 (1, 5) = (0, 0), 3 (1, 5) = (1, 18) = (1, 5), 4 (1, 5) = 0,...

Schemat Diffiego Hellmana Umożliwia uzgodnienie wspólnego tajnego klucza, używając otwartego kanału transmisyjnego. Alicja i Bolek uzgadniają wspólną dużą liczbę pierwszą p i generator g grupy Z p. Alicja losuje a i wysyła Bolkowi g a. Bolek losuje b i wysyła Alicji g b. Alicja oblicza wspólny klucz k = (g b ) a. Bolek oblicza wspólny klucz k = (g a ) b. Bezpieczeństwo opiera się na trudności rozwiązania problemu logarytmu dyskretnego: znając p, g, g a i g b, nie umiemy efektywnie obliczyć a, b i g ab.

Schemat Diffiego Hellmana z wykorzystaniem krzywej eliptycznej Alicja i Bolek uzgadniają wspólną krzywą eliptyczną E i generator P grupy punktów na E. Alicja losuje a i wysyła Bolkowi ap. Bolek losuje b i wysyła Alicji bp. Alicja oblicza wspólny klucz k = a(bp). Bolek oblicza wspólny klucz k = b(ap). Bezpieczeństwo opiera się na trudności rozwiązania problemu logarytmu dyskretnego na krzywej eliptycznej: znając E, P, ap i bp, nie umiemy efektywnie obliczyć a, b i abp.

Zalety i wady krzywych eliptycznych Zaleta: krzywe eliptyczne wymagają krótszych kluczy niż RSA. 3072-bitowe RSA zapewnia podobny poziom bezpieczeństwa jak krzywa nad ciałem GF(2 256 ). Zaleta: dla jednego ciała GF(p m ) istnieje wiele krzywych eliptycznych do wyboru. Wada: obliczenia na krzywych eliptycznych mają tajemniczą strukturę.

Gdzie jeszcze warto zajrzeć? W lipcu 2009 r. za pomocą 200 konsol PlayStation3 złamano system krytpograficzny używający krzywej eliptycznej y 2 = x 3 + ax + b nad ciałem Z p z generatorem P, gdzie a = 4451685225093714772084598273548424, b = 2061118396808653202902996166388514, P = (188281465057972534892223778713752, 3419875491033170827167861896082688), a p = (2 128 3)/(11 6949) jest 112-bitową liczbą pierwszą, http://lacal.epfl.ch/page81774.html. Dan Boneh, Twenty Years of Attacks on the RSA Cryptosystem, http: //crypto.stanford.edu/~dabo/papers/rsa-survey.pdf.