Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy kryptografii. Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne.

Podobne prezentacje


Prezentacja na temat: "Podstawy kryptografii. Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne."— Zapis prezentacji:

1 Podstawy kryptografii

2 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

3 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

4 Wstęp Podstawowym sposobem zabezpieczania informacji przesyłanych w sieci komputerowej jest kryptografia Kryptografia zajmuje się zapisywaniem tekstu w sposób utajniony. Szyfrowanie to zamiana tekstu jawnego na kryptogram. Deszyfrowaniem nazywamy operację odwrotną Kryptoanaliza zajmuje się zagadnieniami związanymi z łamaniem szyfru, czyli próbą znalezienia klucza szyfru lub odczytaniu tekstu jawnego na podstawie kryptogramu, bez znajomości klucza Systemy kryptograficzne opisują sposób realizacji usług w sieci teleinformatycznej przy użyciu technik kryptograficznych

5 Motywacja rozwoju kryptografii 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 bez stosowania technik kryptograficznych

6 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

7 Rodzaje systemów kryptograficznych Według metody przekształcenia tekstu jawnego w tekst zaszyfrowany: Podstawienie zakłada, że każdy element tekstu jawnego (bit, znak, litera) jest odwzorowywany na inny element Transpozycja zakłada przestawienie kolejności elementów tekstu jawnego. Podstawowy wymogi to brak straty informacji i odwracalność każdej operacji. Większość systemów, zwanych systemami produktowymi (ang. product systems) przewiduje wiele etapów podstawiania i transponowania

8 Rodzaje systemów kryptograficznych Według liczby używanych kluczy: Szyfrowanie z jednym kluczem (konwencjonalne, symetryczne, z tajnym kluczem), np. AES, DES Szyfrowanie z dwoma kluczami (asymetryczne, z kluczem jawnym), np. RSA

9 Rodzaje systemów kryptograficznych Według sposobu przetwarzania tekstu jawnego: Szyfr blokowy przetwarza po kolei każdy blok tekstu wejściowego, produkując jeden blok wyjściowy na każdy blok wejściowy Szyfr strumieniowy przetwarza elementy wejściowe w sposób ciągły, produkując jednocześnie materiał wyjściowy

10 Bezpieczeństwo systemów kryptograficznych Schemat szyfrujący jest bezwarunkowo bezpieczny, jeżeli generowany tekst zaszyfrowany nie zawiera wystarczająco dużo informacji, by jednoznacznie określić odpowiadający mu tekst jawny, niezależnie od ilości dostępnego tekstu zaszyfrowanego Schemat szyfrujący jest obliczeniowo bezpieczny, jeżeli koszt złamania szyfru przewyższa wartość informacji zaszyfrowanej oraz/lub czas potrzebny do złamania szyfru przekracza użyteczny czas życia informacji

11 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

12 Historia (1) W VII w p.n.e w Grecji stosowano do szyfrowania scytale Tekst pisany był na nawiniętym na patyk pasku skórzanym Po rozwinięciu tekst widoczny na pasku był trudny do odszyfrowania Odszyfrowanie wymaga ponownego nawinięcia na patyk Na przykład tekst Proszę o pomoc Pros zęop omoc Po odczytaniu na pasku wygląda pzoręmooospc

13 Historia (2) Szyfr Cezara polegający na przesunięciu liter tekstu o 3 używany przez Juliusz Cezara do komunikacji z wojskami Dzięki stosowaniu tego szyfru Juliusz Cezar podbił całą Galię z wyjątkiem pewnej małej wioski ;-)

14 Historia (3) Polacy w czasie wojny polsko-bolszewickiej ( ) potrafili odszyfrować depesze wroga, co ułatwiało działania wojenne (więcej na serwisy.gazeta.pl/df/1,34467, html)

15 Historia (4) Enigma – maszyna szyfrująca używana przez wojska niemieckie od lat 20 XX wieku do czasów drugiej wojny światowej. W 1932 roku Enigma została złamana przez polskich matematyków: Marian Rejewski, Jerzy Różycki i Henryk Zygalski)

16 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

17 Uproszczony model szyfrowania konwencjonalnego

