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

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

Bezpieczeństwo systemów komputerowych

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

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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

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

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

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

2 Kryptografia: algorytmy symetryczne

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

Matematyka dyskretna

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

Spis treści. Przedmowa... 9

Matematyka dyskretna

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

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

Parametry systemów klucza publicznego

Elementy teorii liczb. Matematyka dyskretna

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

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

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

Algorytmy asymetryczne

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

Matematyka dyskretna

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

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

Badanie pierwszości liczby, klasa NP i test Rabina

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

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

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

Kryptografia na procesorach wielordzeniowych

Zarys algorytmów kryptograficznych

Zadanie 2: Kryptosystem Rabina

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

Algorytmy i struktury danych. Wykład 4

Matematyka dyskretna

WSIZ Copernicus we Wrocławiu

Matematyka dyskretna

Przykładowe zadania z teorii liczb

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

Zadania do samodzielnego rozwiązania

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

Szyfrowanie RSA (Podróż do krainy kryptografii)

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

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

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

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

Liczby pierwsze. Jacek Nowicki Wersja 1.0

Liczby pierwsze. Jacek Nowicki Wersja 0.92

Bezpieczeństwo danych, zabezpieczanie safety, security

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

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

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

Wprowadzenie ciag dalszy

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

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

Algorytmy w teorii liczb

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

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

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.

Kongruencje pierwsze kroki

Kongruencje oraz przykłady ich zastosowań

Teoretyczne podstawy informatyki

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

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

MADE IN CHINA czyli SYSTEM RESZTOWY

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

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Kryptologia przykład metody RSA

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Matematyka dyskretna

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

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

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

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

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

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

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

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

Algorytm i złożoność obliczeniowa algorytmu

Pierwiastki pierwotne, logarytmy dyskretne

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

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

Kongruencje i ich zastosowania

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

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

Algebra liniowa z geometrią analityczną

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

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

Algorytmy i Struktury Danych, 9. ćwiczenia

Transkrypt:

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, 19.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. 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. 1

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 dla każdego x < n. x n 1 = 1 mod n Algorytm Euklidesa: Dane: liczby naturalne m > n. Wyniki: c =NWD(m, n) oraz s, t takie, że c = sm + tn. 1. a := m, a := n, s := 1, s := 0, t := 0, t := 1 2. Dopóki a 0, powtarzaj: 3. c := 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)) czyli stosujemy algorytm Euklidesa dla m = max(e, (p 1)(q 1) i n = min(e, (p 1)(q 1)) i zwracamy końcową wartość s lub t. 2

1.1.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. 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; 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). 3

1.2 RSA: przykład 1. Losujemy liczby pierwsze p = 7 i q = 11. 2. Wyznaczamy (p 1)(q 1) = 6 10 = 60. 3. Wybieramy losową liczbę e i sprawdzamy czy jest względnie pierwsza z (p 1)(q 1). Czynność powtarzamy aż do napotkania liczby względnie pierwszej z (p 1)(q 1). (Sprawdzanie względniej pierwszości: algorytm Euklidesa). Niech e = 13. 4. Szukamy d takiego, że e d = 1 mod (p 1)(q 1), czyli co oznacza wyznaczanie NWD(60, 13): 5. W konsekwencji mamy: 13 d = 1 mod 60 m n q a a s s t t 60 13 60 13 1 0 0 1 4 13 8 0 1 1 4 1 8 5 1 1 4 5 1 5 3 1 2 5 9 1 3 2 2 3 9 14 1 2 1 3 5 14 23 2 1 0 5-23 13 ( 23) 1 mod 60 czyli d = 37. 13 (60 23) 1 mod 60 13 37 1 mod 60 6. Klucz publiczny: (13, 77) Klucz prywatny (37, 77). Niszczymy wszelkie ślady po tym, że używaliśmy liczb 7 i 11. 7. Co można szyfrować: ciągi bitów o wartości mniejszej od 77 (ciągi ciągi 6- bitowe). 4

1.3 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: (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. 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ź. 5

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. 1.4 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: h : {0, 1} {0, 1} k. 6

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