Podstawy systemów kryptograficznych z kluczem jawnym RSA



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

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)

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

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

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. Wykład 11: Kryptografia z kluczem publicznym. Gniewomir Sarbicki

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

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

Zarys algorytmów kryptograficznych

Copyright by K. Trybicka-Francik 1

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

Copyright by K. Trybicka-Francik 1

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

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

Algorytmy asymetryczne

Wybrane zagadnienia teorii liczb

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

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

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

Bezpieczeństwo systemów komputerowych

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

Przewodnik użytkownika

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

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

Parametry systemów klucza publicznego

Spis treści. Przedmowa... 9

Kryptologia przykład metody RSA

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

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

2 Kryptografia: algorytmy symetryczne

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

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

Liczby pierwsze wielomianowo - ekstremalnie trudne?

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

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

Szyfrowanie RSA (Podróż do krainy kryptografii)

Bezpieczeństwo danych, zabezpieczanie safety, security

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

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

Liczby pierwsze na straży tajemnic

Matematyka dyskretna

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

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

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

KUS - KONFIGURACJA URZĄDZEŃ SIECIOWYCH - E.13 ZABEZPIECZANIE DOSTĘPU DO SYSTEMÓW OPERACYJNYCH KOMPUTERÓW PRACUJĄCYCH W SIECI.

Post-kwantowy algorytm podpisu cyfrowego Kryptosystem NTRU

Podstawy Secure Sockets Layer

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

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

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

MADE IN CHINA czyli SYSTEM RESZTOWY

Matematyka dyskretna

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

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

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

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Nowy klucz jest jedynie tak bezpieczny jak klucz stary. Bezpieczeństwo systemów komputerowych

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

Jeśli lubisz matematykę

Pierwiastki pierwotne, logarytmy dyskretne

Badanie pierwszości liczby, klasa NP i test Rabina

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.

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

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

Matematyka dyskretna

Kwantowe przelewy bankowe foton na usługach biznesu

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Algorytmy i struktury danych. Wykład 4

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.

KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE

Prawdopodobieństwo i statystyka

Ataki na algorytm RSA

Temat: Kryptografia kwantowa. Autor: Tomasz Stachlewski. Data: październik Krótkie wprowadzenie

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

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

Haszowanie. dr inż. Urszula Gałązka

Plan całości wykładu. Ochrona informacji 1

Bezpieczeństwo korespondencji elektronicznej

Kryptografia kwantowa. Marta Michalska

Seminarium Ochrony Danych

Kryptografia na procesorach wielordzeniowych

ABI i ASI w organizacji

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

WSIZ Copernicus we Wrocławiu

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.

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

Kongruencje pierwsze kroki

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

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

Peter W. Shor - Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. 19 listopada 2004 roku

Kryptografia szyfrowanie i zabezpieczanie danych

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

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

Algorytmy i Struktury Danych, 9. ćwiczenia

Matematyka dyskretna

Transkrypt:

Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych między dwiema porozumiewającymi się stronami tak, aby ktoś, kto podsłucha informację, nie był w stanie jej zdekodować. Ponadto, system taki umożliwia dołączenie na końcu elektronicznie przesyłanej informacji niemożliwy do podrobienia podpis cyfrowy. Podpis cyfrowy traci ważność, gdy zmieniony zostanie choćby bit przesyłanej informacji, może służyć zatem zarówno do potwierdzenia tożsamości nadawcy jak i treści przesyłanej wiadomości. Ogólna zasada systemów RSA: łatwo odnaleźć dużą liczbę pierwszą, ale trudno rozłożyć na czynniki iloczyn dwóch dużych liczb pierwszych. 1

Klucz jawny (public key), klucz tajny (secret key) Klucz to pewien zestaw informacji. W systemie RSA każdy klucz składa się z pary liczb naturalnych. Każdy użytkownik tworzy dwa własne klucze: jawny oraz tajny. Klucz tajny jest trzymany w ukryciu. Klucz jawny można np. opublikować w ogólnie dostępnym katalogu tak, żeby dowolny użytkownik mógł bez trudu uzyskać do niego dostęp. Klucze definiują funkcje, które można stosować do dowolnej wiadomości. Zakładamy, że funkcje te dają się efektywnie obliczać, gdy znany jest klucz. Alicja klucz publiczny P A i odpowiadająca mu funkcja P A (); klucz prywatny S A i odpowiadająca mu funkcja S A () Bob klucz publiczny P B, funkcja P B (); klucz prywatny S B, funkcja S B (); 2

