INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 3. 1 Proste szyfry podstawieniowe przypomnienie wiadomości z laboratorium nr 1



Podobne dokumenty
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Przykład. Przykład. Litera Homofony C F H I M

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Bezpieczeństwo systemów komputerowych. Metody łamania szyfrów. Kryptoanaliza. Badane własności. Cel. Kryptoanaliza - szyfry przestawieniowe.

Bezpieczeństwo systemów komputerowych. Kryptoanaliza. Metody łamania szyfrów. Cel BSK_2003. Copyright by K.Trybicka-Francik 1

Bezpieczeństwo danych i przykłady kryptoanalizy prostych szyfrów. Błędy szyfrowania. Typy ataku kryptoanalitycznego

Zarys algorytmów kryptograficznych

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Algorytmy podstawieniowe

2 Kryptografia: algorytmy symetryczne

Algorytmy podstawieniowe

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Algorytmy asymetryczne

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Szyfry przestawieniowe

Kryptografia szyfrowanie i zabezpieczanie danych

Laboratorium nr 1 Podstawy kryptografii i kryptoanalizy

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

kryptografię (z gr. κρυπτός oraz γράφω gráfo pisać ), czyli gałąź wiedzy o utajnianiu wiadomości;

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Kryptografia systemy z kluczem tajnym. Kryptografia systemy z kluczem tajnym

urządzenia: awaria układów ochronnych, spowodowanie awarii oprogramowania

Laboratorium nr 1 Szyfrowanie i kontrola integralności

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Bezpieczeństwo danych, zabezpieczanie safety, security

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Ataki kryptograficzne.

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Szyfrowanie wiadomości

RSA. R.L.Rivest A. Shamir L. Adleman. Twórcy algorytmu RSA

Ataki na algorytm RSA

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Szyfrowanie RSA (Podróż do krainy kryptografii)

Ochrona Systemów Informacyjnych. Elementy Kryptoanalizy

Dlaczego możemy czuć się bezpieczni w sieci czyli o szyfrowaniu informacji

Szyfrowanie informacji

Czym jest kryptografia?

1.10. Algorytmy asymetryczne z kluczem publicznym

Bezpieczeństwo systemów komputerowych

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

ŁAMIEMY SZYFR CEZARA. 1. Wstęp. 2. Szyfr Cezara w szkole. Informatyka w Edukacji, XV UMK Toruń, 2018

Lista 5 Typy dynamiczne kolejka

Kryptografia-0. przykład ze starożytności: około 489 r. p.n.e. niewidzialny atrament (pisze o nim Pliniusz Starszy I wiek n.e.)

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 1

Scenariusz lekcji. wymienić różnice pomiędzy kryptologią, kryptografią i kryptoanalizą;

Szyfry afiniczne. hczue zfuds dlcsr

ZESZYTY NAUKOWE WYDZIAŁU ETI POLITECHNIKI GDAŃSKIEJ Nr 4 Seria: Technologie Informacyjne 2006 ANALIZA METODY SZYFROWANIA "ZT-UNITAKOD"

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

1.1. Standard szyfrowania DES

1) indeks koincyndencji Określa prawdopodobieostwo wystąpienia w szyfrogramie dwóch jednakowych liter: N długośd szyfrogramu

Zastosowania informatyki w gospodarce Wykład 5

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Laboratorium kryptograficzne dla licealistów 4

Polcode Code Contest PHP-10.09

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Wykład Uwagi ogólne. W_7_(SK_B).doc 7.1

ALGORYTMY I STRUKTURY DANYCH

Bezpieczeństwo danych i systemów informatycznych. Wykład 5

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

WSIZ Copernicus we Wrocławiu

KRYPTOANALIZA. Opracowanie wewnętrzne Instytutu Informatyki Gliwice, 1999

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

Steganograficzny system plików

Bezpieczeństwo w Internecie

Szyfry kaskadowe. Szyfry kaskadowe

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Szyfry kaskadowe. permutacyjnej (SPP).

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Authenticated Encryption

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

WEP: przykład statystycznego ataku na źle zaprojektowany algorytm szyfrowania

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

Parametry systemów klucza publicznego

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

ZADANIE 1 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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

PRZEWODNIK PO PRZEDMIOCIE

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

