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

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

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

Bezpieczeństwo systemów komputerowych

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

Liczby pierwsze wielomianowo - ekstremalnie trudne?

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Wybrane zagadnienia teorii liczb

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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

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

2 Kryptografia: algorytmy symetryczne

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

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Matematyka dyskretna

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

Spis treści. Przedmowa... 9

Parametry systemów klucza publicznego

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

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

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

Matematyka dyskretna

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

Elementy teorii liczb. Matematyka dyskretna

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

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

Badanie pierwszości liczby, klasa NP i test Rabina

Matematyka dyskretna

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

Algorytmy asymetryczne

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

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

Kryptografia na procesorach wielordzeniowych

Zarys algorytmów kryptograficznych

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

WSIZ Copernicus we Wrocławiu

Zadania do samodzielnego rozwiązania

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

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

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

Matematyka dyskretna

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

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

Przykładowe zadania z teorii liczb

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

Problem P = NP. albo czy informacja może. biec na skróty

Zadanie 2: Kryptosystem Rabina

Szyfrowanie RSA (Podróż do krainy kryptografii)

Matematyka dyskretna

Bezpieczeństwo danych, zabezpieczanie safety, security

Wprowadzenie ciag dalszy

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

Informatyka na WPPT. prof. dr hab. Jacek Cichoń dr inż. Marek Klonowski

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Liczby pierwsze. Jacek Nowicki Wersja 1.0

Liczby pierwsze. Jacek Nowicki Wersja 0.92

Algorytmy i struktury danych. Wykład 4

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

Liczby całkowite. Zadania do pierwszych dwóch lekcji

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Szyfrowanie RSA. Liczba pierwsza jest liczbą naturalną posiadającą dokładnie dwa różne podzielniki - 1 oraz samą siebie.

Załóżmy, że musimy zapakować plecak na wycieczkę. Plecak ma pojemność S. Przedmioty mają objętości,,...,, których suma jest większa od S.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017

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.)

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

Kongruencje pierwsze kroki

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

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

Algorytmy w teorii liczb

Kryptologia przykład metody RSA

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Podstawy programowania. Podstawy C# Przykłady algorytmów

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

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

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

Kongruencje oraz przykłady ich zastosowań

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

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Matematyka dyskretna

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Kongruencje i ich zastosowania

MADE IN CHINA czyli SYSTEM RESZTOWY

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

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Teoretyczne podstawy informatyki

Pierwiastki pierwotne, logarytmy dyskretne

Algorytmy i Struktury Danych, 9. ćwiczenia

PRZEWODNIK PO PRZEDMIOCIE

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Zadanie 1. Suma silni (11 pkt)

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

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

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Ataki na algorytm RSA

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

Odwrotne twierdzenie Fermata. Odwrotne twierdzenie Fermata

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Wykład 2 Zmienne losowe i ich rozkłady

Transkrypt:

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, 7.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x) oznacza deszyfrowanie kryptogramu x kluczem K. Własność RSA: Niech K 1, K 2 to para kluczy dla algorytmu RSA. Wówczas: D K1 (E K2 (x)) = D K2 (E K1 (x)). Powód: szyfrowanie i deszyfrowanie to ta sama operacja. Zastosowania: szyfrowanie; uwierzytelnianie; 1.1 Algorytm RSA Wybór kluczy 1. Losowy wybór (dużych) liczb pierwszych p i q. 2. Losowy wybór liczby e spełniającej warunek: e i (p 1)(q 1) są względnie pierwsze. 1

