Kryptografia i bezpieczestwo danych wymiana kluczy Sawomir Samolej
Kryptografia i bezpieczeństwo danych - wymiana kluczy Sławomir Samolej ssamolej. kia. prz. edu. pl ssamolej@prz. edu. pl
Zarządzanie kluczami Problem: n użytkowników. Przechowywanie wzajemnych kluczy jest trudne. U 1 U 3 U 2 U 4 Całkowita liczba: O(n) kluczy na użytkownika 2
Lepsze rozwiązanie Zaufana trzecia strona online (Online Trusted 3 rd Party (TTP)) U 1 Alice TTP Bob 3
Generowanie kuczy: prosty protokół Alice chce klucz współdzielony z Bobem. Bezpieczeństwo tylko przeciw podsłuchiwaniu. Bob (k. B) Alice (k. A) “Alicja chce klucz do kom. z Bobem” Wybieramy losowy k. AB bilet k. AB TTP k. AB (E, D) szyfr bezpieczny na atak z wybranym tekstem jawnym 4
Prosty protokół generowania kluczy – bezpieczeństwo, zastosowania Alice chce mieć klucz do komunikacji z Bobem. Zapewnione jest tylko bezpieczeństwo przed podsłuchiwaniem. Podsłuchujący widzi: E(k. A, “A, B” ll k. AB ) ; E(k. B, “A, B” ll k. AB ) (E, D) jest bezpieczne na atak z wybranym tekstem jawnym ⇒ atakujący niczego się nie dowie o kluczu k. AB Uwaga: TTP jest potrzebne do każdej wymiany kluczy, zna wszystkie klucze sesji. (podstawa systemu Kerberos) 5
Podstawowy protokół: nie jest bezpieczny na aktywne ataki Przykład: brak bezpieczeństwa na ataki z ponowieniem Atakujący „nagrywa” sesję pomiędzy Alice i Bobem – Na przykład zamówienie na książkę Atakujący ponownie rozpoczyna taką samą sesję z Bobem – Bob myśli, że Alice potrzebuje następnej kopii książki 6
Kluczowe pytanie Czy możemy wygenerować współdzielone klucze bez trzeciej zaufanej instytucji dostępnej online? Odpowiedź: Tak! Punkt początkowy do rozważań nad kryptografią z kluczem publicznym: • Merkle (1974), • Ostatnio: Diffie-Hellman (1976), RSA (1977) Szyfrowanie na bazie ID (BF 2001), Funkcjonalne szyfrowanie (BSW 2011) 7
Wymiana kluczy bez zaufanej trzeciej instytucji będącej online (1) Cel: Alice i Bob chcą współdzielonego klucza, ukrytego przed podsłuchaniem. • Dotąd: zapewnialiśmy tylko bezpieczeństwo przeciw podsłuchiwaniu Alice Bob podsłuchujący ? ? Czy to jest wykonalne z zastosowaniem szyfrowania symetrycznego? 8
Łamigłówka Merkle’a (1974) Odpowiedź: tak, ale rozwiązanie jest nieefektywne Główne narzędzie: łamigłówki • Problemy mogą być rozwiązane z pewnym wysiłkiem • Przykład: E(k, m) jest szyfrem symetrycznym, gdzie k ∈ {0, 1}128 – łamigłówka(P) = E(P, “message”) gdzie P = 096 ll b 1… b 32 – Cell: znajdź P przez wypróbowanie wszystkich 232 możliwości 9
Łamigłówka Merkle’a - protokół Alicja: przygotowuje 232 łamigłówek • Dla i=1, …, 232 wybierz losowy Pi ∈{0, 1}32 i xi, ki ∈{0, 1}128 ustaw łamigłówkęi � E( 096 ll Pi , “Puzzle # xi” ll ki ) • Wysyła łamigłówkę 1 , … , łamigłówkę 232 do Bob’a Bob: wybiera losową łamigłówkęj i rozwiązuje ją. Otrzymuje ( xj, kj ). • Wysyła xj do Alice: poszukuje łamigłówki numer xj. Stosuje kj jako współdzielony klucz szyfrowania symetrycznego 10
Schematycznie Alice łamigłówka 1 , … , łamigłówkan xj Bob kj Praca Alice: O(n) Praca Bob’a: O(n) Praca podsłuchiwacza: kj (przygotowanie n łamigłówek) (rozwiązanie jednej łamigłówki) O( n 2 ) (np. 264 czasu) 11
Niemożliwość znalezienia wyniku Czy możemy opracować konstrukcję z większą luką z zastosowaniem metod szyfrowania symetrycznego? Odpowiedź: nie wiadomo… Ale: z grubsza mówiąc, kwadratowa luka jest uważana za najlepszą z możliwych, kiedy traktujemy szyfr jako czarną skrzynkę do kryptoanalizy [IR’ 89, BM’ 09] 12
Wymiana kluczy bez zaufanej trzeciej instytucji będącej online (2) Cel: Alice i Bob chcą współdzielonego klucza, ukrytego przed podsłuchaniem. • Dotąd: zapewnialiśmy tylko bezpieczeństwo przeciw podsłuchiwaniu Alice Bob podsłuchujący ? ? Czy to jest wykonalne z wykładniczą luką? 13
Protokół Diffie-Hellman’a (nieformalnie) Ustal dużą liczbę pierwszą p (np. 600 cyfr) Ustal wartość całkowitą g w przedziale {1, …, p} Alice Bob Wybierz losową wartość a z {1, …, p-1} Ba (mod p) a = (g b) = Wybierz losową wartość k. AB = gab (mod p) = ( g a) b b in {1, …, p-1} = Ab (mod p) 14
Bezpieczeństwo (pierwsze spostrzeżenia) Podsłuchujący widzi: Czy może wyliczyć Bardziej ogólnie: p, g, A=ga (mod p) i B=gb (mod p) gab (mod p) zdefiniujmy ? ? DHg(ga, gb) = gab (mod p) Jak złożona obliczeniowo jest funkcja DH mod p? 15
Jak złożona obliczeniowo jest funkcja DH mod p? Zakładamy, że liczba p ma długość n bitów. Najlepszy znany algorytm (GNFS): czas wykonywania exp( rozm. klucza szyfr. 80 bitów 128 bitów 256 bitów (AES) rozmiar modułu 1024 bity 3072 bitów 15360 bitów ) Rozmiar krzywych eliptycznych 160 bitów 256 bitów 512 bitów W rezultacie: następuje wolne przejście od (mod p) do krzywych eliptycznych 16
Brak bezpieczeństwa na atak aktywny (man-in-the-middle) Protokół nie jest bezpieczny na ataki aktywne Alice Mi. TM Bob 18
Inne spojrzenie na protokół DH Facebook ga gb gc gd Alice Bob Charlie a b c David d KAC =gac ⋯ KAC=gac 19
Otwarty problem Facebook ga gb gc gd Alice Bob Charlie a b c David d KABCD ⋯ 21
Ustalanie wspólnego sekretu Cel: Alice i Bob chcą współdzielonego sekretu, ukrytego przed podsłuchaniem. • Dotąd: zapewnialiśmy tylko bezpieczeństwo przeciw podsłuchiwaniu Alice Bob podsłuchujący ? ? Teraz: proponujemy nowe podejście 22
Kryptografia klucza publicznego Alice Bob E D 23
Szyfrowanie z kluczem publicznym Definicja: system szyfrowania z kluczem publicznym to trzy algorytmy (G, E, D) • G(): alg. losowy generujący parę kluczy (pk, sk) • E(pk, m): alg. losowy biorący m∈M i zwaracający c ∈C • D(sk, c): alg. deterministyczny biorący c∈C i zwracający m∈M lub ⊥ Spójność: ∀(pk, sk) zwracanych przez G : ∀m∈M: D(sk, E(pk, m) ) = m Semantyczne bezpieczeństwo: System szyfrowania z kluczem publicznym jest bezpieczny semantycznie. 24
Ustalanie współdzielonego sekretu Alice Bob (pk, sk) �G() “Alice”, pk choose random x ∈ {0, 1}128 • Semantyczne bezpieczeństwo dla takiego jest udowodnione. • Protokół jest podatny na atak man-in-the-middle. 25
Podatność na atak man-in-the-middle As described, the protocol is insecure against active attacks Alice (pk, sk) �G() Bob Mi. TM (pk’, sk’) �G() “Alice”, pk choose random x ∈ {0, 1}128 “Bob”, E(pk, x) “Bob”, E(pk’, x) 26
Konstrukcje stosowane w szyfrowaniu z kluczem publicznym Konstrukcje w kryptografii z kluczem publicznym oparte są na problemach trudnych pochodzących z teorii liczb lub algebry. Oznacza to, że do rozwiązania problemu potrzeba bardzo dużo czasu lub zasobów i w praktyce na razie są nierozwiązywalne Następny wykład: • Przegląd wybranych zagadnień z teorii liczb będących podstawą tworzenia systemów kryptografii z kluczem publicznym. 27
Literatura uzupełniająca • Merkle Puzzles are Optimal, B. Barak, M. Mahmoody-Ghidary, Crypto ’ 09 • On formal models of key exchange (sections 7 -9) V. Shoup, 1999 28
- Slides: 26