380 likes | 783 Views
Kryptograficzne aspekty kodowania asymetrycznego. Podpis cyfrowy jako przykład zastosowania. Wykonał: mgr inż. Maksymilian Szczygielski. Kryptografia jest nauką zajmującą się problematyką szyfrowania i deszyfrowania.
E N D
Kryptograficzne aspekty kodowania asymetrycznego. Podpis cyfrowy jako przykład zastosowania. Wykonał: mgr inż. Maksymilian Szczygielski
Kryptografia jest nauką zajmującą się problematyką szyfrowania i deszyfrowania. Do dziedzin matematyki, które odgrywają ważną rolę we współczesnej kryptografii, należą: teoria liczb, teoria grup, logika kombinatoryczna, teoria złożoności i teoria informacji. Samą kryptografię można także postrzegać jako gałąź matematyki stosowanej i informatyki. Faktycznie wzastosowaniach informatycznych kryptografia nabiera praktycznego znaczeniaw połączeniu zzagadnieniami dostępu do systemówoperacyjnych, protokołów, sieci komputerowych iprzesyłania danych.
Szyfrowanie symetryczne Klucz uzgodniony przez dwie strony wpływa w kryptosystemach symetrycznych zarówno na krok szyfrowania, jaki deszyfrowania. Wpływ ten jest symetryczny w tym sensie, że oba procesy są równie pracochłonne. Ponadto zazwyczaj obie strony występują zamiennie w rolach nadawcy i odbiorcy. Jeżeli kroki szyfrowania i deszyfrowania komutują, każdej ze stron wystarczy tylko jeden własny klucz prywatny. Do tej klasy należy metoda DES. Ma ona jeden klucz, a szyfrowanie i deszyfrowanie różnią się tylko kolejnością przebiegów generowanych na podstawie klucza.
Szyfrowanie asymetryczne Rezygnując z symetrii kryptosystemu, musimy oczywiście chronić klucz deszyfrujący. Jednak asymetria może być posunięta tak daleko, że klucz szyfrujący nie tylko nie będzie chroniony, ale nawet będzie powszechnie dostępny (klucz publiczny). Koncepcja kryptografii z kluczem publicznym pochodzi od Diffie i Hellmana z roku 1976. Pierwsza realizacja asymetrycznych kryptosystemów należy do Rivesta, Shamira i Adelmana w roku 1977 (RSA).
Usługa Symetryczne Asymetryczne Poufność Duże szybkości szyfrowania i deszyfrowania Małe szybkości szyfrowania, deszyfrowania Integralność i wierzytelność Osiągane przy użyciu tego samego przekształcenia co poufność Osiągane przy użyciu innego przekształcenia co poufność Niezaprzeczalność Trudność generacji podpisu cyfrowego Łatwość generacji podpisu cyfrowego Dystrybucja kluczy Trudna w realizacji Łatwa w realizacji Porównanie algorytmów symetrycznych i asymetrycznych
Kryptosystem klucza publicznego Pojęcie systemu z kluczem publicznym wyraża fakt, że klucze deszyfrujące pozostają tajne. Każdy uczestnik wymiany informacji wytwarza 2 klucze: • Klucz szyfrujący (jawny), który udostępnia publicznie wszystkim pozostałym uczestnikom; • Klucz deszyfrujący (tajny), który utrzymuje w ścisłej tajemnicy.Każdy może wysłać wiadomość, ale tylko odbiorca może ją odebrać.
Bezpieczeństwo klucza publicznego Bezpieczeństwo kryptosystemów klucza publicznego oparte jest na aktualnej wiedzy teoretycznej i możliwościach technologicznych dotyczących rozwiązania danego problemu obliczeniowego. Rodzaje ataków na systemy kryptograficzne: • Atak bierny • Atak czynny
Atak bierny Przeciwnik nie będący stroną w protokole podsłuchuje wiadomości przekazywane w czasie realizacji protokołu i na tej podstawie próbuje wydobyć informacje jawne. Odpowiada to łamaniu szyfru ze znanym tylko szyfrogramem. Bierni oszuści realizują protokół, ale jednocześnie próbują wydobyć z niego więcej wiadomości niż potrzebują do swego działania.
Atak czynny Przeciwnik w celu uzyskania korzyści stara się wprowadzić do protokołu nowe komunikaty, usunąć istniejące komunikaty, podstawić nowe komunikaty w miejsce istniejących, zniszczyć kanał łączności lub zmienić informacje przechowywane na komputerze. Łamanie czynne jest bardziej groźne, szczególnie w protokołach, w których odmienne strony niekoniecznie sobie ufają. Napastnik może być legalnym użytkownikiem systemu, może być nawet jedną ze stron uczestniczących w protokole.
Ogólna charakterystyka algorytmu RSA • Kryptosystem RSA jest najpowszechniej stosowanym systemem klucza publicznego, stosowany jest między innymi w protokołach kryptograficznych wymiany kluczy i podpisach cyfrowych. • Do tej pory skutecznie opiera się atakom kryptoanalityków. • Bezpieczeństwo algorytmu RSA opiera się na trudności faktoryzacji dużych liczb.
Algorytm wykorzystuje parę kluczy: • publiczny - jest to para liczb (e, n), dostępna dla każdego użytkownika kryptosystemu, służąca do szyfrowania informacji przeznaczonych dla posiadacza klucza prywatnego oraz do sprawdzenia autentyczności dokumentów, które ten posiadacz wytworzył i rozpowszechnił jako własne, • prywatny - liczba d (utajniona) znana tylko właścicielowi, służąca do odszyfrowania przeznaczonych dla niego dokumentów i opatrywania ich pieczęcią autentyczności.
Generowanie kluczy w RSA Klucze publiczne i prywatne są funkcjami pary dużych liczb pierwszych. Generowanie kluczy odbywa się według poniższego schematu: • Wybór dwóch dużych liczb pierwszych p i q(p i q powinny być jednakowej długości). • Obliczenie iloczynu tych liczb. • Losowanie klucza szyfrującego e takiego, że e i (p - 1)(q - 1) są względnie pierwsze. • Obliczenie klucza szyfrującego d z algorytmu Euklidesa: e d = 1 mod (p-1)(q-1) • Liczby e i n oznaczają klucz publiczny, a liczba d oznacza klucz tajny.
Opis działania algorytmu Algorytm RSA można krótko zapisać w postaci: • Klucz publiczny: • n - iloczyn dwóch liczb pierwszych p i q(p i q pozostają utajnione) • e - liczba względnie pierwsza z (p - 1)(q - 1) Klucz prywatny: • d = e-1(mod(p-1)(q-1)) • Szyfrowanie: • c = me(mod n) • Deszyfrowanie: • m = cd(mod n)
Właściwości algorytmu Ataki na algorytm RSA • Ataki skierowane nie na algorytm lecz na protokół, czasami okazują się skuteczne. Są to przeważnie ataki za pomocą wybranych szyfrogramów. Aby się przed nimi zabezpieczyć, należy przed podpisaniem przypadkowego dokumentu - użyć jednokierunkowej funkcji skrótu. Standard RSA • RSA jest standardem uznawanym w większości krajów na świecie. RSA jest nieoficjalnym standardem podpisu cyfrowego. Jest mimo to opatentowany jedynie w USA.
Kryptosystem RSA jest znacznie wolniejszy od systemów symetrycznych. Współczesne realizacje sprzętowe RSA osiągają szybkość szyfrowania rzędu 600 Kbitów na sekundę, przy 512 bitowym module n, natomiast realizacje sprzętowe DES-a osiagają szybkość rzędu 1 Gbit/sec czyli RSA jest około 1500 razy wolniejszy od DES-a. • Często RSA wykorzystywany jest w protokołach wymiany kluczy kryptograficznych, natomiast systemy blokowe DES, IDEA służą do przesyłania dużej ilości danych.
Algorytm DSA DSA (Digital Signature Algorithm) - jeden z najciekawszych algorytmów wykorzystywanych w standardzie podpisu cyfrowego (Digital Signature Standard DSS). Kryptosystem ten został opracowany przez NSA (National Security Agency) i został zatwierdzony jako standard podpisu cyfrowego w USA w 1999r.
Wprowadzenie do DSA • Zasada działania algorytmu DSA opiera się na następujących parametrach: • p - liczba pierwsza o długości L - bitów, przy czym L może przyjmować wartości od 512 do 1024 i jest wielokrotnością 64; parametr jawny. • q - czynnik pierwszy liczby p-1 o długości 160 bitów; parametr jawny. • g = h(p~1/q) mod p gdzie h jest dowolną liczbą mniejszą niż p-l, taką że h(p~1/q) mod p jest liczbą większą niż 1; parametr jawny. • x - liczba mniejsza niż q; x jest kluczem prywatnym. • y = gx mod p. Jest to klucz publiczny.
Szyfrowanie danych w DSA • Algorytm DSA można zapisać w postaci: • Klucz publiczny: • p - liczba pierwsza o długości 512 do 1024 bitów • q - czynnik pierwszy liczby p-1 o długości 160 bitów • g = h(p-1)/qmod p • y = gx mod p Klucz prywatny: x q • Podpisywanie: • k - liczba wybierana losowo, mniejsza od q • w = s-1 mod q u1 = (H(m)*w) mod q • r - (podpis) = (gk mod p) mod q • s - (podpis) = (k-1 (H(m) + xr)) mod q
Szyfrowanie danych w DSA • Weryfikacja: • u1 = (rw) mod q • v = (( gu1 * yu2 ) mod p) mod q • Jeśli v = r, to podpis jest poprawny Każdy podpis cyfrowy wymaga nowej liczby k. Jej wartość wybierana jest losowo. Dobry generator liczb losowych ma największe znaczenie dla bezpieczeństwa algorytmu DSA.
Inne algorytmy klucza publicznego Algorytm Diffiego-Hellmana Algorytm Plecakowy Algorytm Rabina Algorytm Williamsa Algorytm Elgamala Probablistyczny Algorytm Bluma-Goldwassera
Kanał podprogowy Kanały podprogowy w schematach podpisów cyfrowych został odkryty przez G.J. Simmonsa. Jest to kanał umożliwiający umieszczenie tajnej wiadomości w swoim podpisie cyfrowym, która może być odczytana tylko przez osobę znającą dodatkowy klucz. Nikt nie wie, czy twórcy nawet o nim wiedzieli. Może się on okazać niebezpiecznym narzędziem w ręku twórcy implementacji szyfru. Jest on w stanie wyprowadzić część klucza prywatnego wraz z każdym podpisem. Dodatkowo sytuacja taka nie jest wykrywalna dla właściciela i osób postronnych.
Funkcje skrótu Jednokierunkowe funkcje skrótu wykorzystywane do zapewniania integralności przesyłanych danych, pozwalają stwierdzić, czy informacja przesyłana od nadawcy do odbiorcy nie została poddana modyfikacji. Założeniami działania takiej funkcji skrótu są: • uzyskiwany wynik jest stałej długości (niezależnie od długości tekstu, który poddawany jest operacji), • funkcja działa jednokierunkowo – tzn. nie ma możliwości uzyskania tekstu źródłowego z posiadanego wyniku operacji.
Własności protokołów kryptograficznych • Każdy użytkownik protokołu musi go znać i kolejno wykonywać wszystkie kroki • Każdy użytkownik musi zgodzić się na jego stosowanie • Protokół nie może być mylący – każdy krok powinien być dobrze zdefiniowany i nie może wystąpić szansa na jakiekolwiek nieporozumienie • Protokół powinien być kompletny – dla każdej możliwej sytuacji musi być podany odpowiedni sposób postępowania.
Cele stosowania protokołów kryptograficznych Strony uczestniczące w protokole: • Dzielą się częścią swoich tajemnic • Wspólnie generują liczbę losową (klucz kryptograficzny) • Przekonują się wzajemnie do swojej tożsamości • Podpisują jednocześnie umowę Stosowanie protokołów kryptograficznych umożliwia współpracę całkowicie nie ufających sobie stron w obrębie sieci komputerowej.
Podpis cyfrowy Technicznie podpis cyfrowy jest ciągiem bitów(krótszym od przesyłanej informacji) będącymfunkcją podpisywanej informacji oraz kluczaprywatnego nadawcy. W odróżnieniu od podpisuręcznego zależy od zawartości dokumentu, adokładniej - od skompensowanej próbkidokumentu. Odwzorowanie informacji zdokumentu na jej skompensowaną próbkę dokonuje się za pomocą jednokierunkowej funkcjiszyfrującej, tzw. funkcji skrótu, inaczej haszującej(hash).
Algorytm generowania i weryfikacji podpisu cyfrowego 1.Nadawcaoblicza skrót wiadomości za pomocąfunkcji skrótu. 2. Szyfruje kluczem prywatnym nadawcy skrót wiadomości i dołącza do wiadomości jako jej podpis cyfrowy. 3. Odbiorcadeszyfruje kluczem publicznym nadawcy jego podpis cyfrowy oraz wyliczaz niego skrót przesłanej wiadomości. 4.Porównuje ze skrótem uzyskanym po zaszyfrowaniufunkcją skrótu otrzymanej wiadomości. 5. Zgodność oznacza, że podpis cyfrowy dotyczy przesyłanej wiadomości oraz świadczy o nienaruszalności informacji.
Cechy podpisu elektronicznego Podpis elektroniczny ma wszystkie istotne cechy podpisu odręcznego: potwierdza jednoznacznie tożsamość osoby podpisującej, uniemożliwia zaprzeczenie faktu podpisania i dokonania transakcji, jest też powiązany z treścią, która została podpisana. Dodatkową zaletą stosowania podpisu elektronicznego jest możliwość stwierdzenia na podstawie samego podpisu, czy dokument nie był zmieniany już po podpisaniu. Dzięki temu może być wykorzystywany do jednoznacznej autoryzacji wszelkich dokumentów i transakcji elektronicznych.
Certyfikacja podpisu cyfrowego Łatwo wyobrazić sobie scenariusz, w którym intruz podmienia klucz publiczny określonego użytkownika, a następnie przechwytuje i swobodnie deszyfruje wiadomości kierowane do tego użytkownika. Skutecznym i efektywnym rozwiązaniem tego problemu są tzw. urzędy certyfikacji (ang. certificate authority) odpowiadające za dystrybucję kluczy publicznych użytkowników. Użytkownik, aplikacja lub urządzenie, które zamierzają prowadzić szyfrowanie w systemie klucza publicznego najpierw powinni zarejestrować się w urzędzie certyfikacji oraz dostarczyć swoje klucze publiczne wraz z danymi identyfikacyjnymi.