1 / 73

Algorytmy asymetryczne i haszujące

Algorytmy asymetryczne i haszujące. Plan wykładu. Motywacja Szyfrowanie asymetryczne Algorytm RSA Liczby pierwsze Algorytmy haszujące Algorytm MD5 Algorytm SHA Podsumowanie. Plan wykładu. Motywacja Szyfrowanie asymetryczne Algorytm RSA Liczby pierwsze Algorytmy haszujące

ina
Download Presentation

Algorytmy asymetryczne i haszujące

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorytmy asymetryczne i haszujące

  2. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  3. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  4. Motywacja • Wzrost potrzeb związanych z bezpieczeństwem z powodu rozwoju sieci komputerowych • Potrzeba realizacji elektronicznych transakcji, operacji finansowych z zapewnieniem uwierzytelnienia, podpisu cyfrowego, niezaprzeczalności, itd. • Trudna realizacja podanych usług bezpieczeństwa stosując wyłącznie szyfrowanie symetryczne • Trudna realizacja usługi dystrybucji kluczu w środowisku sieciowym z wieloma użytkownikami stosując wyłącznie szyfrowanie symetryczne

  5. Motywacja • Jak zapewnić uwierzytelnienie? • Jak zapewnić dystrybucję kluczy szyfrujących • Jak zapewnić niezaprzeczalność danych? • Jak zapewnić integralność danych? • Jaką usługę bezpieczeństwa można efektywnie realizować za pomocą szyfrowania symetrycznego?

  6. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  7. Szyfrowanie asymetryczne • Algorytmy asymetryczne z kluczem jawnym opierają się na funkcjach matematycznych, a nie na podstawianiu i permutacji • Szyfrowanie jest asymetryczne, wykorzystuje dwa klucze: publiczny (ogólnie dostępny) i prywatny

  8. Asymetryczne versus symetryczne Niezbędne do działania

  9. Asymetryczne versus symetryczne • Niezbędne do bezpieczeństwa

  10. Szyfrowanie asymetryczne - poufność

  11. Szyfrowanie asymetryczne - uwierzytelnienie

  12. Szyfrowanie asymetryczne – poufność i uwierzytelnienie

  13. Wymagania dla systemów szyfrowania z kluczem jawnym • Strona B może łatwo wygenerować na drodze obliczeń swój klucz jawny i prywatny • Nadawca A, znając klucz jawny B i tekst jawny może łatwo na drodze obliczeń stworzyć tekst zaszyfrowany • Odbiorca B może łatwo otrzymać tekst jawny z tekstu zaszyfrowanego znając swój klucz prywatny • Dla przeciwnika, znającego klucza jawny B, określenie klucza prywatnego B powinno być niewykonalne • Dla przeciwnika, znającego klucza jawny B i tekst zaszyfrowany określenie tekstu jawnego powinno być niewykonalne • Funkcje szyfrowania i deszyfrowania mogą być stosowane w dowolnej kolejności

  14. Funkcja jednokierunkowa • Stworzenie praktycznego systemu szyfrowania asymetrycznego z kluczem jawnym wymaga zastosowania funkcji jednokierunkowej z bocznym wejściem (ang. trapdoor one-way function) • Funkcja jednokierunkowa to taka, która przekształca swoją dziedzinę na przedział w taki sposób, że każda wartość funkcji ma tylko jedną odwrotność, z tym że obliczenie funkcji jest łatwe (czas wielomianowy), a obliczenie odwrotności niewykonalne (wysiłek obliczeniowy rośnie szybciej niż wielomianowo): • Y=f(X) - łatwe • X=f-1(Y) - niewykonalne

  15. Funkcja jednokierunkowa z bocznym wejściem • Obliczenie funkcji jednokierunkowej z bocznym wejściem jest łatwe w jednym kierunku, a niewykonalne w drugim, chyba że są znane pewne dodatkowe informacje, które umożliwiają obliczenie odwrotności w czasie wielomianowym • Y=fk(X) - łatwe przy znajomości k i X • X=fk-1(Y) - łatwe przy znajomości k i Y • X=fk-1(Y) - niewykonalne, gdy znamy Y, a nie znamy k

  16. Kryptoanaliza algorytmów asymetrycznych • Atak metodą brutalną (sprawdzenie wszystkich kombinacji klucza) • Atak na podstawie klucza jawnego – próba wyliczenia klucza prywatnego na podstawie klucza jawnego • Atak prawdopodobnego komunikatu – wszystkie możliwe komunikaty są szyfrowane kluczem jawnym i porównywane z tekstem zaszyfrowanym

  17. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  18. Algorytm RSA • Algorytm RSA został opublikowany w 1978 roku przez Rona Rivesta, Adi Shamira i Lena Adlemana • Algorytm RSA to szyfr blokowy, w którym tekst jawny i tekst zaszyfrowany są liczbami całkowitymi od 0 do n-1 dla pewnego n • Tekst jawny jest szyfrowany blokami, z których każdy ma wartość binarną mniejszą niż n

  19. Algorytm RSA • Szyfrowanie i deszyfrowanie bloku tekstu jawnego M i zaszyfrowanego C mają następującą formę: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n • Zarówno odbiorca i nadawca muszą znać wartość n • Klucz jawny to KJ={e,n}, a klucz prywatny to KP={d,n} • Jak wyznaczyć liczby n, e, d aby M = Med mod n oraz podany schemat był bezpieczny?

  20. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  21. Liczby pierwsze • Liczba naturalna to liczba całkowita nieujemna • Liczba b jest dzielnikiem liczby a, jeśli istnieje takie m, że a=mb. Zapisujemy to jako ba • Liczba p>1 jest liczbą pierwszą, jeżeli jej dzielnikami są tylko 1 i p • Każda liczba naturalna a może być rozłożona na czynniki: a=p11p22…ptt gdzie p1>p2>…>pt to liczby pierwsze oraz i>0 dla i=1,...t

  22. Liczby pierwsze • Niech nwd(a,b) oznacza największy wspólny dzielnik liczb a i b: nwd(a,b)=max[k takie, że ka oraz kb] • Liczby a i b są względnie pierwsze, jeśli nwd(a,b)=1

  23. Jak wyznaczać liczby pierwsze? • Sito Eratostenesa – usuwanie kolejnych wielokrotności liczb pierwszych Liczby pierwsze

  24. Arytmetyka modulo • Dowolną liczbę a można zapisać w następujący sposób: a = nq + r 0  r < n q = floor(n/q) gdzie q nazywamy ilorazem, a r resztą lub rezyduem. • Resztę r definiujemy jako a mod n. • Dla każdej liczby a możemy zawsze napisać następującą zależność: a = (floor(a/n))n + a mod n • Na przykład n = 5 a = 54 = 10x5 + 4  r = 4  4 = 54 mod 5 n=9 a = 73 = 9x8 + 1 r = 1  1 = 73 mod 9 n=3 a = 84 = 3x29 + 0 r = 0  0 = 84 mod 3

  25. Arytmetyka modulo • Mówimy, że dwie liczby całkowite a i bprzystają modulo n, jeżeli a mod n = b mod n • Zapisujemy to jako a  b mod n • Na przykład 27  126 mod 9 80  1055 mod 5 121  66 mod 11 63  133 mod 7

  26. Arytmetyka modulo Operator modulo ma następujące własności: • a  b mod n jeżeli n(b – a) • Z a mod n = b mod n wynika, że a  b mod n • Z a mod n = b mod n wynika, że b  a mod n • Z a  b mod n oraz b  c mod n wynika, że a  c mod n Ostatnią zależność można udowodnić następująco. • Z a  b mod n wynika, że a = qn + r oraz b = pn + r • Z b  c mod n wynika, że c = sn + r • Więc mamy, że a  c mod n

  27. Arytmetyka modulo • Zdefiniujmy zbiór rezyduów liczby n Zn = {0,1,2,…,(n – 1)} Arytmetyka modulo w zbiorze Zn ma następujące własności • Prawo przemienności: (a + b) mod n = (b + a) mod n (a x b) mod n = (b x a) mod n • Prawo łączności: [(a + b) + c] mod n = [a + (b + c)] mod n • Prawo rozdzielności: [c x (a + b)] mod n = [(c x a) + (b x c)] mod n • Tożsamość: (0 + a) mod n = a mod n (1 x a) mod n = a mod n

  28. Funkcja Eulera • Leonhard Euler – szwajcarski matematyk i fizyk żyjący w XVIII wieku • Funkcja Eulera, zapisywana jako (n)oznacza liczbę dodatnich liczb całkowitych mniejszych od n i jednocześnie względnie pierwszych względem n • Dla każdej liczby pierwszej p zachodzi (p) = p – 1

  29. Funkcja Eulera • Dla dwóch liczb pierwszych p i q oraz ich iloczynu n = pq zachodzi: (n) = (pq) = (p) x (q) = (p – 1)x(q – 1) • Zauważmy, że Zn = {0,1,2,…,(pq – 1)} • Rezydua nie będące względnie pierwsze względem n to zbiory {p,2p,…,(q – 1)p} oraz {q,2q,…,(p – 1)q} i liczba 0. • Dlatego: (n) = pq – [(p – 1) + (q – 1) + 1] = (p – 1)x(q – 1) = (p) x (q)

  30. Twierdzenie Eulera Teza: Dla każdego a i n względnie pierwszych to n dzieli bez reszty liczbę (a(n) – 1), czyli a(n)  1 mod n • Z twierdzenia Eulera wynika, że dla dwóch liczb pierwszych p i q i dwóch liczb całkowitych takich, że n = pq oraz 0<m<n i dowolnej liczby k, zachodzi następująca zależność mk(n)+1= mk(p – 1)(q – 1)+1m mod n

  31. Twierdzenie Eulera Teza: mk(n)+1  m mod n Dowód. Z twierdzenia Eulera mamy m(n)  1 mod n Ponieważ m(n) = (an + 1) to (an + 1)k = qn + 1 więc możemy napisać m(n)  1 mod n mk(n)  1 mod n Ponieważ mk(n) = qn + 1 to mk(n)+1 = m(qn + 1) = (mq)n + m Otrzymujemy więc mk(n)+1  m mod n

  32. RSA i twierdzenie Eulera • Z twierdzenia Eulera wynika, że mk(n)+1  m mod n dla n=pq, p i q to liczby pierwsze • Aby osiągnąć następującą zależność potrzebną w algorytmie RSA M = Med mod n • musimy podstawić ed = k(n)+1

  33. Składniki algorytmu RSA

  34. Generowanie kluczy w RSA • Wybierz dwie liczby pierwsze p, q • Oblicz n=pxq • Wybierz liczbę całkowitą d taką, że nwd(d,(n))=1 oraz 1<d<(n) • Oblicz e d-1 mod (n) • Klucz jawny KJ={e,n} i klucz prywatny KP={d,n}

  35. Szyfrowanie i deszyfrowanie w RSA Szyfrowanie • Tekst jawny: M<n • Tekst zaszyfrowany: C = Me mod n Deszyfrowanie • Tekst zaszyfrowany: C • Tekst jawny: M = Cd mod n

  36. Przykład dla algorytmu RSA • Wartość tekst jawnego M=19 • Wybieramy dwie liczby pierwsze p=7, q=17 • Obliczamy n=7x17=119, (n)=96 • Wybieramy takie e, że e i (n) są względnie pierwsze i e<(n); stąd e=5 • Obliczamy d takie, że de=1 mod 96 i d<96; stąd d=77, gdyż 77x5=385=4x96+1 • Otrzymane klucze to: klucz jawny KJ={5,119}, i klucz prywatny KP={77,119} • Szyfrowanie: C=195 mod 119=2476099 mod 119=66 • Deszyfrowanie: M=6677 mod 119=1,27..x10140 mod 119=19

  37. Łamanie RSA • Metoda brutalna. Odpowiednia długość klucza zapewnia bezpieczeństwo • Ponieważ znane jest {n,e} to rozkładając n na czynniki pierwsze p i q można obliczyć (n) i d. Odpowiednie duże liczby pierwsze zapewniają bezpieczeństwo. Dlatego duże liczby pierwsze są nieustannie poszukiwane i następne chronione • Określić (n) bezpośrednio • Określić d bezpośrednio bez znajomości (n)

  38. Aspekty obliczeniowe RSA • Podnoszenie do dużej potęgi dla dużych liczb naturalnych daje bardzo duże wyniki, co następnie utrudnia operacje modulo • Można skorzystać z własności arytmetyki modulo: [(a mod n)x(b mod n)] mod n = (axb) mod n • Na przykład 221 mod 3 = (211 x 210) mod 3 = [(211 mod 3) x (210 mod 3)] mod 3 = [(2048 mod 3) x (1024 mod 3)] mod 3 = [2 x 1] mod 3 = 2 • Dodatkowo używa się specjalnych algorytmów przyspieszających potęgowanie dla dużych potęg.

  39. Porównanie RSA i AES

  40. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  41. Algorytmy haszujące • Funkcja haszująca z danych o zmiennym rozmiarze wylicza pewien wynik H(M) o stałym rozmiarze, zwany też wyciągiem lub skrótem komunikatu • Wynik haszowania jest funkcją wszystkich bitów komunikatu i zapewnia wykrywanie błędów, uwierzytelnianie

  42. Wymagania dla funkcji haszującej • H można zastosować do dowolnej wielkości bloku danych • H tworzy dane wyjściowe o ustalonej długości • H(x) jest łatwo obliczyć dla każdego x, co ułatwia implementację sprzętową i programową • Dla każdego kodu m znalezienie takiego x, że H(x)=m nie jest wykonywalne na drodze obliczeń • Dla każdego danego bloku x, znalezienie takiego y różnego od x, dla którego H(y)=H(x) nie jest wykonywalne na drodze obliczeń • Znalezienie pary (x,y), że H(y)=H(x) nie jest wykonywalne na drodze obliczeń

  43. Przykład funkcji hashującej Jedną z najprostszych funkcji haszujących jest logiczny (bit po bicie) XOR każdego bloku: Ci=bi1 bi2...bim gdzie • Ci - i-ty bit wyniku haszowania • m - liczba n-bitowych bloków danych wejściowych • bij - i-ty bit w j-tym bloku

  44. Zastosowanie funkcji haszującej • AB: EK[M||H(M)] • Zapewnia poufność, gdyż tylko A i B mają K • Zapewnia uwierzytelniania, gdyż H(M) jest zaszyfrowane

  45. Zastosowanie funkcji haszującej • AB: M||EK[H(M)] • Nie zapewnia poufność, gdyż tekst M nie jest szyfrowany • Zapewnia uwierzytelniania, gdyż H(M) jest zaszyfrowane

  46. Zastosowanie funkcji haszującej • AB: M||EKPa[H(M)] • Nie zapewnia poufność, gdyż tekst M nie jest szyfrowany • Zapewnia uwierzytelniania i sygnaturę cyfrową, gdyż H(M) jest zaszyfrowane kluczem prywatnym KPa

  47. Plan wykładu • Motywacja • Szyfrowanie asymetryczne • Algorytm RSA • Liczby pierwsze • Algorytmy haszujące • Algorytm MD5 • Algorytm SHA • Podsumowanie

  48. Algorytm MD5 • Algorytm MD5 (ang. Message Digest) został stworzony przez Rona Rivesta i opublikowany jako RFC1321 • Algorytm z wejściowego komunikatu o dowolnej długości generuje 128-bitowy wyciąg • Dane wejściowe przetwarzane są w 512 bitowych blokach • Przykład działania • MD5("Ala ma kota") = 91162629d258a876ee994e9233b2ad87 • MD5("Ala ma koty") = 6a645004f620c691731b5a292c25d37f

  49. Generowanie wyciągu w MD5 • Dodawanie bitów dopełniających • Dodanie długości komunikatu • Inicjalizacja 128-bitowego bufora MD • Przetwarzanie komunikatu w blokach 512-bitowych • Otrzymanie wyniku

  50. Dodawanie bitów dopełniających • Komunikat jest dopełniany tak, by jego długość w bitach przystawała do 448 modulo 512 • Czyli długość komunikatu musi być o 64 bity mniejsza niż całkowita wielokrotność 512 bitów • Na przykład jeżeli komunikat ma 2345 bitów to najbliższa wielokrotność 512 bitów to 2560, więc komunikat zostanie dopełniony do 2496 bitów • Dopełnienie dodaje się zawsze, nawet gdy komunikat ma żądaną długość • Dopełnienie składa się z bitu 1, po którym następuje odpowiednia liczba bitów 0

More Related