KUS - KONFIGURACJA URZĄDZEŃ SIECIOWYCH - E.13 ZABEZPIECZANIE DOSTĘPU DO SYSTEMÓW OPERACYJNYCH KOMPUTERÓW PRACUJĄCYCH W SIECI.

Algorytmy i struktury danych

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Zadanie 4.3. (0 5) Błąd bezwzględny przybliżonej wartości liczby pi, wyznaczonej z n punktów, definiujemy następująco:

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Tajna wiadomość. Scenariusz lekcji

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

Wykład 2: Arkusz danych w programie STATISTICA

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

0 + 0 = 0, = 1, = 1, = 0.

Łamanie szyfrów. Kryptografia w szkole podstawowej

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

1 Podstawy c++ w pigułce.

Kryptografia na procesorach wielordzeniowych

Bezpieczeństwo danych i systemów informatycznych. Wykład 4

Transkrypt:

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 3 SZYFRY PODSTAWIENIOWE: WIELOALFABETOWE, HOMOFONICZNE, POLIGRAMOWE WSTĘP DO KRYPTOANALIZY 1 Proste szyfry podstawieniowe przypomnienie wiadomości z laboratorium nr 1 W prostych szyfrach podstawieniowych stosuje się jednoznaczne odwzorowanie: f : mi f ( mi ) zastępujące każdy znak tekstu jawnego odpowiadającym mu znakiem kryptogramu. Tekst jawny m składa się ze znaków oznaczonych m 1, m 2,. W celu zaszyfrowania, przekształcenie stosujemy do każdego znaku, otrzymując: E f m) = f ( m ) f ( )... ( 1 m2 Przykładowy prosty szyfr podstawieniowy można zrealizować za pomocą tabeli 1: m i 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 f(m i) F E K J N P O C D Y U H V M B Z L W G X T A R I S Q Tabela 1 - Przykład prostego szyfru podstawieniowego Dla tak zdefiniowanego przekształcenia szyfru podstawieniowego, tekstowi jawnemu KRYPTOGRAFIA odpowiada szyfr UWSZXBOWFPDF. Odwzorowaniu n znaków odpowiada permutacja liczb całkowietych 0,1,,n-1, a zatem liczba możliwych podstawień wynosi n!. Kluczem szyfru jest permutacja elementów stosowanego alfabetu. W przykładzie, w którym zastosowano litery alfabetu angielskiego, zawierającego 26 liter, istnieje 26 26! = 4 10 różnych podstawień. W przypadku zastosowania podstawienia dla całego zakresu kodów ASCII, ilość podstawień będzie wynosić 256!. Odmianą prostych szyfrów podstawieniowych monoalfabetowych są szyfry przesunięte, w których alfabetem tajnym jest alfabet przesunięty cyklicznie o pewną liczbę pozycji k. Przykładem szyfru przesuniętego może być szyfr Cezara (dla tego szyfru k=3). Szyfry podstawieniowe monoalfabetowe są łatwe do złamania. Wystarczy zastosować analizę statystyczną: zbadać rozkład częstości znaków w tekście jawnym i kryptogramie, a następnie skojarzyć znaki o zbliżonych częstościach występowania (dane statystyczne zawiera tabela z dodatku 4.1). W celu ułatwienia sobie analizy kryptogramu, kryptoanalityk powinien znać też występujące często ciągi dwu- i trzyznakowe (digramy i trigramy).

2 Szyfry podstawieniowe homofoniczne W szyfrach tych każdy znak tekstu jawnego m i jest odwzorowany na jeden znak ze zbioru f(m i ) tekstu zaszyfrowanego, przy czym zbiory f(m i ) są rozłączne. Znaki zbioru f(m i ) nazywane są homofonami. Tekst jawny m = m 1, m 2, jest zaszyfrowany jako c = c 1, c 2,, przy czym znaki c i wybiera się dowolnie ze zbioru homofonów f(m i ). Przykład. Zakładamy, że litery (z alfabetu angielskiego, bez polskich znaków diakrytycznych) są szyfrowane jako liczby dwucyfrowe. Liczba znaków przydzielonych każdej literze jest proporcjonalna do względnej częstości jej występowania w tekście i każda liczba jest przydzielona tylko do jednej litery. Możliwe przyporządkowanie liczb przedstawia tabela: Litera Homofony A 19 34 41 56 60 73 83 96 B 31 C 27 59 62 81 D 11 28 77 E 10 23 42 49 61 88 99 F 76 G 23 Tabela 2 - Przykład przyporządkowania liczb - szyfr homofoniczny Tekst jawny m = B A C A może być zaszyfrowany jako c = 31 56 59 19. Szyfry homofoniczne są trudniejsze do złamania niż proste szyfry podstawieniowe, gdyż ukrywają rozkład znaków w kryptogramie przyporządkowując jednej literze tekstu jawnego wiele symboli kryptogramu. Im więcej symboli przydzielonych będzie literom, tym szyfr będzie mocniejszy. Szyfr ten nie ukrywa jednak statystycznych właściwości języka, co można sprawdzić np. analizując rozkład digramów. 3 Szyfry podstawieniowe wieloalfabetowe Szyfry te zostały opracowane i wprowadzone do użytku w XVI wieku. Mają one wiele jednoznakowych kluczy, które zmieniają się w procesie szyfrowania, a każdy z kluczy stosowany jest do szyfrowania pojedynczego znaku tekstu jawnego. Po wyczerpaniu wszystkich kluczy stosowane są one cyklicznie (szyfry wieloalfabetowe są zwykle szyframi okresowymi). Liczba kluczy nazywana jest okresem szyfru. Szyfry wieloalfabetowe ukrywają rozkład znaków tekstu jawnego dzięki użyciu wielu podstawień. 3.1 Szyfr Vigenere a Pochodzi z XVI wieku. Wymaga przypisania znakom tekstu jawnego liczb, np. wg następującej tabeli:

K l u c z T e k s t j a w n y 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 A 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 B 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 A C C 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 D 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 E 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 D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z 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 Tabela 3 - Tablica szyfru Vigenere'a Dla klucza, będącego sekwencją k = k 1, k 2, szyfrowanie znaku m i należącego do alfabetu jawnego n-literowego, jest określone zależnością: ci = ( mi + ki ) modn Wyrażenie deszyfrujące ma postać: mi = ( ci ki ) modn Dla okresu szyfru Vigenere a równego 1, szyfr ten staje się prostym szyfrem podstawieniowym. Przykład. Alfabet zawiera 26 liter, kluczem szyfru Vigenere a jest ciąg E N T D O o okresie d = 5. Tekst jawny KRYPTOGRAFIA będzie zaszyfrowany następująco: m = K R Y P T O G R A F I A k = E N T D O E N T D O E N c = O E R S H S T K D T M N W procesie szyfrowania szukamy kolumny, zawierającej odpowiedni znak tekstu jawnego, oraz wiersza, zawierającego znak klucza. Do kryptogramu dopisujemy znak, będący na przecięciu znalezionego wiersza i kolumny. Tablica Vigenere a może służyć także do deszyfrowania. Wtedy szukamy wiersza odpowiadającego znakowi klucza, a literę tekstu jawnego odczytujemy znak z nagłówka kolumny, w której znajduje się litera kryptogramu.

4 Szyfry podstawieniowe poligramowe Szyfry poligramowe lub inaczej wieloliterowe szyfrują naraz większe bloki tekstu jawnego. Złamanie takich szyfrów jest trudne, ze względu na ukrycie częstości występowania liter w kryptogramie. Przykładowymi szyframi poligramowymi mogą być szyfr Hilla oraz szyfr Playfaira. 4.1 Szyfr Playfaira Szyfr Playfaira wynaleziono w XIX wieku, był on stosowany w czasie I wojny światowej. Kluczem w tym szyfrze jest przypadkowa tablica 5 5 znakowa, w której pominięto nieużywaną literę J: W A R F S I C O D B E P G K Y M N Q T U V H X L Z Tabela 4 - Szyfr Playfaira Algorytm szyfrowania wygląda następująco: 1) Jeśli m 1 i m 2 leżą w tym samym wierszu, to znakami kryptogramu c 1 i c 2 są litery leżące po prawej stronie m 1 i m 2, przy czym pierwszą kolumnę traktuje się jako położoną na prawo od ostatniej; 2) Jeśli m 1 i m 2 leżą w tej samej kolumnie, to znakami kryptogramu c 1 i c 2 są litery leżące poniżej m 1 i m 2, przy czym pierwszy wiersz traktuje się jako położony pod ostatnim wierszem; 3) Jeśli m 1 i m 2 leżą w różnych kolumnach i wierszach, to znakami kryptogramu c 1 i c 2 są litery znajdujące się w narożnikach prostokąta, wyznaczonego przez m 1 i m 2, przy czym c 1 pochodzi z wiersza zawierającego m 1, a c 2 z wiersza zawierającego m 2 ; 4) Jeśli m 1 = m 2, to do tekstu jawnego pomiędzy te litery wstawia się nieznaczącą literę, np. X. Podobnie jeśli ostatnia litera nie ma pary, dopisuje się nieznaczącą literę na koniec tekstu jawnego. Przykład: m= K R Y P T O G R A F I A c= G F E G Q D Q O R S C W 5 Algorytm z kluczem jednorazowym Może się to wydawać niemożliwe, jednak istnieje idealny algorytm szyfrujący. Jest on nazywany po angielsku one-time-pad (można to tłumaczyć jako algorytm z kluczem jednorazowym). Klasycznie algorytm ten jest dużym zbiorem o niepowtarzalnych i przypadkowych sekwencjach znaków, zapisanych razem na sklejonych arkuszach papieru. Każdy klucz używany jest tylko jeden raz, do zaszyfrowania tylko jednej wiadomości. Po zaszyfrowaniu tekstu jawnego nadawca niszczy już wykorzystaną część przypadkowej sekwencji znaków. Odbiorca musi dysponować identycznym zbiorem sekwencji i używa

