Budowanie szyfrów blokowych: nowe możliwoÅci
Budowanie szyfrów blokowych: nowe możliwoÅci
Budowanie szyfrów blokowych: nowe możliwoÅci
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 3nama) może być szyfrem bezpiecznym (jest to jedyny znany szyfr o takiejwłasności). Druga jest gorsza: ciąg bitów będący kluczem musi być ciągiemczysto losowym, co w praktyce oznacza, że nie istnieje reguła opisująca tenciąg krótsza od samego ciągu [3], [10]. Zatem w praktyce przed operacjamiszyfrowania i odszyfrowania należy taki ciąg dostarczyć (w bezpieczny sposób)do obu komunikujących się stron, co może być równoważne bezpiecznemuprzesłaniu samej wiadomości, ponieważ długość klucza jest taka sama,jak długość tekstu odkrytego.Jak zatem uniknąć tego problemu? W praktyce najczęściej stosowanesą dwie metody. Jedna polega na równoczesnemu wytwarzaniu ciągów bitówu nadawcy i u odbiorcy wiadomości z wykorzystaniem odpowiedniozaprojektowanych algorytmów matematycznych, gwarantujących pseudolosowe(czyli nieodróżnialne od losowych) własności tych ciągów. Metoda tabyła już przedstawiona w [15]. Inna metoda bezpiecznego przesyłania wiadomościpolega na wykorzystaniu szyfrów <strong>blokowych</strong>. Ta właśnie metodajest tematem dalszych rozważań niniejszej pracy.1. Szyfry blokowe. W szyfrach <strong>blokowych</strong> strumień informacji jestdzielony na bloki o skończonej długości. Zwykle (w różnych praktycznie stosowanychszyfrach) taki blok ma 64, 128, 192 lub 256 bitów. Szyfrowanie polegateraz na takim przekształceniu bloku bitów (tekstu odkrytego) w innyblok bitów o takiej samej długości (szyfrogram), aby na podstawie znajomościsamego szyfrogramu nie można było ani uzyskać poprawnej wartościbitów (całego bloku lub kilku bitów) tekstu odkrytego, ani ustalić sposobu,w jaki dokonano tego przekształcenia. Pozostaje teraz odpowiedzieć na pytanie:Jakie cechy musi mieć takie przekształcenie (szyfr blokowy), aby możnauznać, że jest ono bezpieczne? Próba odpowiedzi na to pytanie jest celemtej pracy.Zacznijmy od sformułowania problemu. Szyfr blokowy jest odwzorowaniempostaci(6)F K (·) :{0, 1} l →{0, 1} l ,czyli odwzorowującym blok bitów o długości l na blok bitów o takiej samejdługości, zależnym od parametru K (tajnego klucza), będącego równieżciągiem bitów. Zakładamy przy tym, że odwzorowanie to jest wzajemniejednoznaczne dla każdego ustalonego K, a zatem posiada odwzorowanie odwrotneFK −1 (·). Jak widać z (6), parametrami szyfru są dwie liczby:• długość bloku wiadomości/kryptogramu — l bitów;• długość klucza — k bitów.W tym miejscu należy wyjaśnić, że współczesne konstrukcje szyfrów(poza zastosowaniami specjalnymi) swoje bezpieczeństwo opierają na za-
6 Z. Kotulskioperacji podstawienia dużych bloków wejściowych na kilka równoległychoperacji podstawienia mniejszych bloków (podbloków). Operacje działającena podblokach oznaczono jako S ij . Zazwyczaj nazywane są one skrzynkamipodstawieniowymi (S-box) ( 2 ). Powyższa dekompozycja warstwy podstawieńjest dokonana w celu ułatwienia możliwości zaprogramowania operacji nieliniowejoraz łatwiejszej analizy jej bezpieczeństwa.Rys. 2. Schemat rundy DESOprócz odpowiedniego doboru rodzaju operacji liniowych i nieliniowychw każdej rundzie szyfru, ważne jest ustalenie liczby wykonywanych rund.Więcej rund to dłuższy czas wykonywania operacji, ale i większe (w zasadzie)bezpieczeństwo. W powszechnie znanych szyfrach liczba ta wahasię od m = 6 (dla szyfru Hierocrypt-3 o długości bloku 128 bitów) przezm =16(dlaDES)dom =32(dlaalgorytmuSerpent)( 3 ). O ile zapisiteracyjny szyfru blokowego wydaje sie prosty i łatwy do prześledzenia,to próba określenia zależności między bitami bloku wejściowego całego szyfrua bitami jego bloku wyjściowego jest niezmiernie trudna. Na rysunku 2(por. [24], [8]) przedstawiono taką zależność, dla ustalonej wartości klucza,dla jednej rundy algorytmu DES. Jak widać, taki schemat szyfru blokowegopozwala śledzić wpływ każdego z bitów na wejściu (rundy, skrzynki podsta-( 2 ) Na rysunku 1 bity bloku wejścia pierwszej rundy oznaczono jako m j , j =1,...,12 (odsłowa message — wiadomość), natomiast bity wyjścia ostatniej rundy jako c j , j =1,...,12 (odsłowa ciphertext — kryptogram).( 3 ) Wyjątkiem jest tu szyfr blokowy Godsave, który ma tylko jedną rundę z bardzo skomplikowanądefinicją przekształcenia rundowego.
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 7wieniowej, innej operacji) na bity wyjścia. Przy uwzględnieniu wielu iteracji(operacji szyfru) jest to jednak niezmiernie trudne, praktycznie niewykonalne.Jak zatem widzimy, aby szyfr był bezpieczny, powinien on w odpowiedni(czytaj: dostatecznie skomplikowany) sposób przekształcać bity wiadomości(wejścia) na bity szyfrogramu (wyjścia). Niestety, sformułowanie „dostatecznieskomplikowany” nie dostarcza informacji, jak dokładnie zapisać operacjeskładowe szyfru. Ponadto, w celu zapewnienia odwracalności szyfrowania,przekształcenia bloków bitów wykorzystane do budowy kryptosystemu powinnybyć wzajemnie jednoznaczne, co znacznie ogranicza swobodę działańkonstruktora. W praktyce wymagania dotyczące szyfru, to znaczy rodzajzastosowanych w nim przekształceń, ich kolejność i liczba są przyjmowaneprzez autorów algorytmów na podstawie rozważań intuicyjnych. W dalszymciagu pracy przedstawimy takie intuicyjne zasady bezpieczeństwa szyfrów<strong>blokowych</strong>.2. Wymagania konstrukcyjne w stosunku do szyfrów <strong>blokowych</strong>.Własności, jakie powinny mieć odwzorowania realizujące szyfrowanieblokowe, zazwyczaj podawane są jako pary cech, wzajemnie się uzupełniających.Dlaczego pary? Po pierwsze dlatego, że szyfr jest pewną kompozycjądwóch rodzajów operacji: permutacji i podstawień. Po drugie, również dlatego,że szyfrowanie musi ukryć w kryptogramie informację o dwóch obiektach:bloku tekstu odkrytego i bloku bitów klucza. Omówimy teraz trzynajczęściej wykorzystywane pary własności przekształceń szyfrujących mającychzagwarantować ich bezpieczeństwo (por. [18], [19]).2.1. Mieszanie i rozpraszanie. Pierwsza para własności to mieszaniei rozpraszanie. Koncepcję szyfru jako przekształcenia mieszającego wprowadziłShannon. Mówimy, że dane przekształcenie ma tę własność, gdy losowoi równomiernie rozprowadza wiadomości zapisane tekstem jawnym pozbiorze wszystkich możliwych wiadomości zaszyfrowanych. Oznacza to naprzykład, że jeżeli podzielimy przestrzeń szyfrogramów w dowolny sposóbna dwie równoliczne części, to szyfrogramy uzyskane z kolejno losowanychw sposób niezależny tekstów odkrytych będą z równym prawdopodobieństwemnależeć do każdego z podzbiorów podziału. Przekształcenia mieszającemożna zrealizować przez odpowiednio dobrane sekwencje permutacjiipodstawień.Druga z wymienionych własności, rozpraszanie, oznacza, że bity króreznajdują się w sąsiedztwie przed wejściem do rundy (na przykład, w jednejskrzynce podstawieniowej), po wyjściu z tej rundy wpływają na bity odległeod siebie (na przykład, należące do różnych skrzynek w następnej rundzie).W wyniku wielokrotnej iteracji takich rund uzyskujemy efekt, że każdy bit
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 11niących się o zadaną różnicę ∆X (tutaj różnica to XOR tekstów), którychkryptogramy różnią się o znaną różnicę ∆Y. Mówimy wówczas, że szyfr macharakterystykę z pewnym prawdopodobieństwem (równym proporcji liczbypar tekstów mających powyższą własność do liczby wszystkich par tekstówodkrytych o zadanej różnicy). Z kolei atak liniowy wykorzystuje fakt, że dladanego odwzorowania F mogą istnieć równania liniowe postaci (16) spełnionez prawdopodobieństwem znacznie różniącym się od 1/2. Jeśli szyfrnie jest odporny na któryś z tych rodzajów ataków, oznacza to, że wykorzystaniezwiązków liniowych lub faktu istnienia charakterystyk mającychduże prawdopodobieństwo pozwala znacznie zmniejszyć zakres przeszukiwaniaprzestrzeni klucza w stosunku do ataku wyczerpującego (w ataku wyczerpującymnależy średnio przeszukać 2 k−1 wartości kluczy, aby natrafićna tę właściwą).2.4. Inne spojrzenie na bezpieczeństwo szyfrów. W praktyce od projektowanegoszyfru wymaga się, aby był on odporny na szczególne klasy ataków.Najogólniej mówiąc, powinna to być odporność na wszystkie znaneklasy ataków. Problem w tym, co się stanie w przypadku pojawienia się nowychmetod łamania szyfrów. I tak wymagane jest, aby konstruowany szyfrbył odporny na analizę różnicową i analizę liniową. Pod tym kątem byłoptymalizowany algorytm szyfrowania Rijndael (por. [5]), zwycięzca rozpisanegoprzez NIST konkursu na nowy standard szyfrowania, następcę DESa.Tymczasem okazało się, że szyfr ten może nie być odporny na nowy atak,nazywany atakiem algebraicznym, polegający na zbudowaniu i rozwiązaniuukładu równań nadmiarowych wielu zmiennych, wiążących ze sobą bity tekstuodkrytego, szyfrogramu i tajnego klucza (por. [4]). Zatem takie podejście,z pozoru skuteczne, nie gwarantuje wystarczającego bezpieczeństwatworzonych algorytmów szyfrujących. Jak zatem w praktyce wygląda konstruowanieszyfrów?Konstruowanie szyfru polega na wykonaniu dwóch kroków. Są to:1. Budowa algorytmu zgodnie z zasadami podanymi w poprzednich rozdzia̷lach.2. Badanie działania skonstruowanego algorytmu metodami statystycznymi.Przyjmuje się, że ciąg bitów uzyskanych na wyjściu szyfru niepowinien wykazywać prawidłowości statystycznych pozwalających odróżnićgo od szumu binarnego. Odpowiednie metody testowania zostałyomówione w [15].Powyższe rozważania wskazują, że choć szyfry blokowe są powszechniestosowane i konstruowane są <strong>nowe</strong> ich rodzaje, nadal nie istnieją ścisłe metodypozwalające udowodnić, że zaprojektowany szyfr blokowy jest bezpieczny.
12 Z. Kotulski3. Analogia do układów chaotycznych. Czytelnicy, którzy znająteorię chaotycznych dyskretnych (w czasie) układów dynamicznych, łatwozauważą, że pojęcia występujące w wymaganiach konstrukcyjnych dotyczącychszyfrów <strong>blokowych</strong> są jakby przeniesione z tej teorii do kryptografii.Gdyby rzeczywiście udało się je tam zastosować, zyskalibyśmy wreszcie precyzyjnąz matematycznego punktu widzenia metodę opisu własności szyfrów,a co za tym idzie — narzędzie do konstrukcji nowych algorytmów oz góry zadanej lub możliwej do ocenienia sile szyfrowania. Jednak nasuwającąsię na pierwszy rzut oka wadą takiego podejścia jest fakt, że układytakie, choć dyskretne w czasie, operują na ciągłych przestrzeniach stanów,czyli przekształcają obiekty nie będące skończonymi ciągami bitów (jak jużzauważyliśmy, szyfry blokowe są operacjami przekształcającymi ciąg bitóww ciąg bitów, oba o tej samej skończonej długości). Z kolei pozytywną wiadomościąjest to, że układy dynamiczne, jako obiekty matematyczne, majądobrze udokumentowane własności, których przydatność do celów kryptograficznychjest w sposób naturalny widoczna. Zanim pokażemy teraz teanalogie, wprowadźmy podstawowe definicje i oznaczenia.Dyskretny układ dynamiczny to para (X, ϕ), gdzie:• X jest przestrzenią stanów (ogólnie — przestrzenią metryczną, np.w naszych przykładach — odcinkiem jednostkowym),• ϕ jest ciągłym odwzorowaniem z X do X, będącym generatorem półgrupyiteracji.Trajektorią układu dynamicznego startującą ze stanu x 0 jest ciąg elementówX uzyskanych przez iteracje:(22)x n+1 = ϕ(x n ), n =0, 1, 2,...,inaczej(23) x n = ϕ(ϕ(ϕ(...ϕ(x 0 )))) = ϕ n (x 0 ), n =1, 2,...} {{ }n razyJak widzimy, tak zdefiniowany układ dynamiczny (dla ustalonego n)przypomina funkcję F (·) szyfru blokowego zbudowaną z n rund. Jeżeli jeszczebędzie on miał własności korzystne z punktu widzenia kryptografii, nicnie stoi na przeszkodzie, aby mógł być zastosowany do budowy kryptosystemu.Najważniejszą własnością układu dynamicznego, która sprawia, że możeon znaleźć zastosowanie w kryptografii, jest własność chaosu. Będziemy mówili,że układ dynamiczny jest chaotyczny, gdy spełnia trzy warunki (z którychżaden nie może być pominięty):• jego trajektorie są eksponencjalnie wrażliwe na zmiany warunku początkowego(tak zwany efekt motyla: ruch skrzydeł motyla w Amazoniiwywołuje burzę w Arizonie);
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 13• układ ma ciągłą (w pewnym przedziale) gęstość widmową;• układ traci informację (o warunku początkowym) w czasie z prędkościąwykładniczą.Definicja ta, chociaż precyzyjna, jest trudna do zastosowania w praktyce.W literaturze występuje wiele równoważnych warunków (często nazywanychdefinicjami), których spełnienie gwarantuje, że układ jest chaotyczny,por. np. [2]. Najpopularniejszy jest warunek korzystający z pojęciawyk̷ladników Lapunowa λ x,v (co czytamy: wykładnik Lapunowa w punkciex w kierunku v), zdefiniowanych jako1(24)λ x,v ≡ limn→∞ n ln ‖Dϕn (x)(v)‖,gdzie ‖·‖ jest normą w przestrzeni stycznej w punkcie x ∈ X, v jest elementemtej przestrzeni, natomiast Dϕ n (x)(v) oznacza pochodną Fŕecheta n-tejiteracji ϕ w punkcie x w kierunku v. Układ dynamiczny (X, ϕ) jestchaotycznyw pewnym obszarze (por. [20]), gdy dla prawie wszystkich punktówtego obszaru ma co najmniej jeden dodatni wykładnik Lapunowa (gdy maich więcej niż jeden, nazywamy go hiperchaotycznym). „Prawie wszędzie”jest tu rozumiane w sensie pewnej miary niezmienniczej równoważnej mierzeLebesgue’a, to znaczy takiej mierze skończonej µ na σ(X) (σ-algebrzepodzbiorów mierzalnych X), która spełnia warunek ϕ-niezmienniczości(25)∀A ∈ σ(X), µ(A) =µ(ϕ −1 (A)),oraz dla której istnieje dodatnia ograniczona mierzalna funkcja rzeczywistag na X taka, że∀A ∈ σ(X), µ(A) = g(x) dx.Chaos układu dynamicznego sprawia, że trajektorie są bardzo wrażliwena zmiany stanu początkowego: startując z dwóch bardzo bliskich punktówpoczątkowych, rozbiegają się wyk̷ladniczo. Ta cecha układu przypominawarunki typu rozpraszania, lawinowości lub dyfuzji nakładane przezprojektantów na szyfry blokowe.Drugim warunkiem, który sprawia, że dyskretny w czasie układ dynamicznymoże być dobrym kandydatem na algorytm kryptograficzny, jestjego ergodyczność. Mówimy, że układ (X, ϕ) jest ergodyczny, gdy miarakażdego ϕ-niezmienniczego podzbioru B przestrzeni X (tzn. ϕ(B) ⊂ B)jestrówna0lubµ(X). Ergodyczność oznacza, że przestrzeń X nie możebyć nietrywialnie (względem miary µ) podzielona na kilka części. Oznaczato, że trajektoria startująca z dowolnego x 0 ∈ X nigdy nie lokalizuje sięw pewnym podzbiorze przestrzeni X, co sprawia, że w przypadku wszelkichataków wyczerpujących nie można ograniczać się do przeszukiwania zbiorówmniejszych niż cała przestrzeń X.A
14 Z. KotulskiKolejną cechą układu dynamicznego wzmacniającą jego własności kryptograficznejest mieszanie, własność silniejsza niż ergodyczność. Powiemy, żeukład dynamiczny (X, ϕ) jestmieszający, gdy dla dowolnych A, B ∈ σ(X),(26)limn→∞ µ(ϕ−n (A) ∩ B) =µ(A)µ(B).W równaniu (26), ϕ −n (A) oznacza przeciwobraz zbioru A pod działaniemn-tej iteracji odwzorowania ϕ. Zależność (26) oznacza, że wielokrotnedziałanie operatora ϕ −1 uniezależnia (w sensie probabilistycznym) zbiory(zdarzenia) A i B. Jeżeli dodatkowo za̷lożymy, że µ(X) =1(miaraniezmienniczaµ jest probabilistyczna), to wyrażenie (26) jest równoważneµ(ϕ −n(27)(A) ∩ B)lim= µ(A)n→∞ µ(B) µ(X) ,co wskazuje, że wielokrotne zastosowanie odwzorowania ϕ −1 do dowolnegozbioru A równomiernie rozprzestrzenia ten zbiór po całej przestrzeni stanówX. Innymi słowy, startując z dowolnego x 0 ∈ X, w wyniku iteracji osiągamydowolny podzbiór X z prawdopodobieństwem proporcjonalnym do rozmiarutego zbioru w całej przestrzeni stanów (równym ilorazowi miary tego zbiorui miary całej przestrzeni stanów). Oznacza to również, że dla dowolnegostanu końcowego x n i dużego n, dowolny stan początkowy x 0 jest µ-równieprawdopodobny. Widzimy, że zdefiniowany tu warunek mieszania to odpowiednikmieszania Shannonowskiego wykorzystywanego w teorii szyfrów.Pozostaje teraz odpowiedzieć na pytanie: jak w sposób efektywny wykorzystaćte naturalne własności kryptograficzne chaotycznych układów dynamicznych?Okazuje się, że jest to możliwe. W dodatku możliwe jest wykorzystaniezarówno układów dynamicznych z czasem dyskretnym, jak i zczasem ciągłym, o których nie będziemy mówili szerzej w tej pracy.4. Szyfr wykorzystujący chaotyczny układ dynamiczny4.1. Prosty przykład. Zacznijmy od przykładu najprostszego odwzorowaniachaotycznego i mieszającego (a więc również ergodycznego). Rozważmyskośne odwzorowanie trójkątne. Jest to odwzorowanie ϕ przedziału [0, 1] nasiebie następującej postaci (tu zapisane dla kolejnej, n + 1-szej iteracji):⎧⎪⎨ x n+1 = x ndla 0 ≤ x n ≤ α,(28)ϕ :α⎪⎩ x n+1 = x n − 1dla α
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 15Odwzorowanie odwrotne do odwzorowania trójkątnego, czyli w naszychoznaczeniach ϕ −1 , ma postać (tu zapisaną dla n-tej iteracji)⎧⎨ x n−1 = αx n(30)ϕ −1 : lub⎩x n−1 =(α − 1)x n +1,jest zatem odwzorowaniem dwuwartościowym.Odwzorowania ϕ i ϕ −1 mają następujące w̷lasności:• ϕ jest odwzorowaniem dwa do jednego, 2 : 1,• ϕ −1 jest odwzorowaniem jeden do dwóch, 1 : 2,• n-ta iteracja ϕ, tj.ϕ n jest odwzorowaniem 2 n :1,• n-ta iteracja ϕ −1 ,tj.ϕ −n jest odwzorowaniem 1 : 2 n .Ponadto dla każdego n i dla każdego x ∈ X =[0, 1] spełniona jest równość(31)X = ϕ n (ϕ −n (X)),czyli odwzorowanie ϕ n jest odwrotne do ϕ −n , niezależnie od sposobu wyboruelementów należących do przeciwobrazu przy każdorazowym obliczaniu ϕ −1 .Własność (31) odwzorowania trójkątnego pozwoliła na jego podstawiezaproponować prosty szyfr blokowy (por. [9]). W zaproponowanym modelutajnym kluczem K jest parametr α ∈ (0, 1) odwzorowania. Szyfrowaną wiadomością(blokiem) jest liczba P ∈ (0, 1), czyli punkt startowy iteracji odwzorowaniaodwrotnego ϕ −1 (·). Samo szyfrowanie polega na wykonaniu niteracji odwrotności odwzorowania trójkątnego z warunkiem początkowymP , czyli operacji (30) dla x n = P. Kryptogram C jest wynikiem działanian-krotnego złożenia tego odwzorowania, to znaczy(32)C = ϕ −n (P )=ϕ −1 (ϕ −1 (...ϕ −1 (P ))).
16 Z. KotulskiOperacja odszyfrowywania polega na znalezieniu obrazu C wwynikun-tej iteracji ϕ:(33)P = ϕ n (C) =ϕ(ϕ(...ϕ(C))).W tak skonstruowanym kryptosystemie wartość kryptogramu C możebyć wybrana losowo jako jedna z 2 n możliwych wartości należących do przeciwobrazupunktu P uzyskanego w wyniku n-krotnej iteracji ϕ −1 .Dladowolniewybranego kryptogramu C (należącego do tego przeciwobrazu) wiadomośćP jest odtwarzana jednoznacznie. Bezpieczeństwo szyfru oparte jestna wrażliwości odwzorowania ϕ na zmiany wartości parametru α.Zaprezentowany wyżej szyfr chaotyczny sam nie ma wielkiego znaczeniapraktycznego, ma jednak podstawową zaletę: jego bezpieczeństwo szyfruoparte jest na ścisłej teorii matematycznej: teorii dyskretnych (w czasie)układów dynamicznych posiadających własność chaosu, ergodycznościi mieszania. Podejście wykorzystywane w tym algorytmie (wiadomość jakowarunek początkowy, klucz jako parametr odwzorowania) udało sie późniejuogólnić (por. [13], [14]) na szerszą klasę problemów, w których kluczemmoże być również część warunku początkowego. Wpłynęło to na zwiększeniebezpieczeństwa algorytmu w wyniku wykorzystania wrażliwości stanuukładu na zmianę warunków początkowych, a nie jedynie na zmianę wartościparametrów.Wadą zaprezentowanego tutaj szyfru (jak również wszystkich szyfrówbazujących na ciagłej przestrzeni stanów) jest fakt, że działa on na liczbachrzeczywistych, a zatem wynik wszelkich wykonywanych obliczeń zależy odkonkretnej implementacji komputerowej (dotyczy to zwłaszcza dalszych cyfrrozwinięcia dziesiętnego liczb). W istocie, możliwość praktycznego odwróceniaoperacji zależy od dokładności obliczeń. Działa tutaj swoista regułanieoznaczoności, wiążąca liczbę iteracji (mającą wpływ na bezpieczeństwoszyfru) z liczbą cyfr znaczących przekształcanych tekstów (ilością informacjizaszyfrowanych w jednym bloku), limitowaną długością słowa komputerowego.Mówiąc w skrócie, ograniczeniem metody są dokładność obliczeńi błędy zaokrągleń operacji arytmetycznych. Pojawia się zatem pytanie, czymożna jednak wykorzystać opisane wyżej układy chaotyczne, mające przecieżdobre własności kryptograficzne, w praktycznie stosowanych kryptosystemach.Wydaje się, że skutecznym lekarstwem może być odpowiedniadyskretyzacja problemu.4.2. Przykład dyskretyzacji — dyskretny (w przestrzeni stanów) szyfrchaotyczny. Przedstawiony szyfr chaotyczny wykorzystujący odwzorowanietrojkątne może być łatwo zdyskretyzowany, to znaczy możemy go takprzekształcić, że operować on będzie na liczbach ca̷lkowitych (por. [17]).Oznaczmy odwzorowanie generujące chaotyczny układ dynamiczny przez
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 17f a (·), to znaczy:⎧ x⎪⎨ dla 0
18 Z. Kotulskinia:(40)X = M ∗ x, Y = M ∗ y, A = M ∗ a.Nowe przestrzenie tekstów odkrytych i kryptogramów mają postać:(41)C ′ = P ′ = {X : X ∈ N, 1 ≤ X ≤ M};podobną postać ma również przestrzeń kluczy(42)K ′ = {A : A ∈ N, 1 ≤ A ≤ M}.Nowe funkcje stanowiące szyfr są permutacjami (to znaczy odwzorowaniamiróżnowartościowymi podzbioru liczb naturalnych na siebie). Funkcjęszyfrującą i odszyfrowującą (w̷laściwie: funkcję rundy szyfrowania i odszyfrowywania)oznaczymy przez ˜F −1 A i ˜FA. Całkowitoliczbowe odpowiednikifunkcji o wartościach wymiernych, to znaczy (36)–(38) i do niej odwrotnej,mają postać (por. [17])⎧M⎪⎨ X dla 1 ≤ X ≤ A,(43) ˜F A (X) =AM ⎪⎩ (M − X) dla A M − X 2M − A ,(44) ˜FA −1 (Y )= X 1X 2 , gdy m(Y )=Y,⎪ A ≤ M − X 2M − A ,⎩X 1 , gdy m(Y )=Y +1,gdzie(45)X 1 ≡⌊M −1 AY ⌋,(46)X 2 ≡⌈(M −1 A − 1)Y + M⌉,⌊ ⌋ ⌈ ⌉AY (A − M)Y(47)m(Y )= −+1.M MJak łatwo się domyślić, odwzorowanie przedstawione wyżej nie jest mocnym(tzn. odpornym na kryptoanalizę) szyfrem i wykorzystanie go do szyfrowaniabloków tekstów reprezentowanych w postaci liczb naturalnych jestmało realne, zwłaszcza z powodu dużej złożoności obliczeniowej samych operacjiszyfrujących przy dużym M. Wydaje się jednak, że tego rodzaju odwzorowaniamogą pełnić rolę składników szyfrów <strong>blokowych</strong>, na przykładjako element nieliniowy w szyfrze blokowym (funkcja nieliniowa, skrzynkapodstawieniowa, permutacja). W takiej sytuacji odwzorowanie działałobyna podblokach pełnego bloku tekstu, czyli na znacznie mniejszych liczbachnaturalnych. Ponieważ zazwyczaj w szyfrach <strong>blokowych</strong> składniki nieliniowesprawiają najwięcej problemów: ich zapis zajmuje dużo miejsca (trzeba pamiętaćcałe skrzynki podstawieniowe), a własności są trudne do przewidze-
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 19nia, wykorzystanie chaotycznych układów dynamicznych może być tu cennąalternatywą dla metod stosowanych dotychczas.5. Możliwość wykorzystania innych odwzorowań. W poprzednimrozdziale pokazaliśmy przykład chaotycznego układu dynamicznego, którymożna zdyskretyzować, uzyskując rodzinę funkcji (zależnych od parametrua — tajnego klucza oraz liczby iteracji n), którymi można zastąpićelementy nieliniowe w szyfrach <strong>blokowych</strong>. Odwzorowanie trójkątne generująceten uk̷lad dynamiczny nie jest oczywiście jedynym, które może byćzdyskretyzowane tak, żeby stać się składnikiem szyfru blokowego. Rozważaneodwzorowanie trójkątne składa się z jednego daszka. Równie łatwomożna zdyskretyzować odwzorowanie składające się z półtora daszka:(48)⎧⎪⎨ 3x n , 0 ≤ x n < 1/3,x n+1 = 2 − 3x n , 1/3 ≤ x n < 2/3,⎪⎩−2+3x n , 2/3 ≤ x n ≤ 1,zdwóchpełnychdaszków⎧4x n , 0 ≤ x n < 1/4,⎪⎨ 2(1 − 2x n ), 1/4 ≤ x n < 2/4,(49)x n+1 =2(2x n − 1), 2/4 ≤ x n < 3/4,⎪⎩4(1 − x n ), 3/4 ≤ x n ≤ 1,
20 Z. Kotulskii tak dalej. Dyskretyzacja takich odwzorowań (zmodyfikowanych przez wprowadzeniejako parametru zmiennej współrzędnej wierzchołków daszków)prowadzi do nowych definicji permutacji.Dalsze rodziny odwzorowań można uzyskać z dyskretyzacji odwzorowanialogistycznego, czyli odwróconej paraboli, postaci(50)x n+1 =4x n (1 − x n )i dalszych odwzorowań z tej rodziny, czyli krzywych wyższego stopnia(o kształcie analogicznym do opisanych daszków, jednak z gładkimi wierzchołkami;por. [12]). Można szukać dalszych generatorów chaotycznych układówdynamicznych (por. np. [2], [12]), wzbogacając możliwości budowy szyfrów<strong>blokowych</strong>. W tej pracy poprzestaniemy na podanych przykładach,zwrócimy jednak jeszcze uwagę na możliwość, jaką dają tak zwane rozwiązywalne(lub lepiej: konstruowalne) chaotyczne układy dynamiczne.Zauważmy, że układy dynamiczne generowane przez odwzorowania (28),(48) i (49) mogą być rozwiązane, to znaczy można podać wyrażenie dlan-tego elementu trajektorii startującej z punktu x 0 :(51)x n = 1 π arccos(cos kn πx 0 )dla, odpowiednio, k =2, 3, 4. Również dla k =5, 6,...uzyskany układ dynamicznyjest chaotyczny. Rozwiązanie takie odpowiada generatorowi układudynamicznego, będącemu odwzorowaniem trójkątnym o odpowiednio większejliczbie daszków. Okazuje się (por. [7]), że własność chaosu mają równieżukłady dynamiczne (trajektorie) postaci(52)x n = 1 π arccos(cos zn πx 0 )
z parametrem z będącym ułamkiem<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 21(53)z = p q ,gdzie p i q są liczbami naturalnymi względnie pierwszymi. Wyk̷ladnik Lapunowatakiego układu jest równy(54)λ =lnz.Trajektorie (52) mają tę własność, że wykres par punktów (x n ,x n+1 )jestkrzywą Lissajous taką, że każdej wartości x n odpowiada q wartości x n+1 ,a każdej wartości x n+1 odpowiada p wartości x n . Zatem w tym przypadku nietylko odwzorowanie odwrotne jest wielowartościowe (p-wartościowe), jak tobyło w przypadku naszej wyjściowej funkcji trójkątnej, lecz również samo odwzorowanieprzyporządkowujące pierwszej zmiennej z pary punktów drugązmienną jest wielowartościowe (q-wartościowe).Odpowiednia dyskretyzacja takiego odwzorowania pozwoli uzyskać funkcjeprzydatne do budowy skrzynek podstawieniowych w szyfrach <strong>blokowych</strong>.Można również pokazać, że dyskretyzacja chaotycznego układu dynamicznegoprowadzi do kryptosystemu odpornego na kryptoanalizę liniową(por. [1]), zatem jest szansa uzyskania silnych kryptograficznie składowychszyfru blokowego.6. Zastosowania ciągłych układów dynamicznych. W bezpiecznychsystemach komunikacji szeroko wykorzystywane są również ciągłe (wczasie) układy dynamiczne, czyli rozwiązania nieliniowych równań różniczkowychmających własność chaosu. Zauważmy, że w tym wypadku ciągłesą zarówno czas, który w poprzednio omawianych przypadkach był dyskretnyi dobrze odpowiadał iteracjom funkcji rundowej szyfrów <strong>blokowych</strong>,jak i przestrzeń stanów (w tradycyjnej kryptografii bloki bitów). Zanim w tejtrudnej sytuacji spróbujemy znaleźć możliwości zastosowania układów dynamicznychdo konstrukcji szyfrów <strong>blokowych</strong>, przedstawimy powszechniestosowane metody. Najpopularniejsze są dwa systemy bezpiecznej komunikacji:sterowanie chaosu i synchronizacja chaosu (por. np. [11]).Bezpieczne przesyłanie wiadomości metodą sterowania chaosu polega namodulowaniu wybranego parametru ciągłego układu dynamicznego za pomocąimpulsów będących zakodowaną wiadomością. Odbiorca, dysponująccałą trajektorią z zawartą w niej informacją oraz znając jej punkt startowyi pozostałe parametry układu, może wygenerować nową trajektorię, wplatającw nią metodą prób i błędów modulacje parametru tak, aby wygenerowanaprzez niego trajektoria była identyczna z tą, która zawiera informacje.Sterowanie, które generuje właściwą trajektorię, jest przesłaną tajną informacją.
22 Z. KotulskiDruga metoda, nazywana synchronizacją chaosu, polega na potraktowaniutrajektorii ciągłego układu chaotycznego o dużej amplitudzie jako szumumaskującego wiadomość. Odbiorca otrzymujący wiadomość zamaskowanąchaotyczną trajektorią odzyskuje wiadomość, odejmując tę trajektorię odotrzymanego sygnału, odzyskując w ten sposób tajną wiadomość. W obuprzypadkach bezpieczna komunikacja możliwa jest dzięki silnej wrażliwościtrajektorii chaotycznego układu dynamicznego na zmiany warunków początkowychi zmiany wartości parametrów: tajnym kluczem są tu te właśniewielkości. Zarówno szyfrujący, jak i odszyfrowujący muszą znać dokładnewartości tych parametrów. Ewentualny napastnik nie znający klucza nie maszans na skuteczne przeprowadzenie opisanych wyżej operacji odszyfrowywaniawiadomości.Przedstawione metody sterowania chaosu i synchronizacji chaosu korzystająw istotny sposób z ciągłości czasu i ciągłości przestrzeni stanów. Docelów budowy skrzynek podstawieniowych może być wykorzystana inna interpretacjaciągłych układów dynamicznych, a mianowicie dynamika symboliczna.Metoda ta polega na przekształceniu ciągłej trajektorii układudynamicznego (ciągłej w czasie i w przestrzeni stanów) do postaci dyskretnegociągu symboli należących do pewnego alfabetu, pojawiających się w kolejnościzależnej od kształtu trajektorii. Najprostszym przykładem takiegoprzekształcenia może być chaotyczny generator bitów (por. [23]), w którymalfabet składa się jedynie z dwóch elementów: bitu 0 i bitu 1. Już to prosteprzekształcenie ma dobre własności kryptograficzne (jednoznaczną zależnośćod warunku początkowego, asymptotyczną niezależność wygenerowanychbitów, równoprawdopodobne wygenerowanie 0 i 1). W ogólniejszychprzypadkach również można uzyskać dobre przekształcenia. Odpowiednioje dostosowując, można znaleźć przekształcenia, które będą odwzorowywaćpewne początkowe ciągi symboli (brane z początku trajektorii układu dynamicznego)na inne ciągi, uzyskane z oddalonego fragmentu trajektorii.Ponadto można pokazać (w sposób podobny do odpowiedniego dowodu zpracy [23]), że oba ciągi będą asymptotycznie statystycznie niezależne, copowinno mieć wpływ na kryptograficzne bezpieczeństwo takiego odwzorowania.Jest też nadzieja na sprzętową realizację takiego odwzorowania, wykorzystującąfizyczne realizacje odpowiednio dobranych, ciągłych w czasiei w przestrzeni stanów chaotycznych układów dynamicznych. Problemempozostaje jedynie efektywna konstrukcja odwzorowania dostosowanego dozastąpienia skrzynki podstawieniowej w szyfrze blokowym.7. Podsumowanie. Powtórzymy tu w punktach idee, które przewijałysię w całej pracy.• Dyskretne w czasie, chaotyczne układy dynamiczne są bardzo podobne,ze względu na własność ukrywania związku między stanem
<strong>Budowanie</strong> szyfrów <strong>blokowych</strong> 23końcowym po n iteracjach i stanem początkowym, do iteracyjnychszyfrów <strong>blokowych</strong>, które przecież zostały stworzone w tym celu, żebycałkowicie zamaskować swoje dane wejściowe.• Szyfry blokowe działają na danych, które są blokami bitów skończonejdługości, a więc na dyskretnej przestrzeni stanów.• Chaotyczne układy dynamiczne działają na danych z ciąg̷lej przestrzenistanów, więc wszystkie obliczenia wykonywane dla nich są zależneod konkretnej implementacji.• Kryteria bezpieczeństwa wykorzystywane przy budowie szyfrów <strong>blokowych</strong>mają charakter intuicyjny.• Korzystne kryptograficznie własności układów dynamicznych, to znaczychaos, ergodyczność, mieszanie, są precyzyjnie matematyczniezdefiniowane.• Są możliwości takiej dyskretyzacji chaotycznych układów dynamicznych,by mogły znaleźć zastosowanie jako element sładowy szyfrów<strong>blokowych</strong>.References[1] J. M. Amigó, J. Szczepański, Approximations of dynamical systems and their applicationsto cryptography, Internat. J. Bifurcation Chaos 13 (2003), to appear.[2] R.Brown,L.O.Chua,Clarifying chaos: examples and counterexamples, Internat.J. Bifurcation Chaos 6 (1996), 219–249.[3] A. Compagner, Definitions of randomness, Am. J. Phys. 59 (1991), 700–705.[4] N. Courtois, J. Pieprzyk, Cryptanalysis of block ciphers with overdefined system ofequations, w: Asiacrypt 2002, LNCS 2501, Springer 2002.[5] J. Daemen, L. R. Knudsen, V. Rijmen, Linear frameworks for block ciphers, DesignsCodes Cryptography 22 (2001), 65–87.[6] D. E. Robling Denning, Kryptografia i ochrona danych, WNT, Warszawa, 1992.[7] J. A. Gonzalez, R. Pino, Chaotic and stochastic functions, Physica 276A (2000),425–440.[8] A. Górska, Metoda zwiększająca efektywność kryptoanalizy liniowej iteracyjnychszyfrów <strong>blokowych</strong>, rozprawa doktorska, WEiTI PW, Warszawa, 2002.[9] T. Habutsu, Y. Nishio, I. Sasase, S. Mori, A secret key cryptosystem by iteratinga chaotic map, w: Eurocrypt’91, 1991, 127–140.[10] M. Kac, What is random? Amer. Scientist 71 (1983), 405–406.[11] T. Kapitaniak, Controlling Chaos. Theoretical and Practical Methods in Non-linearDynamics, Academic Press, London, 1996.[12] S. Katsura, W. Fukuda, Exactly solvable models showing chaotic behavior, Physica130A (1985), 597–605.[13] Z. Kotulski, J. Szczepański, Discrete chaotic cryptography, Ann. Physik 6 (1997),381–394.[14] Z. Kotulski, J. Szczepański, K. Górski, A. Paszkiewicz, A. Zugaj, The applicationof discrete chaotic dynamical systems in cryptography — DCC Method, Internat.J. Bifurcation Chaos 9 (1999), 1121–1135.
24 Z. Kotulski[15] Z. Kotulski, Generatory liczb losowych: algorytmy, testowanie, zastosowania, Mat.Stos. 2 (2001), 32–66.[16] Z. Kotulski, Nowoczesne technologie informacyjne: bezpieczeństwo danych, w:M. Kleiber (red.), Nauki techniczne u progu XXI wieku, IPPT, Warszawa, 2002,181–210.[17] N. Masuda, K. Aihara, Cryptosystems based on space-discretization of chaoticmaps, IEEE Trans. Circuits Systems I Fund. Theory Appl. 49 (2002), 28–40.[18] A. Menezes, P. van Oorschot, C. Vanstone, Handbook of Applied Cryptography,CRC Press, Boca Raton, 1996.[19] J. Pieprzyk, T. Hardjono, J. Seberry, Fundamentals of Computer Security, Springer,Berlin, 2002.[20] H. G. Schuster, Chaos deterministyczny, PWN, Warszawa, 1995.[21] C. E. Shannon, A Mathematical Theory of Communication, Bell System Tech. J.27 (1948), 379–423 and 623–656.[22] J. Stern, Why provable security matters?, w: Advances in Cryptology — EURO-CRYPT’2003, Lecture Notes in Comput. Sci. 2656, Springer, Berlin, 2003, 489–461.[23] J. Szczepański, Z. Kotulski, Pseudorandom number generators based on chaoticdynamical systems, Open Sys. Inf. Dyn. 8 (2001), 137–146.[24] S. Trznadel, A. Zugaj, K. Górski, A. Paszkiewicz, Z. Kotulski, J. Szczepański, Przeglądstanu wiedzy na temat kryptoanalizy liniowej ze szczególnym uwzględnieniemalgorytmu DES, w: Poznańskie Warsztaty Telekomunikacyjne, PWT’98, Poznań1998, 4.20-1 do 4.20-6.[25] R. Zieliński, Wytwarzanie losowości, Wiadomości Mat. 29 (1992), 189–203.Instytut Podstawowych Problemów Techniki PANul. Świętokrzyska 21, 00-049 WarszawaE-mail: zkotulsk@ippt.gov.pl