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



Podobne dokumenty
Podstawy systemów kryptograficznych z kluczem jawnym RSA

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

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.

Matematyka dyskretna

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

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

Kryptologia przykład metody RSA

Algorytmy asymetryczne

Wybrane zagadnienia teorii liczb

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

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)

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

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

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

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

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

Matematyka dyskretna

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

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

Copyright by K. Trybicka-Francik 1

Copyright by K. Trybicka-Francik 1

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

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

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

Liczby pierwsze na straży tajemnic

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

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

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

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

Bezpieczeństwo danych, zabezpieczanie safety, security

Przewodnik użytkownika

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

Kody Tunstalla. Kodowanie arytmetyczne

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

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

Bezpieczeństwo w Internecie

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

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

Matematyka dyskretna

Zadanie 2: Kryptosystem Rabina

Szyfrowanie RSA (Podróż do krainy kryptografii)

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

Spis treści. Przedmowa... 9

Post-kwantowy algorytm podpisu cyfrowego Kryptosystem NTRU

Kryptologia(nie)stosowana

Bezpieczeństwo systemów komputerowych

Matematyka dyskretna

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

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

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

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

Zarys algorytmów kryptograficznych

Seminarium Ochrony Danych

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

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.

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Liczby pierwsze wielomianowo - ekstremalnie trudne?

Wykład 9. komputerowych Głosowanie internetowe - główne slajdy. 23 listopada Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Kryptografia na procesorach wielordzeniowych

0 + 0 = 0, = 1, = 1, = 0.

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

Bezpieczna poczta i PGP

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić?

Zastosowania informatyki w gospodarce Wykład 5

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

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

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.


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

Kryptografia kwantowa. Marta Michalska

SCHEMAT ZABEZPIECZENIA WYMIANY INFORMACJI POMIĘDZY TRZEMA UŻYTKOWNIKAMI KRYPTOGRAFICZNYM SYSTEMEM RSA

(b) (d) 3,3,2,3,3,0,0,

Wstęp do systemów wielozadaniowych laboratorium 21 Szyfrowanie

Laboratorium nr 2 Szyfrowanie, podpis elektroniczny i certyfikaty

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Liczby pierwsze. Jacek Nowicki Wersja 1.0

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

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

Liczby pierwsze. Jacek Nowicki Wersja 0.92

Parametry systemów klucza publicznego

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

Kryptografia szyfrowanie i zabezpieczanie danych

Kodowanie informacji

WEP: przykład statystycznego ataku na źle zaprojektowany algorytm szyfrowania

Matematyka dyskretna

Ataki na algorytm RSA

Nierówność Krafta-McMillana, Kodowanie Huffmana

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

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

Matematyka dyskretna

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

2 Kryptografia: algorytmy symetryczne

Kwantowe przelewy bankowe foton na usługach biznesu

Kompresja bezstratna. Entropia. Kod Huffmana

HITCON CTF 2015 Rsabin

Transkrypt:

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

Idea kryptografii z kluczem publicznym: wiadomość f szyfrogram f 1 wiadomość Funkcja f (klucz publiczny) jest znana publicznie, a jej odwrotność f 1 (klucz prywatny) jest znana tylko właścicielowi klucza. Każdy może zakodować wiadomość, którą będzie mógł przeczytać tylko właściciel klucza. Żeby to było możliwe, wyznaczenie f 1 na podstawie f musi być niemożliwe (lub beznadziejnie trudne). Jakie znamy takie funkcje? funkcja wykładnicza (El-Gamal) wymnożenie dwóch czynników pierwszych (RSA)

Kryptosystem El-Gamal Odbiorca wybiera liczbę pierwszą p i jeden z jej pierwiastków pierwotnych B (gwarantuje to różnowartościowość funkcji k B k ). Następnie wybiera pewien wykładnik m jako swój klucz prywatny i oblicza C = B m. Jako klucz publiczny ujawnia trójkę [p, B, C]. Nadawca by przesłać blok wiadomości P wybiera dowolną liczbę r {2,..., p 1} i na podstawie klucza publicznego generuje dwa bloki szyfrogramu: X 1 = B r, X 2 = P C r ( mod p) Odbiorca wykonuje operację deszyfrującą z użyciem klucza prywatnego: P = X 2 X p 1 m 1 (mod p)

Kryptosystem El-Gamal Dowód: X 2 X p 1 m 1 = P C r (B r ) p 1 m = P B mr B r(p 1) rm = P B (p 1)r = P 1 r = P Przedostatnia równość z twierdzenia Fermata. Żeby obliczyć klucz prywatny z publicznego, trzeba umieć obliczyć log B (C) w Z p.

Kryptosystem El-Gamal Przykład: Kodujemy litery alfabetu, które można zapisywać w 5-cio bitowych blokach. Z przedziału 2 5, 2 6 wybieramy liczbę pierwszą p = 41. Weźmy: B = 13, m = 29. Obliczamy C = B m = 34. Dla klucza prywatnego m = 29 wygenerowaliśmy klucz publiczny [p = 41, B = 13, C = 34]. Nadawca chce nam wysłać tekst WITAJ, zapisany jako numery liter w alfabecie: [22, 8, 19, 0, 9]. Nadawca wybiera liczbę r = 5 (dla uproszczenia dla każdej litery tę samą, w praktyce lepiej zawsze losować inną). Oblicza X 1 = B r = 38 i tworzy szyfrogram: (38, 25), (38, 24), (38, 16), (38, 0), (38, 27) wykorzystując wzór (X 1, X 2 ) = (B r, P C r ) Odbiorca dekoduje szyfrogram wzorem X 2 X p 1 m 1