Niech D oznacza zbiór dopuszczalnych wiadomości, np. zbiór wszystkich skończonych ciągów bitów. Funkcje P A (), S A ()itp. są zatem permutacjami zbioru D. Klucze jawny i tajny każdego użytkownika określają funkcje, które są nawzajem swoimi odwrotnościami: M = S A (P A (M)) M = P A (S A (M)) dla dowolnej wiadomości M. Podstawową właściwością systemów z kluczem jawnym jest to, że nikt oprócz właściciela nie jest w stanie obliczyć funkcji S() w rozsądnym czasie. Np. zakładamy, że jedynie Alicja potrafi obliczać S A () i dlatego trzyma klucz S A w tajemnicy. 3

Założenie, że jedynie Alicja potrafi obliczać S A () musi być spełnione, pomimo, że każdy zna P A i może efektywnie obliczać P A () funkcję odwrotną do S A (). Główny problem polega więc na tym, że musimy stworzyć system, w którym można ujawnić przekształcenie P A (), bez zdradzania, jak obliczać przekształcenie odwrotne S A (). 4

Szyfrowanie wiadomości Przypuśćmy, że Bob chce wysłać Alicji wiadomość M zaszyfrowaną tak, żeby dla osoby podsłuchującej była niezrozumiała. 1. Bob pobiera klucz jawny Alicji P A. 2. Bob oblicza tekst zaszyfrowany C=P A (M) odpowiadający wiadomości M i przesyła go Alicji. 3. Alicja po otrzymaniu zaszyfrowanego tekstu C, stosuje do niego swój klucz tajny, otrzymując wiadomość pierwotną M=S A (C). 5

Podpis cyfrowy Załóżmy, że Alicja chce wysłać Bobowi podpisaną cyfrowo wiadomość M. 1. Alicja oblicza swój podpis cyfrowy σ = S A (M )dla wiadomości M. 2. Alicja wysyła do Boba parę wiadomość/podpis (M,σ). 3. Bob, po otrzymaniu pary (M,σ) może sprawdzić, czy naprawdę pochodzi ona od Alicji, korzystając z klucza jawnego Alicji i sprawdzając równość M =P A (σ) (założyliśmy, że Bob będzie wiedział jakiego klucza użyć np. wiadomość M jest podpisana). Jeżeli równość zachodzi, wiadomość pochodzi od Alicji, w przeciwnym wypadku została wysłana przez kogoś innego, albo też wiadomość lub podpis zostały uszkodzone przy transmisji. 6

Jak widać, cyfrowy podpis zapewnia zarówno potwierdzenie tożsamości nadawcy jak i autentyczność treści wiadomości. Inną własnością podpisu cyfrowego jest to, że jego autentyczność może być zweryfikowana przez dowolną osobę, która ma dostęp do klucza jawnego osoby podpisującej. Przykład: wiadomość może być elektronicznym czekiem Alicji wystawionym na Boba. Bob może sprawdzić autentyczność czeku i np. przekazać go do banku, który ponownie go sprawdzi i dokona przelewu. Bob nie będzie miał możliwości np. zmiany kwoty na czeku, bo przestanie się zgadzać podpis cyfrowy. W przykładzie podpisana wiadomość była nie zaszyfrowana. Procedura wysyłania zaszyfrowanej wiadomości z podpisem: Podpisujący najpierw dołącza swój podpis cyfrowy do wiadomości a następnie szyfruje parę wiadomość/podpis kluczem jawnym adresata. Odbiorca odszyfrowuje wiadomość / podpis stosując swój klucz tajny, następnie weryfikuje podpis kluczem jawnym nadawcy. 7

System kryptograficzny RSA Użytkownicy systemu tworzą klucze jawne i tajne w następujący sposób: 1. Wybierz losowo dwie duże (np. 1024 lub 2048-bitowe) liczby pierwsze p i q. 2. Oblicz n = pq. 3. Wybierz niewielką nieparzystą liczbę e, względnie pierwszą (nie mającą wspólnego dzielnika) z wartością t=(p-1)(q-1). 4. Oblicz d będące odwrotnością e modulo t. Na mocy odpowiednich twierdzeń d istnieje i jest wyznaczone jednoznacznie. Para P=(e,n) stanowi klucz jawny RSA. Para S=(d,n) stanowi klucz tajny RSA. 8

