ROZPRAWA DOKTORSKA. Metoda projektowania dyskretnych chaotycznych szyfrów strumieniowych oparta na kryptoanalizie. Wydział Informatyki



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

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

Kryptoanaliza algorytmu chaotycznego szyfrowania obrazu

Szyfrowanie informacji

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

2 Kryptografia: algorytmy symetryczne

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

Zarys algorytmów kryptograficznych

Chaotyczne generatory liczb pseudolosowych

Zastosowania informatyki w gospodarce Wykład 5

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

Algorytmy asymetryczne

Marcin Szeliga Dane

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

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

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Szyfry Strumieniowe. Zastosowanie wybranych rozwiąza. zań ECRYPT do zabezpieczenia komunikacji w sieci Ethernet. Opiekun: prof.

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

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

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

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

1.1. Standard szyfrowania DES

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Laboratorium nr 1 Szyfrowanie i kontrola integralności

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

Parametry systemów klucza publicznego

Bezpieczeństwo kart elektronicznych

WSIZ Copernicus we Wrocławiu

Bezpieczeństwo systemów komputerowych

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

Authenticated Encryption

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

Szyfry strumieniowe RC4. Paweł Burdzy Michał Legumina Sebastian Stawicki

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

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

Kryptografia na procesorach wielordzeniowych

Copyright by K. Trybicka-Francik 1

Metody numeryczne I Równania nieliniowe

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

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

Szyfry kaskadowe. Szyfry kaskadowe

Copyright by K. Trybicka-Francik 1

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

Algorytmy i struktury danych. wykład 9

Podstawy systemów kryptograficznych z kluczem jawnym RSA

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

Technologie Informacyjne

Spis treści. Przedmowa... 9

Szyfry kaskadowe. permutacyjnej (SPP).

Spacery losowe generowanie realizacji procesu losowego

Szyfry blokowe z wykorzystaniem chaosu dyskretnego. Michał Łazicki 1

Kryptografia szyfrowanie i zabezpieczanie danych

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

III. Funkcje rzeczywiste

Systemy Mobilne i Bezprzewodowe laboratorium 12. Bezpieczeństwo i prywatność

Układy kryptograficzne z uŝyciem rejestrów LFSR

II. Równania autonomiczne. 1. Podstawowe pojęcia.

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

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

Prawdopodobieństwo i statystyka

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

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

Programowanie celowe #1

Bezpieczeństwo danych, zabezpieczanie safety, security

Wybrane zagadnienia teorii liczb

Podstawa opracowania recenzji: Zlecenie Dziekana Wydziału Inżynierii Mechanicznej i Informatyki Politechniki Częstochowskiej z dnia roku.

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wykład 6. Szyfry strumieniowe

Szyfry strumieniowe. Wykład 6. Binarny addytywny szyfr strumieniowy

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Układy stochastyczne

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

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

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Aproksymacja funkcji a regresja symboliczna

Liczby zmiennoprzecinkowe i błędy

Specjalistyczna Pracownia Komputerowa Obliczanie widma Lapunowa

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Kryptografia na Usługach Dewelopera. Cezary Kujawa

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Efekt motyla i dziwne atraktory

1 Równania nieliniowe

Wykład 7. komputerowych Integralność i uwierzytelnianie danych - główne slajdy. 16 listopada 2011

Rozdział 1 PROGRAMOWANIE LINIOWE

Plan wykładu. Ochrona zasobów w systemach gospodarki elektronicznej. Usługi ochrony. Klasyfikacja zagrożeń. Wykład: Systemy gospodarki elektronicznej

Szyfrowanie RSA (Podróż do krainy kryptografii)

Laboratorium ochrony danych

Zad. 3: Układ równań liniowych

Układy równań i nierówności liniowych

Transkrypt:

P O L I T E C H N I K A S Z C Z E C I Ń S K A Wydział Informatyki ROZPRAWA DOKTORSKA mgr inż. Adrian Skrobek Metoda projektowania dyskretnych chaotycznych szyfrów strumieniowych oparta na kryptoanalizie Promotor: prof. dr hab. inż. Włodzimierz Bielecki Szczecin, 2007

Pragnę szczególnie goraco podziękować mojemu promotorowi Panu profesorowi Włodzimierzowi Bieleckiemu za nieoceniona pomoc w realizacji pracy naukowej. Pragnę również podziękować Panu doktorowi Jerzemu Pejasiowi za cenne wskazówki udzielane w trakcie badań nad kluczowymi zagadnieniami. Pracę dedykuję żonie. Adrian Skrobek

Spis treści 1 Wstęp 1 1.1 Zakres pracy.................................... 3 1.2 Cel i teza pracy.................................. 4 1.3 Przegląd kryptosystemów chaotycznych..................... 8 1.4 Prace pokrewne.................................. 10 1.5 Wprowadzenie teoria chaosu.......................... 11 1.5.1 Pojęcia układu dynamicznego...................... 11 1.5.2 Chaos w sensie Li-Yorke......................... 14 1.5.3 Rozwiązywalne układy dynamiczne................... 15 1.5.4 Lemat o cieniu.............................. 16 1.6 Wprowadzenie szyfry strumieniowe...................... 17 1.6.1 Projektowanie szyfrów strumieniowych................. 17 1.6.2 Szyfr blokowy jako szyfr strumieniowy................. 20 1.6.3 Bezpieczeństwo kryptograficzne..................... 24 1.6.4 Analiza bezpieczeństwa......................... 25 2 Budowa chaotycznego szyfru strumieniowego 27 2.1 Wstęp....................................... 27 2.2 Klucz....................................... 29 2.3 Funkcja zmiany stanu............................... 31 2.3.1 Ogólne jednowymiarowe odwzorowania symetryczne.......... 31 2.3.2 Klasa odwzorowań kwadratowych.................... 32 2.3.3 Klasa odwzorowań odcinkami liniowych................ 33 2.3.4 Sprzężenie topologiczne odwzorowań.................. 34 2.3.5 Odwzorowania ukośne.......................... 35 2.3.6 Badanie wykładnika Lapunowa..................... 35 i

SPIS TREŚCI 2.3.7 Częstość występowania bitów w reprezentacji binarnej liczby zmiennopozycyjnej................................ 37 2.3.8 O implementacji............................. 39 2.4 Funkcja generująca strumień klucza (filtr).................... 40 2.4.1 Cechy statystyczne............................ 42 2.4.2 Klasyczne generatory liczb pseudolosowych.............. 44 2.4.3 Chaotyczne generatory liczb pseudolosowych.............. 45 2.5 Funkcja wyjścia.................................. 46 2.6 Sprzężenie zwrotne................................ 47 2.7 Podsumowanie.................................. 48 3 Analiza szyfrów chaotycznych 50 3.1 Opis wybranych chaotycznych algorytmów szyfrowych............. 50 3.1.1 Szyfr chaotyczny wykorzystujący zjawisko ergodyczności....... 50 3.1.2 Szyfr wykorzystujący chaotyczny generator ciągów pseudolosowych. 52 3.1.3 Szyfr chaotyczny wykorzystujący zewnętrzny klucz........... 54 3.1.4 Chaotyczny szyfr strumieniowy z modyfikacją orbity.......... 55 3.1.5 Chaotyczny szyfr produktowy...................... 57 3.1.6 Szyfry chaotyczne wykorzystujące iterację dwukierunkową...... 59 3.2 Analiza bezpieczeństwa szyfrów chaotycznych................. 61 3.2.1 Precyzja opisu algorytmu......................... 62 3.2.2 Klucz................................... 63 3.2.3 Funkcja zmiany stanu.......................... 72 3.2.4 Funkcja generująca strumień klucza (filtr)................ 79 3.2.5 Funkcja wyjścia............................. 102 3.2.6 Sprzężenie zwrotne............................ 104 3.2.7 Zależność od implementacji....................... 110 4 Metoda i jej zastosowanie 111 4.1 Proces projektowania szyfru........................... 111 4.1.1 Funkcja zmiany stanu.......................... 114 4.1.2 Klucz................................... 118 4.1.3 Inicjowanie szyfru, przekształcenia wejściowe i wyjściowe....... 119 4.1.4 Funkcja filtra............................... 121 4.1.5 Funkcja wyjścia............................. 126 4.1.6 Funkcja sprzężenia zwrotnego...................... 127 ii

SPIS TREŚCI 4.2 Zastosowanie metody w szyfrach chaotycznych................. 128 4.2.1 Szyfr chaotyczny wykorzystujący zjawisko ergodyczności....... 129 4.2.2 Szyfr wykorzystujący chaotyczny generator ciągów pseudolosowych. 131 4.2.3 Szyfr chaotyczny wykorzystujący zewnętrzny klucz........... 134 4.2.4 Chaotyczny szyfr strumieniowy z modyfikacją orbity.......... 135 4.2.5 Chaotyczny szyfr produktowy...................... 137 4.2.6 Szyfry chaotyczne wykorzystujące iterację dwukierunkową...... 140 5 Podsumowanie i przedstawienie wyników pracy 143 5.1 Efektywność rozwiązania............................. 147 5.2 Kierunki dalszych badań............................. 148 A Wyznaczanie złożoności algorytmów szyfrowych 150 A.1 Wyznaczanie złożoności procedury inicjowania................. 151 A.2 Algorytm M.S. Baptisty.............................. 151 A.3 Algorytm E. Alvareza............................... 156 A.4 Algorytm Pareeka................................. 161 A.5 Algorytm Philip-Joseph.............................. 165 A.6 Algorytm A. Sarkara............................... 167 A.7 Algorytm Habutsu................................ 174 B Efektywność algorytmów szyfrowych 176 C Rozkład p-wartości chaotycznego generatora pseudolosowych bitów 178 D Szczegóły algorytmów szyfrowych 183 E Publikacje własne i wspólne 193 iii

Spis rysunków 1.1 Schemat działania synchronicznego szyfru strumieniowego........... 19 1.2 Schemat działania synchronicznego szyfru strumieniowego........... 20 1.3 Schemat działania szyfru blokowego w trybie CBC proces szyfrowania... 22 1.4 Schemat działania szyfru blokowego w trybie CBC proces deszyfrowania.. 22 1.5 Schemat działania szyfru blokowego w trybie CFB proces szyfrowania.... 23 1.6 Schemat działania szyfru blokowego w trybie CFB proces deszyfrowania.. 23 1.7 Schemat działania szyfru blokowego w trybie OFB proces szyfrowania.... 24 1.8 Schemat działania szyfru blokowego w trybie OFB proces deszyfrowania.. 24 2.1 Schemat blokowy chaotycznego szyfratora strumieniowego........... 28 2.2 Diagram bifurkacji ogólnego odwzorowania symetrycznego.......... 32 2.3 Wykładnik Lapunowa dla ogólnego odwzorowania symetrycznego w funkcji parametru α..................................... 32 2.4 Diagram powrotów dla odwzorowania ukośnego kwadratowego, dla a = 1.2.. 36 2.5 Diagram powrotów dla odwzorowania ukośnego liniowego, dla a = 0.6.... 36 2.6 Ilość ujemnych wykładników Lapunowa dla funkcji logistycznej w obszarze chaotyczności................................... 37 2.7 Rozkład prawdopodobieństwa każdego bitu reprezentacji binarnej wartości generowanych przez funkcję logistyczną....................... 38 2.8 Błąd bezwzględny iteracji podczas różnej implementacji funkcji logistycznej. 40 3.1 Schemat blokowy szyfru M.S. Baptisty...................... 51 3.2 Rozkład prawdopodobieństwa osiągnięcia danego ɛ-interwału w szyfrze M. S. Baptisty...................................... 51 3.3 Diagram blokowy algorytmu E. Alvareza.................... 53 3.4 Diagram blokowy algorytmu N. Pareeka..................... 55 3.5 Diagram blokowy algorytmu Philip-Joseph................... 56 iv

SPIS RYSUNKÓW 3.6 Schemat blokowy szyfru Sarkara......................... 59 3.7 Schemat iterowanego szyfru blokowego..................... 61 3.8 Schemat iterowanego wstecznie szyfru chaotycznego.............. 61 3.9 Ilość równoważnych kluczy dla szyfru M.S. Baptisty.............. 66 3.10 Entropia Shannona H reprezentacji binarnej wartości orbity funkcji chaotycznych w funkcji długości ciągu danych n..................... 69 3.11 Wizualizacja wartości klucza........................... 71 3.12 Diagram powrotów, gdy wykorzystany przedział jest mniejszy od możliwych wartości orbity.................................. 74 3.13 Diagram powrotów gdy wykorzystano cały atraktor............... 74 3.14 Wielomiany linii krytycznych dla funkcji logistycznej.............. 75 3.15 Wartości wykładnika Lapunowa Λ dla zastosowanych wartości parametru kontrolnego λ. Czarnymi punktami zaznaczono ujemną wartość wykładnika.... 77 3.16 Zagęszczenie punktów przy niejednorodnej gęstości prawdopodobieństwa... 79 3.17 Przybliżanie wartości klucza w algorytmie E. Alvareza............. 80 3.18 Szerokość przedziału A dla wartości ˆp 1 w funkcji liczby iteracji........ 89 3.19 Błąd względny δ dla wartości p 1 w funkcji liczby iteracji (wartości w %).... 89 3.20 Szerokość przedziału A dla wartości ˆq 1 w funkcji liczby iteracji........ 91 3.21 Błąd względny δ dla wartości q 1 w funkcji liczby iteracji (wartości w %).... 91 3.22 Zakres poprawnych wartości parametrów x max i x min oraz powiększenie interesującego obszaru................................ 95 3.23 Szerokość przedziału przybliżanej orbity x 1................... 98 3.24 Wielkość zbioru poprawnych punktów orbity dla wstecznej iteracji....... 99 4.1 Proces projektowania szyfru........................... 112 4.2 Projektowanie funkcji zmiany stanu....................... 115 4.3 Zmiana współczynnika α, β oraz γ........................ 116 4.4 Baseny atrakcji dla α = 0.5, 0.8, 1.0, 1.3, 1.5, 2.0................ 117 4.5 Projektowanie klucza............................... 119 4.6 Projektowanie funkcji filtra............................ 121 4.7 Rozkład prawdopodobieństwa każdego bitu po wykonaniu operacji xor na reprezentacji binarnej wartości generowanych przez dwie funkcje logistyczne... 123 4.8 Projektowanie funkcji wyjścia.......................... 126 4.9 Projektowanie funkcji sprzężenia zwrotnego................... 128 5.1 Efektywność badanych algorytmów szyfrowych................. 148 v

SPIS RYSUNKÓW B.1 Efektywność algorytmu M.S. Baptisty...................... 176 B.2 Efektywność algorytmu E. Alvareza....................... 176 B.3 Efektywność algorytmu Pareeka......................... 177 B.4 Efektywność algorytmu Philip -Joseph...................... 177 B.5 Efektywność algorytmu A. Sarkara........................ 177 B.6 Efektywność algorytmu Habutsu......................... 177 C.1 Rozkład p-wartości w Frequency (Monobit) Test................ 178 C.2 Rozkład p-wartości w Frequency Test within a Block.............. 178 C.3 Rozkład p-wartości w Runs Test......................... 179 C.4 Rozkład p-wartości w Test for the Longest Run of Ones in a Block....... 179 C.5 Rozkład p-wartości w Binary Matrix Rank Test................. 179 C.6 Rozkład p-wartości w Discrete Fourier Transform (Spectral) Test........ 179 C.7 Rozkład p-wartości w Non-overlapping Template Matching Test........ 180 C.8 Rozkład p-wartości w Overlapping Template Matching Test........... 180 C.9 Rozkład p-wartości w Maurer s Universal Statistical Test........... 180 C.10 Rozkład p-wartości w Lempel-Ziv Compression Test.............. 180 C.11 Rozkład p-wartości w Linear Complexity Test.................. 181 C.12 Rozkład p-wartości w Serial Test......................... 181 C.13 Rozkład p-wartości w Approximate Entropy Test................ 181 C.14 Rozkład p-wartości w Cumulative Sums (Cusum) Test............. 181 C.15 Rozkład p-wartości w Random Excursions Test................. 182 C.16 Rozkład p-wartości w Random Excursions Variant Test............. 182 vi

Spis tabel 1.1 Porównanie własności kryptografii klasycznej i chaotycznej.......... 2 2.1 Czasochłonność ataku metodą pełnego przeglądu................ 29 2.2 Dodatnie wykładniki Lapunowa dla niektórych odwzorowań chaotycznych.. 36 3.1 Wartości funkcji logistycznej i z i dla podanych parametrów........... 62 3.2 Minimalna długość hasła w zależności od liczby znaków............ 63 3.3 Rozmiar klucza badanych algorytmów szyfrowych............... 64 3.4 Odtworzenie ciągu y (i), i = 1, 2,..., N dla INI1 = 0.28 oraz N = 5..... 86 3.5 Kolejne przybliżenia wartości p 1 (wartości zaokrąglone do 6 i 3 miejsc po przecinku)....................................... 88 3.6 Zbiory numerów przedziałów powodujących w drugiej fazie szyfrowania wybór danego elementu. W kolumnie Z k podkreślony element jest faktycznie generowany przez układ chaotyczny. W kolumnie C k podkreślony element to ten, od którego liczy się odległość do elementu następnego ciągu C.......... 90 3.7 Przybliżanie wartości parametru b........................ 93 3.8 Przybliżanie wartości parametru x α....................... 97 3.9 Zestawienie współczynników proporcji wybranych generatorów ciągów pseudolosowych (sukces wytłuszczony, gdy wynik jest powyżej 0.96)........ 101 3.10 Inicjowanie ataku z wybranym szyfrogramem C 2 = (0, 0)........... 106 3.11 Przeprowadzenie ataku z wybranym tekstem jawnym t 3 = (β 0, β 1, 0)..... 106 3.12 Przeprowadzenie ataku z wybranym tekstem jawnym t 4 = (β 0, β 1, f 2 (x 0, λ), 0) 106 3.13 Stany deszyfratora w fazie inicjowania...................... 107 3.14 Stany szyfratora w trakcie wzbudzania...................... 109 3.15 Stany szyfratora w momencie uzyskiwania wartości x 3............. 109 4.1 Szczególne przypadki trójparametrowego odwzorowania ciągłego....... 117 vii

SPIS TABEL 4.2 Statystyka poprawności testów.......................... 124 5.1 Złożoność ataków na algorytmy szyfrowe.................... 145 5.2 Złożoność algorytmiczna algorytmów szyfrowych................ 147 viii

Spis algorytmów 1 Wyznaczenie poprawnego zbioru poprzednich punktów orbity.......... 65 2 Procedura przybliżania wartości klucza szyfru E. Alvareza............ 81 3 Wyznaczenie permutacji szyfru przestawieniowego................ 85 4 Odtworzenie tekstu jawnego o długości N.................... 86 5 Wyznaczanie zawężonego przedziału orbity.................... 88 6 Generowanie n bitów losowych z pojedynczej pary stanów chaotycznych.... 102 7 Generowanie ciągów pseudolosowych....................... 123 8 Szyfr M.S. Baptisty, procedura szyfrująca..................... 183 9 Szyfr M.S. Baptisty, procedura deszyfrująca.................... 184 10 Szyfr E. Alvareza, procedura szyfrująca...................... 185 11 Szyfr E. Alvareza, procedura deszyfrująca..................... 186 12 Szyfr Pereeka, procedura szyfrująca........................ 187 13 Szyfr Pereeka, procedura deszyfrująca....................... 188 14 Szyfr Philip-Joseph, procedura szyfrująca..................... 189 15 Szyfr Philip-Joseph, procedura deszyfrująca.................... 189 16 Szyfr Sarkara, procedura szyfrująca, pierwsza faza (podstawieniowa)...... 190 17 Szyfr Sarkara, procedura szyfrująca, druga faza (przestawieniowa)........ 190 18 Szyfr Sarkara, procedura szyfrująca, pierwsza faza (przestawieniowa)...... 191 19 Szyfr Sarkara, procedura szyfrująca, druga faza (podstawieniowa)........ 191 20 Szyfr Habutsu procedura szyfrująca....................... 192 21 Szyfr Habutsu procedura deszyfrująca...................... 192 ix

Spis oznaczeń i akronimów AES (ang. Advanced Encryption Standard) - symetryczny szyfr blokowy przyjęty przez NIST w wyniku konkursu ogłoszonego w roku 1997 ANSI (ang. American National Standards Institute) instytucja ustalająca normy techniczne obowiązujące w USA CBC (ang. Cipher Block Chaining) wiązanie bloków szyfrogramu CFB (ang. Cipher Feedback) sprzężenie zwrotne od szyfrogramu CTR (ang. Counter mode) tryb licznikowy DES (ang. Data Encryption Standard) amerykański standard szyfrowania danych od roku 1977 ECB (ang. Electronic Code Book) elektroniczna książka kodowa FIPS (ang. Federal Information Processing Standards) federalny standard przetwarzania informacji FSR (ang. Feedback Shift Register) rejestr przesuwający ze sprzężeniem zwrotnym IDEA (ang. International Data Encryption Algorithm) symetryczny szyfr blokowy zaprojektowany w 1991 roku IEEE (ang. Institute of Electrical and Electronics Engineers) Instytut Inżynierów Elektryków i Elektroników IV (ang. Initialisation Vector) wektor inicjujący JRE (ang. Java Runtime Environment) środowisko uruchomieniowe dla programów napisanych w języku Java x