Kryptosystem El-Gamal $ python >>> f=lambda x :(13 x)% 41 # definiujemy f. wykladnicza o podst 13 w c i e l e Z 41 >>> m=29 # wybieramy k l u c z prywatny >>> C=f (m) # o b l i c z a m y C >>> p r i n t C 34 >>> r =5; X1=f ( r ) # nadawca w y b i e r a r i o b l i c z a X1=Bˆ r >>> p r i n t X1 38 >>> s=map( lambda x : ( x C 5 ) % 4 1, [ 2 2, 8, 1 9, 0, 9 ] ) # s z y f r u j e m y c i a g znakow >>> p r i n t s [ 2 5 L, 24L, 16L, 0L, 27L ] >>> map( lambda x : ( x 38 (41 m 1))%41, [ 2 5, 2 4, 1 6, 0, 2 7 ] ) # d e s z y f r u j e m y [ 2 2, 8, 19, 0, 9 ] >>> e x i t ( )

Podpis elektroniczny w systemie El-Gamal Podpisujący wybiera dowolne r : NWD(r, p 1) = 1 i oblicza (na podstawie klucza prywatnego) dwie liczby u i v: u = B r, rv + mu = P mod p 1 Wysyła je do odbiorcy wraz z blokiem P, który jest teraz podpisany. Odbiorca na podstawie klucza publicznego sprawdza, czy: C u u v = B P mod p Jeżeli to prawda, to znaczy że wiarygodność bloku P potwierdził ktoś kto zna klucz prywatny. Dowód: C u u v = B mu B rv = B mu+rv = B P(+α (p 1)) = B P (B p 1 ) α = B P

Podpis elektroniczny w systemie El-Gamal Przykład: Chcemy podpisać blok P = 18. Kluczem publicznym jest [p = 41, B = 13, C = 34], a prywatnym m = 29 (jak poprzednio). Wybieramy r = 7. Obliczamy: u = B r mod p = 13 7 mod 41 = 26 v = r 1 (P mu) mod p 1 = 23 (18 29 10) = 32 i wysyłamy to jako podpis bloku P. Odbiorca na podstawie klucza publicznego oblicza liczby: C u u v = 34 26 26 32 mod 41 = 8 B P = 13 18 mod 41 = 8 zatem wiadomość wysłał posiadacz klucza prywatnego który odpowiada kluczowi publicznemu!

Podpis elektroniczny w systemie El-Gamal $ python >>> p=41; B=13; C=34 # nasz k l u c z p u b l i c z n y >>> m=29 # i prywatny >>> P=18 # b l o k k t o r y p o d p i s u j e m y >>> r=7 # wybieramy r >>> u=b r % p # o b l i c z a m y p i e r w s z a c z e s c p o d p i s u >>> r (16 1) % ( p 1) # znajdujemy odwrotnosc r modulo 40, \ phi (40)=16 23 >>> r 23 % p # sprawdzamy 1 >>> v =((P m u ) 23) % ( p 1) # o b l i c z a m y druga c z e s c p o d p i s u >>> p r i n t u, v 26 32 >>> (C u u v ) % p 8L >>> (B P) % p 8L >>> e x i t ( )

Kryptosystem RSA Wybieramy dwie duże liczby pierwsze (ale niezbyt bliskie sobie) p i q. Tworzymy liczbę złożoną n = pq i wybieramy e Z n taki, że NWD(e, φ(n)) = 1. Istnieje wtedy takie d, że ed = 1 mod φ(n). Para (n, e) jest kluczem publicznym, a d kluczem prywatnym. Blok wiadomości b kodujemy jako c = b e (mod pq), a dekodujemy jako b = c d (mod pq). Dowód: Musimy udowodnić, że dla dowolnego b: b ed = b mod pq b ed 1 = 1. ed 1 = h(p 1)(q 1). Rozważamy dwa przypadki: gdy b = 0 mod p, gdy b 0 mod p. W pierwszym przypadku b ed = 0 ed = b mod p. W drugim przypadku NWD(b, p) = 1 i z twierdzenia Fermata b p 1 = 1 mod p = b ed 1 = 1 mod p, zatem b ed = b mod p. Tak samo udowodnimy, że b ed = b mod q, zatem z ChToR: b ed = b mod pq

Kryptosystem RSA Przykład: Weźmy dwie liczby pierwsze p = 11 i q = 13. Wtedy n = 143 i φ(n) = 120. Weźmy e = 7 - jest wzgl. pierwsze ze 120. d = e 1 mod 120 = e φ(n) 1 = 7 119 mod 120 = 103. Niech wiadomością będzie liczba 58. Po zakodowaniu: 58 7 mod 143 = 20 Dekodujemy kluczem prywatnym: 20 103 = 58

Podpis elektroniczny w systemie RSA $ python >>> p=11;q=13;n=p q ; phi=(p 1) (q 1) >>> p r i n t p, q, n, p h i 11 13 143 120 >>> e=7 # wybieramy l i c z b e wzglednie pierwsza z phi ( klucz publiczny ) >>> d=e (120 1) % p h i # liczymy j e j odwrotnosc w Z phi ( klucz prywatny ) >>> d 103L >>> 58 e % n # kodujemy wiadomosc >>> x 20 >>> x d % n # dekodujemy wiadomosc 58L >>> e x i t ( )

Podpis elektroniczny w systemie RSA Nadawca koduje blok b swoim kluczem prywatnym: b d i wysyła do odbiorcy oba bloki [b, b d ]. Odbiorca dekoduje drugi blok używając wykładnika e z klucza publicznego: (b d ) e. Jeżeli w wyniku wyszło b, to znaczy że wiadomość podpisał posiadacz klucza prywatnego.