tych samych znaków zbioru do operacji odszyfrowania, po czym, tak, jak nadawca, niszczy zbiór znaków stanowiących klucz. Przy nadawaniu nowej wiadomości należy zastosować nowy zbiór znaków i nowe znaki klucza. Przykładowo, szyfrujemy wiadomość ONETIMEPAD kluczem postaci TBFRGFARFM Otrzymujemy następujący kryptogram: IPKLPSFHGQ gdyż O + T mod 26 = I, N + B mod 26 = P, E + F mod 26 = K, itd. Zakładając, że przeciwnik nie ma dostępu do jednorazowego zestawu znaków, stosowanego do szyfrowania wiadomości, można powiedzieć, że jest to idealnie bezpieczny algorytm utajniania. Dowolny kryptogram może być z równym prawdopodobieństwem kryptogramem dowolnego tekstu jawnego o tej samej długości. Ze względu na to, że każdy klucz jest równie prawdopodobny (klucze są tworzone losowo), nie ma tu informacji, mogącej ułatwić złamanie szyfru. Kluczem mógłby być przykładowo następujący zestaw znaków: POYYAEAAZX Co po odszyfrowaniu daje SALMONEGGS Albo, użycie klucza BXFGBMTMXM prowadzi do otrzymania GREENFLUID Zatem kryptoanalityk nie ma możliwości rozstrzygnięcia, który tekst jawny jest poprawny, gdyż wszystkie teksty jawne są jednakowo prawdopodobne. Przypadkowy klucz zsumowany modulo 2 z nieprzypadkowym tekstem jawnym daje całkowicie losowy kryptogram i nawet największa moc obliczeniowa na świecie nie umożliwi złamania tego szyfru. Dużą wadą tej metody szyfrowania jest generowanie przypadkowych kluczy. Każda metoda złamania takiego szyfru będzie metodą złamania algorytmu generowania klucza. Stosowanie generatorów liczb pseudolosowych (np. wbudowanych w języki programowania) nie jest dobrym rozwiązaniem, gdyż praktycznie prawie zawsze mają one właściwości nielosowe; konieczne jest użycie prawdziwie losowego źródła (co, wbrew pozorom, jest trudniejsze, niż się wydaje), gdyż dopiero wtedy bezpieczeństwo algorytmu z kluczem jednorazowym jest gwarantowane. Przykładem algorytmu z kluczem jednorazowym może być również XOR, jeśli tylko zachowane są podane powyżej warunki (klucz całkowicie losowy i użyty wyłącznie jeden raz).

