1 / 78

Podstawy kryptografii

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 MD5 Podsumowanie. Plan wykładu. Wstęp Rodzaje systemów kryptograficznych

kostya
Download Presentation

Podstawy kryptografii

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. 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 (1919-1920) potrafili odszyfrować depesze wroga, co ułatwiało działania wojenne (więcej na serwisy.gazeta.pl/df/1,34467,2856516.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=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

  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 Vigenere’a

  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<k<26 • Algorytm deszyfrujący ma postać: p=D(C)=(C-k) mod (26)

  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*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

  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 : 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 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 Vigenere’a) 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 • Znakomitakombinacja 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(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

  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

  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

More Related