18 Model szyfrowania konwencjonalnego Szyfrator tworzy tekst zaszyfrowany Y=E K (X) Odbiorca posiadający klucz może odwrócić przekształcenie X=D K (Y) Przeciwnik śledzący Y, ale pozbawiony dostępu do X i K, próbuje odgadnąć hipotetyczny tekst jawny X` i hipotetyczny klucz K`. Zakładamy, że zna on algorytm szyfrujący E i deszyfrujący D

19 Techniki szyfrowania Steganografia służy do ukrycia faktu istnienia komunikatu, np. zaznaczanie liter, atrament sympatyczny Techniki podstawiania polega na zastępowaniu elementów (bitów) tekstu jawnego innymi elementami (bitami) Techniki transpozycyjne polegają na permutacji liter (przestawieniu) tekstu jawnego

20 Steganografia (1) Herodot w "Dziejach" opisuje następujący tajny przekaz informacji Despota Hiastus przetrzymywany przez króla perskiego Dariusza postanawia przesłać informację do swego zięcia Arystogorasa z Miletu, tak aby mogła się ona przedostać mimo pilnujących go strażników Aby tego dokonać na wygolonej głowie swego niewolnika tatuuje przesłanie Kiedy niewolnikowi odrosły włosy posyła go z oficjalnym, mało istotnym listem

21 Steganografia (2) Stosowanie atramentu sympatycznego Nakłuwanie szpilką liter tekstu (książki) Sformułowanie komunikatu, aby sekwencja kolejnych liter, sylab bądź wyrazów tworzyła ukrytą wiadomość

22 Steganografia w informatyce W komputerowym zapisie obrazu (zdjęcie jpg, film mpg) lub dźwięku (mp3) pewne bity można zmienić bez wpływu na jakość obrazu (dźwięku) Na tych bitach przesyłane są tajne informacje, które można odczytać wiedząc gdzie zostały ukryte

23 Techniki podstawiania Technika podstawienia polega na zastępowaniu elementów (liter, bitów) tekstu jawnego innymi elementami (b literami, bitami) według ustalonego schematu Przykładowe algorytmy: szyfr Cezara, Szyfr Playfair, szyfr Vigenerea

24 Szyfr Cezara (1) Szyfr Cezara polega na zastąpieniu każdej litery alfabetu literą znajdującą się o trzy pozycje dalej C=E(p)=(p+3) mod (26) C to litera tekstu zaszyfrowanego odpowiadająca literze tekstu jawnego o indeksie p Przesunięcie może mieć wielkość dowolną, więc ogólna postać algorytmu wygląda następująco: C=E(p)=(p+k) mod (26), 0

25 Szyfr Cezara (2) Przykład dla szyfru Cezara (przesunięcie o 3 znaki) Klucz a b c d e f g h i j k l m n o p q r s t u v w x y z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Szyfrowanie tekst jawny : szyfr juliusza cezara tekst zaszyfrowany: VCBIU MXOLXVCD FHCDUD Dla szyfru Cezara łatwo można przeprowadzić kryptoanalizę metodą brutalną polegającą na wypróbowaniu 25 możliwych kluczy k

26 Szyfry jednoalfabetowe Dla szyfrów jednoalfabetowych możemy zastosować jako szyfr dowolną permutację 26 znaków alfabetu Oznacza to 26!=4*10 26 możliwych kluczy, czyli można wykluczyć próby rozszyfrowania metodą brutalną Jednak, jeśli kryptoanalityk zna tekst zaszyfrowany i jego charakter (język tekstu jawnego), może on wykorzystać regularności zawarte w języku

27 Szyfry jednoalfabetowe - kryptoanaliza Dla każdego języka można określić względną częstość występowania liter (film Motyl i skafander) Poniższa tabela prezentuje procentową częstość względną występowania poszczególnych liter w tekście angielskim

28 Techniki transpozycyjne (1) Techniki transpozycyjne polegają na permutacji liter tekstu jawnego Najprostszym takim szyfrem jest tzw. technika płotu, polegająca na tym, że tekst jawny zapisuje się jako ciąg kolumn, a odczytuje jako ciąg wierszy Na przykład dla płotu o wysokości 2 tekst jawny : szyfrtranspozycyjny syrrnpzcjy zftasoyyn tekst zaszyfrowany: syrrnpzcjyzftasoyyn

