Podstawy kryptografii Plan wykadu Wstp Rodzaje systemw kryptograficznych














































































- Slides: 78
Podstawy kryptografii
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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
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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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
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
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
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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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”
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 ; -)
Historia (3) • Polacy w czasie wojny polsko-bolszewickiej (1919 -1920) potrafili odszyfrować depesze wroga, co ułatwiało działania wojenne (więcej na serwisy. gazeta. pl/df/1, 34467, 2856516. html)
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)
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
Uproszczony model szyfrowania konwencjonalnego
Model szyfrowania konwencjonalnego • Szyfrator tworzy tekst zaszyfrowany Y=EK(X) • Odbiorca posiadający klucz może odwrócić przekształcenie X=DK(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
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
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
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ść
Steganografia w informatyce • W komputerowym zapisie obrazu (zdjęcie jpg, film mpg) lub dźwięku (mp 3) 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
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 Vigenere’a
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<k<26 • Algorytm deszyfrujący ma postać: p=D(C)=(C-k) mod (26)
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 : tekst zaszyfrowany: szyfr juliusza cezara VCBIU MXOLXVCD FHCDUD • Dla szyfru Cezara łatwo można przeprowadzić kryptoanalizę metodą brutalną polegającą na wypróbowaniu 25 możliwych kluczy k
Szyfry jednoalfabetowe • Dla szyfrów jednoalfabetowych możemy zastosować jako szyfr dowolną permutację 26 znaków alfabetu • Oznacza to 26!=4*1026 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
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
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
Techniki transpozycyjne (2) • Bardziej skomplikowany system polega na zapisaniu komunikatu w prostokącie, a następnie odczytanie ze zmianą kolejności kolumn Klucz : 3 1 4 2 7 6 5 tekst jawny : b a r d z i e j s k o m p l i k o w a n 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
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 Vigenere’a) zapewniają tylko konfuzję, gdyż każda litera jest szyfrowana oddzielnie
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
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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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
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
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
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)
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
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(28) 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
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 Nb 4 6 8 Nk 4 4 4 Nr 10 12 14 Nb 4 6 8 Nk 6 6 6 Nr 12 12 14 Nb 4 6 8 Nk 8 8 8 Nr 14 14 14
Ogólny opis algorytmu
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 Byte. Sub – przekształcenia Shift. Row – przekształcenia Mix. Column – dodawania klucza rundy • Ostatnia runda nie zawiera przekształcenia Mix. Column
Przekształcenie Byte. Sub • Przy transformacji Byte. Sub 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
Przekształcenie Shift. Row • 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.
Przekształcenie Mix. Column • Transformacja Mix. Column 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
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
Bezpieczeństwo Rijndael (1) • Operacje Mix. Column i Shift. Row zapewniają silną dyfuzję (zamiana jednego bitu stanu wpływa na wszystkie bity stanu w małej liczbie rund) • Operacje Byte. Sub 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
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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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
Szyfrowanie asymetryczne poufność
Szyfrowanie asymetryczne uwierzytelnienie
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
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
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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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
Algorytm RSA (2) • 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?
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
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
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
Generowanie kluczy w RSA 1. 2. 3. 4. 5. 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}
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
Ł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)
Porównanie RSA i AES Cecha AES RSA Szybkość działania + – Bezpieczeństwo + + Zastosowania Poufność (szyfrowanie danych) Uwierzytelnianie, dystrybucja kluczy, podpis cyfrowy
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
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 MD 5, SHA
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ń
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ł
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
Algorytm MD 5 • Algorytm MD 5 (ang. Message Digest) został stworzony przez Rona Rivesta i opublikowany jako RFC 1321 • 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 • MD 5("Ala ma kota") = 91162629 d 258 a 876 ee 994 e 9233 b 2 ad 87 • MD 5("Ala ma koty") = 6 a 645004 f 620 c 691731 b 5 a 292 c 25 d 37 f
Generowanie wyciągu w MD 5 (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
Generowanie wyciągu w MD 5 (2)
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
Elementarna operacja MD 5 • 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
Plan wykładu • • • Wstęp Rodzaje systemów kryptograficznych Historia kryptografii Szyfrowanie symetryczne Algorytm AES Szyfrowanie asymetryczne Algorytm RSA Algorytmy haszujące Algorytm MD 5 Podsumowanie
Podsumowanie • 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
Kolejny wykład Bezpieczeństwo sieci komputerowych














































































