740 likes | 1.31k Views
Szyfrowanie symetryczne 1. Plan wykładu. Historia Model szyfrowanie konwencjonalnego Steganografia Algorytmy podstawieniowe Algorytmy transpozycyjne Sieci Fiestela Algorytm DES Algorytm IDEA Podsumowanie. Plan wykładu. Historia Model szyfrowanie konwencjonalnego Steganografia
E N D
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Historia • 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 nawięnięcia na patyk • Na przykład tekst „Proszę o pomoc” Pros zęop omoc • Po odczytaniu na pasku wygląda „pzoręmooospc”
Historia • Szyfr Cezara polegający na przesunięciu liter tesktu 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 • 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 • 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 • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
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
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Steganografia • 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 • 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 (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
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
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 algorytm: szyfr Cezara, Szyfr Playfair, szyfr Vigenere’a
Szyfr Cezara • 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 • 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
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 krypotanalityk 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
Szyfry jednoalfabetowe - kryptoanaliza • Można również przeanalizować częstość występowania kombinacji dwuliterowych, zwanych dwuznakami • Szyfry jednoalfabetowe są łatwe do złamania ponieważ odzwierciedlają częstości alfabetu oryginału • Aby temu zaradzić można jednej literze przypisać rotacyjnie kilka symboli szyfrowych (homofony)
Szyfr Playfair • Szyfr Playfair, traktuje dwuznaki tekstu jawnego jako osobne jednostki i tłumaczy na dwuznaki zaszyfrowane • Algorytm Playfair używa matrycy 5x5, zbudowanej przy użyciu słowa kluczowego • Np. dla słowa kluczowego MONARCHY matryca wygląda następująco:
Szyfr Playfair • Powtarzające się litery tekstu jawnego oddziela się literą wypełniającą • W przypadku, gdy litery pary liter tekstu jawnego występują w tym samym wierszu matrycy, zastępuje się każdą z nich literą o jedną pozycję w prawo • W przypadku, gdy litery pary liter tekstu jawnego występują w tej samej kolumnie matrycy, zastępuje się każdą z nich literą o jedną pozycję w dół • Jeżeli nie zachodzi żaden z powyższych przypadków, każda litera z pary liter tekstu jawnego zastępuje się literą leżącą w tym samym, co ona rzędzie, lecz w kolumnie, w której leży druga litera
Szyfr Playfair – przykład jawny : the Playfaif is good jawny : th eP la yf ai fi sg ox od zaszyfrowany: PD FL SM HG BS GK QI AV RH
Szyfry wieloalfabetowe • Szyfr wieloalfabetowy polega na stosowaniu różnych podstawień jednoalfabetowych podczas szyfrowania jednego komunikatu • Przykładem szyfru wieloalfabetowego jest szyfr Vigenere’a, w którym stosuje się szyfr Cezara z przesunięciami od 0 do 25 • Litera klucza wyznacza wiersz tablicy • Litera tekstu jawnego kolumnę tablicy
Szyfr Vigenere’a - przykład klucz : deceptivedeceptivedeceptive tekst jawny : wearediscoveredsaveyourself tekstzaszyfrowany: ZICVTWQNGRZGVTWAVZHCQYGLMGJ
Losowe szyfry wieloalfabetowe • Dla szyfru wieloalfabetowego można zastosować losowy klucz, o takiej samej długości co komunikat, bez powtórzeń • Taki system, zwany systemem z kluczem jednorazowym (ang. one time pad), jest nie do złamania • Wynikiem jego działania jest losowy tekst, który nie ma żadnych statystycznych związków z tekstem jawnym • Praktycznym utrudnieniem jest konieczność posiadania i strzeżenia losowego klucza przez nadawcę i odbiorcę
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Techniki transpozycyjne • 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 • 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
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 • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Sieci Feistela • Wiele algorytmów blokowych z jednym kluczem wykorzystuje tzw. Sieci Feistela
Sieci Feistela • Każdy blok dzielony jest na dwie równe połówki, oznaczane dla i-tej rundy jako Li (lewa połówka) oraz Ri (prawa połówka) • Właściwe szyfrowanie polega na zamianie miejscami obu połówek, a następnie zastąpieniu prawego bloku Ri przez XOR fS,i(Ri) oraz Li • Funkcja fS,i wprowadza klucz i-tej rundy, czyli klucz obliczany na podstawie klucza głównego S • Zazwyczaj każda runda ma inny klucz rundy • Funkcje fS,i nie muszą być odwracalne
Sieci Feistela • Szyfrowanie Li+1 = Ri Ri+1 = Li XOR fS,i(Ri) • Właściwość Li = (Li XOR fS,i(Ri)) XOR fS,i(Ri) = Ri+1 XOR fS,i(Ri) • Deszyfrowanie Rn-1 = Ln Ln-1 = Rn XOR fS,n-1(Rn-1) . . . R0 = L1 L0 = R1 XOR fS,0(R0)
Plan wykładu • Historia • Model szyfrowanie konwencjonalnego • Steganografia • Algorytmy podstawieniowe • Algorytmy transpozycyjne • Sieci Fiestela • Algorytm DES • Algorytm IDEA • Podsumowanie
Algorytm DES - historia • 1971 – pierwszy patent dotyczący algorytmu Lucifer opracowanego przez Horst Fiestel i jego kolegów w IBM • 1973 – NBS (National Bureau of Standar) ogłosza konkursu na algorytm szyfrujący • 1977 – FIPS (wcześniej NBS) publikuje algorytm DES (ang. Data Encryption Standard) oparty na Lucifer jako standard FIPS 46 • 1999 – DES potwierdzony po raz 4 przez NIST w wersji Triple DES jako FIPS 46-3 • 2001 – publikacja AES (Advanced Encryption Standard) jako FIPS 197 • 2005 – NIST wycofuje DES (FIPS 46-3)
DES w pigułce • Dane są szyfrowane w 64-bitowych blokach • Klucz ma długość 56 bitów • Algorytm produktowy – stosuje transpozycje w kolejnych etapach (iteracjach) • Szyfrowanie polega na serii etapów przetwarzających 64-bitowe dane wejściowe na 64-bitowy wynik • Deszyfrując wykonuje się te same etapy i ten sam klucz, ale w odwrotnej kolejności • Najważniejszym elementem algorytmu są S-bloki (ang. S-box)
Permutacja wstępna • Permutację wstępną IP i jej odwrotność IP-1 definiuje poniższa tabela • Obie funkcje są odwrotne względem siebie • Jeżeli szyfrujemy blok M to tekst po permutacji wygląda następująco X=IP(M) • Po permutacji odwrotnej otrzymujemy Y= IP-1(X)=IP-1(IP(M))=M
Permutacja rozszerzająca • Permutacja rozszerzająca powoduje wygenerowanie z 32 bitów wejściowych 48 bitów wyjściowych według podanej tabeli
S-blok • Pierwszy i ostatni bit wejścia S-bloku wskazuje odpowiedni wiersz tabeli S-bloku • Środkowe 4 bity określają kolumnę • Na przykład wejście: 011011 wiersz 01 (1) kolumna 1101 (13) wyjście: 5 (0101)
Łamanie DES • Krótki klucz 56 bitowych – metoda brute force ma złożoność 256 = 7*1016 • Kryptoanaliza różnicowa • Kryptoanaliza liniowa