3. Wybór za pomocą algorytmu Euklidesa liczby d takiej, że e d = 1 mod (p 1)(q 1). 4. Wyznaczenie n = p q i usunięcie liczb p, q. 5. Niech para [e, n] to klucz publiczny, para [d, n] to klucz prywatny. Szyfrowanie Liczbę m < n szyfrujemy w następujący sposób: E [e,n] (m) = m e mod n. Deszyfrowanie Kryptogram c deszyfrujemy w następujący sposób: D [d,n] (c) = c d mod n. Uwaga: szyfrowana wiadomość m na nie więcej bitów niż n, podobnie jej zaszyfrowana postać E [e,n] (m). Narzędzia matematyczne potrzebne przy analizie własności RSA: Twierdzenie 1 (Eulera) Niech φ(n) oznacza liczbę liczb naturalnych mniejszych od n, które sa względnie pierwsze z n. Niech x < n takie, że x i n sa względnie pierwsze. Wówczas x φ(n) = 1 mod n. Wniosek 1 (Twierdzenie Fermata) Jeśli n jest liczba pierwsza, to x n 1 = 1 mod n 2

dla każdego x < n. Algorytm Euklidesa: Dane: liczby naturalne m > n. Wyniki: d =NWD(m, n) oraz s, t takie, że d = sm + tn. 1. a := m, a := n, s := 1, s := 0, t := 0, t := 1 2. Dopóki a 0, powtarzaj: 3. d := a q := a div a (a, a ) := (a, a qa ) (s, s ) := (s, s qs ) (t, t ) := (t, t qt ) Jak wykorzystać algorytm Euklidesa do wyznaczenia d: warunek e d = 1 mod (p 1)(q 1) jest równoważny znalezieniu całkowitych d, f takich, że e d + f (p 1)(q 1) = 1 = NWD(e, (p 1)(q 1)). Poprawność deszyfrowania: Twierdzenie 2 Niech [e, n], [d, n] to para kluczy RSA. Wówczas dla każdego m < n zachodzi: D [d,n] (E [e,n] (m)) = m. 3

Dowód. Jeśli NWD(m, n) = 1: D [d,n] (E [e,n] (m)) = D [d,n] (m e mod n) = m ed mod n. Z faktu, że e d = 1 mod (p 1)(q 1) uzyskujemy: e d = 1 + x(p 1)(q 1) = 1 + φ(n), dla pewnego naturalnego x. Stosując twierdzenie Eulera: Jeśli NWD(m, n) > 1: m ed = m (m φ(n) ) x = m mod n. ten przypadek ma bardzo małe prawdoodobieństwo; wystąpienie tego przypadku pozwala znaleźć p i q a tym samym d (na podstawie e i n): oznacza to złamanie kluczy; niemniej, również w tym przypadku deszyfrowanie da poprawny wynik (dowód w oparciu o twierdzenie Fermata i chińskie twierdzenie o resztach). Bezpieczeństwo i implementacja RSA: 1. podstawowa metoda łamania RSA: rozkład n na czynniki pierwsze (faktoryzacja); znane tylko algorytmy o złożoności wykładniczej, w praktyce pozwoliły złamać tylko klucze 512-bitowe; 4

2. generowanie losowych liczb pierwszych: możliwe dzięki dużej gęstości liczb pierwszych (frakcja 1/ ln n w przedziale [2, n]); 3. sprawdzanie pierwszości liczb: wydajne algorytmy probabilistyczne; algorytm deterministyczny o wielomianowym czasie działania. Uwaga: sprawdzanie pierwszości może wykluczyć pierwszość liczby, bez podania jej dzielników (p. faktoryzacja). Przyklad 1 daddg 1.2 Sprawdzanie pierwszości Uwagi: 1. Istnieje deterministyczny algorytm sprawdzający pierwszość w wielomianowym czasie (alg. Agrawal-Kayal- Saxena). 2. W praktyce najpopularniejsze są probabilistyczne testy pierwszości, np. (oparte na teście Fermata), test Solovaya- Strassena i test Millera-Rabina. Liczbę w nazywamy świadkiem pierwszości dla liczby n jeśli w < n oraz w n 1 = 1 mod n. Test Fermata (dla liczby n): 1. Powtarzamy k razy: 5