SPIS OZNACZEŃ I AKRONIMÓW LFSR (ang. Linear Feedback Shift Register) rejestr przesuwny z liniowym sprzężeniem zwrotnym NaN (ang. Not a Number) wartość, która nie jest poprawną liczbą NESSIE (ang. New European Schemes for Signatures, Integrity and Encryption) projekt wewnątrz programu Technologii Społeczeństwa Informacyjnego przy Komisji Europejskiej NIST (ang. National Institute of Standards and Technology) narodowy instytut standaryzacji i technologii NNW (ang. LCM, Least Common Multiple) najmniejsza wspólna wielokrotność OFB (ang. Output Feedback) sprzężenie zwrotne od wyjścia OTP (ang. One-time Pad) szyfr z kluczem jednorazowym PIN (ang. Personal Identification Number) osobisty numer identyfikacyjny PRBG (ang. Pseudorandom Bit Generator) pseudolosowy generator ciągów binarnych PWLCM (ang. Piecewise Linear Chaotic Map) odcinkami liniowe odwzorowanie chaotyczne RAM (ang. Random Access Memory) pamięć o dostępie swobodnym RC5 (ang. Rivest Cipher #5) szybki szyfr blokowy opracowany przez Rivesta w 1994 roku RSA (Rivest, Shamir, Adleman) algorytm kryptografii asymetrycznej stworzony w 1978 roku przez Rivesta, Shamira i Adlemana SALT losowy modyfikator klucza lub tekstu jawnego SHA (ang. Secure Hash Algorithm) rodzina funkcji skrótu publikowanych przez NIST SSL (ang. Secure Sockets Layer) protokół mający na celu zapewnienie poufności i integralności transmisji danych oraz zapewnienie uwierzytelnienia XOR (ang. Exclusive Or) operacja różnicy symetrycznej xi

Spis symboli matematycznych R zbiór liczb rzeczywistych Z zbiór liczb całkowitych #X liczba kardynalna zbioru X, moc zbioru X!x, φ(x) istnieje dokładnie jedno x, dla którego zachodzi φ(x) x, φ(x) nie istnieje takie x, dla którego zachodzi φ(x) a b = a xor b różnica symetryczna zdań a i b. Różnica symetryczna zdań a b jest prawdziwa wtedy i tylko wtedy, gdy dokładnie tylko jedno ze zdań a, b jest prawdziwe. frac(x) = x mod 1 = x x część ułamkowa liczby s = 3.5699456... punkt Feigenbauma k (x i ) = x 1 x 2 x k i=1 min k i=1 (x i) = min{x 1, x 2,..., x k } max k i=1 (x i) = max{x 1, x 2,..., x k } xii

Rozdział 1 Wstęp Algorytmy szyfrowe (w skrócie: szyfry) są ważną klasą algorytmów kryptograficznych. Służą do zapewnienia poufności informacji poprzez wykorzystanie odpowiedniego zestawu przekształceń matematycznych. Wiadomość jawna, po zastosowaniu algorytmu szyfrowego oraz klucza szyfrowania, może być w sposób bezpieczny przekazana do odbiorcy z wykorzystaniem kanału publicznego. Odbiorca, posiadając poprawny klucz deszyfrujący, jest w stanie odtworzyć wiadomość jawną za pomocą algorytmu deszyfrującego. Wśród algorytmów szyfrowych można wyróżnić algorytmy symetryczne i asymetryczne, algorytmy szyfrów strumieniowych oraz blokowych. Szyfry strumieniowe są najczęściej stosowane, gdy wymagana jest duża szybkość przetwarzania danych, ponieważ są one najczęściej szybsze niż szyfry blokowe. W szyfrach strumieniowych przetwarzane są indywidualne znaki tekstu jawnego za pomocą przekształcenia zmiennego w czasie, natomiast szyfry blokowe przetwarzają jednorazowo całe bloki danych za pomocą stałego przekształcenia. Układy chaotyczne charakteryzują się własnościami, które wydają się przydatne w procesie projektowania szyfrów strumieniowych. Charakteryzują się nieregularnym przebiegiem (orbitą chaotyczną), choć są deterministyczne (tzn. można idealnie odtworzyć trajektorie). Połączenie kilku układów chaotycznych pozwala na uzyskanie sekwencji o skomplikowanej strukturze [90]. Układy chaotyczne z powodzeniem zastosowano w układach analogowych, natomiast w układach dyskretnych głównym problemem jest skończona precyzja obliczeń. Ponieważ układy chaotyczne są wykładniczo wrażliwe na zmianę warunków początkowych, dlatego komputerowa symulacja układu chaotycznego będzie różnić się od rozważań teoretycznych. Występują dwie główne klasy szyfrów strumieniowych: synchroniczne i samosynchronizujące się. W szyfrze strumieniowym może być zastosowane sprzężenie zwrotne. Taki szyfr nazywany jest szyfrem samosynchronizującym. W przypadku, gdy sprzężenie zwrotne nie wy- 1

ROZDZIAŁ 1. WSTEP stępuje, szyfr strumieniowy nazywany jest synchronicznym. Dogłębna analiza klasycznych szyfrów strumieniowych przedstawiona jest w [93]. Szyfry strumieniowe różnią się od szyfrów blokowych również tym, że posiadają pamięć, czyli stan wewnętrzny szyfratora. Szyfry blokowe są algorytmami bezstanowymi. Zastosowanie jednego z trybów pracy szyfru blokowego (z wyjątkiem ECB) powoduje dodanie wewnętrznej pamięci do szyfratora, można zatem traktować szyfr blokowy jako szyfr strumieniowy [28, 80]. Najważniejsze składniki szyfrów strumieniowych to funkcja zmiany stanu wewnętrznego, funkcja filtra (generująca strumień klucza) oraz funkcja wyjścia, mieszająca strumień klucza z tekstem jawnym [18, 80]. Funkcja zmiany stanu generuje kolejny stan na podstawie stanu bieżącego, w tym celu stosuje się często rejestr przesuwający ze sprzężeniem zwrotnym (FSR). Funkcja strumienia klucza powinna generować ciąg nierozróżnialny od ciągu losowego. Jako funkcję wyjścia często stosuje się operator bitowej różnicy symetrycznej (w skrócie: XOR). Szyfr strumieniowy można z tego powodu potraktować jako analogię do szyfru Vernama, nazywanego również algorytmem z kluczem jednorazowym (ang. One-time Pad, OTP ) [18], który jako jedyny spełnia wymogi poufności doskonałej (ang. perfect secrecy)[102]. Własności kryptograficzne szyfrów klasycznych, takie jak konfuzja, dyfuzja, lawinowość mogą być uzyskane w naturalny sposób poprzez zastosowanie teorii chaosu. Analiza bezpieczeństwa szyfru oraz określenie jego własności kryptograficznych znajduje wówczas poparcie w teorii matematycznej. Łatwiej jest ocenić siłę szyfru, w którym wykorzystano teorię chaosu, ponieważ układy dynamiczne mają dobrze udokumentowane własności, których przydatność do celów kryptograficznych jest w sposób naturalny widoczna [55]. Niektóre własności kryptograficzne występujące w kryptografii klasycznej oraz ich naturalne odpowiedniki w algorytmach szyfrowych opartych na dynamicznych układach chaotycznych przedstawione są w tabeli 1.1 [5]. Tabela 1.1: Porównanie własności kryptografii klasycznej i chaotycznej Własność w kryptografii klasycznej Własność w kryptografii chaotycznej Konfuzja Ergodyczność Dyfuzja Wrażliwość na warunki początkowe, mieszanie Deterministyczna pseudolosowość Deterministyczna dynamika Złożoność algorytmiczna ataku Złożoność struktury orbity chaotycznej Z drugiej strony, niektóre stosowane obecnie algorytmy kryptograficzne bazujące na kryptografii klasycznej, zostały w znacznej części złamane lub zostały opracowane teoretyczne podstawy ich skutecznego przełamania: 2

ROZDZIAŁ 1. WSTEP 1. RSA opracowany jest algorytm faktoryzacji liczb o złożoności wielomianowej [103] pracujący w komputerze kwantowym [77], 2. DES kryptoanaliza 12 z 16 rund z wykorzystaniem ataku algebraicznego [27], 3. SHA-1 przedstawiono atak znajdujący kolizje [118], czyli takie dwie wartości wejściowe, dla których wynik funkcji skrótu jest identyczny [80]. Zjawisko chaosu jest zatem alternatywą w projektowaniu algorytmów kryptograficznych. Problemem jest jednak poziom bezpieczeństwa szyfrów projektowanych w oparciu o teorię chaosu: w przeciągu ostatniej dekady przedstawiono znaczną liczbę algorytmów szyfrowych bazujących na zjawisku chaosu (np. [3, 13, 14, 42, 56, 85, 98, 127]), jednak wiele z powstałych szyfrów chaotycznych zostało poddanych skutecznej kryptoanalizie [1, 6, 17, 49, 108, 109], udowadniając w ten sposób luki w bezpieczeństwie tych szyfrów. W niniejszej pracy opracowano i przedstawiono słabe punkty wybranych klas szyfrów chaotycznych. Wyniki uzyskano poprzez kryptoanalizę poszczególnych komponentów badanych szyfrów zgodnie z opracowanym modelem chaotycznego szyfru strumieniowego. Na podstawie badań określone są założenia projektowe, których spełnienie powoduje odporność szyfru na przedstawione ataki. W końcowej części pracy przedstawione są modyfikacje tych szyfrów poprzez zastosowanie proponowanych rozwiązań w celu zwiększenia złożoności analizowanych ataków. 1.1 Zakres pracy Istnieją dwa typy szyfrów chaotycznych: analogowe (wykorzystujące ciągłe w czasie układy chaotyczne) oraz cyfrowe (wykorzystujące dyskretne w czasie układy chaotyczne). Szyfry analogowe bazują na koncepcji synchronizacji układów chaotycznych [87]. W ich przypadku informacja może być przekazywana na wiele sposobów [4]: poprzez maskowanie chaotyczne (sygnał jest dodawany do sygnału uzyskiwanego z generatora chaotycznego); poprzez przełączanie układów chaotycznych (ang. chaos switching); sterowanie przesunięciem chaotycznym (ang. chaos shift keying, CSK); poprzez modulację chaotyczną (modulacja parametru kontrolnego) oraz poprzez sterowanie chaosem (ang. chaos control). Bez względu jednak na metodę przekazywania sygnału, odbiorca musi dokonać synchronizacji swojego generatora chaotycznego z generatorem nadawcy w celu odtworzenia sygnału z informacją. Synchronizacja oznacza, że mając trajektorie dwóch różnych układów chaotycznych x(n) i y(n), x(k) y(k) k 0 [43]. Cyfrowe szyfry chaotyczne mają zastosowanie w komputerach cyfrowych, które działają na zasadzie iteracji funkcji chaotycznej oraz maskują sygnał cyfrowy na kilka sposobów. Szyfry 3

ROZDZIAŁ 1. WSTEP te nie wymagają synchronizacji. Zamiast tego wykorzystują kilka układów chaotycznych, w których wartość początkowa oraz parametr systemowy stanowią najczęściej klucz. W pracy przedstawiono zagadnienia dotyczące projektowania strumieniowych szyfrów chaotycznych opartych na dyskretnych w czasie układach chaotycznych. Występujące w literaturze szyfry bazujące na zjawisku synchronizacji układów chaotycznych określane są również mianem algorytmów steganograficznych [37]; nie należą one do zakresu rozpatrywanych algorytmów szyfrowych w tej pracy. 1.2 Cel i teza pracy Stosowane w kryptografii funkcje chaotyczne należą często do klasy funkcji, dla których można obliczyć n-ty element ciągu bez potrzeby iteracji. Wadą tego typu rozwiązań jest jednokrokowa przewidywalność układu. Diagram powrotu (x(n + 1), x(n)) ujawnia zastosowaną w rzeczywistości funkcję chaotyczną. Układy chaotyczne charakteryzują się deterministyczna naturą. Umożliwia to obserwację wzorców ich zachowania, co pozwala na określenie pewnego porządku, jakim takie układy się rządzą. Stosowane często w projektach szyfrów chaotycznych funkcje odcinkami liniowe (PWLCM, por np. [3, 42, 136]), mają teoretycznie dobre własności statystyczne. Implementacja komputerowa powoduje jednak pogorszenie tych własności. Powstają cykle krótkookresowe, zmienia się prawdopodobieństwo występowania i korelacja orbit chaotycznych. Przedstawione w literaturze szyfry bazują często na odcinkami liniowych odwzorowaniach chaotycznych. Z powodu skończonej precyzji obliczeń, szyfry takie nie są bezpieczne ze ściśle kryptograficznego punktu widzenia. Wynika to z dynamicznej degradacji teoretycznie jednorodnego rozkładu strumienia klucza generowanego przez przekształcenie chaotyczne, powodując możliwość powstania wielu słabych kluczy oraz wycieku informacji. Ponadto nawet przy zastosowaniu tej samej reprezentacji liczb zmiennopozycyjnej, ale różnych zapisów wzoru funkcji chaotycznej, wyniki po skończonej liczbie iteracji będą się różnić [72, 88]. Z powodu błędów zaokrągleń powstałych przy każdej iteracji oraz wrażliwości układu chaotycznego na warunki początkowe, wartości orbity obliczone teoretycznie oraz zasymulowane na komputerze zawsze będą się różnić od siebie. Istnieje jednak lemat o cieniu [114], który stanowi, że pomimo błędów zaokrągleń, orbita z symulacji komputerowej znajduje się wystarczająco blisko pewnej orbity teoretycznej [99]. Ponieważ strumień klucza jest generowany przez deterministyczny system oraz klucz jest znacznie krótszy niż strumień klucza, zatem poufność doskonała nie jest możliwa [102]. Ponadto dla krótkich kluczy kryptosystemy chaotyczne (tak jak i inne kryptosystemy) są podatne na atak metodą pełnego przeglądu. Teo- 4

ROZDZIAŁ 1. WSTEP retycznie, nawet jeżeli jeden parametr jest kontrolowany, przestrzeń kluczy (zbiór wszystkich możliwych kluczy szyfru) jest nieskończona, jednak z powodu skończonej precyzji obliczeń komputerowych nie jest to osiągalne. Nie wszystkie układy chaotyczne są wrażliwe na warunki początkowe. Obliczenie numeryczne największego wykładnika Lapunowa ( 1.5.1) umożliwia określenie czy system jest chaotyczny czy nie, ponieważ wartość wykładnika jest miarą stopnia chaosu. Idealnie jest wtedy, gdy układ chaotyczny charakteryzuje się dużą wartością wykładnika Lapunowa. Jeżeli tak nie jest, wówczas podobne klucze generują podobne szyfrogramy dla kilku pierwszych setek iteracji co może dostarczyć kryptoanalitykowi niepożądanych informacji [133]. W niektórych kryptosystemach chaotycznych występują takie problemy jak: rozkład generowanych wartości szyfrogramu nie jest równomierny; szyfrowanie jest bardzo powolne; szyfrogram jest większy niż tekst jawny. Ponadto stosowana jest funkcja logistyczna x n+1 = rx n (1 x n ), która ma ograniczony zakres wartości parametru kontrolnego r, natomiast rozkład prawdopodobieństwa wystąpienia wartości x n nie jest równomierny na przedziale (0, 1), przy traktowaniu wartości x n jako wartości losowej [68]. Kryptografia chaotyczna jest odporna w pewnym zakresie na kryptoanalizę klasyczną. Z jednej strony jest to zaletą (utrudnienie złamania szyfru), jednak z drugiej strony jest to również wadą. Z powodu skomplikowania kryptoanalizy, bezpieczeństwo szyfru nie może być jasno określone. Bezpieczeństwo szyfrów konwencjonalnych bazuje np. na złożoności pewnych problemów trudnych obliczeniowo (na przykład faktoryzacja bardzo dużej liczby złożonej z wyłącznie dwóch (dużych) liczb pierwszych w przypadku algorytmu RSA). Inną słabością jest niski poziom bezpieczeństwa podczas szyfrowania bardzo długich wiadomości. Wartości orbity mogą się powtarzać lub sprowadzać się do tej samej orbity dla różnych wartości początkowych. Kolejnym problemem jest różna reprezentacja binarna liczb dziesiętnych na różnych platformach (sprzętowych i programowych) [41]. Częstą wadą projektów szyfrów chaotycznych jest to, że podane są jedynie zasady. Brak jest szczegółów, takich jak rekomendowane wielkości klucza, czy procedura generowania klucza. Nie jest zatem możliwa implementacja takich szyfrów przez inne osoby [12]. Wynika to z faktu, że brak jest systematycznego podejścia do projektowania szyfrów chaotycznych oraz określania poziomu ich bezpieczeństwa [5, 106]. Powyższe problemy są uzasadnieniem dla celu tej pracy, którym jest opracowanie metody projektowania dyskretnych chaotycznych szyfrów strumieniowych. W pracy zbadano wybraną grupę chaotycznych algorytmów szyfrowych. Do analizy wybrano 5

ROZDZIAŁ 1. WSTEP takie szyfry, które charakteryzują się różnymi podejściami projektowymi oraz wykorzystują różne własności chaosu: np. ergodyczność, wrażliwość na warunki początkowe, zastosowanie układów chaotycznych jako generatora ciągów pseudolosowych. Wybrane szyfry dobrze wpisują się w opracowany model chaotycznego szyfru strumieniowego ( 2). Prowadzone w pracy rozważania służą wykazaniu prawdziwości poniższej tezy: Opracowana metoda projektowania określonej grupy znanych dyskretnych chaotycznych szyfrów strumieniowych zwiększa odporność tych szyfrów na kryptoanalizę. Powyższa teza oznacza, że zastosowanie proponowanych rozwiązań dla poszczególnych składników badanych szyfrów chaotycznych spowoduje zwiększenie złożoności dotychczas dostępnych ataków, a także że w przypadku nowych algorytmów, stanowi wytyczne jak je projektować. Zwiększenie złożoności ataku oznacza zwiększenie nakładu czasowego lub finansowego wymaganego do przełamania algorytmu szyfrowego. Jedynym szyfrem o udowodnionym bezpieczeństwie jest algorytm Vernama. Inne algorytmy szyfrowe przypuszczalnie mogą zostać złamane. To przypuszczenie jest powszechnie znane, np. w [36] jest napisane: Do każdego systemu kryptograficznego da się włamać, choć wymaga to odpowiedniego nakładu pracy. Nakład pracy można wyrazić w sensie czasu lub ceny jaką adwersarz jest w stanie zapłacić za uzyskanie dostępu do chronionej treści. W sposób bardziej formalny przedstawiono to w [21, 44]. Opisano tam kompromis pomiędzy ilością czasu, pamięci i danych niezbędnych do złamania systemu kryptograficznego. Idea ta została zapoczątkowana w 1980 roku przez Hellmana w [44], gdzie dowiedziono, że szyfr o długości klucza N można złamać w czasie T i z wykorzystaniem pamięci M zgodnie z regułą T M 2 = N 2, 1 T N. W [21] idea ta została rozszerzona na szyfry strumieniowe wraz z dodaniem parametru ilości danych D jakie kryptoanalityk jest w stanie zgromadzić. Reguła ta przyjęła wówczas formę T M 2 D 2 = N 2, D 2 T N. Zastosowanie żadnego praktycznego podejścia do projektowania szyfru nie gwarantuje zatem jego zupełnego bezpieczeństwa. Zastosowanie zaproponowanej metody projektowania chaotycznych szyfrów strumieniowych powoduje zwiększenie kosztu finansowego lub czasowego ataku na algorytmy zaprojektowane zgodnie z tą metodą. Niniejsza praca należy do dziedziny nauk technicznych i dotyczy dyscypliny Informatyka w specjalności kryptografia danych. Rozważanym w niej zagadnieniem naukowym jest opracowanie metody projektowania chaotycznych szyfrów strumieniowych na podstawie wyników kryptoanalizy tych szyfrów. W [60] występują dwie definicje metody: (1) świadomie i konsekwentnie stosowany sposób postępowania dla osiągnięcia określonego celu, zespół celowych 6

ROZDZIAŁ 1. WSTEP czynności i środków; (2) sposób naukowego badania rzeczy i zjawisk; ogół reguł stosowanych przy badaniu rzeczywistości. Metodyka użyta do uzyskania wyników teoretycznych polegała na analizie własnych oraz obcych metod kryptoanalitycznych wybranych chaotycznych algorytmów szyfrowych. Wyniki tej analizy pozwoliły na sformułowanie założeń projektowych dla nowych algorytmów szyfrowych opartych o teorię chaosu. Do zbadania poprawności uzyskanych wyników wykorzystano metody kryptoanalizy algorytmów szyfrowych, w szczególności wykorzystując ataki adaptacyjne z wybranym szyfrogramem i z wybranym tekstem jawnym. Część ataków można wykonać jedynie ze znajomością odpowiedniej liczby par tekst jawny szyfrogram, aczkolwiek wymagana jest najczęściej znacznie większa liczba takich par w porównaniu do ataku z wybranym szyfrogramem. W przypadku analizy ciągów pseudolosowych posłużono się standardowym zestawem testów, przedstawionym w [33]. Nowością pracy jest przedstawiona kryptoanaliza wybranych szyfrów chaotycznych, zaproponowana ogólna funkcja klasy odwzorowań unimodalnych, projekt szybkiego chaotycznego, kryptograficznie bezpiecznego generatora ciągów losowych o dobrych własnościach statystycznych, algorytm przybliżania parametru kontrolnego i poszukiwania poprawnej wartości wstecznej orbity, przydatne w kryptoanalizie szyfrów chaotycznych oraz zastosowanie metody rekonstrukcji rozmytej orbity chaotycznej w kryptoanalizie. Niniejsza rozprawa składa się z pięciu rozdziałów. Szósty rozdział przeznaczony jest na załączniki. W bieżącym rozdziale przedstawiono zwięzłe wprowadzenie do tematyki poruszanej w pracy: stan problemu, wprowadzenie do teorii projektowania szyfrów strumieniowych oraz teorii chaosu. Określony został cel oraz zdefiniowano tezę badawczą. Zaprezentowano w nim główne problemy, z jakimi spotykają się projektanci chaotycznych algorytmów szyfrowych. Omówiono zalety stosowania kryptografii chaotycznej oraz określono tematykę kolejnych rozdziałów dysertacji. W drugim rozdziale przedstawiono zagadnienia projektowania chaotycznych szyfrów strumieniowych bazując na opracowanym modelu szyfru. Opisano ogólne założenia projektowe dla każdego z komponentów szyfru. Każdy z elementów charakteryzuje się inną naturą i jego poprawne zaprojektowanie w szyfrze chaotycznym wymaga rozpatrzenia dedykowanych dla teorii chaosu własności kryptograficznych. Przedstawione w literaturze szyfry chaotyczne są konstruowane w sposób charakteryzujący się dużą swobodą. Z tego powodu często trudno jest właściwie sklasyfikować każdy z komponentów szyfru. Rozdział trzeci zawiera analizę krytyczną wybranych szyfrów chaotycznych. Na podstawie przeprowadzonej lub dostępnej w literaturze kryptoanalizy tych szyfrów określone są założenia 7

ROZDZIAŁ 1. WSTEP projektowe przedstawionych szyfrów z punktu widzenia odporności na przeprowadzoną kryptoanalizę. Przedstawiono również algorytmy pomocne w analizowaniu szyfrów chaotycznych. W rozdziale czwartym przedstawiono własne rozwiązanie projektowe dla poszczególnych komponentów szyfru chaotycznego uwzględniające podatność szyfrów chaotycznych na przedstawioną kryptoanalizę. Bazując na proponowanych rozwiązaniach, analizowane szyfry zostały przeprojektowane oraz przeprowadzona została analiza bezpieczeństwa i złożoności ataku nowopowstałych szyfrów. W rozdziale piątym przedstawiono końcowe wnioski dotyczące zagadnień rozpatrywanych w pracy. Przedstawiono również efektywność badanych algorytmów. 1.3 Przeglad kryptosystemów chaotycznych Jednym z pierwszych algorytmów szyfrowych, opartym na dyskretnych w czasie układach chaotycznych, był szyfr zaproponowany w 1991 r. przez Habutsu [42]. Algorytm wykorzystywał wielokrotną iterację odwrotną w celu szyfrowania oraz pierwotną w celu deszyfrowania. Zastosowane zostało odwzorowanie chaotyczne odcinkami liniowe typu ukośny namiot z wykorzystywanym zakresem parametru kontrolnego (0.4, 0.6). Parametr kontrolny pełnił rolę klucza. Kryptoanaliza tego algorytmu została wykonana przez E. Bihama w [17]. Na bazie tego szyfru Z. Kotulski zaproponował algorytm DCC [56], w którym klucz szyfrowania jest łączony z tekstem jawnym po wykonaniu wielokrotnej iteracji układu chaotycznego poprzez dodanie wartości klucza modulo 1.0 do ostatniej wygenerowanej wartości orbity chaotycznej. W 1998 r. M.S. Baptista [13] przedstawił swój algorytm szyfrowy wykorzystujący fakt ergodyczności układu chaotycznego. Szyfrogramem była ilość iteracji wymaganych do osiągnięcia wybranej części atraktora. Algorytm ten został poddany kryptoanalizie początkowo przez Jakimoskiego i Kocareva w [49], jednak w [73] zauważono niską efektywność tego ataku. Następnie kryptoanalizy dokonał Alvarez w [2] z wykorzystaniem kodów Greya. Metoda ta była obarczona pewnymi ograniczeniami oraz dotyczyła uproszczonej wersji szyfru. W [126] przedstawiono wersję kryptoanalizy z wykorzystaniem kodów Greya bez niektórych ograniczeń. W [107] przedstawiono również podejścia kryptoanalityczne szyfru Baptisty. W [68] oraz w [69] opisano problemy występujące w oryginalnym szyfrze powodujące jego podatność na kryptoanalizę oraz zaproponowano różne sposoby usprawnienia algorytmu. Na bazie oryginalnego szyfru Baptisty powstało wiele analogicznych algorytmów [48, 121 124], które są wspólnie nazywane szyframi typu Baptisty. Część z tych szyfrów zostało poddane skutecznej kryptoanalizie [7, 8]. W [3] E. Alvarez i inni przedstawił algorytm szyfrowy wykorzystujący d-wymiarowe od- 8

ROZDZIAŁ 1. WSTEP wzorowanie chaotyczne. Jako propozycję układu chaotycznego przedstawiono odwzorowanie typu namiotowego. Proces szyfrowania polega na poszukiwaniu bloku tekstu jawnego w wygenerowanym ciągu pseudolosowym. Blok tekstu charakteryzował się zmienną długością w przypadku nie odnalezienia go w strumieniu klucza skracano blok lub modyfikowano parametr sterujący pracą chaotycznego generatora pseudolosowych bitów. Kryptoanaliza tego szyfru została przedstawiona w [49] oraz [6]. W [70] przedstawiono sposoby zwiększania bezpieczeństwa szyfru Alvareza. W [90] przedstawiono chaotyczny szyfr strumieniowy, w którym dwie orbity chaotyczne (stany szyfratora) są ze sobą łączone przy użyciu operatora różnicy symetrycznej (xor) w celu utworzenia strumienia klucza. Tekst jawny mieszany był ze strumieniem klucza z wykorzystaniem operatora różnicy symetrycznej, następnie szyfrogram modulował wartość orbity jednego z układów chaotycznych, również z wykorzystaniem operacji xor. Rozwiązanie to było podatne na kryptoanalizę [108] polegającą na przesterowaniu wartości jednego z układów chaotycznych w celu uzyskania wartości orbity, a następnie klucza układu (wartości początkowych oraz wartości parametru kontrolnego układów chaotycznych). W [98] przedstawiono produktowy algorytm szyfrowy bazujący na parze funkcji logistycznych. Ten produktowy szyfr chaotyczny, pierwszej fazie dokonywał operacji podstawienia, natomiast w drugiej fazie przestawienia bloków tekstu jawnego. W [109] przedstawiono kryptoanalizę tego algorytmu z wykorzystaniem algorytmu rekonstrukcji rozmytej orbity chaotycznej przedstawionego w [38]. W [85] Pareek i inni przedstawił algorytm szyfrowy, w którym wartość początkowa oraz parametr kontrolny układu nie należały do klucza szyfru zastosowano klucz zewnętrzny w stosunku do układu chaotycznego. Z tego powodu dynamika układu chaotycznego była przewidywalna. Ponadto zastosowana funkcja chaotyczna wkraczała w obszary o ujemnej wartości wykładnika Lapunowa, umożliwiając kryptoanalizę algorytmu, opisaną w [1]. W [16] zaproponowano modyfikację algorytmu Pareeka zwiększającą odporność na wspomnianą kryptoanalizę poprzez zastosowanie ogólnej formy odwzorowania unimodalnego jako funkcji zmiany stanu. Rozszerzona na wiele układów chaotycznych wersja szyfru Pareeka przedstawiona została w [86], natomiast jej kryptoanaliza w [64]. Algorytm szyfrowy wykorzystujący zdyskretyzowane wersje odwzorowań dwuwymiarowych przedstawiono w [37]. Algorytm ten ma głównie zastosowanie w procesie szyfrowania obrazów. Inne algorytmy dedykowane dla szyfrowania obrazów przedstawiono np. w [74, 105, 132, 138]. W [53] przedstawiono algorytm szyfrowy wykorzystujący funkcję logistyczną do budowy skrzynki podstawieniowej (S-Box). W [14] przedstawiono algorytm szyfrowy wykorzystujący maskowanie wielu układów chaotycznych w celu ukrycia tekstu jaw- 9

ROZDZIAŁ 1. WSTEP nego w szyfrogramie. Ogólny opis algorytmu szyfrowego bez szczegółów implementacyjnych przedstawiono w [96]. W literaturze dostępne są również propozycje jednokierunkowych funkcji skrótu, np. [52, 104, 122, 128, 134]. 1.4 Prace pokrewne W [66] przedstawiono kryptoanalizę wybranych szyfrów opartych o teorię chaosu oraz zaproponowano nowy szyfr chaotyczny oraz generator ciągów pseudolosowych oparty o teorię chaosu. Zbadano degradację dynamiki układów chaotycznych zbudowanych w oparciu o odwzorowania odcinkami liniowe w środowisku o skończonej precyzji obliczeń. Dokonano kryptoanalizy różnych szyfrów chaotycznych, m. in. M.S. Baptisty, E. Alvareza, H. Zhou. Zaproponowano również usprawnienia do tych algorytmów. Niniejsza dysertacja częściowo wykorzystuje wyniki uzyskane przez S. Li w jego badaniach. W [112] przedstawiono metodę projektowania algorytmów szyfrowych opartych o teorię chaosu czasu ciągłego. Zaproponowana metoda asymetrycznego szyfrowania danych wykorzystuje rozproszoną dynamikę wielowymiarowych nieliniowych układów dynamicznych (DDE). Metoda ta zakłada między innymi: (1) zachowania dużej przestrzeni kluczy poprzez zastosowanie wielowymiarowej przestrzeni parametrów kontrolnych; (2) zastosowania odwzorowania chaotycznego o niejawnej dynamice; (3) brak korelacji pomiędzy tekstem jawnym, a szyfrogramem; (4) krótkim czasem przechowywania zaszyfrowanej wiadomości o ile klucz pozostaje niezmienny. Niniejsza dysertacja opisuje zastosowanie układów chaotycznych czasu dyskretnego oraz opiera bezpieczeństwo szyfru na bezpieczeństwie klucza oraz właściwym zaprojektowaniu poszczególnych komponentów szyfru. W [30] przedstawiono metodę projektowania szyfrów klasycznych oraz funkcji skrótu. Metoda zakłada spełnienie następujących założeń: (1) prostota projektu, umożliwiająca dobre zrozumienie algorytmu szyfrowego; (2) przezroczystość struktury, umożliwiająca analizę szyfru z punktu widzenia różnych technik kryptoanalizy; (3) przenośność szyfru między różnymi systemami komputerowymi oraz (4) łatwość w implementacji sprzętowej ze względów wydajnościowych. Przedstawione założenia mają zastosowanie przy projektowaniu różnych klas szyfrów zatem podejście przedstawione w niniejszej dysertacji również zakłada ich spełnienie. W [20] przedstawiono nowo opracowaną metodę kryptoanalizy tzw. atak przesuwny (ang. Slide Attack). Atak tego typu ma zastosowanie dla iterowanych szyfrów blokowych. Z wykorzystaniem tego ataku przeprowadzono kryptoanalizę istniejących szyfrów klasycznych, takich jak RC5 oraz zmodyfikowana wersja algorytmu DES. W niniejszej dysertacji przedstawiono kryptoanalizę iterowanego chaotycznego szyfru blokowego wykorzystującą atak przesuwny. 10

ROZDZIAŁ 1. WSTEP 1.5 Wprowadzenie teoria chaosu W rozdziale przedstawiono podstawowe pojęcia związane z teorią chaosu. Zagadnienia tu przedstawiane są kluczowe w zrozumieniu zasady działania kryptosystemów bazujących na teorii chaosu. Szerszy opis zjawiska chaosu przedstawiony jest np. w [29, 32, 58, 79, 82, 88, 101]. 1.5.1 Pojęcia układu dynamicznego Dyskretny w czasie układ dynamiczny jest odwzorowaniem iterowanym. Kolejnym iteracjom można przyporządkować numer iteracji t ze zbioru liczb całkowitych Z. Niech X będzie dowolną przestrzenią metryczną. Wówczas można sformułować poniższe definicje: Definicja 1 [58] Parę (X, f), gdzie X oznacza przestrzeń metryczna, a f : X X odwzorowanie określajace stan układu dynamicznego w chwili czasu t, gdzie t jest liczba naturalna, nazywamy kaskada lub układem dynamicznym z czasem dyskretnym. Wówczas dla każdego x X; n, m = 0, 1, 2,... definiujemy: 1. f 0 (x) = x jest tożsamością 2. f 1 (x) = f(x) 3. f n = f f... f oznacza się n-krotne złożenie odwzorowania f Na podstawie powyższej definicji prawdziwe jest f n (f m (x)) = f n+m (x). Definicja 2 [32, 58] Ciag {f n (x)} dla n = 0, 1, 2,... nazywamy trajektoria (orbita) punktu x. Definicja 3 [58] Jeżeli istnieje liczba naturalna p 2 i punkt x 0, dla którego x 0 = f p (x 0 ) i x 0 f k (x 0 ) dla 0 < k < p, to x 0 nazywamy punktem okresowym o okresie p. Trajektoria punktu okresowego jest ciagiem okresowym, a p-elementowy podciag {x 0, f(x 0 ), f 2 (x 0 ),..., f p 1 (x 0 )} jest nazywany okresowa orbita punktu x 0. Każdy punkt tej orbity jest punktem okresowym o okresie p. Jeżeli x 0 = f(x 0 ), to x 0 nazywa się punktem stałym. Definicja 4 [43] Funkcja rozkładu gęstości prawdopodobieństwa ρ(x) dla odwzorowania f : X X jest niezmiennicza w zbiorze X, gdy dla każdego przedziału [c, d] X spełniony jest 11

ROZDZIAŁ 1. WSTEP warunek: d c ρ(x)dx = f 1 ([c,d]) ρ(x)dx (1.1) gdzie f 1 ([c, d]) = {x : c f(x) d} Definicja 5 [58, 88] Wykładnikiem Lapunowa jest wartość funkcji: 1 dxn λ = lim n n ln dx 0 1 = lim n n ln dx 1 dx 0 dx 2 n 1 = lim n n ln dx k dx k 1 1 = lim n n k=1 dx 1 n ln f (x k ) k=1 dx n dx n 1 (1.2) gdzie dx k przyrost wartości funkcji f w k-tej iteracji, f (x) - pochodna funkcji f. Definicja 6 [43] Naturalnym wykładnikiem Lapunowa jest wartość funkcji: λ Nat = 1 0 ln f (x) ρ(x)dx (1.3) gdzie f (x) - pochodna funkcji f, ρ(x) funkcja rozkładu gęstości prawdopodobieństwa wartości generowanych przez f. Wykładnik Lapunowa jest miarą prędkości oddalania się od siebie dwóch orbit będących w czasie t 0 dowolnie blisko siebie. Układ dynamiczny zachowuje się w sposób chaotyczny, gdy λ > 0. Naturalny wykładnik Lapunowa ma wartość określoną wzorem (1.3) nie dla wszystkich a jedynie dla prawie wszystkich trajektorii układu chaotycznego [43]. Definicja 7 [58] Podzbiór I X nazywamy zbiorem niezmienniczym kaskady (X, f), jeżeli f(i) = I. Definicja 8 [58] Domknięty i ograniczony zbiór niezmienniczy A X nazywamy atraktorem układu dynamicznego (X, f), jeśli istnieje takie otoczenie U(A) zbioru A, że dla dowolnego x U(A) trajektoria {f n (x)} pozostaje w U(A) i daży do A przy n. Zbiór wszystkich takich x, dla których ciag {f n (x)} daży do A nazywamy zbiorem przyciagania atraktora A (basenem atrakcji). Wymaga się aby atraktor był zbiorem minimalnym, czyli nie zawierał w sobie innego atraktora. 12

ROZDZIAŁ 1. WSTEP Definicja 9 [50] Atraktory o dodatnich wykładnikach Lapunowa nazywa się atraktorami chaotycznymi. Definicja 10 Zbiór niezmienniczy A nazywamy stabilnym, jeżeli ε > 0 δ > 0, że (d(a, x) δ n = 1, 2,... d(a, f n (x)) ε), gdzie d(a, x) = inf {d(x, a): a A} jest odległościa punktu x od zbioru A. Definicja 11 [79] Układ (X, f) posiada własność mieszania, gdy f : X X jest przekształceniem zachowujacym miarę oraz dla każdej pary zbiorów A, B S o niezerowej mierze µ spełniona jest równość lim µ(a f n (B)) = µ(a)µ(b), n gdzie S X dowolny podzbiór w przestrzeni X, f n (B) oznacza przeciwobraz zbioru B pod działaniem n-tej iteracji odwzorowania f. Definicja 12 [50] Układ (X, f) jest ergodyczny, gdy dla każdego podzbioru niezmienniczego I = f(i) miara µ(i) = 0 lub µ(i) = µ(x). Definicja 13 [50] Diagram powrotów jest wykresem wartości (x n+1, x n ), gdzie x n R Definicja 14 [32] Funkcja f : A B, gdzie A, B przestrzenie topologiczne, jest homeomorfizmem, gdy: f jest funkcja różnowartościowa, f(a) = B, czyli f jest funkcja na, oba przekształcenia f oraz f 1 : B A sa ciagłe. Definicja 15 [32] Niech f : A A oraz g : B B sa odwzorowaniami. f oraz g sa sprzężone topologicznie jeżeli istnieje homeomorfizm h : A B taki, że h f = g h. Homeomorfizm h nazywany jest homeomorfizmem sprzęgajacym. Definicja 16 Chaos w sensie Devaneya [26, 32]. Niech S będzie zbiorem w przestrzeni metrycznej. Odwzorowanie f : S S jest chaotyczne jeżeli spełnione sa poniższe założenia: 1. Odwzorowanie f jest silnie zależne od warunków początkowych, to znaczy x S,O S, y O,m>0,δ>0, f m (x) f m (y) > δ 13

ROZDZIAŁ 1. WSTEP 2. Odwzorowanie f jest przechodnie topologicznie, to znaczy U,V S, m>0, f m (U) V 3. Odwzorowanie f ma gęste punkty okresowe w S 1.5.2 Chaos w sensie Li-Yorke Li i Yorke wprowadzili po raz pierwszy matematyczną definicję chaosu na podstawie kryterium: trójokresowość implikuje chaos [26, 75]. Niech I będzie przedziałem w przestrzeni metrycznej z określoną relacją porządku oraz f : I I będzie odwzorowaniem ciągłym. Rozpatrzmy jednowymiarowe skalarne odwzorowanie dyskretne, reprezentujące badany układ dynamiczny: x k+1 = f(x k ), x k I, k = 0, 1, 2,... Twierdzenie 1 Twierdzenie Li-Yorke. Załóżmy, że istnieje punkt a I, dla którego punkty b = f(a), c = f 2 (a) oraz d = f 3 (a) spełniają d a < b < c (lub d a > b > c) Wówczas: 1. dla każdego k = 1, 2,... istnieje punkt w I o okresie k 2. istnieje nieprzeliczalny zbiór S I, nie zawierający punktów okresowych, który spełnia poniższe założenia: (a) dla każdego p S, q S S, p S q S lim sup f n (p S ) f n (q S ) > 0 n oraz lim inf f n (p S ) f n (q S ) = 0 n (b) dla każdego p S S oraz punktów okresowych q p I, p S q p lim sup f n (p S ) f n (q p ) > 0 n 14

ROZDZIAŁ 1. WSTEP 1.5.3 Rozwiazywalne układy dynamiczne Twierdzenie 2 [91] Można wyznaczyć n-ty element ciagu generowanego przez funkcję logistyczna bez potrzeby wykonywania n iteracji układu dynamicznego. Dowód 1 Rozpatrzmy funkcję logistyczną opisaną wzorem x n+1 = ax n (1 x n ) z parametrem kontrolnym a = 4. Po zamianie zmiennych poprzez podstawienie x n = sin 2 (πθ n ) otrzymuje się równanie sin 2 (πθ n+1 ) = 4 sin 2 (πθ n )(1 sin 2 (πθ n )) = 4 sin 2 (πθ n ) cos 2 (πθ n ) (1.4) Korzystając z tożsamości trygonometrycznej 2 sin x cos x = sin(2x) otrzymuje się równanie sin 2 (πθ n+1 ) = sin 2 (2πθ n ) (1.5) Stąd wynika ostatecznie θ n+1 = (2θ n mod 1) (1.6) Równanie to ma określone rozwiązanie θ n = (2 n θ 0 mod 1) (1.7) Po powróceniu do zmiennych początkowych otrzymuje się x n = sin 2 (2 n πθ 0 ) = sin 2 (2 n arcsin x 0 ) (1.8) Rozszerzona metoda konstrukcji dokładnie rozwiązywalnych układów dynamicznych jest przedstawiona również w [113]. Ogólne równanie układów iterowanych n-ty element ciągu generowanego przez układ dynamiczny można zapisać postaci ogólnej x n = P (ΘT z n ) (1.9) 15

ROZDZIAŁ 1. WSTEP gdzie P (t) - jest funkcją okresową, T - okres funkcji P (t), Θ, z - liczby rzeczywiste. W [39] przedstawiono następującą klasę nieprzewidywalnych układów iterowanych: x (k,m) n = P [T (Θ + q m k)z n ] (1.10) gdzie z = p/q jest liczbą ułamkową, p oraz q są względnie pierwsze (p > q), k oraz m - liczby całkowite. n-ty element ciągu generowanego przez równanie (1.10) jest nieprzewidywalny ponieważ może przyjąć q różnych wartości. W ogólnym przypadku, gdy z jest liczbą rzeczywistą, odwzorowanie może przyjąć jedną z nieskończonej ilości możliwych wartości. Sieci odwzorowań ze sprzężeniami jednokierunkowymi W [25, 116] przedstawiono schemat sieci odwzorowań ze sprzężeniami jednokierunkowymi (ang. one-way coupled map lattices, OCML). x (j) n+1 = (1 a j) f(x (j) n ) + a j f(x (j 1) n ), (1.11) gdzie a j [0, 1] - współczynnik sprzężenia dla j = 1, 2,..., m. 1.5.4 Lemat o cieniu Lemat o cieniu został przedstawiony przez Bowena w [24]. Poniższa definicja i twierdzenie bazują na [114] i [50]. Definicja 17 Ciag punktów {x i } i Z jest ɛ-pseudo orbita odwzorowania f jeżeli i Z, d(f(x i ), x i+1 ) < ɛ, gdzie d : X X R jest metryka przestrzeni X. Twierdzenie 3 Lemat o cieniu. Niech Λ będzie zwartym zbiorem niezmienniczym. Dla każdego dowolnie małego δ > 0, istnieje takie unikalne y Λ, że d(f i (y), x i ) < δ i Z. Wówczas ciag {x i } nazywamy δ-cieniem orbity {f i (y)}. Dowód przedstawiony jest w [88]. Twierdzenie to ma następującą konsekwencję: implementacja komputerowa układu chaotycznego, choć różna od modelu matematycznego, jest dostatecznie dokładnie przybliżana przez inny model matematyczny. Z zastosowaniem lematu o cieniu w implementacji komputerowej związane są następujące problemy [65]: 16

ROZDZIAŁ 1. WSTEP struktura pseudo orbity (tzn. jej okresowość, baseny atrakcji itp.) może być zupełnie różna od struktury orbity cienia, a zmienia się np. w zależności od precyzji obliczeń, zastosowanej reprezentacji liczb zmiennopozycyjnych, itp. w implementacji komputerowej istnieje jedynie skończona liczba punktów orbity stabilność pseudo orbity (definicja 10, str. 13) może być różna od stabilności orbity cienia 1.6 Wprowadzenie szyfry strumieniowe 1.6.1 Projektowanie szyfrów strumieniowych Zasada działania szyfru strumieniowego polega na przekształceniu każdego znaku z alfabetu tekstu jawnego za pomocą transformacji zmiennej w czasie. Siłą algorytmów strumieniowych jest złożoność i nieprzewidywalność struktury transformacji szyfrującej i deszyfrującej. Analiza szyfrów strumieniowych jest bardziej skomplikowana niż szyfrów blokowych, ponieważ często są to tajne algorytmy, np. wojskowe lub przemysłowe [80, 100]. Z drugiej strony, bezpieczeństwo szyfrów strumieniowych zależy w znaczącej mierze od własności statystycznych strumienia klucza; możliwa jest analiza matematyczna szyfrów strumieniowych i z tego powodu jest ona łatwiejsza niż szyfrów blokowych [28]. Rodzaje szyfrów strumieniowych Występują dwa główne typy szyfrów strumieniowych: synchroniczne szyfry strumieniowe oraz samosynchronizujące się szyfry strumieniowe. Definicja 18 Synchroniczny szyfr strumieniowy jest to taki szyfr strumieniowy, w którym strumień klucza jest generowany niezależnie od tekstu jawnego i od szyfrogramu. W poniższych wzorach stosuje się następujące symbole: M skończony zbiór wszystkich tekstów jawnych C skończony zbiór wszystkich szyfrogramów K skończony zbiór wszystkich możliwych kluczy Z skończony zbiór wszystkich możliwych wartości generowanych przez funkcję g f funkcja następnego stanu (funkcja obliczająca σ i+1 na podstawie σ i oraz klucza k) 17

ROZDZIAŁ 1. WSTEP g funkcja generująca strumień klucza (filtr) h funkcja mieszająca strumień klucza z tekstem jawnym (funkcja wyjścia) m M tekst jawny c C szyfrogram k K klucz szyfru z Z strumień klucza i numer iteracji σ i stan szyfratora w i-tej iteracji σ 0 stan początkowy Proces szyfrowania w synchronicznym szyfrze strumieniowym może być przedstawiony zgodnie z poniższymi wzorami [80, 111]: σ i+1 = f(σ i, k) z i = g(σ i, k) c i = h(z i, m i ) Synchroniczny szyfr strumieniowy cechuje się następującymi własnościami [80]: Wymóg synchronizacji. W synchronicznym szyfrze strumieniowym nadawca i odbiorca muszą być zsynchronizowani aby proces odszyfrowania był możliwy. Brak propagacji błędów. Zmodyfikowany znak szyfrogramu nie ma wpływu na pozostałe znaki w trakcie procesu deszyfrowania. Możliwość aktywnych ataków. Wykonanie ataków polegających na wstawieniu, usunięciu lub powtórzeniu znaków szyfrogramu powoduje rozsynchronizowanie szyfru. Możliwe jest wykonanie ataku polegającego na podmianie części znaków szyfrogramu z przewidywalnymi skutkami takiej operacji. Przykład synchronicznego szyfratora strumieniowego przedstawiono na rysunku 1.1. Definicja 19 Samosynchronizujacy się (asynchroniczny) szyfr strumieniowy jest to taki szyfr strumieniowy, w którym strumień klucza jest generowany na podstawie klucza oraz ustalonej liczby poprzednio zaszyfrowanych znaków. 18

ROZDZIAŁ 1. WSTEP σ i m i f k g z i h c i Rysunek 1.1: Schemat działania synchronicznego szyfru strumieniowego Proces szyfrowania w samosynchronizującym się szyfrze strumieniowym może być przedstawiony zgodnie z poniższymi wzorami [80]: σ i = (c i t, c i t+1,..., c i 1 ) z i = g(σ i, k) c i = h(z i, m i ) W przeciwieństwie do synchronicznego szyfru strumieniowego, funkcja następnego stanu, σ, zależy w takim przypadku od t poprzednich znaków szyfrogramu. Uwaga 1 Stan poczatkowy samosynchronizujacego się szyfru strumieniowego określony jest w sposób jawny przez σ 0 = (c t, c t+1,..., c 1 ). Samosynchronizujący się szyfr strumieniowy cechuje się następującymi własnościami [80]: Samosynchronizacja. Samosynchronizacja jest możliwa w przypadku usunięcia lub wstawienia znaków do szyfrogramu. Ograniczona propagacja błędów. Jeżeli stan szyfratora zależy of t poprzednich znaków, wówczas w przypadku błędu samosynchronizacja nastąpi po maksymalnie t znakach szyfrogramu. Aktywne ataki. Modyfikacja szyfrogramu jest łatwiejsza dla odbiorcy niż w przypadku szyfrów synchronicznych. Trudniej niż w przypadku szyfrów synchronicznych jest dostrzec wstawienie lub usunięcie znaków z szyfrogramu. Dyfuzja statystyk tekstu jawnego. Ponieważ każdy znak tekstu jawnego wpływa na szyfrogram, własności statystyczne tekstu jawnego są rozpraszane po szyfrogramie. Przykład samosynchronizującego się szyfratora strumieniowego przedstawiono na rysunku 1.2. 19

ROZDZIAŁ 1. WSTEP σ i m i k g z i h c i Rysunek 1.2: Schemat działania synchronicznego szyfru strumieniowego Uwaga 2 Zastosowanie operacji (xor) jako funkcji mieszajacej (wyjściowej) h(z, m) = z m, dla z, m {0, 1} powoduje powstanie binarnego addytywnego szyfru strumieniowego (ang. binary additive stream cipher). W takim przypadku funkcja wyjścia (mieszajaca) w deszyfratorze h 1 (z, c) = h(z, c) = z c, dla z, c {0, 1}. 1.6.2 Szyfr blokowy jako szyfr strumieniowy W przeciwieństwie do szyfrów strumieniowych, w szyfrach blokowych przetwarzane są całe bloki tekstu jawnego za pomocą stałego przekształcenia szyfrującego. Ponieważ szyfry blokowe wykorzystują za każdym razem takie samo przekształcenie szyfrujące, nazywane są często szyframi bez pamięci (ang. memoryless ciphers). W przypadku szyfrów strumieniowych transformacja zależy od stanu wewnętrznego szyfratora, zatem są to szyfry z maszyną stanów (ang. state ciphers). Występują cztery podstawowe tryby pracy szyfratora blokowego [28]: tryb elektronicznej książki kodów (ECB), tryb wiązania bloków zaszyfrowanych (CBC), tryb sprzężenia zwrotnego zaszyfrowanego tekstu (CFB), tryb sprzężenia zwrotnego bloków wyjściowych (OFB). Szyfr strumieniowy można uzyskać poprzez zastosowanie jednego z trybów szyfru blokowego: CBC, CFB lub OFB. Ponadto szyfr strumieniowy można rozpatrywać jako szyfr blokowy o długości bloku równym 1. Szyfr blokowy w trybie ECB W trybie ECB wszystkie bloki szyfrowane są niezależnie. Szyfrowanie w tym trybie można opisać następująco z wykorzystaniem oznaczeń zdefiniowanych poprzednio: c i = h k (m i ) 20

ROZDZIAŁ 1. WSTEP Funkcja h k jest parametryzowaną przez klucz k funkcją szyfrującą szyfru blokowego. Procedura deszyfrowania wygląda następująco: m i = h 1 k (c i) Funkcja h 1 k jest parametryzowaną przez klucz k funkcją deszyfrującą szyfru blokowego. Jest to funkcja odwrotna do funkcji szyfrującej, tzn. zachodzi dla niej x = h 1 k (h k(x)). Ponieważ tryb ECB jest jedynym, w którym bloki wiadomości są szyfrowane niezależnie, nie występuje w nich pojęcie strumienia klucza (klucz jest identyczny dla wszystkich bloków). Ponadto jest to jedyny tryb bezstanowy, zatem nie występuje tu zmienna stanu σ ani funkcja następnego stanu f. Uwaga 3 Tryb ECB nie może być używany w niektórych praktycznych rozwiazaniach [36]. Dwa identyczne bloki tekstu jawnego będa miały takie same szyfrogramy (dla danego klucza). Z tego powodu możliwy jest atak z podmiana bloku bez znajomości klucza [59]. W przypadku szyfrowania wiadomości dłuższych niż długość bloku, szyfr blokowy pracujacy w trybie ECB jest uznawany za niegwarantujacy bezpieczeństwa. W przypadku krótkich, losowych wiadomości tryb ECB może być stosowany, np. podczas transmisji kluczy sesyjnych lub kodu PIN [100]. Szyfr blokowy w trybie CBC Tryb CBC w szyfrze blokowym działa jak szyfr strumieniowy z własną pamięcią (stanem szyfratora). W tym trybie bloki są związane ze sobą wspólnie z wartością wektora początkowego IV. Przestrzeń wiadomości jawnych jest taka sama jak przestrzeń szyfrogramów. σ 0 = IV c i = f(h(m i, σ i ), k) h(m i, σ i ) = m i σ i σ i+1 = c i Operację szyfrowania szyfru blokowego w trybie CBC przedstawiono na rysunku 1.3. Z punktu widzenia szyfrów strumieniowych, funkcja mieszająca h wiadomość ze strumieniem klucza jest realizowana jako operacja bitowej różnicy symetrycznej, natomiast funkcja następnego stanu f jest realizowana przez algorytm szyfrujący szyfru blokowego. Stan początkowy σ 0 jest określony za pomocą wektora początkowego IV. Kolejne wartości stanu wewnętrznego odpowiadają wartości szyfrogramu. Deszyfrowanie wymaga znajomości wektora początkowego IV oraz jest realizowane zgod- 21

ROZDZIAŁ 1. WSTEP nie z poniższym algorytmem: σ 0 = IV σ i = c i 1 m i = h 1 (f 1 (c i, k), σ i ) = f 1 (c i, k) σ i Operację deszyfrowania szyfru blokowego w trybie CBC przedstawiono na rysunku 1.4. m i k k c i-1 σ i h f c i σ i f -1 h -1 m i Rysunek 1.3: Schemat działania szyfru blokowego w trybie CBC proces szyfrowania Rysunek 1.4: Schemat działania szyfru blokowego w trybie CBC proces deszyfrowania Szyfr blokowy w trybie CFB Zastosowanie trybu CFB w szyfrze blokowym powoduje powstanie samosynchronizującego się szyfru strumieniowego. Przekształcenie deszyfrujące g 1 (c, k) nie jest wykorzystywane w tym trybie szyfru blokowego. W procesie szyfrowania wykorzystywana jest kolejka o ustalonej długości, z której pobierane są dane dla funkcji szyfrującej g. Algorytm szyfrowania w trybie CFB przedstawiono poniżej (n rozmiar bloku szyfru blokowego, p rozmiar słowa szyfru strumieniowego): σ 0 = IV z i = rchop(g(σ i, k), n p) c i = h(m i, z i ) = m i z i σ i+1 = lchop(σ i, p) c i Funkcja g oznacza przekształcenie szyfrujące szyfru blokowego. Funkcja rchop(x, y) oznacza usunięcie y ostatnich bitów argumentu x, funkcja lchop(x, y) oznacza usunięcie y pierwszych bitów argumentu x. Symbol oznacza operację konkatenacji danych. Funkcja mieszająca tekst jawny ze strumieniem klucza to najczęściej operacja xor. Kolejny stan σ jest uzupełniany o p bitów szyfrogramu, natomiast w operacji mieszającej h wykorzystywanych jest p pierwszych bitów wyjścia funkcji szyfrującej szyfru blokowego. 22

ROZDZIAŁ 1. WSTEP Proces deszyfrowania można określić wzorem: σ 0 = IV m i = h 1 (c i, rchop n p (g(σ i, k))) σ i+1 = lchop m (σ i ) c i Schemat pracy szyfratora blokowego w trybie CFB przedstawiono na rysunkach 1.5 i 1.6. σ i σ i k g m i k g c i z i h c i z i h -1 m i Rysunek 1.5: Schemat działania szyfru blokowego w trybie CFB proces szyfrowania Rysunek 1.6: Schemat działania szyfru blokowego w trybie CFB proces deszyfrowania Szyfr blokowy w trybie OFB Tryb OFB powoduje działanie szyfru blokowego jako strumieniowego. Szyfr blokowy pracujący w tym trybie działa jak synchroniczny szyfr strumieniowy. Procedurę szyfrowania można przedstawić następująco: σ 0 = IV σ i+1 = f(σ i, k) z i = g(σ i+1 ) = rchop n p (σ i+1 ) c i = h(m i, z i ) Proces deszyfrowania można określić wzorem: σ 0 = IV σ i+1 = f(σ i, k) z i = g(σ i+1 ) = rchop n p (σ i+1 ) m i = h 1 (c i, z i ) Schemat pracy szyfratora blokowego w trybie OFB przedstawiono na rysunkach 1.7 i 1.8. 23

ROZDZIAŁ 1. WSTEP σ i k f m i g z i h c i Rysunek 1.7: Schemat działania szyfru blokowego w trybie OFB proces szyfrowania σ i k f c i g z i h -1 m i Rysunek 1.8: Schemat działania szyfru blokowego w trybie OFB proces deszyfrowania Z przedstawionych powyżej podstawowych trybów szyfrowania, jedynie tryb ECB nie powoduje powstania szyfru strumieniowego. 1.6.3 Bezpieczeństwo kryptograficzne Jak napisano w [80], (... ) bezpieczeństwo kryptograficznych elementów pierwotnych (prymitywów) i protokołów można oszacować stosujac wiele różnych modeli. Najbardziej praktyczne mierniki bezpieczeństwa sa modelami obliczeniowymi, możliwymi do udowodnienia oraz przyjmowanymi ad hoc; te ostatnie często bywaja niebezpieczne. 1. Bezpieczeństwo bezwarunkowe Bezpieczeństwo bezwarunkowe jest nazywane bezpieczeństwem idealnym. Atakujący ma nieograniczone zasoby obliczeniowe, kwestią jest czy ilość dostępnej informacji jest wystarczająca do złamania systemu. Ogólnie schematy kryptograficzne nie zapewniają bezpieczeństwa idealnego, każdy znak szyfrogramu zmniejsza nieokreśloność tekstu jawnego i klucza. 2. Bezpieczeństwo wg teorii złożoności Zdefiniowany jest odpowiedni model obliczeniowy. Ataki są modelowane jako działające w czasie wielomianowym. Następnie konstruowany jest dowód bezpieczeństwa odpowiedni do zastosowanego modelu. Projektuje się metodę kryptoanalizy zakładającą najgorszy przypadek. Analiza bezpieczeństwa tego typu może 24

ROZDZIAŁ 1. WSTEP być niepraktyczna w niektórych przypadkach. 3. Bezpieczeństwo udowadnialne Metoda kryptograficzna jest udowadnialnie bezpieczna jeżeli problem złamania systemu może być przedstawiony jako tak skomplikowany, jak rozwiązanie powszechnie znanego problemu obliczeniowo trudnego. Słowo udowadnialny oznacza tu udowadnialny w zależności do założeń. 4. Bezpieczeństwo obliczeniowe Mierzy się ilość obliczeń wymaganych do złamania systemu z wykorzystaniem najlepszych, aktualnie znanych metod. Założeniem jest, że system został dobrze przestudiowany w celu określenia odpowiednich ataków. System jest bezpieczny obliczeniowo, jeżeli ilość obliczeń niezbędnych do jego złamania przewyższa z określonym marginesem bezpieczeństwa, zasoby obliczeniowe hipotetycznego adwersarza. Większość najlepszych dzisiejszych kryptosystemów należy do tej klasy bezpieczeństwa. Bezpieczeństwo to jest również nazywane bezpieczeństwem praktycznym. 5. Bezpieczeństwo ad hoc To podejście składa się z różnych przekonujących argumentów, że każdy skuteczny atak wymaga poziomu zasobów (czasu i przestrzeni) większych niż ustalona ilość zasobów dostępnych dla adwersarza. Protokoły i prymitywy kryptograficzne, które przetrwają tego typu analizę nazywane są posiadającymi bezpieczeństwo typowo heurystyczne w sensie obliczeniowym. 1.6.4 Analiza bezpieczeństwa Analiza bezpieczeństwa nie jest w stanie objąć wszystkich możliwych ataków. Należy przedstawić najlepszy możliwy atak i jego rezultaty. Aby zapobiec podstawowym atakom, system kryptograficzny powinien posiadać przynajmniej dwie własności: konfuzję i dyfuzję. Dyfuzja powoduje lawinową reakcję na zmianę klucza. Konfuzja zapewnia cechy statystyczne szyfrogramu jako niezależne od klucza. Zasadą projektową jest, że dwa różne klucze powinny generować szyfrogramy nierozróżnialne ze statystycznego punktu widzenia [4]. Podczas badania algorytmu szyfrowego kryptoanalityk zna wszystkie szczegóły implementacyjne, zakres wartości zmiennych, stany początkowe itp. Jedyną niewiadomą jest wartość klucza, jednak wiadomo w jakim zakresie wartości jest on zawarty. Podejście to jest zgodne z prawem Kerckhoffsa, że bezpieczeństwo szyfru musi zależeć tylko i wyłącznie od bezpieczeństwa klucza [51, 80]. Aktualnie wyróżnia się następujące klasyczne typy ataków (od najbardziej skomplikowanego do najprostszego): 1. Atak ze znanym szyfrogramem. Atakujący przetwarza jedynie szyfrogram. 25

ROZDZIAŁ 1. WSTEP 2. Atak ze znanym tekstem jawnym. Atakujący przetwarza tekst jawny i odpowiadający mu szyfrogram. 3. Atak z wybranym tekstem jawnym. Atakujący ma chwilowy dostęp do maszyny szyfrującej. Może wybrać dowolny tekst jawny i uzyskać szyfrogram mu odpowiadający. 4. Atak z wybranym szyfrogramem. Atakujący ma chwilowy dostęp do maszyny deszyfrującej. Może wybrać dowolny szyfrogram i uzyskać odpowiadający mu tekst jawny. Zasadność innych ataków niż tylko z szyfrogramem ujawnia się podczas rozpatrywania danego szyfru jako wbudowanego do urządzenia kryptograficznego lub np. podczas uzgadniania sesji SSL. Wówczas, choć same klucze są ukryte, to atakujący ma możliwość wysyłania przez pewien czas dowolnych komunikatów do urządzenia bądź serwera i otrzymywanie odpowiedzi. W kryptoanalizie szyfrów często stosuje się kombinację ataków z wybranym tekstem jawnym i z wybranym szyfrogramem. Metoda ta jest znana pod nazwą ataku adaptacyjnego z wybranym tekstem jawnym lub z wybranym szyfrogramem. Zasada kryptoanalizy adaptacyjnej polega na doborze tekstu jawnego lub szyfrogramu na podstawie wyników otrzymanych z wcześniejszych ataków. Jako minimum, należy zbadać czy szyfrogram jest odporny na ataki ze znanym i wybranym tekstem jawnym. Dla szyfrów bazujących na synchronizacji chaosu zastosowanie mają również ataki dedykowane [15, 83, 131], jednak ta klasa szyfrów nie należy do rozpatrywanych w niniejszej dysertacji. 26

Rozdział 2 Budowa chaotycznego szyfru strumieniowego Celem rozdziału jest przedstawienie problemów występujących podczas projektowania szyfru strumieniowego. Przedstawiony we wstępie schemat chaotycznego szyfru strumieniowego zawiera komponenty, które są w tym rozdziale szczegółowo omawiane: funkcja zmiany stanu, funkcja generująca strumień klucza (funkcja filtra), funkcja łącząca strumień klucza z tekstem jawnym (funkcja wyjścia), funkcja sprzężenia zwrotnego, funkcje odwzorowujące dane wejściowe i wyjściowe szyfratora na alfabety poprawne dla szyfru chaotycznego. 2.1 Wstęp Podczas projektowania strumieniowego algorytmu szyfrowego najistotniejsze są dwa problemy [93]: (1) w jaki sposób opisać funkcję zmiany stanu wewnętrznego oraz (2) w jaki sposób wymieszać tekst jawny ze strumieniem klucza. Wynik funkcji zmiany stanu jest dodatkowo przetwarzany funkcją filtra [80] w celu wygenerowania strumienia klucza, który z kolei jest łączony z tekstem jawnym typowo z wykorzystaniem operacji xor [28, 80, 93]. Algorytmy szyfrowe bazujące na teorii chaosu pracują najczęściej w dziedzinie liczb zmiennopozycyjnych. W takim przypadku dochodzą zatem dodatkowe problemy [4]: (1) wybrana implementacja liczb zmiennopozycyjnych, (2) błędy zaokrągleń i skończonej precyzji obliczeń oraz (3) równoważność wielu kluczy. Schemat chaotycznego szyfru strumieniowego można przedstawić jako rozszerzenie przedstawionego we wstępie oraz w [80] schematu szyfru strumieniowego o dodatkowe komponenty: funkcję sprzężenia zwrotnego oraz przekształcenia odwzorowujące. Funkcja sprzężenia zwrot- 27

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO nego jest wykorzystywana w niektórych algorytmach szyfrowych (np. w [90]) do modyfikacji stanu wewnętrznego szyfratora. Przekształcenia odwzorowujące mają na celu przekształcenie znaków tekstu jawnego na wartości odpowiednie dla danego szyfratora (np. określają część atraktora odpowiadającą danemu znakowi tekstu jawnego [13] lub wykorzystywaną wartość orbity chaotycznej [42]). Poszczególne funkcje chaotycznego szyfru strumieniowego można przedstawić następująco: σ i f j k t 1 g m i t 2 h t 3 c i Rysunek 2.1: Schemat blokowy chaotycznego szyfratora strumieniowego σ i = { f(σi 1, t 1 (k)) lub f(σ i 1, t 1 (k), j(h(z i 1, t 2 (m i 1 )))) (2.1) z i = { g(σi ) lub g(σ i, t 1 (k)) (2.2) c i = t 3 (h(z i, t 2 (m i ))) (2.3) gdzie: k klucz, m tekst jawny, c szyfrogram, z strumień klucza, σ i stan szyfratora, h funkcja wyjścia, g funkcja generująca strumień klucza, t 1, t 2, t 3 przekształcenia odwzorowujące, j funkcja sprzężenia zwrotnego, f układ chaotyczny (funkcja zmiany stanu). Schemat chaotycznego szyfru strumieniowego przedstawiono na rysunku 2.1. Opis poszczególnych składników szyfru chaotycznego, znajduje się w kolejnych podrozdziałach. 28

2.2 Klucz ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO Ujawnienie struktury algorytmu szyfrowego nie może ułatwić procesu ujawnienia klucza lub odtworzenia wiadomości bez znajomości klucza. Bezpieczeństwo algorytmu szyfrowego musi zależeć wyłącznie od bezpieczeństwa klucza. Czas potrzebny na sprawdzenie wszystkich możliwych kluczy zwiększa się wykładniczo w zależności od jego długości. Przykład czasu wymaganego do sprawdzenia wszystkich możliwych kluczy, przy założeniu wykonywania jednej operacji w czasie nanosekundy, przedstawiono w tabeli 2.1. Tabela 2.1: Czasochłonność ataku metodą pełnego przeglądu n 10 20 50 100 200 1000 czas 2 n 1 µ s 1.05 ms 13 dni 4 10 13 lat 5.1 10 43 lat 3.4 10 284 lat Zgodnie z prawem Moore a moc obliczeniowa komputerów podwaja się co 18 miesięcy. Z tego powodu nowoczesne algorytmy szyfrowe powinny być tak zaprojektowane, aby zaszyfrowana informacja pozostawała tajna przez okres 30 lat. Aby to osiągnąć, ilość podstawień klucza w przypadku ataku metodą pełnego przeglądu nie może być mniejsza niż 2 128, co oznacza, że długość klucza nie może być mniejsza od 128 bitów [36, 51, 80]. Poprawnie zaprojektowany algorytm szyfrowy jest tak bezpieczny jak klucz. Wybranie słabego klucza oraz niewielka przestrzeń kluczy powodują, że algorytm może być łatwo złamany. Wiele opisanych szyfrów chaotycznych nie określa jasno co należy do klucza, jakie są dopuszczalne wartości oraz jaka jest precyzja klucza. Informacje te powinny być dokładnie zdefiniowane [4]. Po określeniu tych cech, należy dokładnie przestudiować przestrzeń klucza. Nie każdy klucz w algorytmie chaotycznym jest jednakowo silny. Na podstawie diagramu bifurkacji w przypadku niektórych algorytmów szyfrowych można wywnioskować, dla jakich zakresów klucza układ dynamiczny przestaje pracować w obszarze chaotyczności. Sprawę komplikuje również fakt użycia kilku parametrów klucza. Wówczas należy określić wielowymiarową przestrzeń wartości dopuszczalnych. Przestrzeń klucza można wyznaczać korzystając z wykładnika Lapunowa. Często występuje jednak problem w jednoznacznym określeniu granic takiego obszaru. W idealnym przypadku układ dynamiczny powinien zachowywać się w sposób chaotyczny dla każdej wartości klucza. Przestrzeń klucza musi być wystarczająco duża aby przeciwstawić się atakowi metodą pełnego przeglądu. Często jednak trudno jest taką przestrzeń określić, ponieważ dany szyfrogram może zostać odszyfrowany przez kilka kluczy lub obszary chaotyczności nie są regularne. Jeżeli klucz składa się z kilku składników, ustalenie jednego parametru nie powinno umożliwić oszacowania pozostałych parametrów, ani części tekstu jawnego. Sposób generowania klucza powinien być dokładnie określony. 29

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO Rozpatrzmy układ chaotyczny opisany wzorem x n+1 = f(x n, a), gdzie x 0 wartość początkowa, a parametr kontrolny lub zbiór parametrów kontrolnych. Aby dynamika układu chaotycznego nie była przewidywalna, parametr kontrolny powinien być tajny, czyli należeć do klucza szyfru. Wartość parametru kontrolnego powinna być dobrana w sposób staranny, ponieważ w zależności od wartości parametru kontrolnego zmienia się dynamika układu. W przypadku funkcji logistycznej f(x, b) = bx(1 x), parametr kontrolny b (s, 4]. W przeciwnym przypadku funkcja logistyczna ma ujemny wykładnik Lapunowa, zatem nie zachowuje się w sposób chaotyczny. Jednak nawet dla b (s, 4], występuje wiele obszarów niechaotyczności, co może powodować podatność szyfru na kryptoanalizę [1]. Inne odwzorowania chaotyczne mają mniej lub bardziej przewidywalne obszary chaotyczności, np. dla funkcji typu namiot f(x, a) = a(1 2 x 1/2 ), wykładnik Lapunowa λ = ln(a/2). Realizacja komputerowa układu chaotycznego i wynikające z niej błędy zaokrągleń oraz precyzji obliczeń powodują znaczące zmiany w dynamice układu chaotycznego. Może się wówczas okazać, że wartość wykładnika Lapunowa różni się od teoretycznych założeń. W celu zapewnienia bezpieczeństwa szyfru, wartość wykładnika Lapunowa powinna być badana każdorazowo po wybraniu wartości parametru kontrolnego i w przypadku wartości ujemnej, wybór powinien być powtórzony. Układy chaotyczne cechują się nieprzewidywalnością długookresową. Natomiast stan następny jest dokładnie określony na podstawie stanu poprzedniego. Najczęściej więcej niż jeden stan poprzedni daje taki sam stan następny. Jeżeli każdy punkt orbity generowanej przez układ chaotyczny x n+1 = f(x n ) ma t przeciwobrazów (tzn. istnieje t różnych x n 1, które są przekształcane w x n ), to odwzorowanie f(x) ma następujące własności (por. [55]): f jest odwzorowaniem t do jednego, t : 1 f 1 jest odwzorowaniem jeden do t, 1 : t n-ta iteracja f, tj. f n jest odwzorowaniem t n : 1 n-ta iteracja f 1, tj. f n jest odwzorowaniem 1 : t n. Jeżeli wartość początkowa należy do klucza, wówczas może istnieć problem wielu identycznych kluczy. Dla odwzorowań, w przypadku których każdy punkt orbity posiada t przeciwobrazów, t kluczy może być równoważnych. Na poziomie n-tej iteracji układu chaotycznego, teoretycznie t n równoważnych wartości początkowych wygeneruje ten sam n-ty punkt orbity. W realizacji komputerowej układu dynamicznego, każdy teoretyczny przeciwobraz punktu x k należy do jednej z trzech klas: 1.!x k 1, f(x k 1 ) = x k 30

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 2. X, (x k 1 X), f(x k 1 ) = x k 3. (x k 1 R), f(x k 1 ) = x k Z praktycznego punktu widzenia liczba równoważnych wartości początkowych jest inna w zależności od tego, do jakiej klasy odwzorowania należy 1,2,...,n-ta iteracja. Ilość kluczy równoważnych określa zatem w dużej mierze moc zbioru X dla każdej iteracji. W rzeczywistości klasa 1 i 3 jest szczególnym przypadkiem klasy 2, w której #X = 1 lub #X = 0 odpowiednio. Przy takim założeniu, ilość równoważnych kluczy z punktu widzenia n-tej iteracji można określić wzorem #k n = n i=0 #X i. Należy zaznaczyć, że w zależności od rodzaju algorytmu szyfrowego, równoważność kluczy z punktu widzenia n-tej iteracji może oznaczać np. n pierwszych błędnie odszyfrowanych znaków lub mniejszą moc alfabetu poprawnie odszyfrowanych wiadomości [13, 90]. 2.3 Funkcja zmiany stanu W szyfrach strumieniowych opartych na teorii chaosu funkcją zmiany stanu jest odwzorowanie chaotyczne. Dynamika układu chaotycznego zależy w dużym stopniu od wybranego odwzorowania. Aby kryptoanaliza szyfru była utrudniona, funkcja chaotyczna musi cechować się dobrymi własnościami chaotycznymi i statystycznymi. W klasycznych szyfrach strumieniowych, zamiast odwzorowań chaotycznych stosowane są liniowe lub nieliniowe rejestry przesuwające [80], których odpowiedni dobór ma duże znaczenie dla bezpieczeństwa szyfrogramu. 2.3.1 Ogólne jednowymiarowe odwzorowania symetryczne Jednowymiarowe odwzorowania symetryczne (por. np. przeciwobrazy, można zapisać w ogólnej formie: [110]), posiadające dokładnie dwa f(x, α) = 1 2x + 1 α (2.4) gdzie α (0.5, ). Dla parametru α < 0.5 układ nie zachowuje się w sposób chaotyczny. Dla α = 1 odwzorowanie to staje się funkcją namiotową, dla α = 2 odwzorowanie staje się funkcją logistyczną. Wykładnik Lapunowa dla ogólnego odwzorowania symetrycznego w funkcji parametru α oraz diagram bifurkacji przedstawiono na rysunku 2.3. Wykładnik Lapunowa dla tego typu odwzorowania wynosi λ α = ln 2α dla α R + \(0.5, 1). Dla α (0.5, 1) wykładnik Lapunowa ma wartość stałą (nie zmienia się przy zmianie parametru α). Dla α < 0.5 wykładnik Lapunowa 31

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO λ < 0, zatem układ nie zachowuje się w sposób chaotyczny. Potwierdza to również diagram bifurkacji (rysunek 2.2). 4 λ 3 2 1 f 1 0,9 0 0,01 0,1 1 10 α 0,8 0,7-1 0,6 0,5 0,4-2 0,3 0,2-3 0,1 0 0 1 2 3 4 5 6 7 8 9 α 10-4 Rysunek 2.2: Diagram bifurkacji ogólnego odwzorowania symetrycznego Rysunek 2.3: Wykładnik Lapunowa dla ogólnego odwzorowania symetrycznego w funkcji parametru α. 2.3.2 Klasa odwzorowań kwadratowych Funkcja kwadratowa (logistyczna) opisana jest wzorem (2.5). f(x, b) = b x(1 x) (2.5) Generowany przez nią ciąg rekurencyjny opisany jest następująco x n+1 = f(x n, b). Występujące w literaturze wersje funkcji kwadratowej generujących ciągi: p n+1 = p n + r p n (1 p n ) oraz z n+1 = zn 2 + c są sobie równoważne poprzez zmianę współrzędnych [88] (są sprzężone topologicznie, definicja 15, str. 13). Funkcja logistyczna dana wzorem (2.5) jest często wykorzystywana w kryptografii ze względu na to, że jej orbita chaotyczna x n (0, 1) o ile punkt początkowy x 0 (0, 1) oraz wartość parametru kontrolnego b (0, 4]. Dla b > s funkcja logistyczna ma dodatni wykładnik Lapunowa, zatem zachowuje się w sposób chaotyczny. Funkcja gęstości prawdopodobieństwa odwzorowania logistycznego ρ T (y) dla b = 4 jest określona i można ją wyznaczyć poprzez przekształcenie funkcji gęstości prawdopodobieństwa odwzorowania typu namiot ρ T (y) oraz przekształcenia zamiany współrzędnych 32

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO H(y) (por. np. [91]) ρ T (x) = { 1, x (0, 1) 0, x R \ (0, 1) H(y) = sin 2 (πy/2) x = H 1 (y) = 2 π arcsin( y) ρ T (x) dx dy, x (0, 1) ρ S (x) = 0, x R \ (0, 1) ρ S (x) = 1 π x(1 x), x (0, 1) 0, x R \ (0, 1) (2.6) Naturalny wykładnik Lapunowa funkcji f(x, b), określonej wzorem (2.5) dla wartości b = 4 jest następujący (por. np. [43, 57]): λ nat = 1 0 ρ(x) ln f(x, b) 1 x dx = ln 4 8x dx π = ln 2 (2.7) x(1 x) Uogólnieniem funkcji (2.5) jest funkcja generująca ciąg rekurencyjny, dla którego każdy element x n może powstać z k różnych elementów x n 1 (przeciwobrazów) [57]. Ciąg ten można przedstawić za pomocą wzoru 0 x n+1 = sin 2 (k n arcsin(x n )), k Z (2.8) Jeżeli k = p/q, p, q Z, wówczas diagram powrotów (definicja 13, str. 13) takiego odwzorowania jest krzywą Lissajous [57, 129]. Jeżeli k jest liczbą niewymierną, wówczas atraktor ma dużo bardziej skomplikowaną strukturę [39]. 2.3.3 Klasa odwzorowań odcinkami liniowych Funkcje odcinkami liniowe występują najczęściej w następujących formach: 1. Odwzorowanie przesunięcie Bernoulliego F (x) = (2x mod 1) (2.9) 33

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 2. Odwzorowanie namiotowe, a (0.5, 1) F (x, a) = a(1 2 x 0.5 ) (2.10) 3. Odwzorowanie ukośny namiot, a (0, 1) F (x, a) = { x a, 0 < x < a 1 x 1 a, a < x < 1 (2.11) 4. Odwzorowanie Zhou [136], a (0, 0.5) F (x, a) = x a, 0 < x < a x a 0.5 a, a < x < 1 2 (2.12) F (1 x, a), 1 2 < x < 1 Ogólną formą odwzorowania namiotowego (dla a = 1) jest odwzorowanie określone wzorem ogólnym f(x, k) = 1 arccos(cos(kπx)) (2.13) π Generowany jest przez nie ciąg rekurencyjny x n+1 = f(x n, k), dla którego każdy punkt x n ma k przeciwobrazów, czyli jest prawdziwy dla k różnych wartości x n 1. Funkcja gęstości dla a = 1 jest stała i wynosi ρ(x) = 1 dla x (0, 1) (por. np. [43]). Naturalny wykładnik Lapunowa dla a = 1 wynosi λ = ln 2. W przypadku odwzorowania ukośny namiot, danego wzorem (2.11), naturalny wykładnik Lapunowa jest określony następująco λ nat = 1 0 ρ(x) ln F (x, a) a x dx = ln 1 1 a a dx+ 1 ln dx (2.14) 1 a λ nat = a ln(a) (1 a) ln(1 a) Uwaga 4 Odwzorowania kwadratowe oraz odcinkami liniowe należa do najszybszych odwzorowań chaotycznych (występuje jedynie kilka operacji arytmetycznych lub porównania), przy czym funkcje odcinkami liniowe sa często proponowane jako odpowiednie do zastosowań kryptograficznych [67, 70, 71, 99]. 0 a 2.3.4 Sprzężenie topologiczne odwzorowań Twierdzenie 4 Iterowanie funkcji logistycznej dla parametru kontrolnego b = 4 oraz iterowanie funkcji namiotowej dla parametru kontrolnego a = 1 jest równoważne przy wykorzystaniu 34

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO przekształcenia nieliniowego x = sin 2 (π y/2). Dowód 2 przedstawiony jest np. w [88] lub [91]. 2.3.5 Odwzorowania ukośne Odwzorowanie ukośne stosowane w kryptografii występuje najczęściej w formie ukośnego odwzorowania liniowego (por. na przykład [4, 35, 42, 68, 70]) oraz ukośnego odwzorowania dla funkcji kwadratowej. Ukośne odwzorowanie liniowe ( namiotowe ) dane jest wzorem (2.11). Parametr kontrolny odwzorowania ukośnego wpływa na kąt nachylenia odcinków tworzących funkcję chaotyczną. Daje to większe możliwości kryptograficzne, niż w przypadku np. odwzorowania logistycznego, ponieważ układy ukośne mają dodatnią wartość wykładnika Lapunowa w całym zakresie stosowalności parametru kontrolnego. Diagram powrotów (definicja 13, str. 13) dla ukośnego odwzorowania kwadratowego przedstawiono na rysunku 2.5. Odwzorowanie ukośne dla funkcji kwadratowej zostało przedstawione przez Hiraoka w [45]. Odwzorowanie to dane jest wzorem F (x) = ( ) ( 4 x+1 a a 2 4 a x ( 1 x a ) a x+1 a 2 a ), a 2 < x 1, 0 x < a 2 (2.15) Diagram powrotów dla ukośnego odwzorowania kwadratowego przedstawiono na rysunku 2.4. Parametr kontrolny a (0, 2). Z geometrycznego punktu widzenia parametr kontrolny określa punkt styku dwóch parabol. 2.3.6 Badanie wykładnika Lapunowa Przed przystąpieniem do wykonania testów statystycznych strumienia klucza, należy dokonać zbadania cech specyficznych dla układów dynamicznych. Pozwoli to określić najlepsze parametry badanych przekształceń dynamicznych w trakcie przeprowadzania testów statystycznych. Wykładnik Lapunowa określony wzorem (1.2), określa z jaką prędkością oddalają się od siebie dwie orbity chaotyczne, będące w czasie t 0 dowolnie blisko siebie. Jeżeli wykładnik Lapunowa jest dodatni (oraz układ dynamiczny posiada własność mieszania, definicja 11, str. 13), układ dynamiczny zachowuje się chaotycznie [29]. Wartość wykładnika Lapunowa jest zmienna w zależności od wartości parametrów kontrolnych. Zestawienie wyników przedstawiono w tabeli 2.2. Stała s w tabeli 2.2 to punkt Feigenbauma, i wartość jej wynosi s = 3.5699456.... Najbardziej nieregularny obszar chaotyczności ma funkcja logistyczna. Jednakże jedynie nie- 35

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 f(x) 0.5 f(x) 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x x Rysunek 2.4: Diagram powrotów dla odwzorowania ukośnego kwadratowego, dla a = 1.2 Rysunek 2.5: Diagram powrotów dla odwzorowania ukośnego liniowego, dla a = 0.6 Tabela 2.2: Dodatnie wykładniki Lapunowa dla niektórych odwzorowań chaotycznych Funkcja Zakres parametru kontrolnego dla λ > 0 Logistyczna s < b 4 Namiot 0.5 < a < 1 Ukośny namiot 0 < a < 1 Odwzorowanie Zhou 0 a 0.5 36

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO wielki zakres parametru kontrolnego umożliwia uzyskanie atraktora chaotycznego. Ponadto w zakresie b (s, 4] występuje wiele ujemnych wartości wykładnika Lapunowa. Na rysunku 2.6 przedstawiono ile ujemnych wykładników Lapunowa (N i ) występuje w każdym przedziale (D i ) o długości 0.01 przy rozdzielczości próbkowania 0.00001. Ujemne wartości wykładnika nie występują jedynie w końcu zakresu parametru kontrolnego. Stosując funkcję logistyczną przy projektowaniu szyfru chaotycznego oraz parametr kontrolny jako część klucza, należy zbadać wartość wykładnika Lapunowa dla wybranej wartości parametru kontrolnego i jeżeli jest on ujemny, wybrać inną wartość. Proces ten może być czasochłonny ponieważ obliczanie wartości wykładnika Lapunowa wymaga dużej ilości iteracji. Funkcja typu namiot charakteryzuje się bardziej przewidywalną wartością wykładnika Lapunowa: a > 0.5, λ > 0. Analizując jednak diagram powrotów dla danego parametru kontrolnego a < 1 wiadomo, że wartości orbity nie leżą w całym zakresie (0, 1). Fakt ten można wykorzystać do skutecznej kryptoanalizy [6]. Wartość wykładnika Lapunowa dla funkcji ukośny namiot jest jednak bliska 0 przy wartościach granicznych parametru kontrolnego. W przeciwieństwie do niej, odwzorowanie Zhou ma dodatni wykładnik Lapunowa w całym zakresie parametru kontrolnego, są to również najwyższe wartości ze wszystkich badanych funkcji chaotycznych. Rysunek 2.6: Ilość ujemnych wykładników Lapunowa dla funkcji logistycznej w obszarze chaotyczności 2.3.7 Częstość występowania bitów w reprezentacji binarnej liczby zmiennopozycyjnej Wybranym do badań standardem zapisu liczb zmiennopozycyjnych został przedstawiony w [46] standard IEEE-754. Standard ten występuje w wielu środowiskach uruchomieniowych programów, np. w środowisku JAVA Runtime Envirionment JRE [76]. Zgodnie ze specyfikacją IEEE- 37

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 754, liczba zmiennopozycyjna podwójnej precyzji zapisana jest w słowie o długości 64 bitów, z czego 1 bit (63) przypada na znak, 11 bitów przypada na wykładnik (62-52), 52 bity przypadają na mantysę (51-00). Wykorzystując zapis binarny, wartość znormalizowanej liczby zmiennopozycyjnej podwójnej precyzji można obliczyć za pomocą poniższego wzoru: wykładnik { }} { ( 1) b 63 1.b 51 b 50...b } {{ } 0 2 b 62 b 61...b 52 1023, bk {0, 1} (2.16) mantysa W specjalny sposób zapisywane są wartości, +, 0, +0, nie liczba (NaN) oraz liczby zdenormalizowane. Większość jednowymiarowych iterowanych odwzorowań chaotycznych, takich jak przekształcenie logistyczne lub namiotowe generuje orbity chaotyczne należące do przedziału (0, 1). Analiza funkcji logistycznej ukazała nierównomierny rozkład prawdopodobieństwa każdego z bitów binarnej reprezentacji zmiennopozycyjnej zatem w procesie generacji ciągów losowych należy wykorzystać tylko te bity, których prawdopodobieństwo wystąpienia wynosi około 50%. Rozkład bitów reprezentacji binarnej liczb generowanych przez funkcję logistyczną przedstawiono na rysunku 2.7. Rysunek 2.7: Rozkład prawdopodobieństwa każdego bitu reprezentacji binarnej wartości generowanych przez funkcję logistyczną. 38

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 2.3.8 O implementacji Nie jest możliwe dokładne przeanalizowanie szyfrów chaotycznych jeżeli opisy nie zawierają istotnych szczegółów implementacji algorytmu. W opisie szyfru niezbędne jest dostarczenie informacji na temat precyzji obliczeń, zastosowania arytmetyki zmienno- czy stałopozycyjnej oraz czy zastosowano implementację programową czy sprzętową. W realizacji komputerowej układu chaotycznego występuje zjawisko degradacji dynamiki układu. Aby szyfr znalazł praktyczne zastosowanie, musi być bezpieczny oraz efektywny [4]. Implementacja komputerowa układu chaotycznego powoduje powstawanie różnego rodzaju błędów w trakcie iteracji układu dynamicznego. Wynikają one ze skończonej precyzji obliczeń stosowanych w komputerowej implementacji liczb zmiennopozycyjnych. Często stosowanym standardem obliczeń zmiennopozycyjnych jest standard określony specyfikacją IEEE-754 [46]. Ma on zastosowanie na przykład w środowisku uruchomieniowym JAVA JRE [76]. Liczba zmiennopozycyjna zapisana na 64 bitach składa się z bitu znaku, 11 bitów wykładnika oraz 52 bitów mantysy. Liczbę zmiennopozycyjną x (0, 1) można zapisać zgodnie z następującym wzorem: x = 0.b 0 b 1 b 2 b 3... b n 1 = n 1 k=0 b k 2 k, b k {0, 1} (2.17) Na przykład przy zastosowaniu odwzorowania typu przesunięcie Bernoulliego, określonego wzorem (2.18), po każdej iteracji na najmniej znaczących bitach reprezentacji binarnej liczby zmiennopozycyjnej pojawia się wartość nieokreślona, typowo 0. x n+1 = (2x n mod 1) = frac(2x n ) (2.18) W przedstawionym przykładzie błąd podwaja się dwukrotnie wraz z każdą iteracją. Takie zachowanie powoduje, że maksymalna ilość iteracji jest określona przez długość mantysy. Po przekroczeniu tej granicy orbita staje się orbitą stałą o wartości 0. Do odwzorowania typu przesunięcie Bernoulliego można sprowadzić funkcję logistyczną poprzez zamianę współrzędnych. Zastosowane jednak w funkcji logistycznej operacje zmiennopozycyjne takie jak mnożenie lub odejmowanie powodują powstanie dodatkowych zaburzeń układu, przez co orbita funkcji logistycznej jest wielokrotnie dłuższa niż orbita przekształcenia typu przesunięcie Bernoulliego. Z punktu widzenia kryptografii nie tylko długi okres cyklu jest istotny. Ważne jest, aby zarówno nadajnik jak i odbiornik generowały identyczne orbity chaotyczne z dokładnością do bitu. Problemem jest na przykład zastosowanie różnych implementacji liczb zmiennopozycyj- 39

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO nych oraz różnej precyzji obliczeń. Wówczas mantysy nie są tej samej klasy co powoduje powstanie błędów po ilości kroków nie większej niż długość mantysy. Problemy występują również w przypadku zastosowania tej samej implementacji i precyzji liczb zmiennopozycyjnych. Różne podejścia do przedstawienia tego samego wzoru funkcji chaotycznej powodują powstanie różnic już po kilkudziesięciu iteracjach (w zależności od długości mantysy). Rozpatrzmy dwa równoważne wzory funkcji logistycznej przedstawione poniżej (2.19) i (2.20). x n+1 = 4x n (1 x n ) (2.19) y n+1 = 4y n 4y 2 n (2.20) W trakcie 127 iteracji rozpoczynając od x 0 = y 0 = 0.77 obliczano maksymalny błąd bezwzględny zgodnie ze wzorem n {0,1,2,...,k}, n = Wyniki przedstawione są na rysunku 2.8. n max k=0 ( x k y k ) n n Rysunek 2.8: Błąd bezwzględny iteracji podczas różnej implementacji funkcji logistycznej 2.4 Funkcja generujaca strumień klucza (filtr) Celem funkcji filtra jest takie przetworzenie stanu wewnętrznego, aby wynikowy strumień klucza był nierozróżnialny od ciągu losowego. Źródło danych prawdziwie losowych jest trudne do uzyskania w praktyce, gdy potrzeba większej ilości danych oraz gdy niezbędna jest ciągłość 40

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO dopływu danych losowych [59]. Ciąg losowych bitów powstaje na przykład w trakcie rzucania poprawnie wyważoną monetą: orzeł generuje wartość 0, a reszka 1. Innymi przykładami źródła danych losowych, dostępnych dla aplikacji kryptograficznych, są: częstotliwość wciskania klawiszy, analiza ruchu myszą, prędkość odczytu i zapisu w dysku twardym. Wadą tego typu źródła danych losowych jest to, że atakujący może w pewnym stopniu wpłynąć na środowisko generatora, a samo źródło danych może być podatne na uszkodzenia oraz przewidywalne w pewnym zakresie [36]. W przypadku szyfrów strumieniowych zastosowanie ciągów prawdziwie losowych jako funkcji strumienia klucza powoduje dodatkowe utrudnienia: algorytm deszyfrujący musi wygenerować dokładnie taką samą sekwencję bitów strumienia klucza, co w przypadku danych prawdziwie losowych nie jest możliwe bez ich przesłania z szyfratora. W rzeczywistości żaden deterministyczny algorytm nie jest w stanie wygenerować ciągu prawdziwie losowego. Zamiast niego stosuje się algorytmy generujące ciągi pseudolosowe. Generator bitów pseudolosowych (PRBG) jest to deterministyczny algorytm, który po otrzymaniu prawdziwie losowej sekwencji binarnej o długości k zwraca sekwencję binarną o długości l k, która wygląda na losową. Wejście generatora bitów pseudolosowych nazywane jest ziarnem, natomiast wyjście pseudolosową sekwencją bitów [80]. Do zastosowań kryptograficznych nie można używać generatorów liczb pseudolosowych dostępnych w popularnych środowiskach programistycznych (typowo funkcja rand()). Należy wykorzystać kryptograficznie bezpieczne generatory liczb pseudolosowych. Ciągi uzyskane z takich generatorów muszą spełnić klasę testów statystycznych takich jak NIST 800-22 [33], FIPS 140-2 [62], DIEHARD [78] lub ENT [115]. Kryptograficzne generatory ciągów pseudolosowych bazują na stanie wewnętrznym generatora, którego ujawnienie powoduje możliwość odtworzenia następnych wartości zwracanych przez generator. Nie powinno być natomiast możliwe odtworzenie stanu wewnętrznego na podstawie ciągu bitów wyjściowych [36, 80, 100]. Inne zastosowanie liczb losowych w kryptografii ma miejsce w protokołach uzgadniających klucze sesyjne, gdzie ważna jest nieprzewidywalność wygenerowanego klucza. Generatory liczb losowych mają również szerokie zastosowanie w wielu innych dziedzinach nauki, takich jak symulacje lub metody analizy Monte-Carlo. Niektóre chaotyczne algorytmy szyfrowe posiadają cechy szyfrów blokowych, jak np. szyfrowanie kolejnych znaków tekstu jawnego za pomocą identycznego odwzorowania (zależnego od klucza) oraz zastosowanie wielu rund [42, 56]. Zastosowanie jednego z trybów pracy szyfru blokowego (z wyjątkiem ECB) powoduje powstanie szyfru strumieniowego, a wynik funkcji szyfru blokowego można potraktować jako generator strumienia klucza. W takim przypadku 41

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO cały algorytm szyfrowy należy rozpatrywać w kategorii funkcji filtra. 2.4.1 Cechy statystyczne W specyfikacji NIST 800-22 [33] przedstawiono 16 testów dowodzących w różny sposób losowości badanego ciągu. Aby możliwe było przeprowadzenie wszystkich testów, całkowita długość ciągu nie może być mniejsza niż 10 6 bitów. Każdy z testów jest funkcją zbioru wygenerowanych pseudolosowych bitów. Wynikiem tej funkcji jest p-wartość określająca siłę poprawności hipotezy H 0 (H 0 ciąg jest losowy, H A ciąg nie jest losowy). Jeżeli p-wartość jest mniejsza od poziomu istotności α, wówczas hipoteza H 0 jest odrzucana. Standardowo przyjmuje się wartość α jako odwrotność ilości badanych próbek, np. dla 100 próbek α = 0.01. Na potrzeby weryfikacji poprawności wyników testów statystycznych, w [33] zdefiniowano współczynnik proporcji jako ilość sekwencji, dla których p-wartość jest większa niż poziom istotności α podzielona przez ilość testowanych sekwencji bitów. Każdy generator jest zbadany z wykorzystaniem m sekwencji o długości n bitów. W [33] określono zakres akceptowanych proporcji z wykorzystaniem wzoru ˆp ± 3 ˆp(1 ˆp)/m, ˆp = 1 α. Drugim wskaźnikiem poprawności testów opisanym w [33] jest współczynnik równomierności rozkładu otrzymanych p-wartości. W celu wyznaczenia współczynnika równomierności rozkładu należy wykonać histogram dla każdego testu składający się z 10 przedziałów o szerokości 0.1, w których występuje informacja ile razy p-wartość osiągnęła dany przedział. W celu zbadania równomierności występowania p-wartości w danym przedziale, należy obliczyć wartość χ 2 = 10 i=1 (C i s/10) 2 /(s/10), gdzie C i to ilość p-wartości w przedziale [(i 1)/10, i/10), i = 1, 2,..., 10, s wielkość próbki. Następnie należy wyznaczyć p- wartość T z p-wartości otrzymanych z testów, zgodnie ze wzorem p-wartość T = P (9/2, χ 2 /2), gdzie P (a, x) to niekompletna funkcja gamma. Jeżeli p-wartość T > 0.0001, wówczas przyjmuje się, że rozkład p-wartości w interwałach histogramu jest równomierny. Opis testów NIST (szczegóły dostępne są w [33]): 1. Test częstości (ang. Frequency (Monobit) Test) Test określa proporcje pomiędzy ilością zer i jedynek w całej sekwencji. Celem jest stwierdzenie, czy ilość zer i jedynek jest zbliżona, jak powinno się stać w sekwencji prawdziwie losowej. Pozostałe testy zależą od poprawnego wyniku tego testu. 2. Blokowy test częstości (ang. Frequency Test within a Block) Test określa proporcje pomiędzy ilością zer i jedynek wewnątrz M-bitowego bloku. Celem jest stwierdzenie czy ilość zer i jedynek wewnątrz zadanego bloku jest zbliżona do przypadku ciągu losowego. 42

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 3. Test serii (ang. Runs Test) Test określa całkowitą ilość przebiegów w sekwencji, gdzie poprzez przebieg rozumie się nieprzerwany ciąg identycznych bitów. Celem jest stwierdzenie czy ilość przebiegów o różnej długości jest zbliżona do spotykanej w przebiegach prawdziwie losowych. 4. Test na najdłuższy ciag jedynek w bloku (ang. Test for the Longest Run of Ones in a Block) Test określa najdłuższy przebieg w bloku o długości M bitów. Celem jest stwierdzenie czy najdłuższe przebiegi w bloku są zbliżone do spotykanych w przebiegach prawdziwie losowych. 5. Test rzędów macierzy binarnych (ang. Binary Matrix Rank Test) Test określa rząd rozłącznych podmacierzy w całej sekwencji. Celem jest określenie zależności liniowej podciągów o stałej długości uzyskanych z całej badanej sekwencji. 6. Test spektralny (ang. Discrete Fourier Transform (Spectral) Test) Test określa wysokość wierzchołków Dyskretnej Transformaty Fouriera badanej sekwencji. Celem jest stwierdzenie czy istnieją takie cechy okresowe badanej sekwencji, które mogą spowodować odchylenia od sekwencji losowej. 7. Test niezachodzacych na siebie wzorców (ang. Non-overlapping Template Matching Test) Test określa ilość wystąpień założonych wstępnie ciągów. Celem jest wykrycie generatorów produkujących zbyt dużą ilość pewnych nieokresowych wzorców. 8. Test zachodzacych na siebie wzorców (ang. Overlapping Template Matching Test) Test również określa ilość wystąpień założonych wstępnie ciągów. Różnica pomiędzy tym i poprzednim testem polega na sposobie przesuwania okna przeszukiwań po znalezieniu pasującego wzorca. 9. Test Maurera (ang. Maurer s Universal Statistical Test) Test określa ilość bitów pomiędzy pasującymi wzorcami. Celem jest wykrycie możliwości kompresji badanego ciągu bez utraty informacji. 10. Test kompresji Lempela-Ziva (ang. Lempel-Ziv Compression Test) Test określa sumaryczną ilość różnych wzorców w badanej sekwencji. Celem jest określenie jak bardzo daną sekwencję można skompresować. Losowa sekwencja nie jest podatna na kompresję. 43

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO 11. Test liniowej złożoności (ang. Linear Complexity Test) Test określa długość liniowego rejestru przesuwającego (LFSR) generującego daną sekwencję. Celem jest określenie czy sekwencja jest wystarczająco złożona, aby była rozpatrywana jako losowa. 12. Test częstości zachodzacych na siebie wzorców (ang. Serial Test) Test określa częstotliwość wszystkich możliwych nakładających się wzorców m-bitowych w całej sekwencji. Celem jest określenie czy ilość wystąpień m-bitowych nakładających się wzorców jest taka jak w przypadku ciągu losowego. 13. Aproksymacyjny test entropii (ang. Approximate Entropy Test) Test określa częstotliwość wszystkich możliwych nakładających się wzorców m-bitowych w całej sekwencji. Celem jest określenie czy częstotliwość dwóch następujących po sobie wzorców jest taka jak w przypadku ciągów losowych. 14. Test sum (ang. Cumulative Sums (Cusum) Test) Test określa maksymalną długość losowej ścieżki zdefiniowanej jako zagregowana suma ( 1, +1) cyfr w sekwencji. Celem jest określenie, czy zagregowana suma częściowych sekwencji występujących w sekwencji badanej jest zbliżona do przypadku dla losowej sekwencji. 15. Test losowych wycieczek (ang. Random Excursions Test) Test określa ilość cykli, odwiedzających dokładnie K zagregowanych sum losowej ścieżki. Celem jest określenie czy ilość odwiedzin danego stanu wewnątrz cyklu jest zbliżona do przypadku dla losowego ciągu. 16. Alternatywny test losowych wycieczek (ang. Random Excursions Variant Test) Test określa całkowitą ilość odwiedzin danego stanu w zagregowanej sumie losowej ścieżki. Celem testu jest wykrycie odchyleń od przewidywanej dla losowego ciągu ilości odwiedzin danego stanu w losowej ścieżce. 2.4.2 Klasyczne generatory liczb pseudolosowych Obecnie stosowane generatory ciągów pseudolosowych charakteryzują się różną prędkością działania, jakością generowanych ciągów oraz klasą wykorzystywanych algorytmów. W [100] przeanalizowano liniowy generator kongruencyjny oraz generator wykorzystujący liniowe rejestry przesuwające (LFSR). Liniowy generator kongruencyjny można przestawić za pomocą 44

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO równania (2.21) x n+1 = ((a x n + b) mod m) (2.21) Generator wykorzystujący liniowe rejestry przesuwające można przedstawić za pomocą równania (2.22) x n+1 = k (x n a i ), a i {0, 1} (2.22) i=1 Generatory te charakteryzują się dużą prędkością działania, jednak nie są kryptograficznie silne ponieważ nie bazują na problemach uznawanych w kryptografii jako obliczeniowo trudne. Generatory bazujące na problemach trudnych obliczeniowo przedstawiono w [59] i [111]. Przeanalizowano tam generator Blum-Blub-Shub (BBS) oraz generator bazujący na problemie RSA. W [80] przedstawiono generatory określone standardami ANSI X9.17 oraz FIPS 186. W [36] przedstawiono opracowany przez N. Fergusona i B. Schneiera generator Fortuna. 2.4.3 Chaotyczne generatory liczb pseudolosowych Zastosowanie układów chaotycznych w generowaniu liczb pseudolosowych umożliwia przeniesienie ich naturalnych cech do dziedziny własności statystycznych pożądanych u ciągów losowych. Często stosowaną funkcją chaotyczną jest równanie logistyczne określone wzorem (2.5) dla wartości parametru kontrolnego 0 a 4 [84]. Układ ten zachowuje się w sposób chaotyczny dla wartości parametru kontrolnego a > s, gdzie s 3.57 jest punktem Feigenbauma [88]. Dla tej wartości parametru wykładnik Lapunowa przyjmuje wartości dodatnie. W przypadku wartości parametru kontrolnego a = 4.0, możliwe jest obliczenie n-tego elementu ciągu generowanego przez równanie logistyczne [57], zgodnie ze wzorem (1.8). Taki układ chaotyczny jest przewidywalny w jednym kroku. Aby funkcja logistyczna pracowała w obszarze chaotyczności, wartość parametru kontrolnego powinna należeć do przedziału (s, 4). Jednak nawet w tym przedziale wartości wykładnika Lapunowa mogą przyjmować wartości ujemne, powodując powstawanie orbit okresowych lub stałych, zatem układ może być również przewidywalny długookresowo [109]. Dla żadnej wartości parametru a rozkład gęstości prawdopodobieństwa nie jest równomierny. W szczególnym przypadku, dla wartości a = 4 gęstość prawdopodobieństwa wystąpienia orbity chaotycznej w określonym przedziale atraktora można określić w sposób analityczny wzorem (2.23), por. [91]: ρ(x) = 1 π x(1 x), dla x (0, 1) 0, dla x R \ (0, 1) (2.23) 45

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO Nierównomierny rozkład prawdopodobieństwa powoduje pojawianie się częściej pewnych wartości niż innych i jest to cecha znana a priori. Równomierny rozkład prawdopodobieństwa ρ(x) = 1, dla x (0, 1) występuje dla odwzorowań odcinkami liniowych, takich jak funkcja typu namiot (2.10), ukośny namiot (2.11), funkcja zaproponowana przez Zhou dana wzorem (2.12) oraz uogólnione odwzorowanie odcinkami liniowe o k przeciwobrazach dane wzorem (2.13). Odwzorowania te posiadają również lepsze cechy chaotyczne, ponieważ ich wykładnik Lapunowa λ 0 dla całego poprawnego zakresu parametru kontrolnego (por. tabela 2.2). Do generacji ciągów pseudolosowych wykorzystuje się również odwzorowania sprzężone. Są to układy równań postaci: { a xn, x n < Q x n+1 = b y n, x n > Q (2.24) y n+1 = c z n (2.25) z n+1 = (x n mod 1) (2.26) z n+1 = sin 2 (πx n ) (2.27) Generatorem ciągów losowych jest z n, którego forma określona równaniem (2.26) została przedstawiona w [39] natomiast forma określona równaniem (2.27) została przedstawiona w [129]. W przypadku równania (2.27) diagramem powrotów jest krzywa Lissajous, której konstrukcję za pomocą układów chaotycznych przedstawiono również w [40]. 2.5 Funkcja wyjścia Funkcja wyjścia dokonuje wymieszania tekstu jawnego ze strumieniem klucza. Funkcja ta musi być odwracalna, aby proces deszyfrowania był możliwy. Idea szyfrów strumieniowych jest rozwinięciem szyfru Vernama, w którym losowy klucz jest mieszany z tekstem jawnym za pomocą operacji xor a całkowite bezpieczeństwo szyfru zależy od bezpieczeństwa (jednokrotności użycia i losowości) klucza. W przypadku klasycznych szyfrów strumieniowych, funkcją wyjścia jest najczęściej operacja xor. Powstaje wówczas strumieniowy szyfr addytywny binarnie [80]. Zastosowanie operacji xor występuje w projektach wielu szyfrów, między innymi w [9, 10, 23, 31, 117, 125]. 46

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO Również w przypadku szyfru blokowego pracującego w trybach CBC, CTR, OFB i CFB operacją mieszającą strumień klucza z tekstem jawnym jest operacja xor. Zaletą stosowania funkcji xor jest to, że jest to bardzo szybka operacja bitowa implementowana w procesorach, a funkcja odwrotna do niej jest taka sama. Operacja mieszająca strumień klucza z tekstem jawnym jest czasami nieuwzględniana w projekcie szyfru, ze względu na skupienie się głównie na badaniach dotyczących generowania strumienia klucza, doboru kluczy itp. (np. w [19, 81]). Zastosowanie operacji xor ma pewne wady. Posiadając odpowiednio dużą liczbę par tekst jawny-szyfrogram, możliwe jest odtworzenie strumienia klucza. Ważne jest zatem, aby funkcja filtra nie zdradzała informacji o kluczu szyfrowania [28]. Dodatkowo, w celu uniemożliwienia ataku z odtworzonym strumieniem klucza, stosowane są techniki randomizacyjne, takie jak wartość wektora początkowego IV, które powodują generowanie różnych strumieni klucza dla każdego z tekstów jawnych. Innym podejściem jest zastosowanie algorytmu szyfru blokowego jako funkcji wyjścia. Wówczas funkcja filtra ma zastosowanie do wygenerowania kolejnego (zmiennego w czasie) klucza dla algorytmu szyfru blokowego. Podejście to jednak wymaga zastosowania szybkiego szyfru blokowego, w przeciwnym przypadku uzyskany kryptosystem może nie być efektywny [28], choć o wysokim poziomie bezpieczeństwa. W przypadku szyfrów chaotycznych, jako funkcja wyjścia często jest wykorzystywana operacja xor (np. [90, 127]) operacja dodawania nad ciałem skończonym (np. [85, 86, 96]) lub operacja dodawania w dziedzinie liczb rzeczywistych (np. [56]). Występują również chaotyczne algorytmy szyfrowe, które wykorzystują niestandardowe podejście w wyborze funkcji wyjścia, jak np. poszukiwanie sekwencji tekstu jawnego w strumieniu klucza [3] lub określeniu ilości iteracji wymaganych do osiągnięcia określonego przedziału atraktora [13] oraz ich modyfikacje np. [48, 121 124, 127]. 2.6 Sprzężenie zwrotne Funkcja sprzężenia zwrotnego występuje w samosynchronizujących szyfrach strumieniowych. Wówczas strumień klucza zależy od określonej liczby bitów poprzednio zaszyfrowanych znaków. Głównym problemem projektowym tego typu szyfrów jest odpowiednie zaprojektowanie strumienia klucza z uwzględnieniem sprzężenia zwrotnego [28]. Standardowym sposobem na utworzenie samosynchronizującego się szyfru strumieniowego jest zastosowanie jedno bitowego trybu CFB w szyfrze blokowym. Funkcja zmiany stanu zależy wówczas również od sprzężenia zwrotnego, a nie tylko od klucza i stanu poprzedniego. Własność ta powoduje, że bezpieczeństwo szyfru zależy w znaczący sposób od odpowiedniego zaprojektowania funkcji 47

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO sprzężenia zwrotnego. W klasycznych szyfrach strumieniowych funkcją sprzężenia zwrotnego jest najczęściej wejście rejestru przesuwającego (ang. feedback shift register, FSR). Sprzężenie zwrotne powoduje pewną odporność na błędy podczas transmisji. W przypadku zakłócenia jednego bitu szyfrogramu, błąd wystąpi tylko w jednym bicie tekstu jawnego. Jednak usunięcie jednego bitu powoduje propagację błędu do wszystkich pozostałych bitów tekstu jawnego. W przypadku szyfrów chaotycznych rejestry przesuwające nie mają zastosowania; funkcja sprzężenia zwrotnego ma zastosowanie np. w modyfikacji orbity układu chaotycznego w sposób nieliniowy [90] określenia wartości początkowej oraz ilości iteracji [85]. W literaturze synchroniczne szyfry strumieniowe są opisywane znacznie szerzej, niż szyfry samosynchronizujące (por. np. [28, 93]). Z tego powodu niewiele tego typu szyfrów zostało przedstawionych, a większość z nich została złamana [31]. Na przykład we wszystkich szyfrach przesłanych do weryfikacji w ramach projektu NESSIE (skrót od ang. New European Schemes for Signatures, Integrity, and Encryption), znaleziono słabe punkty [34]. Praktycznie stosowanym szyfrem strumieniowym ze sprzężeniem zwrotnym jest tryb pracy CBF szyfru blokowego. Główną wadą tego rozwiązania jest jednak mała efektywność szyfru. 2.7 Podsumowanie W procesie projektowania chaotycznego szyfru strumieniowego należy zwrócić uwagę na poszczególne komponenty szyfru: klucz sprawdzenie czy jego rozmiar gwarantuje bezpieczeństwo ze względu na atak metodą pełnego przeglądu, czy jest dobrze określony, cz można określić zbiór kluczy równoważnych, funkcja zmiany stanu sprawdzenie czy zastosowane odwzorowanie pracuje w obszarze chaotyczności (zbadanie wykładnika Lapunowa); zbadanie zakresu wartości parametrów kontrolnych oraz jaki jest ich wpływ na zmianę dynamiki układu; zwrócenie uwagi na dokładność implementacji ze względu na wrażliwość układu na zmiany wartości, funkcja filtra sprawdzenie czy spełnia cechy statystyczne stawiane kryptograficznie bezpiecznych generatorom ciągów pseudolosowych; sprawdzenie czy niemożliwe jest odtworzenie stanu wewnętrznego na podstawie wygenerowanego ciągu strumienia klucza, funkcja wyjścia sprawdzenie czy jest odwracalna; sprawdzenie czy zastosowane tech- 48

ROZDZIAŁ 2. BUDOWA CHAOTYCZNEGO SZYFRU STRUMIENIOWEGO niki randomizacyjne utrudniają atak z wykorzystaniem poprzednio skolekcjonowanych strumieni klucza, funkcja sprzężenia zwrotnego sprawdzenie możliwości kompromitacji stanu wewnętrznego układu, proces inicjowania szyfru czy zastosowane są techniki randomizacyjne gwarantujące losowość generowanego strumienia klucza dla każdego podejścia szyfrowania danych. 49

Rozdział 3 Analiza szyfrów chaotycznych 3.1 Opis wybranych chaotycznych algorytmów szyfrowych W rozdziale przedstawione są zasady działania wybranych chaotycznych algorytmów szyfrowych. Do badań wybrano takie szyfry, które charakteryzują się różnymi podejściami projektowymi oraz wykorzystują różne własności chaosu: np. ergodyczność, wrażliwość na warunki początkowe, zastosowanie generatora ciągów pseudolosowych. Zróżnicowanie algorytmów szyfrowych pozwala na zbadanie zarówno własności kryptograficznych jak i chaotycznych. Wybrane szyfry dobrze wpisują się w opracowany model chaotycznego szyfru strumieniowego. Model ten przedstawiony jest w 2. W literaturze dostępna jest duża liczba analiz oraz usprawnień badanych algorytmów, np. [1, 2, 6, 17, 48, 49, 56, 68 70, 72, 73, 121 124, 127]. Rolę układu chaotycznego pełnią dobrze znane jednowymiarowe odwzorowania chaotyczne o zbadanych cechach. Opisy algorytmów skonfrontowano ze schematem szyfru chaotycznego zaproponowanym w 2, przedstawiając poszczególne komponenty tych szyfrów. Bazując na opisie tych algorytmów oraz dostępnych metodach kryptoanalizy, w kolejnych podrozdziałach przedstawione są słabe lub silne strony tych algorytmów z punktu widzenia poszczególnych komponentów chaotycznego szyfru strumieniowego. Przedstawione są również opracowane algorytmy wymagane do przeprowadzenia kryptoanalizy tych szyfrów. 3.1.1 Szyfr chaotyczny wykorzystujacy zjawisko ergodyczności W [13] M. S. Baptista przedstawił szyfr chaotyczny wykorzystujący ergodyczność (por. definicja 12, str. 13) odwzorowania logistycznego. Alfabet o mocy S (oryginalnie: S = 256) znaków dzieli część lub cały atraktor na S ɛ-interwałów. Dodatkowe parametry X min i X max oznaczają dolną i górną granicę wykorzystywanego atraktora. Można również wykorzystać cały atraktor. 50

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Kluczem szyfru jest odwzorowanie wszystkich znaków alfabetu na numery ɛ-interwału, wartość początkowa x 0 oraz parametr kontrolny b. Szyfrogramem jest liczba iteracji niezbędnych do osiągnięcia ɛ-interwału dla danego znaku tekstu jawnego. Zatem w wyniku szyfrowania do każdej litery alfabetu tekstu jawnego przypisana jest liczba iteracji po funkcji logistycznej. Iteracja zaczyna się od x 0. Dla kolejnego znaku, za x 0 obiera się wartość f C 1 (x 0 ), gdzie C 1 to ilość iteracji dla pierwszego znaku. Za x 0 analogicznie obiera się wartość f C 1+C 2 (x 0 ) = f C 2 (x 0 ) itd. k 1 σ n P(x = ε i ) t 1 f k 2 g m i t 2 h t 3 c i ε i Rysunek 3.1: Schemat blokowy szyfru M.S. Baptisty Rysunek 3.2: Rozkład prawdopodobieństwa osiągnięcia danego ɛ-interwału w szyfrze M. S. Baptisty Liczba iteracji jakie muszą zostać wykonane zawiera się w przedziale od 250 do 65532. Z tego powodu szyfrogram jest dwukrotnie większy od tekstu jawnego, ponieważ do zapisania maksymalnej liczby 65532 niezbędna jest liczba 16 bitowa. Dla porównania alfabet jest o mocy S = 256, zatem pojedynczy element tekstu jawnego można zapisać przy użyciu słowa ośmiobitowego. Dodatkowo szyfrogram zależy od dwóch parametrów: czasu przechodniego N 0 oraz współczynnika prawdopodobieństwa η. Z powodu ergodyczności, dany ɛ-interwał może osiągnąć nieskończona liczba orbit o różnej długości. Zatem dla każdej z liter alfabetu tekstu jawnego, ilość możliwych iteracji wymaganych do osiągnięcia odpowiadającego ɛ-interwału jest większa od 1. To którą możliwą iterację należy wybrać i przesłać do odbiorcy, określa współczynnik η. Dla η = 0 wybierana jest pierwsza napotkana wartość. Gdy η 0, z generatora liczb pseudolosowych pobierana jest liczba κ (0, 1). Jeżeli κ > η, wówczas aktualna liczba iteracji jest wysyłana jako szyfrogram, w przeciwnym przypadku iterowanie po funkcji logistycznej jest kontynuowane. Parametr N 0 oznacza minimalną ilość iteracji wykonywaną przed rozpoczęciem poszukiwania ɛ- interwału. Parametr ten został wprowadzony ze względu na fakt, że jeżeli ktoś zna odwzorowanie znaków tekstu jawnego na numery ɛ-interwału, ale nie zna wartości b lub x 0, wówczas algorytm szyfrowy jest trudny do złamania ze względu na wrażliwość na warunki 51

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH początkowe. Atakujący nie zna dokładnej wartości f (0), nawet jeżeli zna f (N0) dla dużych wartości N 0. Szyfr M.S. Baptisty można traktować jako szyfr z kluczem jednorazowym (ang. one time pad) [2]. Kluczem jednorazowym są numery ɛ-interwałów generowanych przez dynamikę układu chaotycznego na podstawie parametru kontrolnego oraz wartości początkowej. W rzeczywistości szyfr można traktować jako synchroniczny szyfr strumieniowy, ze strumieniem klucza generowanym przez dynamikę układu, natomiast kluczem jest parametr kontrolny i wartość początkowa. Z punktu widzenia ogólnego schematu szyfru chaotycznego, schemat blokowy szyfru M.S. Baptisty można przedstawić jak na rysunku 3.1. W tym przypadku znaczenie bloków jest następujące: k 1 parametr kontrolny funkcji logistycznej oraz wartość początkowa, k 2 odwzorowanie pomiędzy numerem ɛ-interwału a znakiem tekstu jawnego, t 1 funkcja odwzorowująca zapis binarny liczby zmiennopozycyjnej na wartość w wybranej implementacji liczb zmiennopozycyjnych, t 2 funkcja odwzorowująca i- ty znak tekstu jawnego na numer ɛ-interwału na podstawie klucza k 2, f funkcja logistyczna, σ n n-ta wartość orbity chaotycznej, g funkcja odwzorowująca wartość orbity na numer ɛ-interwału, h funkcja obliczająca ile razy należy osiągnąć ɛ-interwał odpowiadający przetwarzanemu znakowi tekstu jawnego, m tekst jawny, c szyfrogram, t 3 odwzorowanie tożsamościowe. W algorytmie szyfrowym wykorzystywane są trajektorie o małej długości. Ich użycie jest możliwe z powodu stałej gęstości atraktora, która nie zależy od warunku początkowego x 0 i umożliwia osiągnięcie dowolnego ɛ-interwału w czasie mniejszym niż 65532 iteracji. Gęstość rozkładu prawdopodobieństwa osiągnięcia każdego ɛ-interwału dla atraktora dla określonych parametrów (x 0 = 0.43203125, b = 3.78, X min = 0.2, X max = 0.8, N = 65536) przedstawiono na rysunku 3.2. Formalnie procedurę szyfrującą można zapisać za pomocą Algorytmu 8 (str. 183), natomiast procedurę deszyfrującą za pomocą Algorytmu 9 (str. 184). 3.1.2 Szyfr wykorzystujacy chaotyczny generator ciagów pseudolosowych W [3] przedstawiono algorytm szyfrowy wykorzystujący d-wymiarowe odwzorowanie chaotyczne x n+1 = f(x n, x n 1,..., x n d+1 ), generujące sekwencję liczb rzeczywistych w wyniku iteracji. Następnie na podstawie wybranego progu U 1 konstruowany jest ciąg C 1 liczb ze zbioru {0, 1} w ten sposób, że jeżeli x n U 1 to generowana jest wartość 0, w przeciwnym przypadku 1. W wygenerowanym ciągu C 1 poszukiwana jest sekwencja odpowiadająca części tekstu jawnego długości b 1. Gdy tylko jest odnaleziona, a zaczyna się od x d1, do odbiorcy przesyłany jest zbiór: (U 1, x d1, b 1 ). Jeżeli nie uda się odnaleźć w wygenerowanym ciągu sekwencji 52

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH b 1, wówczas poszukiwana jest sekwencja o długości b 1 1 (skracanie następuje do skutku). Szyfrowanie kolejnych znaków wymaga stworzenia kolejnych ciągów C k, wybrania nowych progów U k i poszukiwania sekwencji kolejnej porcji tekstu jawnego w nowo wygenerowanym ciągu bitów. Deszyfrowanie polega na iteracji po f b k razy rozpoczynając od x dk. Na podstawie progu U k odtwarzany jest ciąg tekstu jawnego. σ n f k 1 t 1 g m i t 2 h t 3 c i Rysunek 3.3: Diagram blokowy algorytmu E. Alvareza W celu zwiększenia bezpieczeństwa w [3] zaproponowano wykorzystanie F różnych losowo wybranych odwzorowań chaotycznych. Wówczas do szyfrogramu dodatkowo należy numer wybranego odwzorowania. Kluczem szyfru są parametry kontrolne odwzorowań chaotycznych (w najprostszym przypadku, gdy F = 1 kluczem są parametry tylko jednego odwzorowania). Jako przykład podano odwzorowanie typu namiot f(x) = r(1 2 x n 0.5 ) z parametrem kontrolnym r. Szyfr E. Alvareza można traktować jako synchroniczny szyfr strumieniowy, ze strumieniem klucza generowanym przez dynamikę układu, natomiast kluczem jest parametr kontrolny. Z punktu widzenia ogólnego schematu szyfru chaotycznego, schemat blokowy szyfru E. Alvareza można przedstawić jak na rysunku 3.3. W tym przypadku znaczenie bloków jest następujące: k 1 parametr kontrolny funkcji namiotowej, t 1 funkcja odwzorowująca zapis binarny liczby zmiennopozycyjnej na wartość w wybranej implementacji liczb zmiennopozycyjnych, t 2 funkcja odwzorowująca znak tekstu jawnego na ciąg bitów, f funkcja namiotowa, σ n n-ta wartość orbity chaotycznej, g funkcja generująca strumień klucza na podstawie wartości orbity oraz progu U, h funkcja poszukująca wystąpienia wartości binarnej tekstu jawnego w strumieniu klucza, m tekst jawny, c szyfrogram, t 3 odwzorowanie generujące trójkę (U n, b n, x n ) jako szyfrogram. Formalnie procedurę szyfrującą można zapisać za pomocą Algorytmu 10 (str. 185), natomiast procedurę deszyfrującą za pomocą Algorytmu 11 (str. 186). 53

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH 3.1.3 Szyfr chaotyczny wykorzystujacy zewnętrzny klucz W [85] przedstawiono kryptosystem chaotyczny bazujący na równaniu logistycznym. W rozpatrywanym algorytmie szyfrującym wykorzystywany jest klucz o długości 128 bitów, podzielony na 16 ośmiobitowych bloków. Obliczane są następujące wartości inicjujące szyfr: wartość wykorzystywana w obliczeniu wartości początkowej układu chaotycznego X s = (K 1 K 2... K 16 )/256 (3.1) oraz wartość wykorzystywana w obliczeniu początkowej ilości iteracji N s = (K 1 + K 2 +... + K 16 ) mod 256 (3.2) Następnie wybierany jest klucz sesyjny K r, r = 1, 2,..., 16 w poprzez losowy wybór jednego z bloków klucza prywatnego. Aby procedura deszyfrująca była możliwa, ziarno generatora ciągów pseudolosowych wykorzystywanego w procesie wyboru K r musi zależeć od klucza. W kolejnym kroku obliczane są wartości początkowe X funkcji logistycznej i liczba iteracji N (wartości te zależą od wybranego klucza sesyjnego K r ): X = (X s + K r /256) mod 1 (3.3) N = N s + K r (3.4) Parametr kontrolny λ i funkcji logistycznej wyznaczany jest w następujący sposób przy zastosowaniu ustalonych wartości parametrów a = 16, c = 7, m = 81 oraz Y 1 = 0: λ i = ((a Y i + c) mod m)/200 + 3.57 (3.5) Y i = (a Y i 1 + c) mod m (3.6) W celu szyfrowania i deszyfrowania wykonywanych jest N iteracji funkcji logistycznej z wartości początkowej X i z parametrem kontrolnym λ i. Ostatnia wartość, oznaczona jako X new jest wykorzystywana do szyfrowania i deszyfrowania. Wzór szyfrujący opisany jest równaniem (3.7), wzór deszyfrujący opisany jest równaniem (3.8). C i = (M i + X new 256 ) mod 256 (3.7) M i = (C i + 256 X new 256 ) mod 256 (3.8) 54

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Kolejny znak tekstu jawnego jest szyfrowany z wykorzystaniem wartości początkowych X new dla X 0 oraz C i 1 dla N s. Szyfr N. Pareeka można traktować jako samosynchronizujący szyfr strumieniowy, ze strumieniem klucza generowanym przez dynamikę układu. Z punktu widzenia ogólnego schematu szyfru chaotycznego, schemat blokowy szyfru N. Pareeka można przedstawić jak na rysunku 3.4. σ n f k 1 g j t 1 m i t 2 h t 3 c i Rysunek 3.4: Diagram blokowy algorytmu N. Pareeka W tym przypadku znaczenie bloków jest następujące: k 1 klucz określający ilość iteracji oraz wartość początkową, t 1, t 2, t 3 odwzorowania tożsamościowe, f funkcja logistyczna, σ n n-ta wartość orbity chaotycznej, g funkcja generująca strumień jako liczbę całkowitą na podstawie wartości orbity chaotycznej, h funkcja mieszająca strumień klucza z tekstem jawnym z wykorzystaniem dodawania modulo 256, j funkcja sprzężenia zwrotnego określająca ilość iteracji oraz wartość początkową orbity, początkowo na podstawie klucza, m tekst jawny, c szyfrogram. Formalnie procedurę szyfrującą można przedstawić zgodnie z Algorytmem 12 (str. 187), natomiast procedurę deszyfrującą zgodnie z Algorytmem 13 (str. 188). 3.1.4 Chaotyczny szyfr strumieniowy z modyfikacja orbity W [90] przedstawiono chaotyczny szyfr strumieniowy. Większość szyfrów strumieniowych bazuje na generatorze liczb pseudolosowych. Strona wysyłająca dodaje tajną informację do sygnału nośnego. Po stronie odbiornika natomiast tajna informacja jest odejmowana (i w ten sposób wiadomość jest odtwarzana; wymagane jest aby odbiorca był w stanie wygenerować identyczny sygnał nośny). Ponieważ sygnał losowy nie może być odtworzony, w szyfrach strumieniowych musi być zastosowany generator liczb pseudolosowych z losowo wybranym ziarnem, które jest kluczem szyfru. 55

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH W klasycznych szyfrach strumieniowych do wygenerowania ciągów pseudolosowych stosuje się często liniowe rejestry przesuwające (LFSR). Najczęściej są to układy liniowe. W przedstawianym szyfrze zastosowano przekształcenie nieliniowe z punktu widzenia binarnej reprezentacji liczby zmiennopozycyjnej (operacja xor), które powoduje przeskok pomiędzy trajektoriami oraz wprowadzenie perturbacji do układu chaotycznego. Taki układ jest wciąż deterministyczny, jednak jego atraktor jest dużo bardziej chaotyczny. W algorytmie jako układ chaotyczny zastosowana jest funkcja logistyczna. W celu zapewnienia bezpieczeństwa, zastosowane są dwa układy chaotyczne wykorzystujące jedną wartość parametru kontrolnego. Orbita jednego z układów jest modyfikowana na podstawie wyjścia szyfrogramu z wykorzystaniem operacji xor i bieżącej wartości orbity. Strumień klucza generowany jest jako operacja xor binarnych reprezentacji wartości orbit obu układów chaotycznych. Funkcja wyjścia wykonuje operację xor na strumieniu klucza oraz tekstu jawnego. Sekwencje generowane przez układ są identyczne jedynie w przypadku, gdy szyfrowany jest ten sam tekst jawny oraz zastosowane są te same parametry kontrolne i wartości początkowe układów chaotycznych. Schemat blokowy jest przedstawiony na rysunku 3.5. t 1 k 3 t 1 σ' i g σ i f j f t 1 k 1 k 2 t 1 m i t 2 h t 2 c i Rysunek 3.5: Diagram blokowy algorytmu Philip-Joseph W tym przypadku znaczenie bloków jest następujące: k 1, k 2 wartości początkowe układów chaotycznych, k 3 parametr kontrolny układów chaotycznych, f funkcja logistyczna, σ i i-ta wartość orbity chaotycznej, g, h, j operacje xor wykonywane na reprezentacji binarnej wartości zmiennopozycyjnej, t 1 operacja konwertująca binarny zapis na liczbę zmiennopozycyjną, t 2 odwzorowania tożsamościowe, m tekst jawny, c szyfrogram. Formalnie, procedurę szyfrującą można przedstawić za pomocą Algorytmu 14, natomiast procedurę deszyfrującą za pomocą Algorytmu 15 (str. 189). 56

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH 3.1.5 Chaotyczny szyfr produktowy W [98] przedstawiono produktowy algorytm szyfrowy bazujący na parze funkcji logistycznych. Działanie szyfrów produktowych polega na złożeniu kilku prostszych operacji, takich jak podstawianie i przestawianie. Chociaż proste szyfry podstawieniowe i przestawieniowe są podatne na kryptoanalizę, to jednak ich złożenie umożliwia stworzenie szyfru silnego kryptograficznie [80]. Przekształcenie szyfrujące dla szyfru podstawieniowego definiuje się następująco: E e (m) = (e (s) (m 1 ), e (s) (m 2 ),..., e (s) (m n )) = c m = (m 1, m 2,..., m n ) M c = (c 1, c 2,..., c n ) C e K e (s) operacja podstawienia zgodnie z zadaną permutacją M zbiór wszystkich ciągów o długości n nad pewnym alfabetem A M C zbiór wszystkich ciągów o długości n nad pewnym alfabetem A C K zbiór wszystkich kluczy Przekształcenie szyfrujące dla szyfru przestawieniowego definiuje się następująco: E e (m) = (m e (t) (1), m e (t) (2),..., m e (t) (n) ) = c m = (m 1, m 2,..., m t ) M c = (c 1, c 2,..., c t ) C e K e (t) operacja przestawienia zgodnie z zadaną permutacją M zbiór wszystkich ciągów o długości n nad pewnym alfabetem A M C zbiór wszystkich ciągów o długości n nad pewnym alfabetem A C K zbiór wszystkich kluczy Przekształcenie szyfrujące dla szyfru produktowego, będącego złożeniem e (s) e (t) można zapisać następująco: E e (m) = (e (s) (m 1 ) e (t) (1), e(s) (m 2 ) e (t) (2),..., e(s) (m n ) e (t) (n) ) = c (3.9) Złożenie operacji e (s) e (t) nazywane jest przekształceniem mieszającym [102]. Funkcja szyfru produktowego często jest stosowana jest jako runda w szyfrze blokowym, zgodnym ze schematem Feistela [80]. Zgodnie z opisem umieszczonym w [98], badany szyfr bazuje na parze funkcji logistycz- 57

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH nych określonych wzorem (3.10). Pierwsza funkcja logistyczna generuje strumień klucza wykorzystywany w szyfrze podstawieniowym, natomiast druga (z innym kluczem, to jest inną wartością początkową układu chaotycznego) służy do chaotycznego wyboru bloków w operacji przestawienia, zatem działa jako permutacyjny szyfr przestawieniowy. Złożenie operacji podstawienia i przestawienia powoduje stworzenie szyfru produktowego, a dokładniej podstawieniowo-permutacyjnego. Zastosowanie złożenia różnych przekształceń chroni funkcję logistyczną przed ujawnieniem jej zmiennej stanu, czyli parametru klucza w odpowiednio długiej sekwencji danych [49]. Ponadto wykorzystanie drugiego układu chaotycznego powoduje, że zaszyfrowany ciąg jest dodatkowo permutowany, zatem wymagane jest N! permutacji przy ataku metodą pełnego przeglądu (N to długość szyfrowanego tekstu w znakach). W opisywanym algorytmie szyfrowym kluczem jest wartość początkowa x 0 funkcji logistycznej (w specyfikacji szyfru proponuje się ustawienie wartości r = 4.0). x n+1 = f(x n, r) = r x n (1 x n ). (3.10) Założono symbole nad alfabetem A M oraz A C o długości 8 bitów. Kluczem są wartości początkowe obu układów chaotycznych, oznaczone jako IN I1 i IN I2. Wejściem jest tablica znaków m, wyjściem jest tablica zaszyfrowanych znaków c. Procedura szyfrująca jest opisana w [98] Algorytmami 16 i 17 (str. 190, N długość tekstu jawnego). Odszyfrowanie opisane jest za pomocą Algorytmów 18 i 19 (str. 191). Procedura deszyfrująca wymaga najpierw przywrócenia odpowiedniego porządku zaszyfrowanych znaków. Po uzyskaniu poprawnej kolejności, procedura deszyfrująca (Algorytm 19) jest analogiczna do Algorytmu 16. Z punktu widzenia ogólnego schematu szyfru chaotycznego, schemat blokowy szyfru Sarkara można przedstawić jak na rysunku 3.6. W tym przypadku znaczenie bloków jest następujące: k 1, k 2 wartości początkowe orbit chaotycznych, t 1, t 3 funkcje odwzorowujące zapis binarny liczby rzeczywistej na wartość w wybranej implementacji liczb zmiennopozycyjnych, t 2, t 4 odwzorowania tożsamościowe, f 1, f 2 funkcje logistyczne, σ n, σ n n-te wartości orbit chaotycznych, h 1 operacja podstawienia (xor), h 2 operacja przestawienia (permutacja w wyniku iteracji po liście cyklicznej), g 1 funkcja zamieniająca wartość orbity na liczbę całkowitą z przedziału [0..255], g 2 funkcja zamieniająca wartość orbity na ilość iteracji po liście cyklicznej, m tekst jawny, c szyfrogram, s bufor zawierający wynik pierwszej fazy procesu szyfrowania. 58

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH σ i σ ' j f 1 f 2 k 1 t 1 g 1 k 2 t 3 g 2 m i s t 4 c t 2 h 1 h 2 Rysunek 3.6: Schemat blokowy szyfru Sarkara 3.1.6 Szyfry chaotyczne wykorzystujace iterację dwukierunkowa W [42] przedstawiono blokowy szyfr chaotyczny bazujący na iteracji dwukierunkowej. W trakcie szyfrowania wykonywana jest wielokrotna iteracja odwrotna, natomiast w trakcie deszyfrowania iteracja pierwotna. Proces szyfrowania można opisać wzorem (3.11): c = E α (m) = f ( l) (m, α, r n ) (3.11) natomiast proces deszyfrowania wzorem (3.12). m = D α (c) = f (l) (c, α) (3.12) gdzie: m tekst jawny, c szyfrogram, E przekształcenie szyfrujące, D przekształcenie deszyfrujące, α klucz szyfrowania, l parametr liczby iteracji wstecz, r n parametr wyboru przeciwobrazu. Jako funkcję f w [42] zastosowano odwzorowanie typu ukośny namiot (3.13) i odpowiadającą jemu funkcję odwrotną (3.14): { f(x, α) = x/α, x α (3.13) (1 x)/(1 α), x > α f 1 (x, α, r) = { αx, r = 0 (α 1)x + 1, r = 1 (3.14) Ilość iteracji określa parametr l = 75. Oryginalnie zaproponowano, aby wybór przeciwobrazu w trakcie szyfrowania (parametr r n ) dołączyć do każdego elementu szyfrogramu, wydłużając go zatem o l = 75 bitów. Kluczem jest parametr kontrolny α (0, 1), jednak w [42] zapro- 59

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH ponowano zawężenie go do przedziału (0.4, 0.6). Zmodyfikowaną wersję szyfru bazującego na iteracji dwukierunkowej przedstawiono w [56]. W przeciwieństwie do szyfru Habutsu, jako klucz szyfrowania (k) zastosowano nie wartość parametru kontrolnego, a dodatkową wartość którą dodaje się do wyniku szyfrowania (mod 1): c = f ( n) (m, a, r n ) (3.15) c = (c + k) mod 1 (3.16) Iterowany szyfr blokowy dokonuje szyfrowania w procesie składającym się z określonej ilości rund [61]. W każdej rundzie dane są przetwarzane z wykorzystaniem identycznego przekształcenia (funkcji rundy) oraz podklucza (por. rysunek 3.7). Kolejne podklucze uzyskiwane są z wykorzystaniem algorytmu rozkładu klucza (ang. key schedule algorithm, KSA) na podstawie klucza szyfru. Ilość rund ma wpływ z jednej strony na poziom bezpieczeństwa, z drugiej na efektywność. Celem każdej z rund jest zapewnienie konfuzji, dyfuzji oraz lawinowości [80, 100]. Konfuzja ma za zadanie ukrycie zależności pomiędzy tekstem jawnym, szyfrogramem i kluczem. Dyfuzja powoduje rozproszenie pojedynczego bitu tekstu jawnego w jak największej liczbie bitów szyfrogramu. Lawinowość oznacza, że zmiana pojedynczego bitu tekstu jawnego powinna powodować zmianę około połowy bitów szyfrogramu. W celu zapewnienia tych własności kryptograficznych w szyfrach blokowych stosuje się nieliniowe elementy podstawieniowe (S-Box) oraz permutacyjne elementy przestawieniowe (P-Box), powodując powstanie sieci podstawieniowo-przestawieniowej (ang. SP-network). W kryptosystemach bazujących na iteracji dwukierunkowej, opisanych w [42] i [56] w trakcie szyfrowania występują dwie możliwe funkcje rundy wybierane za pomocą dodatkowego parametru r (por. rysunek 3.8). Nie zastosowano algorytmu rozkładu klucza, klucz każdej rundy jest stały [42] lub jawny [56]. Bezpieczeństwo szyfrów tej klasy opiera się zatem na zjawisku ergodyczności układu chaotycznego oraz wrażliwości na warunki początkowe, które są odpowiednikami konfuzji i dyfuzji w przypadku szyfrów klasycznych [4]. Bezpieczeństwo powyższych szyfrów bazuje jedynie na dużej ilości rund (np. 75) i wrażliwości na warunki początkowe, przez co są one nieefektywne. Procedurę szyfrującą można przedstawić za pomocą Algorytmu 20, natomiast procedurę deszyfrującą za pomocą Algorytmu 21 (str. 192). Powyższy szyfr działa jak szyfr blokowy. W celu zapewnienia bezpieczeństwa wymagane jest, aby trybem pracy szyfru nie był tryb elektronicznej książki kodów (ECB), a jeden z pozostałych, np. CBC, OFB, lub CFB. Powstanie wówczas szyfr strumieniowy, w którym powyższy algorytm pełni rolę funkcji generującej strumień klucza. Standardowo do połączenia strumienia klucza z tekstem jawnym wykorzystywana jest operacja xor. 60

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Wej cie Wejście K r 1 ϕ 1 (-1) K ϕ 2 (-1) ϕ (1) k 0 ϕ (2) k 1 Algorytm rozkładu klucza r 2 ϕ 1 (-2) K ϕ 2 (-2). r n ϕ (n) k n ϕ 1 (-n) K ϕ 2 (-n) Wyjście Wyj cie Rysunek 3.7: blokowego Schemat iterowanego szyfru Rysunek 3.8: Schemat iterowanego wstecznie szyfru chaotycznego 3.2 Analiza bezpieczeństwa szyfrów chaotycznych Najczęstsze problemy proponowanych chaotycznych algorytmów szyfrowych to niedokładność opisu oraz pobieżna kryptoanaliza, co skutkuje podatnością tych szyfrów na różne klasy ataków (por. [4]). Brak jest dokładnych instrukcji dotyczących sposobu realizacji szyfru, takich jak: doboru klucza, rodzaju użytej implementacji liczb zmiennopozycyjnych, wyboru danej funkcji chaotycznych. Problem ten jest szeroko opisany w [4]. Niejasności w sposobie doboru istotnych parametrów szyfru chaotycznego utrudniają jego analizę oraz implementację. Ważne jest zatem precyzyjne określenie wszystkich parametrów proponowanego algorytmu. Przedstawione w 2 założenia przy projektowaniu chaotycznego szyfru strumieniowego są rozpatrzone z punktu widzenia opisanych w 3.1 szyfrów chaotycznych. Na podstawie kryptoanalizy własnej lub dostępnej w literaturze ujawnione słabe cechy szyfrów są skonfrontowane z odpowiednimi komponentami szyfru chaotycznego. Opisane są słabe punkty w projektowaniu funkcji strumienia klucza, funkcji wyjścia, funkcji zmiany stanu oraz nieścisłości w opisach wyboru implementacji liczb zmiennopozycyjnych i poprawnej przestrzeni kluczy szyfrowania. 61

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH 3.2.1 Precyzja opisu algorytmu W przedstawionych wcześniej algorytmach szyfrowych występują niedokładności w opisie, które mogą być powodem błędnej implementacji. W opisie algorytmu Philip-Joseph [90] występują niejasności związane z wyznaczeniem wartości początkowej obu układów: wartość x 0 jest obliczana na podstawie wartości początkowej układu x 0, jednak w nie jest to opisane w sposób jednoznaczny. Nie może jednak to być operacja tajna, inaczej proces deszyfrowania nie będzie możliwy. Podobnie, nie jest jasno określona funkcja wyjścia, występuje jedynie sugestia użycia operatora bitowej różnicy symetrycznej (xor). W opisie algorytmu Sarkara [98] podany jest wzór na ilość iteracji listy cyklicznej dla i-tego elementu w sposób budzący wątpliwości. Wartość z i opisana jest wzorem (3.17): z i = int(q i N + 0.5), i = 1, 2,..., N (3.17) gdzie N początkowa długość listy. Operator int sugeruje zastosowanie operacji zaokrąglania w dół. Wydaje się, że poprzez dodanie 0.5 do argumentu próbowano zaimplementować funkcję round. Ze wzoru (3.17) wynika, że wartości z i {0, 1,..., N}. W podanym w [98] przykładowym użyciu szyfratora, ciąg wartości z 3 = (2, 3, 1) dla N = 3, r = 4.0 i INI2 = 0.82. Po wykonaniu symulacji okazało się jednak, że wzór (3.17) generuje inne wartości dla podanych parametrów. Wartość funkcji logistycznej (3.10) dla r = 4.0 i q 0 = INI2 = 0.82 oraz obliczeń pośrednich przedstawiono w tabeli 3.1. W celu zbadania poprawności obliczeń zaimplementowano Algorytmy 16-19 (str. 190) z wykorzystaniem platformy programistycznej JAVA w wersji 5.0. Środowisko JAVA wykorzystuje implementację liczb zmiennopozycyjnych zgodną z ze standardem IEEE754 [46, 76]. Tabela 3.1: Wartości funkcji logistycznej i z i dla podanych parametrów n Q = f(q n, r) Q = Q N Q = Q + 0.5 int(q ) round(q ) q 1 0.5904 1.7712 2.2712 2 2 q 2 0.96731136 2.90193408 3.40193408 3 3 q 3 0.12648037 0.37944111 0.87944111 0 1 Wyniki przedstawione w tabeli pozwalają myśleć, iż Sarkar we wzorze (3.17) założył działanie funkcji int jako round. Zatem wzór (3.17) powinien być przedstawiony jako wzór (3.18): z i = round(q i N + 0.5), i = 1, 2,..., N (3.18) W takim przypadku, wartości z i {1, 2,..., N}. Zastosowanie round wyjaśnia również 62

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH niejasność sposobu iteracji listy cyklicznej. Sarkar opisuje, że należy iterować z i 1 razy począwszy od ostatniego miejsca (za pierwszym razem od HEAD). Nie jest jasne co należy zrobić, gdy z i = 0, gdyż wówczas należało by iterować -1 razy, co nie ma sensu. Wzór przedstawiony w (3.18) rozwiązuje również ten problem, gdyż najmniejsza wartość z i = 1, zatem minimalna ilość iteracji z min = 0 (co oznacza brak iteracji). 3.2.2 Klucz W trakcie projektowania algorytmu szyfrowego należy dokładnie przemyśleć rozmiar klucza. Klucz nie może być zbyt krótki w chwili pisania tej pracy uznaje się za bezpieczny dla algorytmów klucza symetrycznego klucz o długości 128 bitów [36]. Klucz nie może być również zbyt długi: często do utworzenia klucza wykorzystuje się hasło wpisywane przez użytkownika. Zbyt duży klucz wymagał by zapamiętania bardzo długiego hasła co ograniczało by praktyczne zastosowanie szyfru. Długość hasła zależy od jego entropii, na którą ma wpływ wykorzystywany zbiór znaków. Efektywna długość hasła ze względu na liczbę różnych znaków oraz jego długość może być określona wzorem (3.19) [47]: efektywna długość hasła = log 2 liczba możliwych znaków długość hasła (3.19) Traktując efektywną długość hasła jako długość klucza, minimalna liczba znaków hasła określona jest za pomocą wzoru (3.20): długość klucza w bitach długość hasła = log 2 (liczba możliwych znaków) (3.20) gdzie log 2 (liczba możliwych znaków) jest entropią pojedynczego znaku. Zestawienie minimalnych długości hasła dla klucza 64 i 128 bitowego przy wykorzystaniu różnych zbiorów znaków przedstawiono w tabeli poniżej. Tabela 3.2: Minimalna długość hasła w zależności od liczby znaków L. znaków Wykorzystywane znaki Entropia znaku klucz 128 klucz 64 10 0-9 3.32192809488736 39 20 26 A-Z 4.70043971814109 28 14 52 A-Z,a-z 5.70043971814109 23 12 62 A-Z,a-z,0-9 5.95419631038688 22 11 96 A-Z,a-z,0-9,znaki spec. 6.58496250072116 20 10 63

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Jak wynika z tabeli, dla klucza o długości 128 bitów oraz przy wykorzystaniu wszystkich znaków dostępnych dla użytkownika typowej klawiatury komputera, wymagane jest zapamiętanie dość długiego hasła. Dla kluczy o większej długości wymagane było by bardzo długie hasło i jego zapamiętanie jest praktycznie niemożliwe. Rozmiar klucza Przedstawione w poprzedniej sekcji chaotyczne algorytmy szyfrowe charakteryzują się dużą różnorodnością w doborze i wielkości klucza. W przypadku tej klasy algorytmów szyfrowych, klucz często jest bezpośrednio związany z zastosowanym układem chaotycznym, pracującym w dziedzinie liczb rzeczywistych. Faktyczny rozmiar klucza zależy zatem od wykorzystanej implementacji oraz precyzji liczb zmiennopozycyjnych. Stosowanym powszechnie w systemach komputerowych standard binarnej reprezentacji liczb zmiennopozycyjnych określony jest specyfikacją IEEE-754 [46]. Przy jego wykorzystaniu możliwe jest stosowanie liczb zmiennopozycyjnych o różnej precyzji, jednak często stosowany jest format liczb o podwójnej precyzji czyli o długości 64 bitów, z czego 1 bit przypada na znak, 11 na wykładnik, 52 na mantysę (por. wzór 2.16, str. 38). Zestawienie długości kluczy opisywanych algorytmów jest w tabeli 3.3 (f oznacza liczbę zmiennopozycyjną, b oznacza bajt, i oznacza liczbę całkowitą; jako rozmiar liczby zmiennopozycyjnej przyjęto 64 bity). Tabela 3.3: Rozmiar klucza badanych algorytmów szyfrowych Szyfr Składniki klucza Klucz Rozmiar w bitach M.S. Baptista x 0, b, x min, x max, {m ɛ} S 4f + Si 256 + S log 2 S E. Alvarez r 1f 64 A. Sarkar IN I1, IN I2 2f 128 N. Pareek {K i, i = 1, 2,..., 16} 16b 128 Philip-Joseph x 0, x 0, λ 3f 192 T. Habutsu r 1f 64 Z. Kotulski k 1f 64 Równoważność kluczy Założony rozmiar klucza danego algorytmu szyfrowego może być nadmiarowy, ponieważ różne poprawne klucze szyfrowania mogą generować ten sam szyfrogram. Taka informacja dostępna dla kryptoanalityka pozwala na zmniejszenie rozmiaru zbioru przeszukiwanych kluczy w ataku metodą pełnego przeglądu. Jeżeli klucz jest parametrem kontrolnym układu, wówczas może powodować zachowanie się układu w sposób niechaotyczny. W przypadku gdy klucz jest wartością początkową, wówczas należy mieć na uwadze, że dla odwzorowania chaotycznego o 64

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH k przeciwobrazach, wartość n-tego punktu orbity chaotycznej jest teoretycznie osiągalna dla k n wartości początkowych. Rzeczywista ilość równoważnych wartości początkowych zależy od błędów zaokrągleń i precyzji obliczeń zastosowanej reprezentacji liczb zmiennopozycyjnej, jednak nie może być większa od 2 b, gdzie b to ilość bitów reprezentacji binarnej danej liczby zmiennopozycyjnej. Aby wyznaczyć równoważne wartości początkowe orbity, które są poprawne dla wykorzystywanej reprezentacji liczb zmiennopozycyjnych, należy wyznaczyć poprawne wartości poprzedniego punktu orbity startując od punktu badanego. W celu określenia poprawnej wartości poprzedniego punktu orbity należy zastosować Algorytm 1. Zadaniem algorytmu jest określenie takiego zbioru poprzednich punktów orbity, że wynik iteracji pierwotnej odpowiada wartości zadanego punktu orbity. Parametr ε oznacza ustalone arbitralnie okno poszukiwań poprawnego punktu, np. 50, operator (int) oznacza traktowanie reprezentacji binarnej liczby zmiennopozycyjnej w sposób całkowitoliczbowy, operator (double) oznacza traktowanie reprezentacji całkowitoliczbowej jako wewnętrzny format liczby zmiennopozycyjnej. Po wyznaczeniu zbioru poprawnych poprzednich punktów orbity, algorytm należy zastosować analogicznie dla otrzymanego zbioru punktów, aż do uzyskania zbioru poprawnych wartości początkowych orbity. Algorytm 1: Wyznaczenie poprawnego zbioru poprzednich punktów orbity 1 2 3 4 5 6 7 8 9 10 Wejście: x (i) i-ty punkt orbity Wyjście: X (i 1) zbiór poprawnych i 1-szych punktów orbity begin x (i 1) F 1 (x (i) ) (int)x (i 1) forall the j = ε,..., 1, 0, 1,..., ε do x (i 1) D,j (double)(x (i 1) I + j) if F (x (i 1) D,j ) = x (i) then x (i 1) D,j X (i 1) endif endfall end x (i 1) I Algorytm M.S. Baptisty W przypadku tego algorytmu, szyfrowanie wymaga wykonywania wielokrotnej iteracji układu chaotycznego począwszy od wartości x 0, która jest kluczem i dla stałego parametru kontrolnego. Wartość orbity nie jest modyfikowana w żaden sposób w trakcie działania szyfru. Z tego powodu n-ty punkt orbity może być osiągnięta teoretycznie dla 2 n 65

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH różnych wartości początkowych. Rzeczywista ilość wartości początkowych zależy od precyzji obliczeń oraz błędów zaokrągleń danej reprezentacji liczb zmiennopozycyjnych. Zbiór poprawnych wartości początkowych można określić z wykorzystaniem Algorytmu 1. Na rysunku 3.9 przedstawiono ilość równoważnych wartości początkowych orbity dla kolejnych iteracji. Zbadano trzy różne wartości początkowe. Rysunek 3.9: Ilość równoważnych kluczy dla szyfru M.S. Baptisty Jak widać z wykresu, w zależności od wybranej wartości początkowej, już dla 40-tej iteracji możliwych jest kilkaset różnych kluczy. W przypadku zastosowania wartości N 0 > 64, szyfr ma wiele kluczy równoważnych dla wszystkich liter tekstu jawnego. W przypadku N 0 = 0, istnieje ryzyko błędnego odszyfrowania lub zaszyfrowania pierwszych liter. Ilość błędnych liter zależy od tego, po ilu iteracjach zostaną osiągnięte ɛ-interwały pierwszych znaków tekstu jawnego. Algorytm E. Alvareza Kluczem jest wartość parametru kontrolnego. W przypadku minimalnej różnicy pomiędzy kluczami, początek strumienia klucza będzie identyczny. Szyfrogramy będą identyczne tak długo, jak długo możliwe będzie odnalezienie danych sekwencji tekstu jawnego w jednakowych miejscach strumienia klucza. Na wynik ma wpływ wartość początkowa długości poszukiwanego ciągu: jeżeli jest mała, wówczas jest większe prawdopodobieństwo, że sekwencja zostanie odnaleziona na początku strumienia klucza, gdy nie różni się on od oryginalnego. Z przeprowadzonych badań wynika, że już dla różnicy 10 16 oraz wartości b = 8 tylko pierwszy znak był zaszyfrowany w sposób identyczny jak dla oryginalnego klucza w 17% przypadków. 66

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Algorytm A. Sarkara Klucz IN I1 jest wykorzystywany w fazie podstawieniowej, klucz IN I2 w fazie przestawieniowej. Są to wartości początkowe orbit funkcji logistycznych. Stosując procedurę wyznaczania poprawnych punktów wstecznych orbity, można wyznaczyć wartości równoważne analogicznie jak w przypadku szyfru M.S. Baptisty. W przypadku fazy podstawieniowej, głębokość poszukiwania oznacza równocześnie ilość błędnie odszyfrowanych lub zaszyfrowanych znaków, co może być pomijalne w przypadku długich tekstów jawnych. W przypadku fazy przestawieniowej inne wartości dla IN I2 powodują różnice w iteracji po liście cyklicznej, zatem nie jest możliwe zastosowanie wartości równoważnych w tej fazie. Algorytm N. Pareeka Wielkość klucza ustalona jest na 128 bitów. Z analizy algorytmu wynika jednak, że ilość różnych wartości początkowych (które zależą od klucza) wynosi jedynie 256. Ilość iteracji (również zależnych od klucza) ograniczona jest do 510. Powyższa obserwacja została opisana w [1]. Można zatem wyznaczyć 2 17 różnych liczb, które są równoważne wszystkim możliwym kluczom szyfru w pierwszej iteracji. Śledząc dynamikę układu można analogicznie wyznaczyć poprawny klucz (z przestrzeni 2 17 ) dla kolejnych iteracji. Algorytm Philip-Joseph W przypadku tego szyfru możliwe jest również wyznaczenie zbioru równoważnych wartości początkowych dla podanej wartości x 0, które w n-tej iteracji wygenerują tę samą wartość x n. Powstały w ten sposób szyfrogram będzie się jednak różnić od oryginalnego ponieważ jego wartość zależy od wszystkich poprzednio zaszyfrowanych znaków. Dla klucza x 0 wyznaczenie równoważnych wartości początkowych jest dodatkowo pozbawione sensu, ponieważ wartość orbity x k jest modulowana w sposób nieliniowy na podstawie wygenerowanego szyfrogramu. Algorytm T. Habutsu W przypadku tego algorytmu, klucz jest parametrem kontrolnym odwzorowania chaotycznego. Klucze mogą być równoważne w przypadku, gdyby wykorzystane odwzorowanie miało ujemny wykładnik Lapunowa wówczas wszystkie punkty orbity dążyły by do atraktora punktowego lub wielopunktowego. Jeżeli wykładnik Lapunowa jest dodani, z powodu własności wykładniczej wrażliwości układu na zmiany wartości początkowej lub parametrów kontrolnych, zastosowanie nawet zbliżonych kluczy powoduje zróżnicowaną dynamikę układu chaotycznego i w konsekwencji różnych szyfrogramów. Algorytm Z. Kotulski (DCC) W przypadku tego algorytmu, klucz jest dodawany modulo 1.0 do wyniku wielokrotnej iteracji odwrotnej odwzorowania chaotycznego. Klucze są zatem na tyle równoważne, na ile sposobów możliwe jest zapisane liczby w danej reprezentacji liczb 67

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH zmiennopozycyjnych. Przestrzeń kluczy Przestrzeń kluczy określa ilość kluczy dostępnych dla algorytmu szyfrowego. Klucz z przestrzeni kluczy nie może ułatwić ataku na kryptosystem. Z tego powodu ważne jest, aby zastosowany klucz nie powodował działania układu chaotycznego w obszarze niechaotyczności. Typowym przykładem jest klucz w postaci parametru kontrolnego układu chaotycznego. W przypadku funkcji logistycznej, obszar chaotyczności zawiera się w przedziale parametru kontrolnego b (3.57, 4], jednak i w tym przedziale występują obszary niechaotyczności. Jednym ze sposobów określenia siły klucza może być obliczenie wartości wykładnika Lapunowa. Określenie przestrzeni kluczy jest dodatkowo utrudnione ze względu na fakt operowania w arytmetyce zmiennopozycyjnej. Z tego powodu przestrzeń kluczy należy rozpatrywać z punktu widzenia pewnej reprezentacji liczb zmiennopozycyjnych. W dalszych badaniach wykorzystano implementację liczb zmiennopozycyjnych zgodną ze standardem IEEE-754 o długości słowa równym 64 bity. Ilość efektywnych bitów liczby zmiennopozycyjnej będącej wartością orbity chaotycznej, można wyznaczyć obliczając entropię Shannona, określoną wzorem (3.21): n H(n) = p(i) log 2 p(i) (3.21) i=1 gdzie p(i) prawdopodobieństwo wystąpienia danego symbolu ciągu o długości n. Po przeprowadzeniu obliczeń okazuje się, że efektywna ilość bitów liczb zmiennopozycyjnych, generowanych przez różne odwzorowania chaotyczne wynosi 54 do 55 bitów. Wzrost entropii wraz ze zwiększaniem długości ciągu przedstawiono na rysunku 3.10. Algorytm M.S. Baptisty Kluczem jest wartość początkowa, parametr kontrolny, wartości x min i x max oraz permutacja zbioru S elementowego. Jak wynika z analizy kluczy równoważnych, dla danego x 0 możliwe jest znalezienie do 400 kluczy równoważnych. Redukuje to przestrzeń kluczy ze względu na parametr x 0 o 9 bitów. Po przeprowadzeniu symulacji stwierdzono, że liczby z przedziału (0, 1) można zapisać w słowie o długości 57 bitów. Uwzględniając ograniczenia kluczy równoważnych daje to 48 bitów dla wartości początkowej x 0. Parametr kontrolny przyjmuje wartości z zakresu (3.57, 4]. Po uwzględnieniu obszarów niechaotyczności funkcji logistycznej (3.735, 3.74) (3.82, 3.86) określono długość słowa reprezentującego parametr kontrolny równy 49 bitów. Parametry x min, x max (0, 1) można zapisać w słowach 68

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.10: Entropia Shannona H reprezentacji binarnej wartości orbity funkcji chaotycznych w funkcji długości ciągu danych n o długości 57 bitów. Ze względu na parametr S możliwych jest S! różnych przypisań znaku tekstu jawnego do ɛ-interwału. Ostatecznie przestrzeń kluczy można określić na #K = 2 211 + S!. Algorytm E. Alvareza Kluczem jest wartość parametru kontrolnego. W przypadku sugerowanego układu chaotycznego typu namiot, r (0.5, 1). Zgodnie z badaną reprezentacją liczb zmiennopozycyjnych ilość różnych liczb z tego przedziału można zapisać w słowie o długości 52 bitów. Przestrzeń kluczy można określić na #K = 2 52. Algorytm A. Sarkara Kluczem są wartości początkowe IN I1 i IN I2. W przypadku wartości INI1 występują klucze równoważne analogicznie jak w przypadku algorytmu M.S. Baptisty. Z tego powodu przestrzeń kluczy można określić na #K = 2 105. Algorytm N. Pareeka Jest to jedyny z opisywanych algorytmów szyfrowych, w którym klucz jest liczbą całkowitą. Jak wspomniano w podrozdziale opisującym klucze równoważne, przestrzeń kluczy wynosi 2 17 ponieważ tylko tyle różnych wartości początkowych oraz iteracji można wygenerować postępując zgodnie z procedurą ich wyznaczania. Algorytm Philip-Joseph Kluczem jest wartość parametru kontrolnego funkcji logistycznej oraz wartość początkowa x 0. Wartość x 0 jest wyznaczana na podstawie x 0, zatem do klucza nie należy. Ponieważ równoważne wartości początkowe orbity nie generują tych samych szyfrogramów, zatem nie zmniejszają przestrzeni kluczy. Przestrzeń kluczy można określić na #K = 2 106. 69

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Algorytm T. Habutsu Kluczem jest wartość parametru kontrolnego układu chaotycznego typu ukośny namiot, r (0, 1). Zgodnie z badaną reprezentacją liczb zmiennopozycyjnych ilość różnych liczb z tego przedziału można zapisać w słowie o długości 57 bitów. Przestrzeń kluczy można określić na #K = 2 57. Algorytm Z. Kotulski Kluczem jest wartość dodawana do wyniku wielokrotnej iteracji odwrotnej modulo 1. Zgodnie z badaną reprezentacją liczb zmiennopozycyjnych ilość różnych liczb z tego przedziału można zapisać w słowie o długości 57 bitów. Przestrzeń kluczy można określić na #K = 2 57. Składniki klucza W [49] zauważono, że bezpieczeństwo algorytmu szyfrowego E. Alvareza [3] polega na nieznajomości przekształcenia f, co jest niezgodne z założeniem Kerckhoffsa mówiącym, że bezpieczeństwo kryptogramu musi wynikać wyłącznie z bezpieczeństwa klucza szyfrowania. Jeżeli tak nie jest, to znaczy, jeżeli bezpieczeństwo kryptogramu zależy wyłącznie od utajnienia algorytmu, wówczas dowolny kryptogram można złamać za pomocą ataku z wykorzystaniem samego kryptogramu (ang. ciphertext-only attack). Gdyby przekształcenie f mogło odgrywać rolę klucza, wówczas komplikuje to wymianę kluczy, rodzi pytania typu: kto generuje przekształcenie dynamiczne? Jaka jest procedura generowania przekształcenia? Jakie przekształcenia są dobre? Atak przesuwny Atak przesuwny (ang. slide attack) został po raz pierwszy przedstawiony przez A. Biryukova w [22]. Ma on zastosowanie dla iterowanych szyfrów blokowych. Cechą charakterystyczną tego ataku jest fakt, że jego skuteczność nie zależy od ilości rund a od tego, czy funkcje rundy są takie same, czyli j 1, f i = f i+1, gdzie f to funkcja rundy. Gdy powyższe założenie jest spełnione, wówczas prawdziwa jest następująca obserwacja: jeżeli znane jest X 1 = X 0, to prawdziwe jest X r = X r 1. W szyfrze [56] zrezygnowano zastosowania parametru kontrolnego układu jako klucza dodając go do szyfrogramu po wykonaniu wielu iteracji zastosowanej funkcji chaotycznej. Jeżeli parametr kontrolny układu chaotycznego nie jest kluczem szyfru wówczas wszystkie funkcje rundy są takie same. W przypadku szyfru przedstawionego w [56] możliwa jest następująca kryptoanaliza wykorzystująca atak przesuwny: 1. Zaszyfrować P 1 otrzymując C 1 = (C 1 + k) mod 1 2. Zaszyfrować f(p 1 ) otrzymując C 2 = (C 2 + k) mod 1 = (f(c 1 ) + k) mod 1 70

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH 3. Na podstawie czterech par: {C 1, C 2 }, {C 1 + 1, C 2 }, {C 1, C 2 + 1}, {C 1 + 1, C 2 + 1} oraz wzoru przekształcenia możliwe jest wyznaczenie wartości klucza k. Znając parametr kontrolny układu możliwe jest również przeprowadzenie innego ataku ukazującego przybliżoną wartości parametru kontrolnego. W tym celu należy posłużyć się diagramem powrotów przygotowanym w sposób wykorzystujący technikę podobną do ataku przesuwnego (poniższe kroki należy wykonać wielokrotnie, np. 10000 razy): 1. Wylosować liczbę P 1 (0, 1) 2. Zaszyfrować P 1 otrzymując C 1 = E k (P 1) 3. Obliczyć P 2 = f(p 1 ) 4. Zaszyfrować P 2 otrzymując C 2 = E k (P 2 ) 5. Zaznaczyć na płaszczyźnie punkt (C 1, C 2 ) Wykonanie powyższej procedury przedstawi zniekształcony diagram powrotów odwzorowania chaotycznego. Zaobserwowane przesunięcie ujawnia wartość klucza szyfrowania k, który jest stosowany zgodnie z wzorem (3.16). Przykład odtworzonego diagramu powrotów przedstawiono na rysunku 3.11. Rysunek 3.11: Wizualizacja wartości klucza W przypadku, gdy parametr kontrolny nie jest znany i występuje odpowiednio duża liczba iteracji, powyższa kryptoanaliza nie jest możliwa. Nie można wówczas wykonać pojedynczej rundy szyfru w celu uzyskania wartości C 1 i C 2. Ważne jest jednak, aby układ chaotyczny 71

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH nie był przewidywany długookresowo, co wynika z wartości wykładnika Lapunowa dla danego odwzorowania chaotycznego i danego parametru kontrolnego. 3.2.3 Funkcja zmiany stanu Funkcja zmiany stanu wykorzystywana jest jako źródło danych dla generatora strumienia klucza (funkcji filtra). Istotne jest zatem, aby już na tym etapie dane generowane przez układ dynamiczny nie były przewidywalne długookresowo. W tabeli 2.2 (str. 36) przedstawiono dla jakich wartości parametru kontrolnego, układ dynamiczny zachowuje się w sposób chaotyczny. Funkcja rozkładu gęstości prawdopodobieństwa określa prawdopodobieństwo wystąpienia orbity chaotycznej w danym obszarze atraktora. Na podstawie atraktora można określić przestrzeń możliwych stanów odwzorowania chaotycznego. W następnych podrozdziałach przedstawiona jest analiza algorytmów szyfrowych ze względu na obszary chaotyczności, obszar atraktora oraz funkcję rozkładu gęstości. Zastosowanie wielomianów linii krytycznych W podrozdziale przedstawiona jest kryptoanaliza szyfrów M.S. Baptisty oraz E. Alvareza z wykorzystaniem zdyskretyzowanego diagramu powrotów oraz wielomianów linii krytycznych. Diagram powrotów jest wykresem wartości (x n+1, x n ). W przypadku funkcji logistycznej diagram powrotów przedstawia parabolę. Wielomiany linii krytycznych są to dobrze widoczne krzywe przebiegające przez diagram stanów ustalonych (bifurkacji) w postaci linii kondensacji orbity [88]. W przypadku analizy szyfru M.S. Baptisty, założeniem dla przeprowadzenia kryptoanalizy jest znajomość bijekcji alfabetu wiadomości jawnych na numery ɛ-interwałów. W pierwszym kroku należy uzyskać zdyskretyzowany diagram powrotów. W tym celu należy odszyfrować kolejne wartości większe od N 0, (c 1, c 2,..., c n ). Uzyskuje się wówczas ciąg (p 1, p 2,..., p n ). Są to numery ɛ-interwałów odpowiadających odbicie o podanym do deszyfratora numerze c k. Konstruując diagram powrotów z wartości (p k, p k+1 ) uzyskuje się obraz zdyskretyzowanej paraboli. Analiza diagramu powrotów ujawnia niektóre własności klucza: wartość parametru kontrolnego b, moc alfabetu wiadomości jawnych S, wartości stałych x min i x max, czy zastosowana była permutacja. 72

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Pierwszą informację, którą można uzyskać z szyfratora jest to, czy zastosowano permutację między numerem interwału a numerem elementu tekstu jawnego. W przykładzie przedstawionym w oryginalnym opisie algorytmu [13] takiej permutacji nie zastosowano, należy ona jednak do klucza szyfrowania. W przypadku, gdy zastosowano permutację, wynikiem diagramu powrotów będzie zbiór losowo rozmieszczonych punktów. Kolejną informację jaką można uzyskać z szyfratora jest to, czy wybrany przedział atraktora jest węższy czy nie od poprawnych wartości orbity dla danej wartości parametru kontrolnego. Przy próbie odszyfrowania elementu szyfrogramu, dla którego x n (0, x min ) (x max, 1) deszyfrator stwierdzi, że wynik jest spoza dozwolonego zakresu, zwracając np. wartość ( 1) lub wyrzucając wyjątek. W przypadku, gdy wykorzystywana jest część atraktora, co można zapisać, że x min > 0 oraz x max < 1, wówczas w zależności od wartości parametru kontrolnego możliwe są dwie sytuacje: 1. wykorzystywany przedział zawiera się w zakresie możliwych wartości orbity dla danej wartości parametru kontrolnego b, 2. wykorzystywany przedział jest szerszy od możliwych wartości orbity. W pierwszym przypadku, diagram powrotów przedstawia rozłączne części paraboli. Wynika to z faktu, że niektóre wartości orbity nie należą do żadnego przedziału dla poprawnych wartości ɛ-interwału, zatem przy próbie odszyfrowania deszyfrator powinien zwrócić wartość nieokreśloną (np. 1 lub wyrzucić wyjątek). Sposób zachowania deszyfratora w takim przypadku jest zależny od sposobu implementacji. Przykładowy diagram powrotów dla przypadku, gdy wykorzystywany przedział zawiera się w zakresie możliwych wartości orbity chaotycznej, przedstawia rysunek 3.12. Moc alfabetu wiadomości jawnych można określić za pomocą S = max n k=1 (x k). W drugim przypadku, gdy wykorzystywany jest szerszy przedział od możliwych wartości orbity, nie jest możliwe jednoznaczne określenie mocy alfabetu w ten sposób. Można jedynie określić kres dolny zbioru możliwych mocy alfabetu za pomocą S max n k=1 (x k). W przypadku, gdy wykorzystany jest cały atraktor, przedstawiony zostanie obraz jak na rysunku 3.13. W tym konkretnie przypadku szczyt paraboli przypada na wartość x max = 242. Wartość ta jest poprawna dla argumentów {121, 122,..., 136}. Środek paraboli przypada zatem na (121+136)/2 = 128, ponieważ jest to odwzorowanie symetryczne [110]. Wszystkich elementów jest zatem S = 256. Posiadając tę informację można dodatkowo oszacować wartość parametru kontrolnego b, zgodnie z wzorem (3.22): b 4 x max S 3.781 (3.22) 73

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.12: Diagram powrotów, gdy wykorzystany przedział jest mniejszy od możliwych wartości orbity Rysunek 3.13: Diagram powrotów gdy wykorzystano cały atraktor Wykorzystując diagram powrotów można określić wartość parametru b z zastosowaniem wielomianów linii krytycznych odwzorowania kwadratowego [6, 94]. Wielomiany linii krytycznych dla jednowymiarowych funkcji kwadratowych dane są wzorem rekurencyjnym: P 0 = 1 2 P n+1 = f(p n ) (3.23) W przypadku funkcji logistycznej danej wzorem f(x) = b x n (1 x n ), pierwsze wielomiany linii krytycznych to odpowiednio: P 0 = 1 2 P 1 = b 4 P 2 = b2 4 ( ) 1 b 4 (3.24) Wykres kilku pierwszych wielomianów linii krytycznych przedstawiono na rysunku 3.14. Z kryptoanalitycznego punktu widzenia istotne jest, że wartość orbity funkcji logistycznej dla danego parametru b > 2 jest ograniczona z góry przez wielomian P 1, a z dołu poprzez wielomian P 2. Z diagramu powrotu (rysunek 3.13) wynika, że minimalną wartością zdyskretyzowanej orbity jest 51, największą 242. Ponieważ moc zbioru wiadomości jawnych wynosi 256, zatem rzeczywista funkcja logistyczna jest ograniczona orbitami z zakresu (0.199, 0.945). Rozwiązu- 74

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH 1 0.8 Pn(b) 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 b Rysunek 3.14: Wielomiany linii krytycznych dla funkcji logistycznej jąc równania b 4 b 2 4 0.945 = 0 b = 3.78 ( ) (3.25) 1 b 4 0.199 = 0 b = 3.781 otrzymuje się przybliżone wartości parametru kontrolnego. W [6] przedstawiono kryptoanalizę szyfru E. Alvareza z wykorzystaniem wielomianów linii krytycznych. Na diagramie bifurkacji funkcji typu namiot widać, że dla przy zmniejszaniu r z 2 do 0 zawęża się odpowiednio zakres możliwych wartości funkcji. Z tego powodu histogram szyfrogramu zawęża się również odpowiednio w stosunku do r. Diagram bifurkacji ograniczony jest następującymi wielomianami linii krytycznych: od góry poprzez P 1 = r/2, od dołu poprzez P 2 = r(1 r/2). Wykorzystując atak ze znanym lub wybranym tekstem jawnym należy pozyskać odpowiednio dużą liczbę szyfrogramów, a z nich wyznaczyć minimalną i maksymalną występującą w szyfrogramie wartość orbity chaotycznej. Wówczas wartość parametru kontrolnego r można wyznaczyć na podstawie następujących wzorów (przyjmując wartość x max za P 1 oraz wartość x min za P 2 ): x max = r/2 r = 2x max (3.26) x min = r(1 r/2) r = 1 + 1 2x min (3.27) Problemy kryptosystemów iterowanych dwukierunkowo Kryptosystemy iterowane dwukierunkowo, takie jak [56] lub [42] wykorzystują odwzorowanie odwrotne w procesie szyfrowania oraz odwzorowanie pierwotne w procesie deszyfrowania. Zastosowane odwzorowania są wykładniczo wrażliwe na zmianę warunków początkowych jeżeli wartość wykładnika Lapunowa jest dodatnia. Ponieważ algorytmy te są realizowane z wykorzystaniem arytmetyki zmiennopozycyjnej o ograniczonej precyzji obliczeń, następuje degradacja 75

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH dynamiki układu chaotycznego (por. np. [72, 88]). Ponieważ funkcje deszyfrująca f oraz szyfrująca f 1 obarczone są różnymi błędami zaokrągleń, wartości orbity dla iteracji odwrotnej nie będą równe odpowiadającym im wartością orbity dla iteracji pierwotnej. Z tego powodu element tekstu jawnego zaszyfrowany funkcją f 1 nie będzie mógł być odszyfrowany za pomocą funkcji f. W procesie szyfrowania wymagane jest określenie przeciwobrazu odwzorowania chaotycznego. Jak przedstawiono w [17], dołączenie tej informacji do szyfrogramu powoduje podatność kryptosystemu na kryptoanalizę. Informacja o wybranym przeciwobrazie nie jest wymagana dla procesu szyfrującego. W rzeczywistości dokonując deszyfracji można stwierdzić które odwzorowania odwrotne zostało wybrane w trakcie procesu szyfrowania. Jeżeli w trakcie szyfrowania przeprowadzanych jest n iteracji i w każdej rundzie przeciwobraz wybierany jest losowo z prawdopodobieństwem 0.5, to każdemu znakowi tekstu jawnego odpowiada 2 n różnych znaków szyfrogramu. W realizacji komputerowej przy zapisie liczby na m bitach przestrzeń szyfrogramów oraz wiadomości jawnych wynosi jednak jedynie 2 m. Rzeczywista przestrzeń szyfrogramów i wiadomości jawnych wynosi zatem 2 m n. Jeżeli n > m, wówczas odszyfrowanie jest niejednoznaczne lub niemożliwe. W praktyce nawet dla m n z powodu skończonej precyzji obliczeń i błędów zaokrągleń możliwe są następujące scenariusze: 1. P C jest odwzorowaniem 1 : 1 wówczas proces odszyfrowania jest jednoznaczny 2. P C jest odwzorowaniem 0 : 1 wówczas proces odszyfrowania jest niemożliwy 3. P C jest odwzorowaniem j : 1, j = 2, 3... wówczas proces odszyfrowania jest niejednoznaczny Kryptoanaliza szyfru z kluczem zewnętrznym W [1] przedstawiono podatność szyfru zaproponowanego w [85] na kryptoanalizę. Z analizy algorytmu szyfrowego wynika, że zastosowany w nim został algorytm rozkładu klucza (parametr kontrolny układu chaotycznego) na podstawie kongruentnego generatora liczb pseudolosowych, którego cztery parametry sterujące są jawne. Rozkład klucza następuje zatem w sposób deterministyczny, niezależnie od głównego klucza szyfru oraz tekstu jawnego lub szyfrogramu. Ilość różnych wartości generowanych przez algorytm rozkładu klucza wynosi m = 81. Występuje zatem 81 różnych wartości parametru kontrolnego oddalonych od siebie o (4.0 3.57)/81 0.005. Wartość λ min = 3.57 została wybrana z tego powodu, że układ logistyczny posiada dodatnie wartości wartość wykładnika Lapunowa dla λ > s 3.57 [88]. 76

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH W przypadku funkcji logistycznej również dla wartości parametru kontrolnego λ > s występują obszary niechaotyczności powodujące powstawanie orbit okresowych. W zastosowanym algorytmie szyfrowym pewne wartości λ należą do obszarów niechaotyczności co można zbadać obliczając wartość wykładnika Lapunowa dla każdej z 81 wartości parametru kontrolnego. Jak się okazuje, w zastosowanym zbiorze możliwych wartości parametru kontrolnego występuje 8 ujemnych wartości wykładnika Lapunowa, co przedstawiono na rysunku 3.15. 1,000 0,800 Λ 0,600 0,400 0,200 0,000 3,57 3,59 3,61 3,63 3,65 3,67 3,69 3,71 3,73 3,75 3,77 3,79 3,81 3,83 3,85 3,87 3,89 3,91 3,93 3,95 3,97-0,200-0,400-0,600-0,800-1,000 λ Rysunek 3.15: Wartości wykładnika Lapunowa Λ dla zastosowanych wartości parametru kontrolnego λ. Czarnymi punktami zaznaczono ujemną wartość wykładnika. Ujemne wartości wykładnika Lapunowa występują dla następujących wystąpień parametru kontrolnego (dla pierwszych 1000 iteracji): i {21,102,183,264,345,426,507,588,669,750,831,912,993}, λ i = 3.63 i {28,109,190,271,352,433,514,595,676,757,838,919,1000}, λ i = 3.739 i {73,154,235,316,397,478,559,640,721,802,883,964}, λ i = 3.83 i {17,98,179,260,341,422,503,584,665,746,827,908,989}, λ i = 3.835 i {54,135,216,297,378,459,540,621,702,783,864,945}, λ i = 3.84 i {67,148,229,310,391,472,553,634,715,796,877,958}, λ i = 3.844 i {20,101,182,263,344,425,506,587,668,749,830,911,992}, λ i = 3.849 i {39,120,201,282,363,444,525,606,687,768,849,930}, λ i = 3.855 Wykorzystując fakt powstawania orbity krótkookresowej w szczególności w oknie λ (3.828, 3.841), w [1] przedstawiono skuteczny atak ujawniający wartość klucza. W dalszej 77

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH części podrozdziału przytoczona jest idea tej kryptoanalizy. Jak wynika z wcześniejszych obliczeń, dla wartości λ [3.82, 3.84], układ dynamiczny znajduje się w oknie orbit okresowych w którym występuje trzy- lub sześciopunktowy atraktor. W celu odtworzenia wartości klucza w [1] zastosowano atak typu znany tekst jawny z wykorzystaniem wartości parametrów λ i, gdzie i {17, 73, 98, 154,...} (i należy do zbioru indeksów parametrów kontrolnych powodujących powstanie orbity okresowej), które powodują powstanie okresowego atraktora 3 lub 6 punktowego. Ponieważ zastosowano atak typu znany tekst jawny, zatem znane są zarówno wartości tekstu jawnego P i, jak i odpowiadającego mu szyfrogramu C i. Wiadomo, że X new może przyjąć jedynie jedną z trzech lub sześciu możliwych wartości orbity. Znając zbiór możliwych X new i C i, można określić i zbadać wszystkie 256 możliwych wartości K r18 niezbędnych do zaszyfrowania P 18 ; jest tylko jedna wartość klucza szyfrująca P 18 w C 18 odpowiada on właśnie K r18. Następnie wyznacza się kolejne X new w celu odgadnięcia K r19 i kontynuuje proces odtwarzania klucza. Proces musi być powtórzony tyle razy ile wynosi okres orbity (w tym przypadku 3 lub 6 razy), ponieważ nie wiadomo która wartość orbity okresowej jest tą właściwą. Jeżeli nie osiągnie się orbity okresowej dla danego λ i, wówczas należy skorzystać z kolejnej wartości i powodującej powstanie orbity okresowej. Analiza szyfru DCC W przedstawionym w [56] algorytmie szyfrowym, wykorzystana funkcja chaotyczna nie jest jasno określona. Przy użyciu odwzorowania charakteryzującego się funkcją gęstości prawdopodobieństwa ρ(x) o nierównomiernym rozkładnie możliwa jest kryptoanaliza ujawniająca wartość klucza. W przypadku jednowymiarowych odwzorowań symetrycznych (por. np. [110]), posiadających dokładnie dwa przeciwobrazy, które można zapisać w ogólnej formie: f(x) = 1 2x + 1 α (3.28) gdzie α (0.5, ), funkcja rozkładu prawdopodobieństwa ma równomierny rozkład jedynie dla α = 1 [110]. Gdy α > 1 wówczas istnieje wysokie prawdopodobieństwo wystąpienia orbity chaotycznej blisko krańców atraktora. W takim przypadku możliwe jest przedstawienie przybliżonej wartości klucza k jeżeli postępuje się zgodnie z poniższym algorytmem (poniższe kroki należy wykonać wielokrotnie, np. 10000 razy): 1. Wylosować liczbę P 1 (0, 1) 2. Zaszyfrować P 1 otrzymując C 1 = E k (P 1 ) 3. Zaznaczyć na płaszczyźnie punkt (P 1, C 1 ) 78

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.16: Zagęszczenie punktów przy niejednorodnej gęstości prawdopodobieństwa Wykonanie powyższej procedury ujawni obraz, w którym na pewnej wysokości występuje większe zagęszczenie punktów. Zaobserwowane zagęszczenie ujawnia wartość klucza szyfrowania k. Przykład obrazu wartości klucza przedstawiono na rysunku 3.16. 3.2.4 Funkcja generujaca strumień klucza (filtr) Funkcja generująca strumień klucza wykorzystuje stan wewnętrzny szyfratora (oraz ewentualnie klucz szyfrowania) w celu wygenerowania pseudolosowego ciągu bitów, który następnie wykorzystywany jest w procesie przetwarzania tekstu jawnego w szyfrogram. W strumieniu klucza nie może być zawartej informacji o kluczu szyfru oraz musi się on charakteryzować nieprzewidywalnością, co weryfikują dedykowane zestawy testów statystycznych. W następnych podrozdziałach przedstawiona jest kryptoanaliza szyfrów ze względu na funkcję strumienia klucza oraz przedstawione są wyniki testów statystycznych spotykanych w literaturze chaotycznych generatorów ciągów pseudolosowych. Przedstawiono również metodę określania przybliżonej wartości orbity poprzez zawężanie przedziału, w którym się ona znajduje. Kryptoanaliza szyfru E. Alvareza. Algorytm przedstawiony w [3] można poddać kryptoanalizie z powodu źle zaprojektowanej funkcji strumienia klucza, która umożliwia uzyskanie informacji o kluczu szyfrowania. Kluczem szyfru jest parametr kontrolny odwzorowania chaotycznego (oryginalnie zaproponowano funkcję typu namiot). Pojedynczy element szyfrogramu zawiera następujące elementy: wartość orbity, od której należy rozpocząć iterację (x i 0 ), próg (U i) oraz długość (b i ). 79

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Do określenia parametru kontrolnego potrzebne są wartości x k oraz x k+1. Wówczas wartość parametru kontrolnego można obliczyć za pomocą następującego wzoru: r = { xn+1 x n, x n < 0.5 x n+1 1 x n, x n > 0.5 (3.29) Ponieważ w szyfrogramie występuje wartość x i 0, do odtworzenia wartości klucza wymagane jest jedynie określenie wartości x i 1. Aby to uzyskać należy skorzystać z faktu, że przy określonym progu wartość odszyfrowanego tekstu jawnego zależy od wartości orbity: x i k > U i b i = 1, x i k < U i b i = 0. Przekazując różne wartości progu, można zauważyć w otoczeniu jakiej wartości następuje przełączenie wyniku z 0 na 1 (lub odwrotnie). Wartość orbity x i 1 należy wówczas do tego otoczenia. Kolejne zawężanie przedziału wartości progu powoduje określenie wartości orbity z coraz większą dokładnością. Do poprawnego działania procedury odtworzenia klucza wymagana jest jedna prawidłowa wartość orbity chaotycznej, generowanej przez układ. Wartość tę można pobrać z dowolnego przechwyconego szyfrogramu, można również przyjąć losową poprawną wartość dla dlatego układu, jednak jest to ryzykowne, ponieważ nie wiadomo, czy poprawność tej orbity zostanie zweryfikowana przez deszyfrator. Procedura zawężania otoczenia progu przedstawiona jest w Algorytmie 2, na rysunku 3.17 przedstawiono kolejne wartości przybliżonego klucza oraz wartość rzeczywistą (linią przerywaną). Rysunek 3.17: Przybliżanie wartości klucza w algorytmie E. Alvareza Jak widać z wykresu, już po około 10 iteracjach wartość klucza jest określona z dużą dokładnością. Dokładność klucza nie musi być bardzo duża. W [49] wyznaczono statystycznie, że przy założeniu sześciocyfrowej precyzji obliczeń dla r 1 (r 10 6, r + 10 6 ), wynik szyfrogramu jest taki sam jak dla r w 99, 9% przypadków. Przedstawiono tam również następujący 80

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Algorytm 2: Procedura przybliżania wartości klucza szyfru E. Alvareza Wejście: 1. δ r wymagana dokładność klucza 2. x 0 początkowa wartość orbity 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Wyjście: r klucz szyfu begin U lo 0 U hi 1 r 0 repeat U med U lo+u hi 2 s lo Odszyfruj({(x 0, U lo, 1)}) s hi Odszyfruj({(x 0, U hi, 1)}) s med Odszyfruj({(x 0, U med, 1)}) if s med = s hi then U hi U med else U lo U med endif r old r if x 0 < 0.5 then r U med x 0 else r U med 1 x 0 endif until r r old < δ r end 81

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH atak: należy wybrać 1000000 równomiernie rozłożonych liczb z zakresu [1, 2] jako możliwych wartości r. Następnie dokonać zaszyfrowania jednostki tekstu jawnego. Dla każdej wartości r dokonać próby deszyfrowania szyfrogramu. Jeśli otrzymano tą samą wartość tekstu jawnego, wówczas należy zwiększyć licznik wystąpień odpowiadającej wartości r. Kroki kryptoanalizy należy powtarzać tak długo, aż wartości wystąpień pewnych r będą znacząco większe od pozostałych. Wówczas są to prawdopodobni kandydaci na rzeczywistą wartość r. W [6] przedstawiono inne podejście odtworzenia wartości parametru kontrolnego r. Atak polega na przewidywaniu zachowania kilku początkowych stanów funkcji chaotycznej z punktu widzenia faktu przekroczenia bądź nie progu U przez orbitę generowaną przez tę funkcję. W procesie deszyfrowania wyjściowy ciąg zależy od tego, czy kolejne wartości orbity są większe czy też mniejsze od podanego progu U i. Ustalając próg na wartość 0.5 (czyli na wartość, z którą porównywana jest wartość orbity), odszyfrowany tekst jawny odzwierciedla bezpośrednio która część wzoru została wybrana (czyli czy dla kolejnych wartości orbit warunek we wzorze został spełniony czy też nie). Na przykład, odtworzony ciąg {0,0,0} oznacza, że za każdym razem wartość orbity była mniejsza od 0.5. Maksymalna wartość początkowa, która dla i iteracji nie przekroczy wartości progu dla odwzorowania typu namiot określona jest wzorem x p = 1/(2r i 1 ). Bazując na tym warunku w [6] przedstawiono następującą kryptoanalizę: 1. Wybrać szyfrogram (0.5, b, x 0 ), z wartością x 0 bliską 0 2. Odszyfrować szyfrogram 3. Sprawdzić wynik: jeżeli składa się z samych 0, minimalnie zwiększyć x 0, jeżeli nie zmniejszyć x 0 4. Powyższe punkty powtarzać do uzyskania wystarczająco dokładnego x 0 5. Obliczyć r = b 1 1/(2x p ) Przewidywalność strumienia klucza w szyfrze Philip-Joseph Odkrytą słabością szyfru [90] jest problem szyfrowania elementów tekstu jawnego tym samym strumieniem klucza. Jak napisano poniżej, analizowany algorytm szyfruje pierwsze 2 bloki tym samym strumieniem klucza. Taka informacja może być użyteczna dla odszyfrowania dwóch pierwszych bloków, jeżeli atakujący uzyska chwilowy dostęp do urządzenia szyfrującego. Z algorytmu wynika jednoznacznie, że dla danego klucza x 0, x 0 i λ, wartość P 0 jest zawsze taka sama. Wykorzystując zatem atak z wybranym lub znanym tekstem jawnym, można obliczyć α 0 = P 0 = C 0 t 0. Znając wartość α 0 dla danego klucza, można za każdym razem 82

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH odszyfrować pierwszy ośmiobajtowy blok szyfrogramu poprzez obliczenie t 0 = α 0 C 0 (3.30) Obliczenie drugiego bloku wymaga wyznaczenia α 1 = f(x 0, λ) f(x 0, λ) (3.31) Jest to wartość stała, zależna od klucza, jednak niezależna od tekstu jawnego. Okazuje się, że wartość α 1 można obliczyć z szyfrogramu i tekstu jawnego, stosując atak ze znanym lub wybranym tekstem jawnym. Wartość α 1 = C 1 C 0 t 1. Dowód: C 1 = P 1 t 1 (3.32) C 1 = x 1 x 1 t 1 (3.33) C 1 = f(x 0, λ) C 0 f(x 0, λ) t 1 (3.34) f(x 0, λ) f(x 0, λ) = C 1 C 0 t 1 = α 1 (3.35) Znając wartość α 1 można obliczyć drugi blok tekstu jawnego dla dowolnego szyfrogramu, zgodnie ze wzorem t 1 = α 1 C 0 C 1 (3.36) Atak na stałe bity szyfrogramu Uwikłanie przekształcenia nieliniowego (w sensie operacji na liczbach z wykorzystaniem arytmetyki zmiennopozycyjnej) w funkcję logistyczną komplikuje kryptoanalizę kolejnych bloków. W dalszej części przedstawione zostaną inne słabości algorytmu. Można dokonać kryptoanalizy z samym szyfrogramem przynajmniej części szyfrogramu. Zgodnie z algorytmem przedstawionym w [90], t 0 = C 0 x 0 x 0. Wartości x 0 i x 0 muszą zawierać się w przedziale (0, 1). Po przeprowadzeniu badań, okazało się, że najstarsze 8 bitów parametru P 0 jest równe 0. Bit 8 przyjmuje wartość 1 z prawdopodobieństwem 1%, natomiast bit 9 z prawdopodobieństwem 16%. Pozostałe bity mają rozkład losowy. W związku z tym możliwe jest odszyfrowanie pierwszych 10 bitów z dużym prawdopodobieństwem, zgodnie ze wzorem t 0 = C 0. Z jeszcze większym prawdopodobieństwem można również odszyfrować 10 pierwszych bitów drugiego bloku. Liczby z zakresu (0, 1) w reprezentacji zmiennopozycyjnej mają pierwszych 9 bitów ustawionych na znaną i niezmienną wartość. Bit 9-ty można ustalić z prawdopodobieństwem około 90%. Z algorytmu szyfrowego wynika, że t 1 = P 1 C 1 = x 1 x 1 C 1 = 83

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH f(x 0, λ) C 0 f(x 0, λ) C 1. Po przeprowadzeniu badań okazało się, że dla wyrażenia f(x 0, λ) f(x 0, λ) można jednoznacznie ustalić 9 najstarszych bitów, natomiast bit 9 z prawdopodobieństwem około 90%. Możliwe jest zatem odszyfrowanie pierwszych 10 bitów z dużym prawdopodobieństwem, zgodnie ze wzorem t 1 = C 0 C 1. Metoda zawężania przedziałów Metoda zawężania przedziałów ma zastosowanie, gdy można odtworzyć przedziały, w którym znajdują się kolejne wartości orbity chaotycznej szyfratora. Główna idea bazuje na przedstawionej w [38] procedurze odtworzenia rzeczywistej orbity chaotycznej na podstawie orbity zdyskretyzowanej. Procedurę zawężania orbity można zapisać za pomocą następującego wzoru [38]: B k = f 1 (... f 1 (f 1 (A i(k) ) A i(k 1) ) A i(k 2)...) A i(0) (3.37) gdzie k numer iteracji, i(n) numer przedziału dla n-tej iteracji, A m przedział o indeksie m (wartość punktu zdyskretyzowanej orbity o indeksie m), f 1 odwzorowanie iteracji odwrotnej, B k zawężony przedział dla k-tej iteracji. W przypadku analizowanych algorytmów szyfrowych, zakres wartości danego przedziału orbity chaotycznej można potraktować jako orbitę zdyskretyzowaną i dla niej zastosować procedurę zawężania. W rzeczywistości z powodu skończonej precyzji obliczeń wystarczające jest zawężanie jedynie t poprzednich punktów orbity, zgodnie z poniższym wzorem: B k = f 1 (... f 1 (f 1 (A i(k) ) A i(k 1) ) A i(k 2)...) A i(k t) (3.38) W kolejnych podrozdziałach przedstawione jest zastosowanie metody zawężania przedziałów w kryptoanalizie szyfrów A. Sarkara i M.S. Baptisty. Szyfry te charakteryzują się tym, że chociaż w strumieniu klucza nie występuje dokładna wartość orbity chaotycznej, to możliwe jest uzyskanie informacji na temat przedziału, w którym się znajduje. Wykorzystując metodę zawężania przedziałów możliwe jest znaczne zawężenie oryginalnego przedziału, w którym znajduje się punkt orbity. Zastosowanie metody zawężania przedziałów poprzedzone jest fazą wstępną określenia dodatkowych parametrów każdego z szyfru, niezbędnych do dalszej analizy. Kryptoanaliza chaotycznego szyfru produktowego Procedura szyfrująca A. Sarkara (Algorytm 16 str. 190) generuje dla danego klucza za każdym razem taką samą sekwencję y i. W drugiej fazie szyfrowania (Algorytm 17) następuje permutacja elementów zaszyfrowanych w fazie 1. Permutacja ta jest inna dla każdej długości tekstu jawnego. Stosując atak z wybranym tek- 84

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH stem jawnym, można odtworzyć sekwencję y i oraz wartości permutacji P (i), i = 1, 2,..., N. W tym celu opracowano Algorytm 3, postępując według którego można uzyskać sekwencję y i, niezakłóconą drugą fazą algorytmu, oraz wartość permutacji wykonywanej w drugiej fazie. Algorytm 3: Wyznaczenie permutacji szyfru przestawieniowego Wejście: N - długość ciągu Wyjście: 1. y ciąg sekwencji y generowanych w pierwszej fazie szyfrowania algorytmu dla każdej długości ciągu k {1, 2,..., N} 2. P ciąg tablic permutacji generowanych w drugiej fazie szyfrowania algorytmu dla każdej długości ciągu k {1, 2,..., N} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 begin Utworzyć puste tablice y (0) =, e (0) = /* - tablica o zerowej długości */ forall the i = 1,2,...,N do c (i) = {0 1, 0 2,..., 0 i } P (i) = { 1, 2,..., i } /* - niezainicjowany element tablicy */ e (i) = E e (c (i) ) if v, e (i) (v) / e (i 1) then y (i) = y (i 1) + {e (i) (v)} endif forall the k = 1, 2,..., i do P (i) k = η(y (i) k, e(i) ) /* η( ) - pozycja k-tego elementu tablicy e (i) w tablicy y (i) */ endfall endfall end Uzyska się w ten sposób ciąg kolejnych wartości y (i) oraz wartości permutacji P (i), i = 1, 2,..., N wykonywanej w drugiej fazie. Przykład dla klucza INI1 = 0.28 i N = 5 jest przedstawiony w tabeli 3.4. Posiadając tablicę permutacji oraz wartości y i, można odtworzyć tekst jawny postępując zgodnie z Algorytmem 4. Posiadając ciąg y można określić wartość IN I1 stosując metodę zawężania przedziałów. Wiadomo, że y i = p i 255.0 + 0.5. Zatem można wyznaczyć przedział ( 2(i 1) + 1 A(i) =, 2i + 1 ) y i. (3.39) 510 510 85

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Tabela 3.4: Odtworzenie ciągu y (i), i = 1, 2,..., N dla INI1 = 0.28 oraz N = 5. i e (i) y (i) P (i) 1 206 206 1 2 206, 159 206, 159 1, 2 3 239, 206, 159 206, 159, 239 3, 1, 2 4 59, 206, 159, 239 206, 159, 239, 59 4, 1, 2, 3 5 59, 182, 206, 159, 239 206, 159, 239, 59, 182 4, 5, 1, 2, 3 Algorytm 4: Odtworzenie tekstu jawnego o długości N Wejście: 1. N długość ciągu 2. y N sekwencja y uzyskana z Algorytmu 3 dla ciągu o długości N 3. P (N) tablica permutacji P uzyskana z Algorytmu 3 dla ciągu o długości N 4. e (N) szyfrogram o długości N 1 2 3 4 5 6 7 8 Wyjście: c (N) - tekst odszyfrowany o długości N begin forall the i 1, 2,..., N do m (N) (P (N) (i)) e (N) (i) endfall forall the i 1, 2,..., N do c (N) (i) m (N) (i) y N (i) endfall end 86

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Początkowy zakres wartości y 1 = f(ini1, 4.0) można określić korzystając ze wzoru (3.39). Na podstawie y 1 można obliczyć zakres wartości możliwych wartości klucza INI1 = f 1 (y 1, 4.0) korzystając ze wzoru (3.40). 1 1 4 yn r 2 y n 1 = f 1 (y n, r) = lub 1+ 1 4 yn r 2 (3.40) Wzór (3.40) daje dwie równoważne poprzednie wartości orbity y n 1, są to również dwa równoważne klucze IN I1 szyfru. W celu dokładniejszego oszacowania przedziału wartości klucza, należy zawęzić przedział uzyskany przez obliczenie B(i). W tym celu należy korzystając z tablicy permutacji utworzyć poprawny ciąg wstępnie zaszyfrowanych elementów y n. Następnie, obliczając zakresy kolejnych przedziałów należy obliczyć zakres poprzednich wartości orbity, które zawężają poprzednio wyznaczony przedział. Formalnie procedura jest przedstawiona w Algorytmie 5. Przykład 1 Odtworzenie przybliżonej wartości INI1 Dla przykładowego klucza p 0 = INI1 = 0.28 i N = 8, ciąg y 8 = (206, 159, 239, 59, 182, 208, 152, 245). Dla wartości 206 jest to przedział ŷ 1 (0.80588235, 0.80980392). Dla badanej wartości klucza INI1 = 0.28, wartość y 1 = y 0 4 (1 y 0 ) = 0.28 4 (1 0.28) = 0.8064. Zatem jest to pewne przybliżenie wartości klucza, z błędem względnym 0.2%. Aby dokładniej określić wartość INI1, należy skorzystać z drugiego elementu pozyskanej tablicy y. Wiadomo, że p 2 = p 4 4 (1 p 1 ). Korzystając ze wzoru (3.39), można ponownie wyznaczyć przedział wartości p 2. Tym razem otrzymuje się przedział ˆp 2 (0.621568, 0.625490). Ze wzoru (3.38) wiadomo, że wsteczne przedziały mogą powodować zawężanie przedziału badanego. Może się zatem okazać że nowy przedział ˆp 1 zawęża poprzedni przedział ˆp 1. Jeżeli tak się stanie, rzeczywisty przedział ˆp 1 zbliża się coraz bardziej do wartości p 1. W celu określenia poprzedniej wartości orbity dla funkcji logistycznej należy skorzystać ze wzoru (3.40). Korzystając ze wzoru (3.40) dla wartości krańcowych przedziału ˆp 2, otrzymuje się następujące wartości: 0.192416, 0.807583, 0.194013, 0.805986. Jedynie wartość druga i czwarta dają y 1 = 206, pozostałe odrzucamy. Nowy przedział ˆp 1 = (0.805986, 0.807583) jest mniejszy niż poprzedni, jest zatem dokładniejszy. Wartość środkowa przedziału to 0.806784. Ponownie korzystając ze wzoru (3.40) dla wartości środkowej, otrzymuje się przybliżoną wartość klucza INI1 = 0.280218. Kolejne przybliżenia wartości p 1 przedstawione są w tabeli 3.5. Wartość δ k to błąd względny przybliżenia wartości środkowej, obliczony zgodnie ze wzorem (3.41). 87

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Algorytm 5: Wyznaczanie zawężonego przedziału orbity Wejście: C sekwencja zdyskretyzowanych punktów orbity o długości N Wyjście: B zawężony przedział orbity 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 begin forall the k = 0,1,...,N do l k min(a(c k )) h k max(a(c k )) forall the i = k,k-1,...,1 do l (1) min(f1 1 (l i), f1 1 (h i)) h (1) max(f1 1 (l i), f1 1 (h i)) m (1) l(1) +h (1) 2 l (2) min(f2 1 (l i), f2 1 (h i)) h (2) max(f2 1 (l i), f2 1 (h i)) m (2) l(2) +h (2) 2 if m (1) [l i 1, h i 1 ] then l i 1 max(l (1), l i 1 ) h i 1 min(h (1), h i 1 ) endif if m (2) [l i 1, h i 1 ] then l i 1 max(l (2), l i 1 ) h i 1 min(h (2), h i 1 ) endif endfall endfall B (l 0, h 0 ) end Tabela 3.5: Kolejne przybliżenia wartości p 1 (wartości zaokrąglone do 6 i 3 miejsc po przecinku) k l k = min(b k ) h k = max(b k ) p 1 = l k h k (l k + h k )/2 δ k 1 0.805882 0.809804 0.003922 0.807843 0.179 2 0.805986 0.807584 0.001598 0.806785 0.048 3 0.805986 0.806891 0.000905 0.806438 0.005 4 0.806308 0.806767 0.000459 0.806537 0.017 5 0.806308 0.806515 0.000207 0.806411 0.001 6 0.806308 0.806419 0.000112 0.806364 0.005 7 0.806308 0.806419 0.000112 0.806364 0.005 8 0.806308 0.806419 0.000112 0.806364 0.005 88

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH δ k = 0.5(l k + h k ) p 1 p 1 100% (3.41) Ostatecznie, wartość IN I1 {0.279980, 0.720020}. Są to dwie równoważne przybliżone wartości klucza. Szerokości przedziałów przedstawione są na rysunku 3.18, natomiast błąd względny wartości p 1 przedstawiony jest na rysunku 3.19. Rysunek 3.18: Szerokość przedziału A dla wartości ˆp 1 w funkcji liczby iteracji Rysunek 3.19: Błąd względny δ dla wartości p 1 w funkcji liczby iteracji (wartości w %) Przybliżanie klucza INI2 Przybliżenie wartości klucza IN I2 wymaga określenia przedziałów, do których należy orbita q i. Do określenia ich należy wykorzystać obserwację kolejno wybieranych elementów w drugiej fazie szyfrowania. To, który element wybrać, zależy od numeru przedziału, do którego wpada orbita q i. Niestety, poza pierwszym elementem, kolejne mogą być wybierane na więcej niż jeden sposób. Ostatni element zostanie wybrany dla każdego numeru przedziału 1 Z i N. W rzeczywistości, można określić zbiór numerów przedziałów, które powodują wybranie danego elementu zgodnie ze wzorem (3.42): Z i = {z : 1 z N, z = l + (N k + 1) m, m = 0, 1, 2,...} (3.42) gdzie l 1 najkrótsza odległość między elementami e k e k 1 (element początkowy, e 0, to HEAD), k = 1, 2,..., N numer elementu, N ilość wszystkich elementów. Po znalezieniu odległości między elementami, badany element usuwa sie z listy cyklicznej, natomiast kolejne poszukiwanie rozpoczyna się od elementu poprzedzającego usunięty element. Operację powtarza się do czasu usunięcia wszystkich elementów z listy (czyli po N iteracjach). Po uzyskaniu ciągu kolejnych numerów przedziałów lub ciągu kolejnych zbiorów przedziałów, można przybliżyć wartość początkową za pomocą Algorytmu 5 (str. 88). 89

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Przykład 2 Uzyskanie ciagu przedziałów drugiej fazy szyfrowania Dla przykładowego klucza q 0 = INI2 = 0.82 i N = 5 otrzymuje się ciąg wartości C = {α 1, α 2, α 3, α 4, α 5 }. P (5) = {4, 5, 1, 2, 3}, zatem poprawna kolejność to C = {α 3, α 4, α 5, α 1, α 2 }. Operację odtwarzania numerów przedziałów rozpoczyna się od pierwszego elementu ciągu C, czyli α 3 = HEAD. Odległość od elementu α 3 do α 1, l = 3, zatem Z 1 = {3}. Następnie element α 1 usuwa się z ciągu C, a kolejne poszukiwania rozpoczyna od elementu poprzedzającego element α 1, czyli α 5. Odległość od elementu α 5 do kolejnego elementu z ciągu C, czyli α 2, wynosi l = 1. Zatem Z 2 = {1, 5}. Operację powtarza się aż do uzyskania Z 5 = {1, 2, 3, 4, 5}. Kolejne kroki przedstawione są w tabeli 3.6. Tabela 3.6: Zbiory numerów przedziałów powodujących w drugiej fazie szyfrowania wybór danego elementu. W kolumnie Z k podkreślony element jest faktycznie generowany przez układ chaotyczny. W kolumnie C k podkreślony element to ten, od którego liczy się odległość do elementu następnego ciągu C k l k Z k C k 1 3 {3} {α 3, α 4, α 5, α 1, α 2 } 2 1 {1, 5} {α 3, α 4, α 5, α 2 } 3 1 {1, 4} {α 3, α 4, α 5 } 4 1 {1, 3, 5} {α 4, α 5 } 5 1 {1, 2, 3, 4, 5} {α 5 } Ostatecznie uzyskano ciąg zbiorów przedziałów powodujących wybór badanych elementów w drugiej fazie szyfrowania Z = ({3}, {1, 5}, {1, 4}, {1, 3, 5}, {1, 2, 3, 4, 5}). W rzeczywistości układ chaotyczny generował ciąg przedziałów Z = (3, 5, 1, 3, 5), który jest możliwy do uzyskania z otrzymanego ciągu zbiorów Z. Po uzyskaniu numerów przedziałów, granice wartości orbity, dla której ma zastosowanie dany przedział, wyznacza się ze wzoru (3.43), (por. wzór (3.39)). ( ) i 1 A (i) = N, i z i, i = 1, 2,..., N (3.43) N Przedział ten można zawęzić stosując Algorytm 5 (str. 88) z tą różnicą, że wzór na wartości graniczne przedziału określony jest przez A. Postępując według Algorytmu 5, dla nieco dłuższego ciągu 12 znaków i numerów przedziałów odpowiednio {8, 12, 2, 6, 12, 1, 3, 8, 12, 4, 11, 7}, uzyskano wartość ẑ 1 (0.590395, 0.590415) oraz z 1 = 0.590405 z błędem δ = 0.001%. Kolejne wartości przedziału A oraz błędu względnego δ dla wartości q i przedstawiono na rysunkach 3.20 i 3.21. 90

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.20: Szerokość przedziału A dla wartości ˆq 1 w funkcji liczby iteracji Rysunek 3.21: Błąd względny δ dla wartości q 1 w funkcji liczby iteracji (wartości w %) Kryptoanaliza szyfru M.S. Baptisty Pojedynczy znak szyfrogramu oznacza liczbę iteracji wymaganych do wykonania przez deszyfrator w celu uzyskania numeru interwału odpowiadającego danemu znakowi tekstu jawnego. Załóżmy wstępnie, że wykorzystywany jest cały atraktor (x min = 0, x max = 1), natomiast ilość znaków alfabetu tekstu jawnego oznaczmy przez S, (np. S = 256). Niewiadomą jest wartość parametru kontrolnego b oraz wartość początkowa orbity chaotycznej x 0. Szerokość ɛ = (x max x min )/S = 1/256. Wysyłając do deszyfratora kolejno wartości (c 1, c 2,..., c n ) = (α, α + 1,..., α + n) otrzymuje się kolejne symbole tekstu jawnego p 1, p 2,... p n. Należy zaznaczyć, że jako wartość parametru α można przyjąć dowolną nieujemną liczbą całkowitą. Celem jest wysłanie do deszyfratora liczby iteracji, która zwiększa się o jeden w każdym kroku. W ten sposób można uzyskać kolejne wartości ɛ-interwałów orbity chaotycznej generowanej przez tajny klucz szyfru. Przybliżanie wartości parametru kontrolnego Aby przybliżyć wartości parametru kontrolnego należy określić zakresy wartości orbity chaotycznej dla każdego ɛ-interwału symbolu tekstu jawnego. Dla danego symbolu p n zakres odpowiadających mu wartości orbity jest określony przedziałem A i(n) zgodnie ze wzorem (3.44): Należy zaznaczyć, że jeżeli x i (ɛ (min) n ɛ (min) n = x min + p n ɛ ɛ (max) n = x min + p n ɛ + ɛ A i(n) = (ɛ (min) n, ɛ (max) n ) x n (3.44), ɛ (max) n ) wówczas c j = n, gdzie i to numer iteracji funkcji logistycznej, n {0, 1,..., S 1}, j indeks elementu szyfrogramu. Z drugiej strony wartość parametru kontrolnego dla odwzorowania logistycznego można wyznaczyć za pomocą 91

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH wzoru (3.45): b = x n+1 x n (1 x n ) Dla każdej z par {x k, x k+1 } wyznacza się przedział, β k b: (3.45) β k = (β (min) k, β (max) k ) = (min(b 1, b 2, b 3, b 4 ), max(b 1, b 2, b 3, b 4 )) (3.46) gdzie: b 1 = b 2 = b 3 = b 4 = ɛ (max) k+1 ɛ (max) k 1 (ɛ (max) k ) ɛ (max) k+1 ɛ (min) k 1 (ɛ (min) k ) ɛ (min) k+1 ɛ (max) k 1 (ɛ (max) k ) ɛ (min) k+1 ɛ (min) k 1 (ɛ (min) k ) Dla odpowiednio dużej ilości kolejnych par (x k, x k+1 ), można zawęzić przedział β zgodnie ze wzorem (3.47): β = k m=1 Przykład 3 Przybliżenie wartości parametru kontrolnego β m (3.47) Załóżmy, że (nieznana) wartość parametru kontrolnego wynosi b = 3.78, x 0 = 0.232323. Zakładamy, że x min = 0, x max = 1, S = 256 są znane dla atakującego. Wysyłając kolejno wartości (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) do deszyfratora uzyskuje się następujące numery ɛ-interwałów: (173, 213, 137, 241, 54, 161, 227, 100, 230, 90). Zakresy poszczególnych interwałów oraz parametru b dla danego ɛ-interwału przedstawiono w tabeli 3.7. Jak widać, już dla 10 wybranych szyfrogramów przedział wartości parametru b można określić z pewnym przybliżeniem: b (max( min 4 (b i)), min( max 4 (b i))) = (3.7666, 3.7843) (3.48) i=1 i=1 Im więcej szyfrogramów zostanie wysłanych do deszyfratora, tym dokładniejsze można uzyskać przybliżenie parametru kontrolnego b. 92

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH i ɛ i ɛ (min) i Tabela 3.7: Przybliżanie wartości parametru b ɛ (max) i b 1 b 2 b 3 b 4 β (min) i β (max) i 1 173 0.6718 0.6757 3.7974 3.7740 3.7796 3.7563 3.7563 3.7974 2 213 0.8281 0.8320 3.8292 3.7598 3.8012 3.7324 3.7324 3.8292 3 137 0.5312 0.5351 3.7843 3.7803 3.7686 3.7647 3.7647 3.7843 4 241 0.9375 0.9414 3.8240 3.6000 3.7532 3.5333 3.5333 3.8240 5 54 0.2070 0.2109 3.7785 3.8308 3.7550 3.8070 3.7550 3.8308 6 161 0.6250 0.6289 3.7994 3.7833 3.7826 3.7666 3.7666 3.7994 7 227 0.8828 0.8867 3.8888 3.7758 3.8499 3.7380 3.7380 3.8888 8 100 0.3867 0.3906 3.7743 3.7882 3.7579 3.7717 3.7579 3.7882 9 230 0.8945 0.8984 3.8528 3.7263 3.8100 3.6849 3.6849 3.8528 10 90 0.3476 0.3515 Określenie wartości przedziału wykorzystywanego atraktora Wzór (3.44) zwraca przedział możliwych wartości parametru kontrolnego na podstawie przedziałów kolejnych punktów orbity, które są wyznaczane na podstawie x max, x min i S. Podanie błędnych wartości dla parametrów x max lub x min spowoduje, że wartość parametru kontrolnego b będzie w zakresie niedopuszczalnym dla funkcji logistycznej. Funkcja logistyczna ma własności chaosu dla wartości parametru kontrolnego b (s, 4), gdzie s 3.57 to punkt Feigenbauma [88]. Zakres wartości parametrów x max oraz x min można zawęzić badając poprawność wartości parametru kontrolnego b. Zakres wartości x max oraz x min można dość dokładnie oszacować posiadając zaledwie kilka numerów ɛ-interwałów. Przy założeniu, że moc alfabetu wiadomości jawnych wynosi S = 256, należy uzyskać kolejne numery ɛ-interwałów. Np. niech kolejne numery ɛ-interwałów to p = (24, 224, 240, 210). Zdefiniujmy funkcję szerokości interwału: ɛ(x max, x min ) = x max x min S (3.49) oraz funkcję dolnej i górnej granicy ɛ-interwału dla n = {0, 1, 2, 3}: x lo (x min, x max, n) = x min + ɛ(x max, x min ) (p n 1) (3.50) x hi (x min, x max, n) = x min + ɛ(x max, x min ) p n (3.51) Następnie zdefiniujmy funkcje szerokości przedziałów parametru kontrolnego b dla m = {0, 1, 2} b 1 (x max, x min, m) = x lo (x min, x max, m + 1) x lo (x min, x max, m)(1 x lo (x min, x max, m)) (3.52) 93

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH b 2 (x max, x min, m) = b 3 (x max, x min, m) = b 4 (x max, x min, m) = x hi (x min, x max, m + 1) x lo (x min, x max, m)(1 x lo (x min, x max, m)) x lo (x min, x max, m + 1) x hi (x min, x max, m)(1 x hi (x min, x max, m)) x hi (x min, x max, m + 1) x hi (x min, x max, m)(1 x lo (x min, x max, m)) Wartości maksymalne i minimalne dla danego oszacowania b oblicza się następująco: (3.53) (3.54) (3.55) b min (m, x max, x min ) = 4 min k=1 b k(x max, x min, m) (3.56) b max (m, x max, x min ) = 4 max k=1 b k(x max, x min, m) (3.57) Ostateczne granice przedziału wartości parametu b wynoszą: b lo (x max, x min ) = max(m) min b max (k, x max, x min, m) (3.58) k=0 b hi (x max, x min ) = max(m) max b min (k, x max, x min, m) (3.59) k=0 W ten sposób uzyskaliśmy przedział b jako funkcję parametrów x min i x max. Teraz należy dodać ograniczenia: 1. s < b lo (x max, x min ) < 4 2. s < b hi (x max, x min ) < 4 3. b lo (x max, x min ) < b hi (x max ) Zdefiniujmy zatem funkcję poprawności parametrów x max i x min : G(x max, x min ) = b lo (x max,x min )+b hi (x max,x min ) 2, s < b lo (x max, x min ) < 4 s < b hi (x max, x min ) < 4 b lo (x max, x min ) < b hi (x max, x min ) 1, w przeciwnym przypadku (3.60) Badając tę funkcję dla parametrów x max, x min (0, 1) otrzymujemy wykres ujawniający zakres możliwych wartości parametrów x max i x min (rysunek 3.22). Jak wynika z analizy wykresu, x min (0.15, 0.25), natomiast x max (0.75, 0.85). Jest to zgodne z prawdą, ponieważ dla badanego przypadku x max = 0.8, x min = 0.2. Należy zauważyć, że wykorzystano bardzo 94

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH niewiele danych do obliczeń. Zebranie większej ilości kolejnych numerów ɛ-interwałów może znacznie zawęzić zakres wartości parametrów x max i x min. x mi n 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.25 0.20 0.15 0.75 0.80 0.85 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 x max Rysunek 3.22: Zakres poprawnych wartości parametrów x max i x min oraz powiększenie interesującego obszaru Przybliżanie wartości poczatkowej Załóżmy, że znana jest wartość parametru kontrolnego b oraz kolejne numery ɛ-interwałów. Wówczas możliwe jest przybliżenie dokładnej wartości orbity z wykorzystaniem metody zawężania przedziałów. Zakres wartości danego ɛ-interwału można potraktować jako orbitę zdyskretyzowaną i dla niej zastosować procedurę zawężania. Procedura zawężania przedziałów wymaga zastosowania odwzorowania odwrotnego do funkcji logistycznej, danego wzorem (3.61): F 1 (x) = 1 1 4 x b 2 lub 1+ 1 4 x b 2 (3.61) Wysyłając do deszyfratora kolejno wartości: (c 1, c 2,..., c n ) = (α, α+1,..., α+n) można przybliżyć wartość orbity x α. W oryginalnym opisie algorytmu szyfrowego w [13], występuje parametr N 0 określający minimalną ilość iteracji w trakcie procesu szyfrowania pojedynczego znaku. Z opisu algorytmu nie wynika jasno, czy wartość ta jest weryfikowana w procesie deszyfrowania: jeżeli nie, wówczas można przyjąć wartość α = 1 i na tej podstawie wyznaczyć x 0 korzystając ze wzoru (3.61). Jeżeli jednak wartość ta jest weryfikowana, wówczas można wy- 95

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH znaczyć co najwyżej wartość orbity x N0. Sposób przybliżenia wartości x 0 na podstawie X k jest przedstawiony w dalszej części. Bez względu jednak na ograniczenia deszyfratora, procedura zawężania orbity x α może być wykonana zgodnie z Algorytmem 5 (str. 88). Przykład 4 Przybliżenie wartości orbity Załóżmy, że nieznana wartość x 0 = 0.232323. Wartość parametru kontrolnego b została wyznaczona zgodnie z poprzednim krokiem kryptoanalizy i ustalona na 3.78. Dodatkowo załóżmy, że x min = 0, x max = 1, S = 256, N 0 = 0. Wysyłając do szyfratora kolejno liczby (1, 2, 3,..., 40) otrzymujemy następujący ciąg numerów ɛ-interwałów: (173, 213, 137, 241, 54, 161, 227, 100, 230, 90, 221, 117, 240, 58, 169, 219, 123, 242, 53, 157, 230, 90, 220, 119, 241, 56, 164, 224, 109, 237, 69, 191, 185, 195, 178, 206, 153, 234, 79, 206) Postępując zgodnie z algorytmem zawężania przedziałów otrzymujemy kolejne zawężenia zakresu przedziału x 1, przedstawione w tabeli 3.8. Wartość δ err oznacza błąd względny przybliżenia wartości środka przedziału zgodnie ze wzorem (3.62): δ = 0.5(ɛ(min) + ɛ (max) ) x 1 x 1 100% (3.62) Wartość int oznacza ilość różnych liczb zmiennopozycyjnych w przybliżonym przedziale. Szerokości przedziału są przedstawione na rysunku 3.23. Zastosowano tu notację zmiennopozycyjną zgodną ze standardem IEEE-754 [46] oraz liczby o podwójnej precyzji (64 bitowe). Jak wynika z rysunku 3.23, dla 40 ɛ-interwałów uzyskano przedział, w którym znajduje się zaledwie milion różnych liczb zmiennopozycyjnych. Wartość x 1 (0.6741593094, 0.6741593096) zatem x 0 (0.23232299996, 0.23232300006) (0.76767700003, 0.76767699993). W jednym z przedziałów znajduje się x 0 = 0.232323. Przybliżanie wstecznych punktów orbity Przedstawiony w poprzednim punkcie przykład przybliżania wartości orbity chaotycznej zakładał, że wartość N 0 = 0 lub że nie jest ona weryfikowana w deszyfratorze. Jeżeli jednak wartość ta jest weryfikowana, wówczas do deszyfratora można wysyłać jedynie szyfrogramy o wartościach większych niż N 0. W takim przypadku możliwe jest przybliżenie wartości X N0. Aby uzyskać rzeczywistą wartość klucza, x 0, należy 96

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Tabela 3.8: Przybliżanie wartości parametru x α ɛ (min) ɛ (max) ɛ (min) ɛ (max) ɛ (min) +ɛ (max) 2 δ err int 0.6718750000 0.6757812500 0.0039062500 0.6738281250 0.0490 4.E+13 0.6728754254 0.6757812500 0.0029058246 0.6743283377 0.0250 3.E+13 0.6737815644 0.6749690737 0.0011875093 0.6743753191 0.0320 1.E+13 0.6737815644 0.6749690737 0.0011875093 0.6743753191 0.0320 1.E+13 0.6737815644 0.6745622062 0.0007806418 0.6741718853 0.0020 7.E+12 0.6738623751 0.6745216742 0.0006592991 0.6741920246 0.0050 6.E+12 0.6738623751 0.6744159879 0.0005536128 0.6741391815 0.0030 5.E+12 0.6741561567 0.6743904081 0.0002342514 0.6742732824 0.0170 2.E+12 0.6741561567 0.6742945493 0.0001383926 0.6742253530 0.0100 1.E+12 0.6741561567 0.6742296771 0.0000735205 0.6741929169 0.0050 7.E+11 0.6741561567 0.6741861557 0.0000299990 0.6741711562 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741578393 0.6741861557 0.0000283164 0.6741719975 0.0020 3.E+11 0.6741591582 0.6741595211 0.0000003629 0.6741593397 0.0000 3.E+09 0.6741591582 0.6741595211 0.0000003629 0.6741593397 0.0000 3.E+09 0.6741591582 0.6741595211 0.0000003629 0.6741593397 0.0000 3.E+09 0.6741591582 0.6741595211 0.0000003629 0.6741593397 0.0000 3.E+09 0.6741592203 0.6741593096 0.0000000893 0.6741592649 0.0000 8.E+08 0.6741592203 0.6741593096 0.0000000893 0.6741592649 0.0000 8.E+08 0.6741592815 0.6741593096 0.0000000280 0.6741592956 0.0000 3.E+08 0.6741592815 0.6741593096 0.0000000280 0.6741592956 0.0000 3.E+08 0.6741592815 0.6741593096 0.0000000280 0.6741592956 0.0000 3.E+08 0.6741593026 0.6741593096 0.0000000070 0.6741593061 0.0000 6.E+07 0.6741593026 0.6741593096 0.0000000070 0.6741593061 0.0000 6.E+07 0.6741593042 0.6741593096 0.0000000053 0.6741593069 0.0000 5.E+07 0.6741593084 0.6741593096 0.0000000011 0.6741593090 0.0000 1.E+07 0.6741593084 0.6741593096 0.0000000011 0.6741593090 0.0000 1.E+07 0.6741593084 0.6741593096 0.0000000011 0.6741593090 0.0000 1.E+07 0.6741593084 0.6741593096 0.0000000011 0.6741593090 0.0000 1.E+07 0.6741593084 0.6741593096 0.0000000011 0.6741593090 0.0000 1.E+07 0.6741593094 0.6741593096 0.0000000001 0.6741593095 0.0000 1.E+06 97

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.23: Szerokość przedziału przybliżanej orbity x 1 poszukać wszystkich możliwych wartości orbity wstecznej, począwszy od X N0 z wykorzystaniem Algorytmu 1. W badaniach szerokość okna poszukiwań ustalono na wartość ε = 100. Przykład 5 Przybliżanie wartości poprzednich punktów orbity Załóżmy, że N 0 = 250. Dokonując ataków opisanych poprzednio ustalono wartość b = 3.78 oraz x 250 X 250 = (0.25389920908892283, 0.2538992091384527). Jest to 892252 różnych liczb podwójnej precyzji, zgodnie z notacją IEEE-754. Stosując algorytm wyznaczania zbioru poprzednich punktów orbity, otrzymano coraz mniejsze wielkości zbiorów dla kolejnych wstecznych iteracji. Wyniki przedstawione są na rysunku 3.24. Wartość x 0 X 0, gdzie X 0 to zbiór wszystkich wartości początkowych, dla których x 250 X 250. Liczba elementów zbioru X 0 = 1538500, jednak różnych wartości jest w nim jedynie 552649. Mniejsza liczba wynika z faktu, że duża liczba tych samych punktów orbity x 0 powstała z różnych punktów x 1. W zbiorze 552649 punktów znajduje się również klucz x 0 = 0.232323. Wyznaczenie zbioru X 0 zajęło 2,5 h na komputerze wyposażonym w procesor 1.8 GHz oraz 768 MB pamięci RAM. Szerokość okna poszukiwań ε = 100. Algorytm był niezoptymalizowany i stworzony w środowisku JAVA 5.0. Zastosowanie chaotycznych generatorów ciagów pseudolosowych w szyfrach strumieniowych W literaturze można spotkać różne implementacje generatorów ciągów pseudolosowych. W [130] przedstawiono generator wykorzystujący symulację obwodu Chua. Ponieważ należy od 98

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Rysunek 3.24: Wielkość zbioru poprawnych punktów orbity dla wstecznej iteracji do układów chaotycznych o czasie ciągłym, nie jest on dalej rozpatrywany. W [40] przedstawiono sposób generowania ciągów losowych wykorzystując nieprzewidywalne odwzorowanie chaotyczne dane ogólnym wzorem (3.63) x n = sin 2 (z n sin 1 x 0 ) (3.63) dla wartości z = π. Nie przedstawiono jednak żadnych wyników testów statystycznych. Ponadto rozwiązanie to generuje ciąg liczb z zakresu (0, 1), których reprezentacja binarna nie ma jednorodnego rozkładu bitów. Szczegółowe badania i wyniki statystyczne analogicznego generatora wykorzystującego różne wartości parametru z przedstawiono w [57]. Ogólne założenia do problemu generowania pseudolosowych ciągów bitów przedstawiono w [54]. Zaproponowany sposób polega na podzieleniu przestrzeni stanów na dwa obszary S 0 i S 1 o równej mierze Lebesgue a, czyli µ(s 0 ) = µ(s 1 ) = 1 2 oraz S 0 S 1 = S. Wówczas jako n-ty bit b n przyjmuje się 0, gdy F n (x 0 ) S 0, lub 1 gdy F n (x 0 ) S 1. Generator ciągów losowych występuje również w opisywanym szyfrze E. Alvareza [3]. Na podstawie kolejnych wartości orbity x n oraz progu U, generowany jest ciąg bitów, w którym poszukiwana jest szyfrowana sekwencja. Ciąg ten musi charakteryzować się dobrymi własnościami statystycznymi, aby zapewnić nieprzewidywalność oraz umożliwić odnalezienie w nim dowolnego podciągu odpowiadającego tekstowi jawnemu. Wykorzystywana jest funkcja typu namiot. W teście wykorzystano proponowane oryginalnie wartości U = 0.5, r = 1.99. Wartość x 0 została ustalona na 0.232323. Jak zauważono w [70], generator zastosowany w szyfrze E. Alvareza generuje niezrównoważony ciąg bitów, co oznacza, że ilość generowanych 1 nie jest w przybliżeniu równa ilości generowanych 0. Wynika to z faktu, że dla danej wartości parametru kontrolnego r, zakres generowanych wartości orbity należy do przedziału [r(1 r/2), r/2]. Ponieważ wartość progu U może się zmieniać w procesie szyfrowania, nie 99

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH ma gwarancji, że będzie on w połowie tego przedziału. Badania wykorzystujące testy NIST potwierdzają tę obserwację (por. tabela 3.9). W [84] zaproponowano generator liczb pseudolosowych wykorzystujący równanie logistyczne oraz układ Lorenza. Z orbity chaotycznej odtwarzane są ciągi liczb o parametrycznej długości na podstawie wzoru R n Ax n mod S (3.64) Proponowane parametry to A = 10 7, S = 256. Wartość losowa o długości 8 bitów wykorzystywana jest w opracowanym szyfrze strumieniowym przeznaczonym do szyfrowania obrazu. Dodatkowe rozważania nad tym algorytmem, w tym nad wpływem wartości wykładnika Lapunowa na własności statystyczne przedstawiono w [63]. W analizie własności statystycznej w tej pracy wersja z odwzorowaniem Lorenza zostało pominięta, ponieważ jest to odwzorowanie chaotyczne w czasie ciągłym. W [135] przedstawiono algorytm szyfrowy Mmohocc wykorzystujący wzorce przeskakiwania między orbitami. Układ chaotyczny ma zastosowanie w generatorze ciągów losowych wykorzystywanym w procesie przeskakiwania. Proces generowania ciągów składa się z dwóch kroków: 1. Konwersja liczby rzeczywistej podwójnej precyzji x n < 1.0 do liczby całkowitej poprzez wymnożenie jej przez stałą 2 52 2. Podzielenie 4-bajtowej liczby całkowitej na 4 bajty: a, b, c i d. Wyjściem generatora są 2 liczby ośmiobitowe: u = a c, v = b d. Przedstawione powyżej generatory ciągów pseudolosowych wykorzystują do generowania bitów tylko jeden układ chaotyczny, dyskretny lub ciągły w czasie. W [71] przedstawiono podejście wykorzystujące 2 układy chaotyczne do generowania pseudolosowych ciągów bitów. Badane są dwie wartości orbity chaotycznej, x 1 i x 2. Bit wyjściowy generowany jest tylko w przypadku, gdy x 1 x 2. Funkcja wyjściowa określona jest wzorem: g(x 1, x 2 ) = { 1, x1 > x 2 0, x 1 < x 2 (3.65) Powyższy generator bitów pseudolosowych (CCS-PRBG) wykazuje się dużym bezpieczeństwem z powodu używania dwóch systemów chaotycznych. Kryptoanaliza jest utrudniona ponieważ generator wynik opiera na wyniku porównania orbit dwóch systemów chaotycznych. Funkcja generatora jest określona warunkami: 1, gdy x 1 > x 2 ; 0 gdy x 1 < x 0 ; brak reakcji gdy x 1 = x 2. Zarówno x 1, jak i x 2 są orbitami dwóch jednowymiarowych funkcji chaotycznych. 100

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Wykorzystanie dwóch dyskretnych układów chaotycznych w systemach o skończonej precyzji obliczeń wymaga zastosowania dodatkowych układów perturbacyjnych, w przeciwnym przypadku generowany ciąg staje się przewidywalny. W tym generatorze, jak w większości opisywanych w tym dokumencie generatorów ciągów pseudolosowych, w wyniku pojedynczej iteracji układu chaotycznego generowany jest 1 bit wyjściowy. Należy zauważyć, że przedstawiony algorytm przy wykorzystaniu funkcji logistycznej wygenerował ciąg pseudolosowy o maksymalnej długości około 7500 bitów. Problem ten nie występował po zastosowaniu funkcji odcinkami liniowej, jak proponuje się w [71]. W celu zwiększenia ilości bitów wyjściowych, w [71] sugeruje się zastosowanie Algorytmu 6 (str. 102). Zastosowanie tego algorytmu powoduje jednak pogorszenie cech statystycznych generatora. Wartości współczynnika proporcji dla wybranych spośród przedstawionych powyżej algorytmów przedstawiono w tabeli 3.9. Współczynnik proporcji dla danego testu oznacza ilość podsekwencji, dla których p-wartość była większa od współczynnika istotności α w stosunku do wszystkich podsekwencji (por. 2.4.1, str. 42). Dla badanych generatorów, minimalny poprawny współczynnik proporcji to 0.97. Tabela 3.9: Zestawienie współczynników proporcji wybranych generatorów ciągów pseudolosowych (sukces wytłuszczony, gdy wynik jest powyżej 0.96) Test (a) (b) (c) (d) (e) (f) Frequency (Monobit) 1.00 0.00 0.11 0.99 1.00 0.00 Frequency within a Block 0.97 0.00 0.00 0.98 1.00 1.00 Runs 0.98 0.00 0.96 1.00 0.00 0.00 Longest Run of Ones in a Block 0.93 0.00 0.98 1.00 0.00 0.98 Binary Matrix Rank 0.97 0.94 0.97 1.00 1.00 0.98 Discrete Fourier Transform 1.00 1.00 1.00 0.98 0.00 1.00 Non-overlapping Template Matching 0.99 0.40 0.96 0.99 0.11 0.68 Overlapping Template Matching 0.96 0.00 0.97 1.00 0.00 0.55 Universal 0.99 0.00 0.88 0.98 0.00 0.27 Lempel-Ziv 0.96 0.00 0.00 0.98 0.00 0.00 Linear Complexity 1.00 0.99 1.00 1.00 0.97 1.00 Serial 0.48 0.00 0.00 0.99 0.00 0.48 Approximate Entropy 0.04 0.00 0.00 1.00 0.00 0.00 Cumulative Sums 1.00 0.00 0.10 0.99 1.00 0.00 Random Excursions 0.99 0.00 0.98 1.00 0.28 0.00 Random Excursions Variant 0.99 0.00 1.00 0.99 0.95 0.00 Legenda tabeli 3.9: (a) generator opisany w [84] ; (b) generator opisany w [135], wartość u; (c) generator opisany w [135], wartość v; (d) podstawowy generator opisany w [71], (e) generator opisany w [71] z rotacją, (f) generator wpisany [3]. Kolumny (a-e) zawierają wartość współczynnika proporcji. 101

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Algorytm 6: Generowanie n bitów losowych z pojedynczej pary stanów chaotycznych Wejście: n wymagana długość ciągu Wyjście: k ciąg pseudolosowy 1 2 3 4 5 6 7 begin forall the j 0, 1, 2,..., n do x 1 (i, j) x 1 (i) j x 2 (i, j) x 2 (i) j k j (i) g(x 1 (i, j), x 2 (i, j)) endfall end 3.2.5 Funkcja wyjścia Funkcja wyjścia dokonuje wymieszania strumienia klucza z tekstem jawnym produkując w ten sposób szyfrogram. Najczęściej możliwe jest odtworzenia strumienia klucza wykorzystanego do generowania danego szyfrogramu posiadając odpowiadające sobie ciągi tekst jawny - szyfrogram. Z tego powodu dla kolejnych szyfrowań wykorzystany musi być za każdym razem inny strumień klucza. Funkcja wyjścia nie może jednak ujawnić żadnych wartości o stanie wewnętrznym szyfratora ani o kluczu. Kryptoanaliza szyfru M.S. Baptisty Szyfr M.S. Baptisty [13] został w [49] poddany kryptoanalizie ze względu na funkcję wyjścia, która określa ilość iteracji niezbędnych do osiągnięcia danego ɛ-interwału i zwraca tę liczbę jako znak szyfrogramu. Zastosowany został atak ze znanym tekstem jawnym. Dla podanego słowa subject odczytano wartości wygenerowane przez algorytm. Dla kolejnych dwuliterowych par: tekst jawny szyfrogram, odczytywano również wartości kryptogramu oraz określono ilość iteracji wymaganej dla każdej z liter, liczoną od wartości początkowej X 0 i porównano do odwzorowań pozyskanych wcześniej. Na tej podstawie można odtworzyć strumień klucza generowany przez funkcję filtra. W oryginalnej kryptoanalizie przyjęto, że już przy użyciu 4000 par tekst jawny - szyfrogram można uzyskać informację o 90% stanów szyfratora (wartości orbity funkcji logistycznej), w których następuje osiągnięcie interesującego ɛ-interwału, czyli ɛ-interwału, który odpowiada szyfrowanemu znakowi tekstu jawnego. Przeprowadzony atak, choć ujawnia pewne słabości algorytmu szyfrowego, ma ograniczone zastosowanie w rzeczywistej kryptoanalizie. Bazując na sposobie przeprowadzenia ataku oraz zasadzie działania algorytmu M.S. Baptisty, można wyciągnąć następujące wnioski (część z 102

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH nich jest zaczerpnięta z [73]): 1. Przedstawiony atak nie ma zastosowania dla algorytmów strumieniowych Powyższy atak pozwala na odtworzenie strumienia klucza wykorzystanego w pojedynczym szyfrowaniu, nie ma zatem praktycznego zastosowania w kryptoanalizie szyfrów strumieniowych. W przypadku synchronicznych szyfrów strumieniowych możliwe jest odtworzenie strumienia klucza na podstawie odpowiadających sobie bitów tekstu jawnego i szyfrogramu. Ponieważ w praktycznych rozwiązaniach strumień klucza powinien być różny dla różnych tekstów jawnych, taka informacja najczęściej nie ma zastosowania w kryptoanalizie. Jeżeli wszystkie znane teksty jawne zawierają najwyżej i znaków, jest niemal niemożliwe odszyfrowanie jakiegokolwiek tekstu, którego pozycja jest powyżej i. Dla danego tekstu jawnego, jeżeli jest znanych i par tekst jawny-szyfrogram, nie jest możliwe odgadnięcie jakichkolwiek dalszych liter szyfrogramu. Występuje tu również analogia do odtworzenia i pierwszych bitów strumienia klucza w klasycznych szyfrach strumieniowych. 2. Przedstawiony atak nie zdradza informacji o kluczu Pomimo uzyskania numerów ɛ-interwałów dla niektórych znaków tekstu jawnego, nie można uzyskać informacji o wartości orbity lub wartości zastosowanego parametru kontrolnego 3. Złożoność ataku jest porównywalna ze złożonością ataku metodą pełnego przeglądu Ze względu na wartości występowanie współczynnika η, średnio więcej niż jedna para szyfrogram - tekst jawny jest niezbędna aby odszyfrować moduł szyfrogramu. Ilość odnalezionych tekstów jawnych jest jednak mniejsza od ilości wykorzystanych szyfrogramów, ponieważ znaki tekstu jawnego mogą generować inną tablicę odwzorowania w różnych tekstach jawnych. Nie jest możliwe odszyfrowanie i tego znaku tekstu jawnego, jeżeli nie wszystkie poprzednie i 1 znaki są znane. Aby obliczyć i ty moduł szyfrogramu, wymagana jest znajomość wszystkich C 1... C i 1 znaków szyfrogramu, ponieważ n = i j=1 C j. Naturalną konsekwencją tego faktu jest absolutna niemożliwość odgadnięcia jakiegokolwiek znaku, jeżeli chociaż jeden z wcześniejszych nie jest znany. Chociaż powyższy atak nie udostępnia bezpośrednio wartości zastosowanego klucza szyfrowania, to jednak uzyskane informacje mogą być pomocne przy kryptoanalizie. W [2] przedstawiono alternatywny sposób odtworzenia strumienia klucza. Dla uproszczenia założony jest alfabet tekstu jawnego składający się tylko z dwóch symboli: S 2 = {s 1, s 2 }. 103

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Dodatkowe założenia to N 0 = 0, η = 0, x 0 = 0.232323, b = 3.78 oraz zakres wykorzystywanego atraktora [0.2, 08]. Zaszyfrowanie napisu P = {s 1, s 1, s 1, s 1,...} powoduje uzyskanie szyfrogramu C = {5, 3, 2, 2, 2, 3, 2, 3, 2, 2, 3, 2,...}. W ten sposób można odtworzyć część strumienia klucza: k = {x, x, x, x, x, s 1, x, x, s 1, x, s 1,...}. Następnie zbadano szyfrogram dla napisu P = {s 2, s 2,...}. Otrzymano ciąg C = {1, 2, 3, 9, 5, 7, 5, 1, 1, 1,...}. Odtworzona sekwencja strumienia klucza to: k = {x, s 2, x, s 2, x, s 1, s 2, x, s 1, x, s 1,...}. Pozostałe niewypełnione pozycje w strumieniu klucza to obszary zabronione atraktora, które wynikają z zastosowania wartości x min i x max. Powyższa analiza oparta była o atak typu wybrany szyfrogram. Zastosowanie ataku ze znanym lub wybranym tekstem jawnym wymaga zebrania odpowiednio dużej ilości par tekst jawny-szyfrogram i na ich podstawie wykonanie powyższej analizy. Ilość danych wymaganych do odtworzenia strumienia klucza powiększa się, jeżeli zastosowane jest N 0 > 0 lub η > 0. 3.2.6 Sprzężenie zwrotne Funkcja sprzężenia zwrotnego ma duże znaczenie w procesie tworzenia źródła danych dla generatora strumienia klucza. Ważne jest zatem, aby nie dokonać kompromitacji stanu wewnętrznego szyfru, co doprowadziło by do uzyskania istotnych informacji o kluczu. W 3.2.6 przedstawiona jest kryptoanaliza chaotycznego szyfru strumieniowego wykorzystująca lukę w funkcji sprzężenia zwrotnego w celu odtworzenia składników klucza. Kryptoanaliza chaotycznego szyfru strumieniowego Poniżej przedstawiony jest atak na funkcję sprzężenia zwrotnego algorytmu szyfrowego opisanego w [90], pozwalający uzyskać wszystkie wartości klucza. Atak jest kombinacją ataków z wybranym szyfrogramem i z wybranym tekstem jawnym. Zasada polega na wzbudzeniu układu chaotycznego w ten sposób, aby jeden z systemów wkroczył w obszar niedozwolony. Najlepiej aby kolejna wartość orbity była nie liczbą (ang. Not a Number, NaN ) lub nieskończonością. Dla układu x n+1 = f(x n, λ) nie jest to możliwe, ponieważ należy założyć, że wartość parametru kontrolnego została dobrana w sposób prawidłowy, czyli λ (3.57, 4). Wartość początkowa prawdopodobnie też została dobrana prawidłowo, czyli x 0, x 0 (0, 1). Uwikłanie operacji bitowej różnicy symetrycznej w funkcję układu x n+1 = f(x n, λ) umożliwia skuteczny atak na algorytm. Aby przeprowadzić atak, należy najpierw określić wartości x 0 x 0 i f(x 0, λ) f(x 0, λ). Uzyskać je można poprzez odszyfrowanie szyfrogramu określonego ciągiem C 2 = (0, 0). Z godnie z algorytmem deszyfrującym, uzyskamy wówczas ciąg P 2 = (x 0 x 0 0, f(x 0, λ) 104

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH f(x 0, λ) 0) = (x 0 x 0, f(x 0, λ) f(x 0, λ)) (szczegóły przedstawiono w tabeli 3.10). Ciąg ten posłuży do spreparowania odpowiedniego ciągu tekstu jawnego, który wzbudzi układ w stan niedozwolony. Układ chaotyczny x n+1 = f(x n, λ) zostanie wzbudzony, gdy jego argumentem (poprzednią wartością orbity) będzie bardzo duża liczba binarna. Nie można tego efektu uzyskać w pierwszym kroku: wartość orbity zależy od x 0, a ponieważ każda wartość orbity funkcji logistycznej jest w przedziale (0, 1), należy założyć, że wartość początkowa również należy do tego przedziału. Reprezentacja binarna liczby zmiennopozycyjnej zgodnie z specyfikacją IEEE-754 [46] zawiera w najstarszym bajcie wartość 0x3f. Wprowadźmy stałą Imax (maksymalna wartość liczby całkowitej bez znaku o długości binarnej równej długości reprezentacji binarnej liczby zmiennopozycyjnej): Imax = 0xffffffffffffffff (3.66) Zgodnie z [46], jej wartość to 2 1023. Dodatkowo wprowadźmy oznaczenie I large = 0xffd 2 d 3...d 15 (3.67) Wartością I large jest liczba, która jako najstarszy bajt zawiera wartość 0xFF, natomiast pozostałe cyfry (szesnastkowo) są nieokreślone. Przekazanie do funkcji szyfrującej jako pierwszego bloku wartości β 0 = Imax 1.0 x 0 x 0, x 0 x 0 (3.68) uzyskanej z pierwszego kroku spowoduje, że x 1 = β 0 x 0 x 0 f(x 0, λ) = I large będzie bardzo dużą liczbą binarną. Wynika to z faktu, że sam wynik operacji na funkcji logistycznej będzie miał reprezentację binarną z wartością najstarszego bajtu równą 0x3f, którą eliminuje w znaczącym stopniu wartość 1.0. Wartość P 0 eliminuje przekazanie jej samej (pozyskanej z pierwszego kroku) jako składnik t 0. Powyższa operacja spowoduje wzbudzenie układu. Aby uzyskać pierwszą część klucza, a jest nią w tym przypadku f 2 (x 0, λ), jako drugi blok należy zaszyfrować wartość wyrażenia β 1 = Imax 1.0 f(x 0, λ) f(x 0, λ) (3.69) Podobnie, jak w przypadku pierwszego bloku, wartość f(x 0, λ) f(x 0, λ) uzyskuje się z etapu wstępnego ataku. Przekazanie tej wartości do odszyfrowania w drugim bloku spowoduje, że x 2 =. Wynika to z faktu, że poprzednia wartość x 1 była bardzo dużą liczbą binarną, zapisaną na wszystkich bitach reprezentacji binarnej liczby zmiennopozycyjnej. Funkcja logistyczna jest funkcją kwadratową, zatem po podniesieniu do kwadratu, na reprezentację bi- 105

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH narną niezbędne jest dwa razy więcej miejsca niż jest dostępnego, zatem pakiet matematyczny zwraca w tym przypadku wartość nieskończoną. Dodatkowo, wartość C 1 = 0, zatem nie zmienia ani jednego bitu wartości x 2. Wartość zerowa wynika z faktu, że C 1 = t 1 P 1 = Imax 1.0 f(x 0, λ) f(x 0, λ) f(x 0, λ) C 0 f(x 0, λ) = I max 1.0 f(x 0, λ) f(x 0, λ) Imax 1.0 x 0 x 0 x 0 x 0 = 0. Tabela 3.10: Inicjowanie ataku z wybranym szyfrogramem C 2 = (0, 0) n x n x n P n C n t n f(x n ) f(x n) 0 x 0 x 0 x 0 x 0 0 x 0 x 0 f(x 0 ) f(x 0 ) 1 f(x 0 ) f(x 0 ) f(x 0) f(x 0 ) 0 f(x 0) f(x 0 ) f 2 (x 0 ) f 2 (x 0 ) Tabela 3.11: Przeprowadzenie ataku z wybranym tekstem jawnym t 3 = (β 0, β 1, 0) n x n x n P n C n t n f(x n ) f(x n) 0 x 0 x 0 x 0 x 0 Imax 1.0 β 0 f(x 0 ) f(x 0 ) 1 I large f(x 0 ) I large f(x 0 ) 0 β 1 f 2 (x 0 ) 2 f 2 (x 0 ) f 2 (x 0 ) f 2 (x 0 ) 0 f 3 (x 0 ) 3 f 2 (x 0 ) f 3 (x 0 ) f 2 (x 0 ) f 3 (x 0 ) f 3 (x 0 ) f 4 (x 0 ) Tabela 3.12: Przeprowadzenie ataku z wybranym tekstem jawnym t 4 = (β 0, β 1, f 2 (x 0, λ), 0) n x n x n P n C n t n f(x n ) f(x n) 0 x 0 x 0 x 0 x 0 Imax 1.0 β 0 f(x 0 ) f(x 0 ) 1 I large f(x 0 ) I large f(x 0 ) 0 β 1 f 2 (x 0 ) 2 f 2 (x 0 ) f 2 (x 0 ) f 2 (x 0 ) f 3 (x 0 ) 3 0 f 3 (x 0 ) f 3 (x 0 ) f 3 (x 0 ) 0 0 f 4 (x 0 ) 4 f 3 (x 0 ) f 4 (x 0 ) f 3 (x 0 ) f 4 (x 0 ) f 4 (x 0 ) f 5 (x 0 ) Po wykonaniu powyższego kroku wiadomo, że aktualna wartość orbity układu x n+1 = f(x n, λ) =. Wartość ta ma określoną reprezentację binarną. W kolejnym kroku należy zaszyfrować blok t 2 = 0, otrzymując C 2 = x 2. Wartości poszczególnych zmiennych i wyrażeń przedstawiono w tabeli 3.11. Ostatecznie wyznacza się x 2 ze wzoru (3.70) x 2 f 2 (x 0, λ) = C 2 (3.70) Aby uzyskać wszystkie niezbędne wartości klucza (a wiadomo, że x n = x n P n, P n uzyskano z pierwszego etapu kryptoanalizy), potrzebna jest również wartość jednego z następnych punktów orbity układu f(x n, λ) lub f(x n, λ). Aby go otrzymać, należy jeszcze raz przeprowadzić proces szyfrowania dwóch pierwszych bloków (po zresetowaniu stanu wewnętrznego szyfratora) oraz zaszyfrować jako trzeci blok uzyskaną przed chwilą wartość f 2 (x 0, λ), a jako 106

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH czwarty liczbę 0. Spowoduje to, że wartość x 3 = 0, a w wyniku szyfrowania bloku o wartości 0, otrzymuje się C 3 = x 3 (C 3 = P 3 0 = x 3 0 0 = x 3 ). Wartości parametrów i wyrażeń przedstawiono w tabeli 3.12. Znając wartość x 2 i x 3, parametr kontrolny λ oblicza się ze wzoru (3.71) λ = x 3 x 2 (1 x 2 ) (3.71) Wartość x 1 obliczyć można ze wzoru na iterację w kierunku przeciwnym po funkcji logistycznej określonym równaniami (3.72) Przykład 6 Atak na wartości klucza x n 1 = Załóżmy, że (nieznane) klucze szyfrowania to: 1 1 4 x n λ 2 1+ lub 1 4 x n λ 2 (3.72) λ = 3.57, Odszyfrujmy ciąg x 0 = 0.4 = 0x3fd999999999999a, x 0 = 0.77 = 0x3fe8a3d70a3d70a4. C 2 = {0x0000000000000000, 0x0000000000000000}. Kolejne wartości układów chaotycznych deszyfratora zawiera tabela 3.13 (reprezentacja dziesiętna jest zaokrąglona). W wyniku deszyfrowania uzyskamy ciąg P 2 = {0x00313a4e93a4e93e, 0x000f51b9da190082}. Tabela 3.13: Stany deszyfratora w fazie inicjowania n x n x n (hex) x n x n (hex) 1 0.8568 0x3feb6ae7d566cf41 0.632247 0x3fe43b5e0f7fcfc3 2 0.4380167232 0x3fdc08774b4faf7b 0.83006331 0x3fea8fe0ee102230 107

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Następnie wyznaczamy wartość β 0 = 0xffffffffffffffff 0x3ff0000000000000 0x00313a4e93a4e93e Zatem β 0 = 0xc03ec5b16c5b16c1. Zgodnie z [46], wartość 0x3ff0000000000000 to reprezentacja binarna liczby rzeczywistej 1.0, a 0xffffffffffffffff to wartość oznaczona wcześniej jako Imax. Podobnie wyznaczmy wartość β 1 = 0xffffffffffffffff 0x3ff0000000000000 0x000f51b9da190082 Po obliczeniach β 1 = 0xc000ae4625e6ff7d. Następnie dokonajmy zaszyfrowania ciągu t 3 = {β 0, β 1, 0}, czyli: t 3 = {0xc03ec5b16c5b16c1, 0xc000ae4625e6ff7d, 0x0000000000000000}. Kolejne stany szyfratora przedstawione są w tabeli 3.14 (reprezentacja dziesiętna jest zaokrąglona). Jak widać, wartość x 1 = 0xffe495182a9930be to wartość oznaczona wcześniej jako I large. Nie wiadomo dokładnie jaka to wartość będzie (zależy od argumentu, a on od kluczy szyfratora), ale na pewno będzie to wartość spoza dopuszczalnego zakresu (0, 1) (w tym przykładzie I large = 1.1562 10 308 ) powodując wzbudzenie układu chaotycznego w następnym kroku. Istotnie, wartość x 2 =. Jako efekt dodatkowy można zauważyć, że stan układu x przeskoczył do układu x w trzecim kroku. Wynika to bezpośrednio z konstrukcji ciągu przekazanego do szyfrowania. W wyniku zaszyfrowania ciągu t 3 otrzymujemy ciąg C 3 = {0xc00fffffffffffff, 0x0000000000000000, 0xc01a8fe0ee102230}, w którym ostatni element to x 2 (wynika to z tabeli 3.11). Ze specyfikacji [46], co potwierdza również tabela 3.14 wiadomo, że = 0xfff0000000000000, zatem x 2 = C 3 (2): x 2 = 0xfff0000000000000 0xc01a8fe0ee102230 = 0x3fea8fe0ee102230. Ostatecznie x 2 = 0, 83006331. Zgodnie z procedurą postępowania opisaną w poprzednim punkcie, następnie należy dokonać zaszyfrowania bloku t 4 = {β 0, β 1, x 2, 0}. Zatem szyfru- 108

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH Tabela 3.14: Stany szyfratora w trakcie wzbudzania n x n x n (hex) x n x n (hex) 1 1.1562 10 308 0xffe495182a9930be 0.632247 0x3fe43b5e0f7fcfc3 2 0xfff0000000000000 0.83006331 0x3fea8fe0ee102230 3 0.83006331 0x3fea8fe0ee102230 0.50357782 0x3fe01d4f391519b3 Tabela 3.15: Stany szyfratora w momencie uzyskiwania wartości x 3 n x n x n (hex) x n x n (hex) 1 1.1562 10 308 0xffe495182a9930be 0.632247 0x3fe43b5e0f7fcfc3 2 0xfff0000000000000 0.83006331 0x3fea8fe0ee102230 3 0.0 0x0000000000000000 0.50357782 0x3fe01d4f391519b3 4 0.50357782 0x3fe01d4f391519b3 0.89245430 0x3fec8efc52a48605 jemy ciąg: t 4 = {0xc03ec5b16c5b16c1, 0xc000ae4625e6ff7d, 0x3fea8fe0ee102230, 0x0000000000000000} Stany wewnętrzne szyfratora przedstawione są w tabeli 3.15 (wartości dziesiętne są zaokrąglone). W wyniku szyfrowania otrzymujemy ciąg: C 4 = {0xc00fffffffffffff, 0x0000000000000000, 0xfff0000000000000, 0x3fe01d4f391519b3} Ostatnia wartość w ciągu to x 3 = 0.50357782. Znając wartości x 3 i x 2 można obliczyć wartość klucza λ zgodnie ze wzorem (3.71). Po dokonaniu obliczeń λ = x 3 x 2 (1 x 2 ) = 0.50357782 0.83006331 (1 0.83006331) = 3.57. Znając wartości λ, x 3 i x 2 obliczamy wartość x 1 zgodnie ze wzorem (3.72): x 1 = 1 1 4 x 2 λ 2 = 1 1 4 0.83006331 3.57 2 = 0.367753 lub x 1 = 1 + 1 4 x 2 λ 2 = 1 + 1 4 0.83006331 3,57 2 = 0.632247 Z możliwych dwóch wyników wartości x 1 obliczamy cztery potencjalne klucze x 0. Jeden z nich jest właściwy. Stosujemy analogicznie wzór (3.72), jednak z wartościami wyjściowymi 0.367753 i 0.632247. Otrzymujemy cztery możliwe wartości klucza (niektóre wartości są za- 109

ROZDZIAŁ 3. ANALIZA SZYFRÓW CHAOTYCZNYCH okrąglone): 0.77, 0.23, 0.8833900, 0.1166099. Poprawnym kluczem w tym przypadku jest 0,77. Aby wyznaczyć wartość klucza x 0 należy wykonać operację xor na wartości klucza x 0 i pierwszym elemencie ciągu P 2. Zatem: x 0 = 0x3fe8a3d70a3d70a4 0x00313a4e93a4e93e = 0x3fd999999999999a. Ostatecznie x 0 = 0.4. W ten sposób uzyskaliśmy całą trójkę liczb będących kluczem szyfru. 3.2.7 Zależność od implementacji W przypadku szyfrów [56] lub [42] zastosowana implementacja liczb zmiennopozycyjnych ma znaczący wpływ na możliwość odtworzenia tekstu jawnego. Jeżeli zostanie zastosowana inna implementacji w odbiorniku niż w nadajniku, wówczas mogą wystąpić następujące problemy: 1. Zapisana binarnie liczba nie zostanie w sposób poprawny odczytana. Dalszy proces odszyfrowania jest niemożliwy. 2. Zapisana binarnie liczba zostanie odczytana poprawnie, jednak z powodu różnej precyzji obliczeń i wykładniczej wrażliwości układu na warunki początkowe, wynik odszyfrowania będzie zupełnie odmienny od oryginalnego tekstu jawnego. 3. Zapisana binarnie liczba zostanie odczytana poprawnie, jednak z powodu różnej implementacji i różnych błędów zaokrągleń, wynik odszyfrowania będzie zupełnie odmienny od oryginalnego tekstu jawnego. Powyższe zagrożenia mają zastosowanie również do błędnie odczytanego i przetwarzanego klucza. Aby temu zapobiec w opisie szyfru należy umieścić szczegółowe informacje na temat zastosowanej implementacji liczb zmiennopozycyjnych oraz formatu zapisywanych (i odczytywanych) danych. Pewnym ułatwieniem w realizacji programowej może być zastosowanie jednego ze standardowych formatów zapisu liczb zmiennopozycyjnych, jak np. IEEE-754 [46]. W szyfrze [90] założono 16- bitowy format dziesiętny, jednak bardziej naturalnym jest użycie szeroko stosowanego formatu liczb zmiennopozycyjnych IEEE-754 [46]. W rzeczywistości zastosowanie liczby zmiennopozycyjnej podwójnej precyzji powoduje, że algorytm szyfrowy jest bardziej odporny na atak metodą pełnego przeglądu. 110

Rozdział 4 Metoda i jej zastosowanie W rozdziale przedstawiona jest propozycja własnych rozwiązań dla poszczególnych komponentów chaotycznego szyfru strumieniowego. Rozwiązania spełniają wymagania poprawności projektowej, której miarą jest odporność na kryptoanalizę przeprowadzoną w 3.2. Analizowane w 3 szyfry zostały zmodyfikowane z zastosowaniem własnych propozycji komponentów szyfru. Następnie została przeprowadzona ponowna kryptoanaliza tak zmodyfikowanych algorytmów w celu przedstawienia poziomu bezpieczeństwa szyfru po zastosowaniu zmian. 4.1 Proces projektowania szyfru Metoda projektowania szyfrów polega na dekompozycji algorytmu szyfrowego na komponenty realizujące poszczególne zadania szyfratora lub na identyfikacji tych komponentów w algorytmie poddawanym procesowi przeprojektowania. Projektowanie jest procesem iterowanym, składającym się z podprocesów projektowania poszczególnych komponentów (rysunek 4.1, str. 112). Po zaprojektowaniu poszczególnych komponentów konieczna jest analiza rozwiązania z punktu widzenia potencjalnych ataków (por. 3.2). Poniżej opisano składniki klucza, funkcję zmiany stanu, funkcję filtra, funkcję wyjścia oraz funkcję sprzężenia zwrotnego. Ponadto przedstawiona jest procedura inicjowania szyfru. Przedstawiono własne propozycje rozwiązań, w których starano się zapewnić następujące własności bezpiecznego szyfru chaotycznego: 1. Bezpieczeństwo klucza 2. Bezpieczeństwo stanu wewnętrznego szyfratora 111

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE Start Zaprojektowanie funkcji zmiany stanu Określenie klucza Nie Analiza projektu Czy uzyskano zadowalające wyniki Tak Określenie procesu inicjowania szyfru, przekształceń wejściowych i wyjściowych Zaprojektowanie funkcji filtra Analiza projektu Czy uzyskano zadowalające wyniki Tak Zaprojektowanie funkcji wyjścia Zaprojektowanie funkcji sprzężenia zwrotnego Określenie złożoności ataku - kryptoanaliza szyfru Czy uzyskano zadowalające wyniki Tak Stop Rysunek 4.1: Proces projektowania szyfru 112

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE 3. Niepowtarzalność strumienia klucza 4. Nieprzewidywalność strumienia klucza Bezpieczeństwo klucza musi być zapewnione, aby uniknąć jego kompromitacji w momencie wycieku stanu wewnętrznego szyfratora. Odpowiednia długość klucza zwiększa odporność algorytmu na atak metodą pełnego przeglądu. Od jakości klucza zależy najczęściej sposób zachowania się układu chaotycznego. Stan wewnętrzny szyfratora nie powinien być osiągalny nawet przy pozyskaniu strumienia klucza oraz nie może być kontrolowany przez atakującego. Niepowtarzalność strumienia klucza jest wymagana, aby uniknąć ataku analogicznego do użycia wielokrotnie tego samego klucza w przypadku szyfru z kluczem jednorazowym. Nieprzewidywalność strumienia musi być zapewniona, aby na podstawie poprzedniego strumienia klucza nie można było odtworzyć pozostałej jego części. Ze względu na dużą wrażliwość układów chaotycznych na warunki początkowe oraz parametry kontrolne, zastosowana implementacja liczb zmiennopozycyjnych oraz sposób przeprowadzenia obliczeń muszą być określone w sposób jednoznaczny. W szczególności odwzorowanie chaotyczne wykorzystane do szyfrowania jak i do deszyfrowania powinno być identyczne. W przeciwnym przypadku proces deszyfrowania może być niemożliwy do zrealizowania. Analiza szyfrów iterowanych dwukierunkowo, ujawniająca ten problem, została przedstawiona w 3.2.3, str. 75. Wartość klucza, tekstu jawnego lub szyfrogramu może być również błędnie odczytana z nośnika pamięci masowej powodując działanie szyfratora niezgodnie z oczekiwaniami (por. 3.2.7, str. 110). W procesie projektowania szyfru należy odpowiedzieć na pytanie, jakie jest przeznaczenie algorytmu. W zależności od przeznaczenia, czas zachowania wiadomości w sekrecie, a zatem siła ataku metodą pełnego przeglądu może być inna: polecenie zakupu akcji powinno być zachowane w sekrecie przez kilka minut, natomiast tajemnice rządowe mogą wymagać utajnienia przez czas nieokreślony [80]. Złożoność ataku metodą pełnego przeglądu wynika bezpośrednio z długości klucza szyfru (w przypadku szyfrów chaotycznych kluczem są najczęściej parametry kontrolne). W procesie projektowania algorytmu szyfrowego należy zatem przyjąć taką ilość (lub klasę) odwzorowań chaotycznych, aby zapewnić pożądany poziom bezpieczeństwa z punktu widzenia ataku metodą pełnego przeglądu. Zwiększenie ilości odwzorowań chaotycznych może powodować jednak spadek efektywności algorytmu. Jak napisano w [93], szyfr strumieniowy musi charakteryzować się między innymi długim okresem cyklu. Orbita chaotyczna charakteryzuje się teoretycznie nieskończoną długością. W realizacji komputerowej istnieją jednak ograniczenia narzucane przez format zastosowanych liczb zmiennopozycyjnych. W przypadku powszechnie stosowanego formatu IEEE-754, liczba 113

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE zmiennopozycyjna o podwójnej precyzji zapisana jest w słowie o długości 64 bitów. Z tego powodu maksymalny okres orbity chaotycznej w takim przypadku wynosi 2 64 iteracji. Układ generujący dany ciągi bitów o okresie 2 p może być zbudowany z liniowego rejestru przesuwnego (ang. Linear Feedback Shift Register, LFSR) o długości p bitów z wykorzystaniem algorytmu Berlekamp-Massey [93]. W ten sposób możliwa jest symulacja reprezentacji binarnej dynamiki układu chaotycznego dla zadanej wartości klucza. Aby wydłużyć okres cyklu generatora, należy dokonać kombinacji układów chaotycznych o długościach okresu cyklu względnie pierwszych ze sobą. Długość okresu cyklu tak utworzonego generatora wynosi P = NW W (p 1, p 2,..., p n ) (4.1) gdzie n ilość zastosowanych odwzorowań chaotycznych, p i okres cyklu i-tego odwzorowania. W procesie projektowania szyfru należy zatem połączyć ze sobą taką ilość układów chaotycznych, aż uzyskana długość cyklu zostanie uznana za satysfakcjonującą. 4.1.1 Funkcja zmiany stanu Znajomość dynamiki układu chaotycznego pozwala na analizę szyfru z punktu widzenia stanu wewnętrznego szyfratora. Procedura projektowania szyfru (rysunek 4.2) wymaga na wstępnie określenia dokładnej precyzji oraz standardu zapisu liczb zmiennopozycyjnych. Ma to duże znaczenie ze względu na wrażliwość układu chaotycznego. Zastosowane odwzorowanie chaotyczne nie może pracować w obszarze niechaotyczności, gdyż w przeciwnym przypadku orbita dąży do atraktora jedno- lub kilkupunktowego. Przypadek taki został przedstawiony w 3.2.3, str. 76 w przypadku szyfru Pareeka. Należy mieć świadomość obszarów chaotyczności zastosowanych odwzorowań chaotycznych poprzez zbadanie basenów atrakcji tych odwzorowań. Ponieważ basen atraktora chaotycznego może być obszarem nieregularnym, dlatego dla wybranych wartości parametru kontrolnego należy obliczyć wartość wykładnika Lapunowa. Operacja ta może być przeprowadzona w procesie inicjowania szyfru (opisano w 4.1.3). Znaczenie ma rozkład gęstości prawdopodobieństwa zastosowanych odwzorowań chaotycznych. Nierównomierność rozkładu prawdopodobieństwa może zdradzać informację transformacji, którą wykonano na wartości orbity w procesie szyfrowania. Przypadek taki został przedstawiony w 3.2.3, str. 78 w przypadku szyfru DCC. Niestety, równomierny rozkład prawdopodobieństwa występuje jedynie dla odwzorowań odcinkami liniowych [91]. Z tego powodu, jeżeli charakterystyka funkcji rozkładu prawdopodobieństwa nie jest ukrywana przez funkcję filtra, można zastosować odwzorowanie o rozkładzie zbliżonym do równomiernego lub zastosować tylko taką część atraktora, dla której rozkład jest niemal równomierny. 114

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE Start Wybór implementacji i precyzji liczb zmiennopozycyjnych Wybór odwzorowania chaotycznego Określenie zakresu wartości parametrów kontrolnych Określenie obszarów chaotyczności Nie Określenie funkcji gęstości prawdopodobieństwa Czy uzyskano zadowalające wyniki Tak Stop Rysunek 4.2: Projektowanie funkcji zmiany stanu Dynamika układu nie powinna być jawna. Nie znając dokładnej dynamiki układu, nie jest możliwe odtworzenie stanu wewnętrznego lub parametrów kontrolnych, z powodu wykładniczej wrażliwość układu chaotycznego na warunki początkowe oraz parametry kontrolne. Przedstawiona w 3.2.3, str. 72 kryptoanaliza wykorzystywała znajomość dynamiki układu w celu odtworzenia wartości parametru kontrolnego z wykorzystaniem wielomianów linii krytycznych. Rodzaj zastosowanego odwzorowania chaotycznego zdradza ponadto diagram powrotów. W 3.2.2, str. 70 przedstawiono możliwość ataku przesuwnego z powodu znajomości dynamiki układu. Zastosowane odwzorowania chaotyczne dobrze jest zatem uzależnić od dużej ilości parametrów kontrolnych. Zakrywa się wówczas dynamikę zastosowanego odwzorowania. Propozycja odwzorowania chaotycznego: ogólna postać odwzorowań unimodalnych Przedstawione w poprzednich rozdziałach przekształcenia charakteryzowały się różnymi własnościami dynamiki w funkcji parametru kontrolnego. Odwzorowania ciągłe, o dokładnie 2 115

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE przeciwobrazach można zapisać w postaci ogólnej zgodnie ze wzorem (4.2): ( γ 1 F (x, α, β, γ) = ( γ 1 β x 1 β β x β α ) α ), β < x < 1, 0 < x < β (4.2) Równanie to jest zależne od 3 parametrów kontrolnych: α - gładkość odwzorowania, β - stopień pochylenia krzywej, γ - współczynnik wysokości (por. rysunek 4.3). 1 Zmiana parametru alpha 1 Zmiana parametru beta 1 Zmiana parametru gama 0.9 0.9 0.9 0.8 0.8 0.8 0.7 0.7 0.7 0.6 0.6 0.6 f(x) 0.5 f(x) 0.5 f(x) 0.5 0.4 0.4 0.4 0.3 0.3 0.3 0.2 0.2 0.2 0.1 0.1 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x x x Rysunek 4.3: Zmiana współczynnika α, β oraz γ. Szczególne przypadki przekształcenia przedstawiono w tabeli 4.1. Kontrolując odpowiednio parametry α, β i γ można uzyskać wszystkie przedstawione poprzednio odwzorowania unimodalne. W celu określenia zbiorów parametrów kontrolnych, dla których układ dynamiczny zachowuje się w sposób chaotyczny, oblicza się wartości wykładnika Lapunowa dla orbity generowanej przez układ dynamiczny o założonych parametrach kontrolnych. Po przeprowadzeniu symulacji wyznaczono baseny atrakcji dla atraktora chaotycznego (dodatni wykładnik Lapunowa) oraz dla atraktora składającego się ze skończonego zbioru. Basen atrakcji (przyciągania) jest to taki zbiór punktów przestrzeni stanów, że wybór dowolnego warunku początkowego należącego do tego zbioru powoduje ewolucję układu do określonego atraktora. Na rysunkach 4.4 przedstawiono baseny atrakcji dla pewnych wybranych wartości parametru kontrolnego α {0.5, 0.8, 1.0, 1.3, 1.5, 2.0} oraz dla pełnego zakresu wartości parametrów β (0, 1) oraz γ (0, 1). W kolorze czarnym przedstawiono obszary atraktora chaotycznego, w kolorze białym niechaotycznego. Niewielkie obszary w kolorze szarym określają wartości parametrów kontrolnych dla których orbita układu osiągnęła wartości + lub. Wykorzystując wzór (4.2), można uzyskać różne stosowane obecnie w kryptografii funkcje chaotyczne. Analizując baseny atrakcji można stwierdzić, że uzyskuje się dużą swobodę w doborze parametrów kontrolnych w pewnym zakresie. W najgorszym przypadku przestrzeń 116

ROZDZIAŁ 4. METODA I JEJ ZASTOSOWANIE Tabela 4.1: Szczególne przypadki trójparametrowego odwzorowania ciągłego α β γ opis 1 0.5 (0.5, 1] odwzorowanie namiotowe 1 (0, 1) 1 ukośne odwzorowanie namiotowe 2 0.5 (s /4, 1] odwzorowanie logistyczne 2 (0, 1) 1 ukośne odwzorowanie logistyczne (0.5, ) 0.5 1 ogólne odwzorowanie symetryczne 1 1 1 γ γ γ 0 0 β 1 1 0 0 β 1 1 0 0 β 1 1 γ γ γ 0 0 β 1 0 0 β 1 0 0 β 1 Rysunek 4.4: Baseny atrakcji dla α = 0.5, 0.8, 1.0, 1.3, 1.5, 2.0 wartości parametrów kontrolnych α β = (1.0, ) (0, 1). Wartość parametru γ może się zmieniać w zakresie (0.5, 1), jednak czy układ będzie zachowywać się w sposób chaotyczny zależy od wartości pozostałych parametrów. Np. dla α = 2.0, γ (s, 4), gdzie s 3.57 to punkt Feigenbauma [88]. Zakres parametru γ dodatkowo zawęża wartość parametru β. To czy układ jest dla danej kombinacji parametrów chaotyczny, należy sprawdzić każdorazowo badając wartość wykładnika Lapunowa. Ograniczenia Zaproponowane ogólne odwzorowanie unimodalne działa w dziedzinie liczb rzeczywistych w zakresie liczb (0, 1). Z tego powodu, przy każdej operacji liczb zmiennopozycyjnych powstaje 117