29 Techniki transpozycyjne (2) Bardziej skomplikowany system polega na zapisaniu komunikatu w prostokącie, a następnie odczytanie ze zmianą kolejności kolumn Klucz : tekst jawny : b a r d z i e j s k o m p l i k o w a n y s y s t e m p o l e g a n a tekst zaszyfrowany: ASKYLDOWTGBJISORKOSEELYPAIPNMNZMAEA Szyfr transpozycyjny można uczynić znaczenie bezpieczniejszym poprzez stosowanie kilku etapów transpozycji, co utrudnia znacznie rekonstrukcję klucza

30 Konfuzja i dyfuzja Shannon, twórca teorii informacji przedstawił w 1949 roku dwie główne zasady szyfrowania: Konfuzja oznacza rozmycie zależności pomiędzy tekstami jawnymi a ich zaszyfrowanymi wersjami Dyfuzja oznacza rozłożenie zawartych w tekście jawnym informacji w całym tekście zaszyfrowanym Proste szyfry podstawieniowe (szyfr Cezera, szyfr Vigenerea) zapewniają tylko konfuzję, gdyż każda litera jest szyfrowana oddzielnie

31 Efekt lawinowy Efektem lawinowym określamy intensywniejszy niż dla dyfuzji rozmazanie tekstu jawnego w tekście zaszyfrowanym Jest spotykany dla szyfrowania blokowego Każdy bit zaszyfrowanego tekstu zależy od wszystkich bitów tekstu jawnego w danym bloku Dla zmiany pojedynczego bitu tekstu jawnego lub klucza, każdy bit tekstu zaszyfrowanego powinien zmienić swoją wartość z prawdopodobieństwem równym dokładnie 50% Kryptoanaliza różnicowa wykorzystuje nawet niewielkie odstępstwo od tej zasady

32 Algorytmy produktowe Większość współczesnych algorytmów blokowych to algorytmy produktowe – po kolei wykonywane są proste, stosunkowo mało bezpieczne kroki szyfrujące zwane rundami (iteracjami) Dzięki stosowaniu wielu rund bezpieczeństwo algorytmu znacząco rośnie

33 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

34 Konkurs AES W 1997 roku agencja NIST (ang. National Institute of Standards and Technology) rozpisała konkurs na nowy standard szyfrowania, który miał otrzymać nazwę AES (ang. Advanced Encryption Standard) Wybrany algorytm, Rijndael opracowany został przez naukowców belgijskich dr Joan Daemen oraz dr Vincent Rijmen Rijndael jest blokowym algorytmem szyfrowania z kluczem symetrycznym pozwalającym na wykorzystanie klucza szyfrującego o długości 128, 192 i 256 bitów

35 Dlaczego wygrał Rijndeal Znakomita kombinacja gwarantowanego poziomu bezpieczeństwa, wydajności, efektywności i łatwości implementacji Rijndael charakteryzuje się bardzo dobrą wydajnością zarówno przy implementacji sprzętowej, jak i programowej uwzględniającej różne środowiska i systemy operacyjne Testy wykazały, że nie wymaga dużo pamięci operacyjnej, co sprawia, że można go stosować w wielu niedostępnych dla innych algorytmów miejscach

36 Rijndael w pigułce (1) Algorytm blokowy (128, 192 lub 256 bitowe bloki danych) Szyfrowanie jest symetryczne, zatwierdzono klucze o długościach 128, 192 i 256 bitów Proces szyfrowania podlega iteracjom, przy czym rozróżnia się: rundę wstępną, pewną ilość rund standardowych (ich ilość zależy od długości klucza i wynosi odpowiednio 10, 12 lub 14), z których każda posiada 4 transformacje, rundę końcową Został zatwierdzony jako następca algorytmu DES Rijndael nie jest chroniony żadnymi zastrzeżeniami patentowymi, więc nie wymaga opłat licencyjnych

