Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Algorytmy asymetryczne i haszujące

Podobne prezentacje


Prezentacja na temat: "Algorytmy asymetryczne i haszujące"— Zapis prezentacji:

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 Szyfrowanie symetryczne Szyfrowanie asymetryczne 1. Ten sam algorytm i ten sam klucz używany jest do szyfrowania i deszyfrowania 1. Jeden algorytm używany jest do szyfrowania i deszyfrowania, z parą kluczy (szyfrowanie i deszyfrowania) 2. Nadawca i odbiorca muszą mieć taki sam algorytm i klucz 2. Nadawca i odbiorca muszą mieć jeden z pary kluczy

9 Asymetryczne versus symetryczne
Niezbędne do bezpieczeństwa Szyfrowanie symetryczne Szyfrowanie asymetryczne 1. Klucz nie może być ujawniony 1. Jeden z dwóch kluczy nie być ujawniony 2. Odszyfrowanie komunikatu bez posiadania innych danych musi być niemożliwe lub zbyt kosztowne 2. Odszyfrowywanie komunikatu bez posiadania innych danych musi być niemożliwe lub zbyt kosztowne 3. Znajomość algorytmu oraz próbki tekstu zaszyfrowanego nie mogą być wystarczające do odkrycia klucza 3. Znajomość algorytmu, jednego klucza i próbki tekstu zaszyfrowanego nie mogą być wystarczające do odkrycia drugiego klucza

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 nwd(a,b)=max[k takie, że ka oraz kb]
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 = 10x  r = 4  4 = 54 mod 5 n=9 a = 73 = 9x8 + 1  r = 1  1 = 73 mod 9 n=3 a = 84 = 3x  r = 0  0 = 84 mod 3

25 Arytmetyka modulo Mówimy, że dwie liczby całkowite a i b przystają 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 mk(n)+1 = mk(p – 1)(q – 1)+1  m mod n
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 m(n)  1 mod n  mk(n)  1 mod n
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
p, q dwie liczby pierwsze (prywatne, wybrane) n = pq (jawne, obliczone) d, takie że nwd(d,(n))=1, 1<d<(n) (prywatne, obliczone) e  d-1 mod (n) {e,n} klucz jawny {d,n} klucz prywatny

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
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= 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 Cecha AES RSA Szybkość działania + –
Bezpieczeństwo Zastosowania Poufność (szyfrowanie danych) Uwierzytelnianie, dystrybucja kluczy, podpis cyfrowy

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") = d258a876ee994e9233b2ad87 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

51 Dodanie długości komunikatu
Do komunikatu uzupełnionego o dopełnienie dodaje się 64-bitową reprezentację długości pierwotnego komunikatu w bitach (przed dopełnieniem) Jeżeli komunikat jest dłuższy niż 264 to używa się tylko młodszych 64 bitów długości To oznacza, że pole długości zawiera długość początkowego komunikatu modulo 264 Następnie cały komunikat wraz z dopełnieniem i długością jest przetwarzany w blokach Y0, Y1,...,YL-1, o długości 512 bitów

52 Inicjalizacja bufora MD
Do przechowywania pośrednich i końcowych wartości funkcji haszującej stosuje się bufor 128-bitowy Bufor ten można zapisać jako cztery 32-bitowe rejestry oznaczane jako A, B, C, D Rejestry te są na początku inicjalizowane następującymi wartościami szesnastkowymi (najpierw młodsze oktety): A= B=89ABCDEF C=FEDCBA98 D=

53 Generowanie wyciągu w MD5

54 Przetwarzanie komunikatu w 512-bitowych blokach
Wszystkie 4 etapy mają podobną strukturę, lecz każdy korzysta z innej elementarnej funkcji logicznej oznaczanej w specyfikacji jako F, B, H, I W każdym etapie jest przetwarzany aktualny blok Yq oraz bufor ABCD (MDq) Dodatkowo w każdym etapie korzysta się z kolejnych części tablicy T[1,...,64] skonstruowanej na podstawie funkcji sinus

55 Elementarna operacja MD5
Każdy z kroków wykonywanych 64 razy dla każdego bloku ma postać AB+CLSs(A+g(B,C,D)+X[k]+T[i]) Przez g oznaczamy jedną z funkcji elementarnych F, G, H, I X[k] oznacza k-te 32 bitowe słowo w przetwarzanym 512-bitowym bloku T[i] oznacza i-te 32 bitowe słowo w tablicy stałych Wszystkie dodawania są realizowane modulo 232

56 Elementarna operacja MD5
Indeksy k do tablicy X oraz wartość przesunięcia s jest zdefiniowana w RFC1321 Elementarna operacja MD5 może być zapisana jako [ABCD k s i] Dla etapów A=B+CLSs(A+F(B,C,D)+X[k]+T[i]) [ABCD k s i] [DABC k s i] [CDAB k s i] [BCDA k s i] [ABCD ] [DABC ] [CDAB ] [BCDA ] [ABCD ] [DABC ] [CDAB ] [BCDA ] [ABCD ] [DABC ] [CDAB ] [BCDA ] [ABCD ] [DABC ] [CDAB ] [BCDA ]

57 Funkcje elementarne

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