6 Kryptoanaliza Podstawowym zadaniem kryptografii jest utrzymanie w tajemnicy tekstu jawnego, bądź klucza, bądź obu elementów jednocześnie przed atakującymi (przeciwnikami), którzy chcą uzyskać pełen dostęp do tekstów przesyłanych pomiędzy nadawcą i odbiorcą. Kryptoanaliza jest nauką o odtwarzaniu tekstu jawnego bez znajomości klucza. Zajmuje się również wyszukiwaniem słabych punktów systemów kryptograficznych, punktów, które mogą pozwolić na znalezienie sposobu do poznania tekstu jawnego lub klucza. Utrata tajności klucza wskutek działań innych, niż kryptoanalityczne, nazywana jest kompromitacją klucza. Stosowanie kryptoanalizy nazywa się łamaniem szyfru (ang. attack). Podstawowym zadaniem kryptoanalizy jest założenie, że bezpieczeństwo algorytmu jest oparte na kluczu. Należy założyć, że kryptoanalityk, przystępując do łamania szyfru, zna wszystkie szczegóły algorytmu szyfrowania i jego implementację. Założenie takie nie jest prawdziwe w wielu realnych systemach, ale warto je przyjąć, gdyż jeśli nie uda się złamać szyfru wiedząc, jak działa algorytm szyfrujący, to tym bardziej nie uda się go złamać nie wiedząc, jak ten algorytm działa. Wyróżnia się cztery główne typy metod łamania szyfrów. Przy każdej z nich zakłada się, że kryptoanalityk posiada pełną wiedzę o stosowanym algorytmie szyfrowania. Zastosowane oznaczenia: Ci i-tykryptogram, Mi i-ty tekst jawny, K klucz, EK operacja szyfrowania za pomocą klucza K, DK operacja odszyfrowywania za pomocą klucza K. Łamanie z kryptogramami (ang. ciphertext-only attack). Kryptoanalityk dysponuje kryptogramami kilku wiadomości, zaszyfrowanych z zastosowaniem tego samego algorytmu szyfrującego. Jego zadanie polega na odtworzeniu tekstu jawnego możliwie wielu wiadomości lub na poznaniu klucza (kluczy) zastosowanego do szyfrowania wiadomości, by móc odczytać również inne wiadomości zaszyfrowane z wykorzystaniem tego samego klucza. Dane: C1 = EK (M1), C2 = EK (M2),, Ci = EK(Mi) Wnioskowanie: M1, M2,, MK lub K, lub algorytm wnioskowania o Mj+1 na podstawie Ci+1 = EK(Mi+1) Łamanie ze znanym tekstem jawnym (ang. known-plaintext attack). Kryptoanalityk dysponuje nie tylko kryptogramami kilku wiadomości, lecz także ich tekstami jawnymi. Zadanie polega na znalezieniu klucza (bądź kluczy) zastosowanego do szyfrowania lub też wydedukowania algorytmu do deszyfrowania kolejnych wiadomości zaszyfrowanych z tym samym kluczem. Dane: M1, C1 = EK (M1); M2, C2 = EK (M2);, Mi, Ci = EK(Mi) Wnioskowanie: K lub algorytm wnioskowania o Mj+1 na podstawie Ci+1 = EK(Mi+1) Łamanie z wybranym tekstem jawnym (ang. chosen-plaintext attack). Kryptoanalityk ma możliwość wybrania tekstu jawnego i ma dostęp do jego kryptogramu. Jest to dogodna sytuacja dla łamiącego szyfr, gdyż tym razem można wybrać określony tekst jawny do zaszyfrowania i w ten sposób uzyskać więcej informacji o kluczu. Zadaniem kryptoanalityka jest wywnioskowanie klucza (kluczy), zastosowanego do szyfrowania lub wydedukowaniu algorytmu do deszyfrowania kolejnych wiadomości zaszyfrowanych tym samym kluczem. Dane: M1, C1 = EK (M1); M2, C2 = EK (M2);, Mi, Ci = EK(Mi) M1, M2,, Mi są wybrane przez kryptoanalityka Wnioskowanie: K lub algorytm wnioskowania o Mj+1 na podstawie Ci+1 = EK(Mi+1)

