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



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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

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

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

Podstawy systemów kryptograficznych z kluczem jawnym RSA

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

Szyfrowanie RSA (Podróż do krainy kryptografii)

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

Zarys algorytmów kryptograficznych

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

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)

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

Przewodnik użytkownika

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

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

Bezpieczeństwo danych, zabezpieczanie safety, security

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

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

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

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

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

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

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Algorytmy asymetryczne

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac?

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

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

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

Authenticated Encryption

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

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

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

Copyright by K. Trybicka-Francik 1

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

SET (Secure Electronic Transaction)

Instrukcja sprawdzani, podpisywani i szyfrowania plików do systemu CerBeR

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

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

Copyright by K. Trybicka-Francik 1

WSIZ Copernicus we Wrocławiu

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

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

Spis treści. Przedmowa... 9

SSL (Secure Socket Layer)

2 Kryptografia: algorytmy symetryczne

Kryptologia przykład metody RSA

Kryptografia na procesorach wielordzeniowych

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

Czym jest kryptografia?

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

Laboratorium Programowania Kart Elektronicznych

Technologia Internetowa w organizacji giełdy przemysłowej

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Podpis elektroniczny

Protokoły zdalnego logowania Telnet i SSH

Zastosowania informatyki w gospodarce Wykład 5

Bezpieczeństwo w Internecie

Wykorzystanie protokołu T=CL w systemach kontroli dostępu

Księgarnia PWN: Kevin Kenan - Kryptografia w bazach danych. Spis treści. Podziękowania O autorze Wprowadzenie... 15

BEZPIECZEOSTWO SYSTEMU OPERO

Wstęp do systemów wielozadaniowych laboratorium 21 Szyfrowanie

Marcin Szeliga Dane

Laboratorium nr 2 Szyfrowanie, podpis elektroniczny i certyfikaty

Opis efektów kształcenia dla modułu zajęć

Strategia gospodarki elektronicznej

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

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

Bezpieczeństwo kart elektronicznych

Usługi sieciowe systemu Linux

Wprowadzenie do technologii VPN

INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

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

Wybrane zagadnienia teorii liczb

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

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Zadanie 1. Potęgi (14 pkt)

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE

Szczegółowy opis przedmiotu zamówienia:

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

Scenariusz lekcji. wymienić różnice pomiędzy kryptologią, kryptografią i kryptoanalizą;

IBM i Wersja 7.3. Bezpieczeństwo Program Digital Certificate Manager IBM

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

System Użytkowników Wirtualnych

Bezpieczeństwo korespondencji elektronicznej

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

Bezpieczna poczta i PGP

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

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

Transkrypt:

Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972 Kamil Stasiak 143099 Michał Mela 150940 Michał Kamiński 150897 Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA 1. Cel Celem zadania było napisanie protokołu ślepych podpisów cyfrowych w oprarciu o algorytm RSA. Ponaddto stworzenie aplikacji, która wysyła dokument do podpisu otrzymuje podpisany dokument i sprawdza poprawność podpisu. 2. Opis algorytmu RSA Algorytm RSA jest algorytmem szyfracji danych asymetrycznie. Nazwa algotytmu pochodzi od jego autorów Rivesta, Shamira i Adlemana. Opiera się o parę kluczy tzw. klucz publiczny i klucz prywatny. Ważną własnościa algorytmu RSA jest przemienność: Jeżeli K 1 i K 2 są kluczami to dla dowolnej wiadomości m zachodzi: D K1 (E K2 (m)) = m (1) D K2 (E K1 (m)) = m (2) 1

2.1. Generowanie kluczy RSA Wybieramy losowo dwie duże liczby pierwsze p i q Obliczamy Wyznaczamy funkcję Eulera n = pq (3) ϕ(n) = (p 1)(q 1) (4) Losujemy liczbę e z przedziału (0,ϕ(n)), względnie pierwszą z ϕ(n). Znajdujemy liczbę d odwrotną do e mod ϕ(n) d e 1 mod ϕ(n) (5) Kluczem publicznym jest para (e, n) natomaiast klucze prywatnym jest (d, n). 2.2. Szyfrowanie i deszyfrowanie Wiadomość m dzielona jest na bloki m i przy czym m i jest nie większe niż n. Każdy z bloków szyfrowany jest kluczem publicznym według wzoru c i = m i e (6) Deszyfrowanie polega na podobnej operacji z użyciem klucza prywatnego. m i = c i d (7) Zgodnie ze wzorem 1 Możemy dokonać szyfracji i deszyfracji używając kluczy w odwrotnej kolejności. 3. Podpis cyfrowy Podpis cyfrowy jest matematycznym potwierdzeniem autentyczności dokumentu. Jest on odpowiednikiem tradycyjnego podpsiu, jaki składamy na dokumentach. Idealnym algorytmem do tworzenia podpisów cyfrowych jest wcześniej wspomniany algorytm RSA. Autor wiadomości szyfruje ją kluczem prywatnym. Odbiorca wiadomośći otrzymując ją jest w stanie odszyfrować ją kluczem publicznym i sprawdzić autentyczność wiadomości. Rozwiązanie takie ma zasadniczą wadę, gdyż podpis jest nie krótszy niż sama wiadomość. Najczęściej stosowane są jednokierunkowe funkcje hashujące. Autor wiadomości szyfruje wartość funkcji hashującej i przesyła ją razem z dokumentem. Odbiorca oblicza wartość funkcji hashującej i porównuje z odkodowaną wartością. 4. Ślepy podpis cyfrowy Ślepy podpis cyfrowy jest formą podpisu cyfrowego w którym osoba podpisująca nie zna podpisywanego dokumentu. Autor wiadomości i osoba podpisująca to de facto dwie różne osoby. Do generowania ślepych podpisów wyjątkowo dobrze nadaje się algorytm RSA. 2