37 Rijndael w pigułce (2) Spełnia 3 główne założenia postawione przez twórców algorytmu: odporność na wszystkie znane ataki, szybkość pracy i zwartość kodu na różnych platformach, łatwość implementacji Aktualny stan wiedzy w zakresie kryptoanalizy nie pozwala na skuteczny atak na wiadomości szyfrowane tym algorytmem Atak brutalny, czyli sprawdzenie wszystkich możliwych kluczy szyfrujących jest praktycznie niewykonalny ze względu na długość klucza Jest łatwy do implementacji sprzętowej (większość rodzajów procesorów, smartcard) i programowej (wiele popularnych języków programowania)

38 Szczegóły algorytmu Rijndael (1) Podstawowe pojęcia służące do opisu algorytmu to "Stan" i "runda" Runda (ang. round) to odpowiednik standardowego etapu obliczeń mającym jako parametr tzw. Klucz Rundy (ang. Round Key) Z reguły runda jest superpozycją, co najmniej 2 bijekcji tzw. podstawienia i permutacji, w Rijndaelu tych przekształceń jest więcej

39 Szczegóły algorytmu Rijndael (2) Przekształcenia składające się na każdą rundę operują na pewnej macierzy prostokątnej stanowiącej wynik pośredni kolejnych obliczeń podczas realizacji algorytmu i nazywanej Stanem (ang. State) Jest to macierz o współczynnikach w ciele GF(2 8 ) lub inaczej w zbiorze {0,1} 8 czyli macierz, której współczynniki to bajty Macierz bajtowa Stanu ma 4 wiersze i Nb kolumn (Nb to długość bloku podzieloną przez 32), Nb=4, 6 lub 8 Klucz szyfrujący jest również reprezentowany jako macierz o 4 wierszach

40 Szczegóły algorytmu Rijndael (3) Liczbę kolumn tego klucza oznaczamy przez Nk Liczba Nk jest równa długości klucza podzielonej przez 32; Nk=4, 6 lub 8 Długość klucza i bloku, czyli Nk i Nb możemy zmieniać niezależnie Liczba rund Nr stosowana w algorytmie zależy od Nb i Nk NbNkNrNbNkNrNbNkNr

41 Ogólny opis algorytmu

42 Opis jednej rundy algorytmu Przekształcenie rundy jest bijekcją będąca superpozycją 4 bijekcji składowych Runda składa się z następujących czterech przekształceń operujących na macierzy Stanu –przekształcenia ByteSub –przekształcenia ShiftRow –przekształcenia MixColumn –dodawania klucza rundy Ostatnia runda nie zawiera przekształcenia MixColumn

43 Przekształcenie ByteSub Przy transformacji ByteSub operuje się na poszczególnych elementach macierzy Stanu, które są pojedynczymi bajtami Każdy bajt przechodzi transformację, którą ze względów historycznych nazwano S-Boxem i jest wpisywany w to samo miejsce W fazie tej wykonuje się jedynie operacje na bajtach, a zatem jest to łatwe nawet w procesorach 8-bitowych

44 Przekształcenie ShiftRow Ta transformacja przesuwa cyklicznie kolejne wiersze macierzy o odpowiednią liczbę pozycji Wartości przesunięcia zależą od wielkości bloku i klucza - dla naszych danych pierwszego wiersza się nie przesuwa, drugi przesuwa się o 1 kolumnę, trzeci o 2 kolumny, a czwarty o 3 kolumny Ponieważ takie przesunięcie sprowadza się jedynie do zmiany uporządkowania danych w pamięci, jest ono łatwe w realizacji dla każdego procesorów.

45 Przekształcenie MixColumn Transformacja MixColumn miesza wartości zawarte w jednej kolumnie w dość skomplikowany sposób, zmieniając jednocześnie ich wartości Dzięki zastosowaniu specjalnych struktur algebraicznych taka operacja może zostać wykonana dość sprawnie na 8-bitowym procesorze lub wykorzystując pełną moc procesora 32-bitowego

46 Dodawanie klucza rundy Dla każdej rundy generowany jest z klucza pierwotnego specjalny klucz rundy, który zostaje w tej transformacji połączony z macierzą danych za pomocą operacji XOR Poszczególne komórki (bajty) klucza są XORowane z odpowiednimi komórkami (bajtami) macierzy Stanu