Łamanie z adaptacyjnie wybranym tekstem jawnym (ang. adaptive-chosen plaintext attack). Jest to szczególny przypadek łamania z wybranym tekstem jawnym. Kryptoanalityk może nie tylko wybrać dowolny tekst jawny do szyfrowania, ale także wykonać kolejne próby, dobierając tekst jawny zgodnie z wynikami poprzednich szyfrowań. Przy łamaniu z wybranym tekstem jawnym łamiący może wybrać do zaszyfrowania jeden duży blok tekstu jawnego; natomiast przy łamaniu z adaptacyjnie wybranym tekstem jawnym może wybrać mniejszy blok tekstu jawnego, potem wybrać inny, biorąc pod uwagę skutki pierwszego wyboru itd. Ponadto można wyróżnić przynajmniej trzy inne metody łamania szyfrów: Łamanie z wybranym kryptogramem (ang. chosen-ciphertext attack). Kryptoanalityk może wybierać różne kryptogamy do deszyfrowania i mieć dostęp do odszyfrowanego tekstu jawnego. Gdy ma sprawdzoną metodę automatycznego deszyfrowania, jego zadanie polega na znalezieniu klucza. Dane: C1, M1 = DK (C1); C2, M2 = DK (C2);, Ci, Mi = DK(Ci) Wnioskowanie: K Łamanie z wybranym kluczem (ang. chosen-key attack). Nie jest to metoda łamania, w której kryptoanalityk ma możliwość wyboru klucza, lecz posiada on pewną wiedzę o powiązaniach między różnymi kluczami. Metody te są rzadko stosowane i dlatego nie będą tu omówione. Łamanie z gumową pałką (ang. rubber-hose cryptoanalysis). Kryptoanalityk grozi, szantażuje lub torturuje odpowiednią osobę dopóty, dopóki nie otrzyma klucza. Przekupstwo jest nazywane łamaniem przez nabycie (ang. purchase-key attack). Ta metoda łamania szyfrów bywa bardzo skuteczna i często jest najlepszą i najskuteczniejszą (a często też najtańszą) metodą rozpoznania algorytmu lub zdobycia klucza. Najpopularniejszą metodą łamania szyfru jest metoda ze znanym tekstem jawnym i z wybranym tekstem jawnym. Wbrew pozorom dość często kryptoanalityk dysponuje tekstem jawnym, który został zaszyfrowany. Wiele wiadomości ma standardowe nagłówki i zakończenia znane kryptoanalitykowi. Szczególnie podatny na złamanie jest choćby zaszyfrowany program w postaci kodu źródłowego, gdyż regularnie występują w nim kluczowe słowa języka programowania (np. #define, #include, if, else, return, while, itp.). Zaszyfrowany program wykonywalny (EXE) stwarza te same problemy związane z protokołami, strukturami pętli itp. Łamanie ze znanym tekstem jawnym (a nawet z wybranym tekstem jawnym) było z powodzeniem stosowane w czasie II wojny światowej przeciwko Niemcom i Japończykom. Jeśli siła systemu kryptograficznego opiera się na nieznajomości algorytmu przez atakującego, to jest to duży błąd. Pomyłką jest sądzić, że chroniąc szczegóły algorytmu zapewnia się większe bezpieczeństwo systemu niż w sytuacji, gdy opublikuje się algorytm i pozwoli na jego analizę. Naiwnością jest wiara w to, że nikt nie dokona disasemblacji kodu algorytmu ani nie będzie chciał odtworzyć algorytmu. Najlepsze dzisiejsze algorytmy są opublikowane i latami bezskutecznie łamane przez najlepszych kryptoanalityków na świecie.

Nie zawsze osoba łamiąca szyfr ma dostęp do algorytmu, lecz tak jest najczęściej. Jeśli algorytm szyfrujący jest zastosowany w programie komercyjnym, to jest tylko kwestią czasu i pieniędzy jego zdeasemblowanie i odtworzenie algorytmu. Możliwe jest także, przy odpowiednich nakładach czasowych i finansowych, przejście zabezpieczeń sprzętowych wystarczy kupić (lub ukraść) odpowiednie urządzenia i odtworzyć algorytm. 7 Bezpieczeństwo systemów kryptograficznych Różne systemy kryptograficzne charakteryzują się różnymi poziomami zapewnianego bezpieczeństwa w zależności od tego, jak trudno je złamać. Jeśli koszt złamania szyfru jest większy niż wartość zaszyfrowanej informacji, to prawdopodobnie szyfr jest bezpieczny. Jeśli czas niezbędny do złamania szyfru jest dłuższy niż czas, w którym dane muszą pozostać utajnione, to prawdopodobnie szyfr jest bezpieczny. Jeśli ilość danych zaszyfrowanych z zastosowaniem pojedynczego klucza jest mniejsza niż ilość danych niezbędnych do złamania szyfru, to prawdopodobnie szyfr jest bezpieczny. Prawdopodobnie bezpieczny gdyż w każdej chwili może pojawić się w kryptoanalizie nowa koncepcja, która wymusi ponowną ocenę bezpieczeństwa szyfru. Kategorie łamania szyfrów są następujące: Całkowite złamanie szyfru. Kryptoanalityk znajduje klucz K, taki, że DK(C) = M. Ogólne wnioskowanie. Kryptoanalityk znajduje alternatywny algorytm, równoważny z algorytmem DK(C), nie wymagającym poznania K. Lokalne wnioskowanie. Kryptoanalityk znajduje tekst jawny przechwyconego kryptogramu. Częściowe wnioskowanie. Kryptoanalityk zdobywa nieco informacji o kluczu i tekście jawnym. Informacją tą może być kilka bitów klucza, informacja na temat formatu tekstu jawnego (np. jest to kod źródłowy w języku C ) itp. Algorytm jest bezwarunkowo bezpieczny (ang. uncoditionally secure) jeśli niezależnie od liczby kryptogramów, które ma kryptoanalityk, nie jest możliwe odtworzenie tekstu jawnego. W zasadzie tylko algorytmów z kluczem jednorazowym nie można złamać, dysponując nieograniczonymi zasobami. Wszystkie inne systemy można złamać, podstawiając po kolei różne klucze i sprawdzając, czy otrzymany tekst jawny jest sensowny. Ta metoda jest nazywana łamaniem brutalnym (ang. brute-force attack). Kryptografia zajmuje się przede wszystkim systemami, których nie da się złamać obliczeniowo. Algorytm uznawany jest za obliczeniowo bezpieczny lub silny jeśli nie może być złamany za pomocą dostępnych obecnie i w przyszłości środków, przy czym interpretacja terminu dostępne środki jest nadal sprawą dyskusyjną. Złożoność metody łamania można mierzyć kilkoma sposobami: Złożoność danych. Ilość danych, wymaganych jako dane wejściowe metody łamania szyfru. Złożoność przetwarzania. Czas wymagany do złamania szyfru. Wymagania pamięci. Wielkość pamięci niezbędnej do złamania szyfru.

Złożoność metody łamania szyfru jest szacowana jako minimum z tych trzech miar. Niektóre metody łamania wymagają kompromisu pomiędzy tymi trzema miarami, np. łamanie jest szybsze, ale wymaga dużo więcej pamięci itp. Złożoność jest określana jako rząd wielkości. Jeśli z jakimś algorytmem jest związana złożoność przetwarzania rzędu 2 128, to oznacza, że do złamania tego algorytmu trzeba wykonać 2 128 operacji, które mogą być złożone i czasochłonne. Dysponując procesorem, wykonującym milion operacji na sekundę, i stosując milion takich procesorów, nasze zadanie pochłonie 10 19 lat, czyli miliard razy więcej niż wynosi wiek Wszechświata. Złożoność metody łamania, niezbędna do złamania danego algorytmu jest stała (oczywiście do czasu znalezienia lepszej metody łamania), ale moc obliczeniowa komputerów nie jest stała. Dlatego też twierdzenie, że algorytm jest bezpieczny, gdyż przy obecnych możliwościach przetwarzania danych nie można go złamać, jest ryzykowne postęp w konstrukcji procesorów jest nadal bardzo szybki i trend ten najprawdopodobniej zostanie utrzymany. Dobre algorytmy są projektowane tak, aby nie można ich było złamać nawet dysponując przewidywanymi za wiele lat mocami obliczeniowymi. 8 Łamanie brutalne Aby rozpocząć atak, kryptoanalityk potrzebuje tylko kryptogramu (nawet fragmentu kryptogramu). W przypadku szyfrów blokowych będzie niezbędny przynajmniej jeden blok kryptogramu. Zdobycie kryptogramu powinno być stosunkowo proste. Dodatkowo warto uzyskać pewne informacje na temat struktury czy układu tekstu jawnego, co bardzo ułatwia łamanie (np. w przypadku łamania algorytmu XOR) np. czy tekst jawny to plik Worda, plik graficzny JPG, standardowa wiadomość poczty elektronicznej, rekord bazy danych, plik spakowany algorytmem ZIP itp. Każdy z tych formatów danych ma pewne, charakterystyczne i ściśle określone bajty w określonych miejscach pliku, co znacznie ułatwia operację łamania szyfru, tak, że kryptoanalityk może wykorzystać te informacje w celu ograniczenia złożoności obliczeniowej łamania brutalnego. Jednak często kryptoanalityk dysponuje wyłącznie fragmentem (lub całością) kryptogramu i może wtedy zastosować wyłącznie łamanie brutalne. Oszacowanie złożoności obliczeniowej łamania brutalnego jest łatwe. Jeśli klucz ma długość 8 bitów (1 bajt), to należy zbadać 2 8 = 256 możliwych kluczy. Zatem przy 256 próbach jest pewność znalezienia klucza, przy szansie 50% na powodzenie przy połowie tej ilości prób. Jeśli klucz ma długość 56 bitów, to kombinacji jest 2 56, co przy sprawdzaniu miliona kluczy na sekundę daje 2 285 lat badania. Dla 64-bitowego klucza jest to już 585 000 lat, zaś dla klucza 128-bitowego 10 25 lat. Wiek Wszechświata szacowany jest tylko na 10 10 lat, więc okres 10 25 lat prawdopodobnie zapewnia bezpieczeństwo. Przy kluczu 2048- bitowym milion komputerów, pracujących równolegle i badających po milionie kluczy na sekundę każdy, łamanie brutalne szyfru zajmie 10 597 lat. Należy jednak pamiętać, że algorytm musi być tak bezpieczny, by nie było innej metody jego złamania niż atak brutalny. Nie jest to tak łatwe, jak mogłoby się wydawać. Nawet algorytmy, które wydają się być doskonałe, często po pewnym czasie badań okazują się być skrajnie słabe. Dlatego też najlepiej jest ufać algorytmom, które są od wielu lat przedmiotem bezskutecznych badań kryptografów, natomiast z dystansem podchodzić do nowych algorytmów, reklamowanych jako najlepsze i nie do złamania.

9 Zadania 9.1 Zapoznać się z materiałami (pod kątem wejściówki). 9.2 Zaimplementować algorytmy: szyfru homofonicznego, szyfru Vigenere a oraz szyfru Playfaira. 10 Dodatki 10.1 Częstość występowania wybranych znaków w tekstach Znak Polski Ang. Pas Znak Polski Ang. Pas Znak Polski Ang. Pas A 0,080 0,067 0,037 N 0,047 0,053 0,050 Spacja 0,172 0,197 0,192 B 0,013 0,013 0,013 O 0,071 0,063 0,046 0 - - 0,003 C 0,038 0,019 0,032 P 0,024 0,012 0,022 1 - - 0,004 D 0,030 0,031 0,028 Q - 0,001-2 - - 0,002 E 0,069 0,089 0,081 R 0,035 0,042 0,057 3 - - 0,001 F 0,001 0,021 0,014 S 0,038 0,043 0,034 4 - - 0,001 G 0,010 0,017 0,017 T 0,024 0,070 0,060 5 - - 0,002 H 0,010 0,043 0,015 U 0,018 0,021 0,019 6 - - 0,001 I 0,070 0,054 0,050 V - 0,006 0,008 7 - - 0,001 J 0,019 0,002 0,002 W 0,036 0,018 0,007 8 - - 0,001 K 0,027 0,009 0,003 X - 0,001 0,008 9 - - 0,002 L 0,031 0,033 0,031 Y 0,032 0,023 0,008. 0,009 0,008 0,012 M 0,024 0,022 0,014 Z 0,056 0,001 0,001, 0,009 0,002 0,010 Tabela 5 - Częstość występowania znaków w tekstach [4.2] Tabela zawiera częstości wystąpień wybranych znaków w tekstach w języku polskim, angielskim oraz w programie pascalowym. Nie uwzględniono znaków diakrytycznych języka polskiego. Kreska oznacza, że częstość występowania znaku jest mniejsza niż 0,0005.