Przekształceniem wiadomości M odpowiadającemu kluczowi jawnemu P=(e,n) jest: P(M)=M e (mod n) Przekształceniem tekstu zaszyfrowanego C odpowiadającego kluczowi tajnemu S=(d,n) jest: S(C)=C d (mod n) Przekształcenia te są wzajemnie odwrotne. Bezpieczeństwo systemu RSA opiera się na trudności rozkładu na czynniki dużych liczb. Jeżeli osoba podsłuchująca potrafiłaby to zrobić (tzn. liczbę n rozłożyć na iloczyn pq), system zostałby złamany. 9

Przykład (dla małych liczb pierwszych) 1. Wybieramy p=53, q=71. 2. Wyliczamy iloczyn n = pq = 3763. 3. Wyliczamy t=(p-1)(q-1)=52*70=3640. 4. Wybieramy e takie, żeby było względnie pierwsze z t. Jest to np. liczba e=3. 5. Obliczamy element odwrotny do e=3 modulo t=3640, tzn taki, żeby ed = 1(mod t). Wynosi on d=2427. Sprawdzamy: 3*2427(mod 3640) = 7281(mod 3640) = 1 Otrzymaliśmy klucz publiczny (e,n)=(3,3763) oraz klucz prywatny (d,n)=(2427,3763). 10

Szyfrujemy wiadomość, która jest np. liczbą M=1000. C = M e (mod n) = 1000 3 (mod 3763) = 1565 Odszyfrowujemy wiadomość: M= C d (mod n) = 1565 2427 (mod 3640) = 1000 Długość szyfrowanego tekstu nie może przekraczać n. Długie wiadomości można więc dzielić na mniejsze lub szyfrować sam klucz do wiadomości. Dodatkowo, gdy oryginalna wiadomość podniesiona do potęgi e (a e jest małe) nie przekroczy n, to nie zostanie ona zaszyfrowana, gdyż nie nastąpi skrócenie modulo. Przykład: chcemy zaszyfrować M=12. C = M e (mod n) = 12 3 (mod 3763) = 1728 Ponieważ e=3 jest znane (należy do klucza publicznego), można wyliczyć pierwiastek trzeciego stopnia z C i odzyskać M. 11

Sprawdzanie, czy liczba n jest pierwsza 1. Algorytm siłowy Dzielimy do skutku sprawdzaną liczbę n przez kolejne liczby 2, 3,..., n. Liczba n jest liczbą pierwszą, jeżeli nie dzieli się całkowicie przez każdą z nich. Czas wykładniczy w stosunku do długości liczby n. Większość innych algorytmów wymaga czasu wykładniczego. 2. Probabilistyczny test Millera-Rabina Algorytm sprawdza na podstawie twierdzenia Fermata, czy liczba jest kandydatem na liczbę pierwszą, wykonując odpowiednio dobrane testy. Dla wykonanych s-testów, prawdopodobieństwo błędu nie przekracza 2 s-1. Przy odpowiednio dużej liczbie testów, prawdopodobieństwo pomyłki jest niewielkie. 12

3. Algorytm Agrawala, Kayala, i Saxena (2004 r.) Bezwarunkowy, deterministyczny test, działający w czasie wielomianowym. Oparty na uogólnionym małym twierdzeniu Fermata. Jeżeli liczby a i n 2 są względnie pierwsze, to n jest liczbą pierwszą wtedy i tylko wtedy, gdy (X + a) n = X n + a (mod n) Źródło: Annals of Mathematics, 160 (2004), 781 793 http://www.math.princeton.edu/~annals/issues/2004/sept2004/agrawal.pdf 13

Rozkład na czynniki (faktoryzacja) liczby n. 1. Heurystyka ro Pollarda Dzieląc do skutku przez wszystkie liczby aż do B, rozłożymy całkowicie na czynniki każdą liczbę aż do B 2. Metoda efektywna dla szukania małych czynników. Potrafi znaleźć czynnik p w średnim czasie proporcjonalnym do p. Dla dużych czynników jej czas działania mocno się wydłuża, aż do wykładniczego. 2. Algorytm Shora (1994 r.) Algorytm możliwy do zaimplementowania na komputerze kwantowym. Czas działania proporcjonalny do log 3 n, a więc algorytm jest bardzo szybki. Udało się go zaimplementować na prostym komputerze kwantowym i rozłożyć za jego pomocą liczbę 15 na czynniki. 14