47 Bezpieczeństwo Rijndael (1) Operacje MixColumn i ShiftRow zapewniają silną dyfuzję (zamiana jednego bitu stanu wpływa na wszystkie bity stanu w małej liczbie rund) Operacje ByteSub i dodawanie klucza rundy zapewniają silną konfuzję (zgubienie zależności – na podstawie rezultatu jednej rundy nie można wywnioskować macierzy stanu na początku rundy) Aby przeprowadzić kryptoanalizę różnicową, między poszczególnymi rundami muszą istnieć przewidywalne różnice. Udowodniono, że odpowiednie prawdopodobieństwa wykorzystywane przy kryptoanalizie DES-a w przypadku Rijndaela nie są wystarczające do przeprowadzenia skutecznego ataku

48 Bezpieczeństwo Rijndael (2) Udowodniono, że zależności danych pomiędzy rundami dla Rijndaela są tak małe, iż kryptoanaliza liniowa jest całkowicie nieskuteczna Istnieją ataki (np. Square, XSL), które są zdolne do złamania algorytmu Rijndaela ale dla liczby rund znacznie mniejszej niż określone w standardzie

49 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

50 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

51 Szyfrowanie asymetryczne - poufność

52 Szyfrowanie asymetryczne - uwierzytelnienie

53 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

54 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=f k (X) - łatwe przy znajomości k i X X=f k -1 (Y) - łatwe przy znajomości k i Y X=f k -1 (Y) - niewykonalne, gdy znamy Y, a nie znamy k

55 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

56 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

57 Algorytm RSA (1) 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

58 Algorytm RSA (2) Szyfrowanie i deszyfrowanie bloku tekstu jawnego M i zaszyfrowanego C mają następującą formę: C = M e mod n M = C d mod n = (M e ) d mod n = M ed 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 = M ed mod n oraz podany schemat był bezpieczny?

59 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

60 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

61 RSA i twierdzenie Eulera Z twierdzenia Eulera wynika, że m k (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 = M ed mod n musimy podstawić ed = k (n)+1

62 Generowanie kluczy w RSA 1.Wybierz dwie liczby pierwsze p, q 2.Oblicz n=pxq 3.Wybierz liczbę całkowitą d taką, że nwd(d, (n))=1 oraz 1

63 Szyfrowanie i deszyfrowanie w RSA Szyfrowanie Tekst jawny: M

64 Ł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)

65 Porównanie RSA i AES CechaAESRSA Szybkość działania +– Bezpieczeństwo++ ZastosowaniaPoufność (szyfrowanie danych) Uwierzytelnianie, dystrybucja kluczy, podpis cyfrowy

66 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

67 Algorytmy haszujące Funkcja haszująca z danych M 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 Haszowanie jest używane w większości systemów kryptograficznych stosowanych w sieciach komputerowych, np. PGP, podpis elektroniczny, TLS (SSL) Przykładowe algorytmy haszujące to MD5, SHA

68 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ń

69 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ł

70 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

71 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

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

73 Generowanie wyciągu w MD5 (2)

74 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 Y q oraz bufor ABCD (MD q ) Dodatkowo w każdym etapie korzysta się z kolejnych części tablicy T[1,...,64] skonstruowanej na podstawie funkcji sinus

75 Elementarna operacja MD5 Każdy z kroków wykonywanych 64 razy dla każdego bloku ma postać A B+CLS s (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 2 32

76 Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD5 Podsumowanie

77 Algorytm symetryczne stosują wiele różnych sposobów dla zapewnianie silnej konfuzji i dyfuzji Algorytmy asymetryczne i haszujące umożliwiają efektywną realizację szeregu funkcji bezpieczeństwa (np. uwierzytelnianie, podpis cyfrowy, integralność) Bezpieczeństwo kryptograficzne algorytmów zależy od konstrukcji algorytmu i długości klucza Ważnym aspektem jest ochrona praw patentowych, która może ograniczać możliwość stosowania danego algorytmu

78 Kolejny wykład Bezpieczeństwo sieci komputerowych


Pobierz ppt "Podstawy kryptografii. Plan wykładu Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne."

Podobne prezentacje


Reklamy Google