(a) Wybieramy losowo liczbę w taką, że w < n. Jeśli NWD(w, n) > 1, to n jest liczbą złożoną. (b) Jeśli w n 1 1 mod n, to n jest liczbą złożoną. 2. Jeśli żadna z k powyższych prób nie zakończyła się stwierdzeniem, że n jest liczbą złożoną, stwierdzamy, że n jest liczbą pierwszą. Lemat 1 Niech S będzie zbiorem liczb względnie pierwszych z n (i mniejszych od n). Wtedy albo każdy element S jest świadkiem pierwszości n albo co najwyżej połowa jest świadkami pierwszości S. Dowód: Niech w 1,..., w t będą wszystkimi świadkami pierwszości n. Załóżmy, że istnieje w S, który nie jest świadkiem pierwszości n. Niech u i = w i w dla i [1, t]. Pokażemy, że u i u j dla i j oraz u i nie jest świadkiem pierwszości dla każdego i, j [1, t]: u i u j : Załóżmy nie wprost, że u i = u j Zauważmy, że u i u j = w(w i w j ) = 0, czyli n dzieli u i u j. Skoro w S, czyli w jest względnie pierwszy z n, więc n dzieli w i w j. Ale n < w i w j < n, więc w i = w j sprzeczność. u n 1 i = (ww i ) n 1 = w n 1 w n 1 i = w n 1 1 mod n. 6

Wniosek 2 Jeśli n jest liczba złożona dla której istnieje w < n które nie jest świadkiem pierwszości n, to test Fermata zwraca dla n poprawna odpowiedź z prawdopodobieństwem 1 1/2 k. Jeśli n jest liczba pierwsza to test Fermata zawsze zwraca dla n poprawna odpowiedź. Problem: istnieją liczby złożone, dla których wszystkie liczby względnie pierwsze (i mniejsze) są świadkami pierwszości. Rozwiazanie: test Millera-Rabina dla liczby n. Niech n 1 = 2 t m, gdzie m jest liczbą nieparzystą. Powtarzamy k razy: 1. Wybieramy losowo a < n i wyznaczamy w = a m mod n. 2. Niech i będzie minimalną wartością taką, że w 2i 1 mod n lub i = t. 3. Jeśli w 2t 1 mod n lub w 2i 1 1 mod n, to stwierdzamy, że n jest liczbą złożoną. Jeśli żadna z k powyższych prób nie zakończyła się stwierdzeniem, że n jest liczbą złożoną, stwierdzamy, że n jest liczbą pierwszą. Twierdzenie 3 Dla każdej liczby pierwszej test Millera-Rabina zwraca poprawna odpowiedź. Dla każdej liczby złożonej test Millera-Rabina zwraca poprawna odpowiedź z prawdopodobieństwem co najmniej 1 (1/4) k. 7

1.3 Bezpieczeństwo RSA 1. Nie należy stosować dwóch lub więcej par kluczy z tą samą wartością n. 2. Łamanie RSA ma podobną trudność do zadania rozkładu liczb na czynniki pierwsze. 2 Jednokierunkowe funkcje haszujace Pożądane własności funkcji h: Jednokierunkowa: dla danego y praktycznie niemożliwe znalezienie x takiego, że h(x) = y; natomiast samo wyznaczanie wartości funkcji h jest łatwe (obliczeniowo). Słabo bezkonfliktowa: dla danego x niemożliwe (w praktyce) wyznaczenie x takiego, że h(x) = h(x ). Silnie bezkonfliktowa: praktycznie nie jest możliwe znalezienie x, x takich, że h(x) = h(x ). Dla zastosowań interesuje nas znalezienie takiej funkcji h (albo iteracyjnego zastosowania pewnej funkcji), która jest jednokierunkowa i bezkonfliktowa oraz przekształca ciągi (liczby) dowolnej długości w ciągi (liczby) o ustalonej długości: Zastosowania: przechowywanie haseł; h : {0, 1} {0, 1} k. 8

zabezpieczanie przed zmianami (MAC); odcisk palca. 3 Zastosowania Podpis elektroniczny, szybkie szyfrowanie, uwierzytelnianie, bezpieczna komunikacja,... 9