4.1. Tworzenie ślepego podpisu cyfrowego Autor wiadomości najpierw pobiera klucz publiczny (e,n) osoby podpisującej wiadomość. Następnie zakrywa wiadomość m poprzez losową liczbę r. Liczba ta musi być względnie pierwsza z n. m mr e mod n (8) Tak zakodowaną wiadomość przesyła do osoby podpisującej, która tworzy ślepy podpis. s m d mod n (9) Ślepy podpis przesyłany jest do autora wiadmości, który usuwa czynnik zaślepiający. Przy czym s jest podpisem wiadomości i ponad to s s r 1 mod n (10) s m d mod n (11) 5. Architektura aplikacji W celu stworzenia protokołu ślepego podpisu cyfrowego stworzyliśmy dwie aplikacje. Jedną z nich jest apikacją webową służącą do tworzenia podpisu, drugą natomiast jest aplikacją desktopową będąca klientem usługi ślepych podpisów cyfrowych. Aplikacja webowa jest internetową usługą opartą o protokuł SOAP. Aplikacja napisana jest w technologii J2EE, oparta o kontekst spring i klasę DispatcherMessage udostępnioną przez bibliotekę spirng-ws. Klasa SigningServiceEndpoint jest klasą której interfejs jest wystawiany na zewnątrz aplikacji. Udostępiająca klucz publiczny, a także możliwość podpisania wiadomości. Każda z tych operacji jest symetryczna. Klucz, a także wiadomości przesyłane są w postaci liczby całkowitych. Skorzystaliśmy tutaj z klasy BigInteger pozwalającej na przesyłanie dowolnie dużych liczb. Klasą która generuje klucze publiczne i prywatne, a także podpisuje wiadomości jest klasa RSASigner. Jest ona singletonem, istnieje jedyna instancja, dlatego też za każdym razem klucze są takie same. Podpisywanie wiadomości polega na podniesieniu wiadomości do potęgi wartości klucza prywatnego, zgodnie ze wzorem 9. Aplikacja BlindSignClient jest aplikacją klienta powyżej wymienionej usługi internetowej. Oparta jest również o kontekst spring i korzysta z klienta web service udostępnionego przez bibliotekę spring. Może pracować w dwuch trybach. Jednym z nich to przesłanie do podpisu całego pliku bądź wiadomości. Drugim trybem jest przesłanie do podpisania skrótu wiadomości, korzystając z funkcji hashującej SHA-2. Przygotowuje ona wiadomość do przesłania szyfrując ją losową liczbą r zgodnie ze wzorem 8 a także usuwa czynnik zaślepiający zgodnie ze wzorem 10. 3

Rysunek 1. Diagram klas aplikacji SigningService 4

Rysunek 2. Diagram klas aplikacji BlindSingatureClient 5

Rysunek 3. Diagram sekwencji 6

6. Opis użycia aplikacji Aplikacja SigningService jest przystosowana do każdego rodzaju serwerów webowych wspierających technologię J2EE. W czasie testowania korzystaliśmy z kontenera webowego Tomcat 7.0.26. Aplikacja desktopowa przystosowana jest na każdy komputer posiadający maszynę wirtualną Javy. Zadaniem aplikacji desktopowej jest stworzenie podpisu pod wiadomością, dlatego możliwe jest wczytanie dowolnego pliku, jak także wpisanie wiadomości do aplikacji. Aplikacja daje możliwość wysłania do podpisu całej wiadomości jak i skrótu. Domyślnie podpisuje całą wiadomość. Jeżeli chcemy podpisać skrót należy zaznaczyć taką opcję. Dodatkową możliwością jest spradzenie poprawności podpisu. Jeżeli podpis odkodujemy kluczem publicznym, to zgodnie ze wzorem 11 otrzymamy wiadomość. Rysunek 4. Diagram przypadków użycia Literatura [1] Notatki wykładowe [2] Kutylowski M., Strothmann W.B., Kryptografia, Teoria i Praktyka, Zabezpieczanie systemów komputerowych, Warszawa 1998, Wyd. LUPUS [3] http://www.prz.rzeszow.pl/pl/zsr/pliki/bezpieczenstwo wyklady/konspekt boi 03.pdf 7