59 Algorytm SHA Algorytm SHA (ang. Secure hash algorithm) został stworzony przez Narodowy Instytut Standardów i Technologii USA (NIST) i opublikowany jako FIPS PUB 180 w 1993 roku Algorytm z wejściowego komunikatu o długości mniejszej niż 264 bity generuje 160-bitowy wyciąg Dane przetwarzane są w 512 bitowych blokach Od 2001 powstały cztery warianty określane jako SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) Ponieważ w 2004 zgłoszono udane ataki na funkcje skrótu mające strukturę podobną do SHA-1 NIST ogłosił, że do 2010 zaprzestanie stosować SHA-1 na rzecz różnych wariantów SHA-2

60 Generowanie wyciągu w SHA
Dodawanie bitów dopełniających Dodanie długości komunikatu , długość musi być mniejsza niż 264 Inicjalizacja 160-bitowego bufora MD A= B=EFCDAB89 C=98BADCFE D= E=C3D2E1F0 Przetwarzanie komunikatu w blokach 512-bitowych Otrzymanie wyniku

61 Generowanie wyciągu w SHA

62 Przetwarzanie komunikatu w 512-bitowych blokach
Podstawowym elementem algorytmu jest przetwarzanie bloku 512 bitowego za pomocą 80 podobnych etapów W każdym etapie jest przetwarzany aktualny blok Yq oraz bufor ABCDE (MDq) Dodatkowo w każdym etapie korzysta się z zdefiniowanej stałej addytywnej Kt: 0t19

63 Elementarna operacja SHA
Każdy z etapów wykonywanych 80 razy dla każdego bloku ma postać A, B, C, D, E  (CLS5(A)+ft(B,C,D)+E+Wt+Kt), A, CLS30(B), C, D Przez ft oznaczamy jedną z funkcji elementarnych Wt oznacza 32 bitowe słowo w przetwarzanym 512-bitowym bloku Kt to zdefiniowana stała

64 Funkcje elementarne

65 Tworzenie sekwencji danych wejściowych
Wt oznacza 32 bitowe słowo z przetwarzanego 512-bitowym bloku Pierwsze 16 wartości Wt otrzymuje się bezpośrednio z aktualnego bloku 512-bitowego Pozostałe wartości są definiowane według Wt=Wt-16Wt-14Wt-8Wt-3

66 Porównanie MD5 i SHA MD5 SHA Długość wyciągu 128 bitów 160 bitów
Podstawowa jednostka przetwarzania 512 bitów Liczba kroków 64 80 Maksymalny rozmiar komunikatu 264 Elementarne funkcje logiczne 4 3 Zastosowanie stałych addytywnych

67 Porównanie MD5 i SHA Bezpieczeństwo – SHA daje dłuższy wyciąg, co zapewnia większe bezpieczeństwo Szybkość – oba algorytmy działają podobnie. Jednak ponieważ SHA ma dłuższy bufor działa około 25% wolniej niż MD5 Prostota i poręczność – SHA posiada prostszą strukturę Architektura – MD5 interpretuje komunikat jako sekwencje 32-bitowych słów zapisanych w architekturze „little-endian”, SHA stosuje architekturę „big-endian”

68 Bezpieczeństwo SHA Złożoność obliczeniowa ataku metodą brutalnej siły dla wykrycia kolizji (wykrycie dwóch wiadomości, których wynikiem jest ta sama funkcja skrótu) wynosi dla SHA 280 Kryptologom udało się opracować atak, którego złożoność obliczeniowa wynosi 269 W związku z tym pojawiły się wątpliwości co do bezpieczeństwa wielu systemów kryptograficznych używających SHA (np. system podpisu elektronicznego) Narodowy Instytut Standardów i Technologii (NIST) zaproponował zastąpienia szeroko używanej funkcji haszującej SHA-1 silniejszą i mocniejszą funkcją SHA-256 lub SHA-512

69 Najważniejsze cechy SHA-256
SHA-256 daje skrót w długości 256 bitów co podnosi znacznie bezpieczeństwo skrótu Dane wejściowe przetwarzane są w 512 bitowych blokach Generalna zasada działania SHA-256 jest bardzo podobna do MD5 i SHA Zastosowano inne funkcje na etapie przetwarzania pojedynczych 512-bitowych bloków

70 Najważniejsze cechy SHA-512
SHA-512 daje 512 bitowy skrót. Dane wejściowe przetwarzane są w 1024 bitowych blokach Komunikat jest dopełniany tak, by jego długość w bitach przystawała do 896 modulo 1024 Odpowiednio jak dla SHA-256 wprowadzono nowe funkcje przetwarzające dane

71 Kryptoanaliza algorytmów haszujących
Podstawowy atak na funkcje haszującą może polegać na próbie stworzenia komunikatu, który daje taki sam skrót jak przechwycony komunikat Poza tym można próbować zmodyfikować tekst w taki sposób, aby skrót się nie zmienił

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

73 Podsumowanie Algorytmy asymetryczne i haszujące umożliwiają efektywną realizację szeregu funkcji bezpieczeństwa (np. uwierzytelnianie, podpis cyfrowy, integralność) Najbardziej popularny algorytm asymetryczny RSA wykorzystuje liczby pierwsze Bezpieczeństwo RSA opiera się na tym, że rozłożenie dużej liczby na czynniki pierwsze jest złożone obliczeniowo Algorytmy haszujące opierają się na wielokrotnym wykonywaniu podobnych działań


Pobierz ppt "Algorytmy asymetryczne i haszujące"

Podobne prezentacje


Reklamy Google