Klasyczne metody szyfrowania
Transkrypt
Klasyczne metody szyfrowania
WSTP DO KRYPTOGRAFII Grzegorz Szkibiel Jesie« 2012/13 Spis tre±ci 1 Kryptograa a steganograa 5 1.1 Steganograa . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Szyfry przestawieniowe . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Systemy kryptograczne 9 . . . . . . . . . . . . . . . . . . . . . 2 Klasyczne metody szyfrowania 12 2.1 Szyfry cykliczne . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Monoalfabetyczny szyfr Beauforta . . . . . . . . . . . . . . . . 13 2.3 Kody aniczne jednowymiarowe . . . . . . . . . . . . . . . . . 14 2.4 Permutacje alfabetu . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 Analiza cz¦sto±ci wyst¦powania liter . . . . . . . . . . . . . . . 16 2.6 Homofony i nulle . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.7 Jednostki dwuliterowe czyli digramy . . . . . . . . . . . . . . . 18 2.8 Szyfr Playfaira . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.9 Podwójny szyfr Playfaira . . . . . . . . . . . . . . . . . . . . . 21 2.10 szyfr Delastelle'a . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.11 Jednostki wieloliterowe . . . . . . . . . . . . . . . . . . . . . . 23 2.12 Szyfry polialfabetyczne . . . . . . . . . . . . . . . . . . . . . . 23 2.13 a«cuch szyfrów i DES . . . . . . . . . . . . . . . . . . . . . . 28 3 Maszyny szyfruj¡ce 32 3.1 Zasada dziaªania . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.2 Jak zªamano szyfr ENIGMY . . . . . . . . . . . . . . . . . . . 36 4 Macierze szyfruj¡ce 41 N 4.1 Algebra liniowa modulo . . . . . . . . . . . . . . . . . . . . 41 4.2 Szyfry Hill'a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.3 Aniczne przeksztaªcenia szyfruj¡ce . . . . . . . . . . . . . . . 48 2 5 Pakowanie plecaka 50 5.1 Postawienie problemu . . . . . . . . . . . . . . . . . . . . . . . 50 5.2 Szybko rosn¡ce ci¡gi . . . . . . . . . . . . . . . . . . . . . . . 51 oparty na problemie pakowania plecaka . . . . . . . . . . . . . 53 5.3 Kryptosystem 6 Systemy z publicznym kluczem 56 6.1 Numeryczna funkcja jednokierunkowa . . . . . . . . . . . . . . 57 6.2 Funkcje skrótu . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.3 poufno±¢ i autentyczno±¢. . . . . . . . . . . . . . . . . . . . . . 58 6.4 Wymiana kluczy 60 6.5 2-1 funkcje jednokierunkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 System RSA 60 62 7.1 Rozkªad liczb na czynniki . . . . . . . . . . . . . . . . . . . . 62 7.2 Liczby wybrane losowo . . . . . . . . . . . . . . . . . . . . . . 63 7.3 Zasada dziaªania systemu RSA . . . . . . . . . . . . . . . . . 64 7.4 Wpadka systemowa wspólny moduª . . . . . . . . . . . . . . . 65 7.5 Wpadka systemowa niski wykªadnik . . . . . . . . . . . . . . . 65 8 Teorio-liczbowe podstawy RSA 67 8.1 Systemy pozycyjne . . . . . . . . . . . . . . . . . . . . . . . . 67 8.2 Iterowane podnoszenie do kwadratu . . . . . . . . . . . . . . . 69 8.3 Twierdzenie Eulera i Maªe Twierdzenie Fermata . . . . . . . . . . . . . . . . . . . . 69 8.4 liczby pseudo-pierwsze 71 8.5 Chi«skie twierdzenie o resztach 8.6 Kongruencje stopnia 2 8.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 . . . . . . . . . . . . . . . . . . . . . . 77 Gra w orªa i reszk¦ przez telefon . . . . . . . . . . . . . . . . . 80 9 Zastosowania arytmetyki modulo m do rozkªadu liczb 83 9.1 Wzory skróconego mno»enia . . . . . . . . . . . . . . . . . . . 9.2 Metoda . . . . . . . . . . . . . . . . . 85 9.3 Metoda faktoryzacji Fermata . . . . . . . . . . . . . . . . . . . 87 9.4 Bazy rozkªadu . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 ρ rozkªadu na czynniki 3 83 10 Logarytm dyskretny 92 10.1 Poj¦cie logarytm dyskretny . . . . . . . . . . . . . . . . . . . 92 10.2 System DiegoHellmana uzgadniania klucza . . . . . . . . . . . . . . . . . . . . . . . . 10.3 System kryptograczny Masseya-Omury 93 . . . . . . . . . . . . 95 10.4 System ElGamala . . . . . . . . . . . . . . . . . . . . . . . . . 96 11 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 11.1 Kolorowanie mapy 11.2 Logarytm dyskretny 97 . . . . . . . . . . . . . . . . . . . . . . . . 97 . . . . . . . . . . . . . . . . . . . . . . . 99 11.3 Przekazy nierozró»nialne . . . . . . . . . . . . . . . . . . . . . 100 11.4 Dowód faktoryzacji . . . . . . . . . . . . . . . . . . . . . . . . 102 4 Rozdziaª 2 Klasyczne metody szyfrowania Korzenie kryptograi si¦gaj¡ czasów staro»ytnego Rzymu. Tam wªa±nie powstaª i byª u»ywany pierwszy system kryptograczny. zwanego te» klasycznych. szyfrem Cezara lub cyklicznym Od tego systemu, zaczniemy nasz przegl¡d metod Nast¦pnie rozwa»ymy budow¦ innych, bardziej skomplikowa- nych systemów, które byªy u»ywane w historii lub te» byªy stworzone do innych celów ni» ochrona tajemnic. 2.1 Szyfry cykliczne Zostaªy wynalezione, a na pewno u»ywane przez Juliusza Cezara. Maj¡ one bardzo ªatwy klucz, ale jednocze±nie s¡ ªatwe do zªamania. Oznaczmy przez jest N. p jednostk¦ tekstu jawnego i zaªó»my »e tych jednostek Wtedy funkcja szyfruj¡ca Ek jest okre±lona wzorem Ek (p) = p + k(mod N ). Kluczem jest tu liczba Je±li k k, a przestrze« kluczy pokrywa si¦ z alfabetem ZN . jest równe 3, to aby zaszyfrowa¢ sªowo TAK, przeksztaªcamy je w ci¡g 19 0 12, nast¦pnie dodajemy do ka»dej z tych liczb 3 modulo 26 otrzymuj¡c 24 3 15 i z powrotem przeksztaªcamy liczby na litery by otrzyma¢ wdn. Przeksztaªcenie szyfruj¡ce okre±lone powy»ej nazywamy przesuni¦ciem. Wygodnie jest tutaj napisa¢ alfabet, a pod nim liczby odpowiadaj¡ce poszczególnym literom. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 12 W celu odszyfrowania wiadomo±ci tgyfz kqyz, zaszyfrowanej kluczem 6, zamieniamy j¡ najpierw w ci¡g liczb 19 6 24 5 25 10 16 24 25. Tym razem, pd ka»dej z liczb odejmujemy 6 (modulo 26) i otrzymujemy 13 0 18 25 19 4 10 18 19. W nast¦pnym kroku patrzymy jakie litery s¡ na pozycjach z ostatniego ci¡gu i otrzymujemy wiadomo±¢ jawn¡ NASZ TEKST. Jest ogólnie przyj¦te, »e tekst zaszyfrowany podajemy w blokach pi¦cio literowych. Uªatwia to przekazywanie tekstu i zmniejsza ryzyko pomyªki przy wysyªaniu i deszyfrowaniu. Zajmiemy si¦ teraz ªamaniem szyfrów cyklicznych. Je±li wiemy na pewno, »e mamy do czynienia z szyfrem cyklicznym i znamy ilo±¢ liter w alfabecie, czyli N, ka»d¡ z ªamanie polega na znalezieniu liczby N k. Za k wystarczy podstawi¢ mo»liwo±ci i sprawdza¢ po kolei sens otrzymanych w ten sposób wiadomo±ci. Na przykªad, przypu±¢my, »e chcemy zªama¢ szyfr Wiemy przy tym, »e N = 26. Sprawdzamy po kolei wszystkie mo»liwe klucze. Zauwa»amy przy tym, »e odejmowanie liczby dodawanie liczby xolfd vhcdp nrzd. 26−k modulo 26. k modulo 26 jest tym samym, co Dodajemy wi¦c do liczb odpowiadaj¡cych literom szyfru, tj. 23 14 11 5 3 21 7 2 3 15 13 17 25 3, kolejno 2, . . . , k = 25. kilka pierwszych liter. Przy Podobnie dla k = 1, k = Cz¦sto, aby wyeliminowa¢ przypadek wystarczy wypróbowa¢ k = 2. k = 1 mamy pocz¡tek YPM, co jest nieczytalne. Tym razem mamy ZQ. Szcz¦±cie u±miecha si¦ do nas dosy¢ pó¹no, bo dopiero dla k = 23. Otrzymujemy wówczas ci¡g 20 11 8 2 0 18 4 25 0 12 10 14 22 0, co daje fraz¦ ULICA SEZAMKOWA. Ten sposób ªamania szyfrów nazywa si¦ przestrzeni kluczy. metod¡ brutalnej siªy, lub wyczerpania Juliusz Cezar u»ywaª klucza 3, ale i tak dowódcy legionów raczej domy±lali si¦ tre±ci przysªanych wiadomo±ci ni» je odszyfrowywali. Jego nast¦pca, Oktawian August u»ywaª klucza 2, nast¦pnie 1, a potem w ogóle zrezygnowaª z szyfrowania wiadomo±ci. 2.2 Monoalfabetyczny szyfr Beauforta W zasadzie szyfr ten, wynaleziony przez G. Sestri w 1710 roku, jest cz¦±ci¡ bardziej skomplikowanej techniki szyfrowania. Tutaj przedstawimy tylko podstawowy krok tej techniki, który mo»e istnie¢ jako samodzielny system szyfruj¡cy. Podobnie jak w przypadku szyfrów Cezara, przestrzeni¡ kluczy jest 13 ZN , ale przeksztaªcenie szyfruj¡ce jest dane wzorem Ek (p) = −p + k(mod N ). Zauwa»my, »e przeksztaªcenie deszyfruj¡ce ma tak¡ sam¡ posta¢. Zatem szyfrowanie i deszyfrowanie odbywa si¦ za pomoc¡ tego samego przeksztaªcenia. Zauwa»my te», »e w przeciwie«stwie do kryptosystemu Cezara, gdzie identyczno±ci¡, w kryptosystemie Beauforta, »adnego Ek E0 byªo nie jest identyczno±ci¡ dla k. Ze wzgl¦du na maª¡ liczb¦ kluczy, równie» i ten szyfr mo»na ªama¢ przez wyczerpanie przestrzeni kluczy. Podamy jeszcze alfabet jawny i szyfrowy dla klucza 3. Zauwa»my, »e kolejno±¢ liter w alfabecie szyfrowym jest odwrócona. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D C B A Z Y X W V U T S R Q P O N M L K J I H G F E 2.3 Kody aniczne jednowymiarowe Je»eli zamiast jednej liczby jeste±my w stanie zapami¦ta¢ dwie, to mo»emy stosowa¢ nieco bardziej skomplikowany szyfruj¡ce ma posta¢ kod aniczny, E(p) = ap + b (mod N ). gdzie przeksztaªcenie Naszym kluczem jest tu pa- ra (a, b). eby rozszyfrowa¢ wiadomo±¢ u»ywamy innego klucza. Dokªadnie, D(c) = a0 c + b0 ( mod N ), gdzie a0 jest liczb¡ odwrotn¡ do a modulo N , a b0 = −a0 b w ZN . Musimy tu uwa»a¢, czy NWD(a, N ) jest równy 1, gdy» w przeciwnym wypadku nasz szyfr nie b¦dzie jednoznaczny. Kiedy a = 1, kod aniczny staje si¦ kodem cyklicznym. Gdy b = 0, kod aniczny nazywamy szyfrem liniowym. W przypadku alfabetu 26-literowego, przestrze« kluczy 12 · 26) elementów. Nie jest to du»a liczba z kyptoanalitycznego ma 312 (= punktu widzenia, ale rozwa»enie takiej liczby przypadków mo»e stworzy¢ pewne trudno±ci. Zademostrujemy metod¦, która ogranicza istotnie liczb¦ rozwa»anych przypadków. 2.1 Przykªad. szyfrze tym najcz¦stsz¡ liter¡ g vqtmx ozdtg hgjqm aqhcx bgkgt ag. W jest g, a nast¦pn¡ jest q. Podejrzewamy, »e a (pozycja 0), natomiast q (pozycja 16), to e Zªamiemy szyfr (pozycja 6) to zaszyfrowane (pozycja 4). Mamy wi¦c 6a0 +b0 ≡0( mod 26) 16a0 +b0 ≡4( mod 26) 14 Odejmuj¡c obie kongruencje stronami otrzymujemy 0 0 st¡d natychmiast a = 3. Chwil¦ potem mamy b = 10a0 ≡ 4 (mod 26), a 8 i mamy klucz deszy- fruj¡cy. Zastosowanie tego klucza daje nam tekst jawny do zªamania. Ten szyfr nadaje si¦ 2.4 Permutacje alfabetu Znacznie trudniejsze od szyfrów cyklicznych oraz anicznych s¡ szyfry, w których ka»da litera alfabetu jawnego jest zast¡piona liter¡ alfabetu szyfrowego bez stosowania okre±lonego algorytmu arytmetycznego. Zatem przestrze« kluczy jest równa zbiorowi wszystkich permutacji alfabetu. W celu uªatwienia zapami¦tania przeksztaªcenia szyfruj¡cego stosujemy tu innego rodzaju klucz. Jest to sªowo, którego litery zast¦puj¡ pocz¡tkowe litery alfabetu jawnego. Dalsze litery dopisujemy tak jak wyst¦puj¡ one w alfabecie jawnym przy czym pomijamy ju» wykorzystane znaki. Na przykªad stosuj¡c klucz ,,szyfrowanie dostajemy nast¦puj¡ce przeksztaªcenie szyfruj¡ce: a b c d e f g h i j k l m n o p q r s t u v w x y z S Z Y F R O W A N I E B C D G H J K L M P Q T U V X permutacyjnym. Jego odmian¡ jest stosowany w pierwszych maszynach szyfruj¡cych kryptosystem transpozycyjny, tj. taki, którego przestrze« kluczy jest równa zbiorowi wszystkich Opisany powy»ej kryptosystem nazywamy permutacji, które mo»na zapisa¢ w postaci iloczynu rozª¡cznych transpozycji. Przykªadem tu jest nast¦puj¡ce przeksztaªcenie szyfruj¡ce: a b c d e f g h i j k l m n o p q r s t u v w x y z Z C B F R D W K N J H M L I O P T E Y Q X V G U S A Poniewa» szyfry tego rodzaju byªy zaprogramowane w maszynach jako metody standardowe, nikt nie musiaª pami¦ta¢ klucza. Zalet¡ szyfrów transpozycyjnych jest fakt, »e klucze szyfruj¡cy i rozszyfrowuj¡cy s¡ identyczne. Zatem ta sama maszyna sªu»yªa zarówno do szyfrowania jak i do rozszyfrowywania wiadomo±ci. 15 2.5 Analiza cz¦sto±ci wyst¦powania liter Ta metoda ªamania szyfrów opiera si¦ na prawach rachunku prawdopodobie«stwa. Wiadomo, »e pewne litery wyst¦puj¡ w tek±cie cz¦±ciej ni» inne. Oto alfabet angielski poukªadany wedªug cz¦sto±ci wyst¦powania liter: E 12.5%, T, A, O, I, N 9.2-7%, S, R 6%, L, D 4%, C, U, M, F, P, G, W, Y, B 3-1.5%, V, K, X, J, Q, Z 1-0.1%, Je»eli wi¦c przechwycimy wiadomo±¢ na tyle dªug¡ (lub na tyle du»o wiadomo±ci), aby wyeliminowa¢ przypadkowo±¢, mo»emy przypuszcza¢, »e najcz¦±ciej powtarzaj¡ca si¦ litera to zakodowane E, T, A, O, I lub N. Je»eli mamy do czynienia z kodem cyklicznym, nasze sprawdzanie mo»liwo±ci dla b ogranicza si¦ do sze±ciu przypadków. Okazuje si¦, »e na podstawie badania entropii j¦zyka, czyli ilo±ci informacji zawartej w jednym symbolu zaszyfrowanego tekstu, mo»na zªama¢ ka»dy szyfr, który szyfruje tekst angielski maj¡cy wi¦cej ni» 25 liter. Oczywi±cie metoda ta nie dziaªa, je±li przechwytywane wiadomo±ci s¡ krótkie (maj¡ mniej ni» 25 liter) i klucz cz¦sto si¦ zmienia. je±li przechwycimy tylko xolfd vhcdpnrzd. Na przykªad, jak w rozwa»anym wy»ej szyfrze cyklicznym, to nie wida¢ tu, która litera pojawia si¦ najcz¦±ciej. Z drugiej strony jednak, jak si¦ okazuje, klucze s¡ bardzo niech¦tnie zmieniane. Rz¡d Stanów Zjednoczonych nie zdecydowaª si¦ na zmian¦ kluczy nawet po tym, jak wszystkie zgin¦ªy w tajemniczej kradzie»y w Zagrzebiu na pocz¡tku drugiej wojny ±wiatowej. Kiedy ju» wiemy, które litery pojawiaj¡ si¦ najcz¦±ciej, zwracamy uwag¦ na powtarzaj¡ce si¦ pary. Na przykªad EA jest najcz¦±ciej pojawiaj¡cym si¦ digramem samogªosek. Dosy¢ cz¦sty jest te» digram IO. Natomiast OI, IA, AI, OA i AO s¡ ju» znacznie rzadsze. Digram AE nie pojawia si¦ prawie nigdy. Ogólnie, dziesi¦¢ najcz¦stszych digramów w j¦zyku angielskim, to TH, HE, AN, IN, ER, RE, ON, ES, TI oraz AT. Dla przykªadu spróbujmy rozszyfrowa¢ nast¦puj¡cy tekst wktqr lwktq fqatr yggrg ltqut ziqzd rziqz kqveq fsnzg ksnqv xlzwt olzgg kkgzl ziglt qozof lsoet fgxko qktqe vigso utqlz rvozi liofu ethzq cto tk qfqbo sqkut wstql xzeit Aby uªatwi¢ nieco ªamanie, przypu±¢my »e wiemy ju», i» najcz¦±ciej pojawiaj¡c¡ si¦ w tek±cie jawnym liter¡ nie jest 16 e. Z analizy cz¦sto±ci wynika, »e najcz¦stszymi literami w zaszyfrowanym tek±cie s¡ q, t, z, g, k, l, o, i i f. q t z g k l o i f Tworzymy teraz tak zwan¡ tabel¦ kontaktów: q t z g k l o i f 0 0 2 0 3 2 1 0 1 6 0 0 0 2 2 1 0 1 2 1 0 2 0 1 2 4 0 0 0 2 2 0 1 0 0 2 1 3 0 1 1 0 1 0 0 1 2 3 0 0 0 0 1 0 0 0 2 0 0 3 0 0 3 3 1 0 1 0 0 1 0 0 2 0 0 1 0 0 0 1 0 Podaje ona jak cz¦sto w zaszyfrowanym tek±cie wyst¦puj¡ digramy zªo»one z najcz¦±ciej wyst¦puj¡cych liter. Na przykªad digram (szukamy w tabeli miejsca, gdzie krzy»uje si¦ wiersz Wiemy, »e q k kq wyst¦puje 3 razy z kolumn¡ q. nie jest zaszyfrowanym E. Zgadujemy zatem, »e to powiada E. Poniewa» mamy 6 par tq, a t ma by¢ E, wi¦c q t od- odpowiada zapewne A. Trzeci¡ liter¡ z kolei jest Z. Poniewa» T jest jeszcze ,,wolne, przyporz¡dkujmy z → T. Poniewa» nie pojawia, przypuszczamy, »e zi i → H. pojawia si¦ 4 razy, a iz w ogóle si¦ Na koniec zauwa»amy jeszcze, »e pojawia si¦ dwa razy. Dobrze jest wi¦c postawi¢, »e g gg to O. Podstawiamy teraz odgadni¦te litery do naszego kryptogramu i odgadujemy reszt¦ liter na zasadzie ,,co pasuje. Tekstem jawnym jest wi¦c: BREAD THAT MUST BE SLICED WITH AN AX IS A BREAD THAT IS TOO NOURISHING LARGE NAKED CARROTS ARE ACCEPTABLE AS FOOD ONLY TO THOSE WHO LIVE IN HUTCHES EAGERLY AWAITING EASTER. 2.6 Homofony i nulle kiedy przekonano si¦, »e analiza cz¦sto±ci wyst¦powania liter jest pot¦»n¡ broni¡, zacz¦to si¦ zastanawia¢, jak utrudni¢ t¦ analiz¦. Nasuwaj¡ si¦ tutaj dwie dosy¢ oczywiste metody. Jedn¡ z nich jest ,,dokªadanie liter, a drug¡ zmniejszanie ilo±ci najcz¦±ciej powtarzaj¡cych si¦ znaków. 17 Prowadzi to do dwóch denicji. Nullem nazywamy jednostk¦ tekstu zaszyfrowanego, któ- rej nie odpowiada »adna jednostka tekstu jawnego. Oczywi±cie, nasze przeksztaªcenie szyfruj¡ce musi by¢ w dalszym ci¡gu wzajemnie jednoznaczne. Zatem, w praktyce, do alfabetu jawnego dorzucamy ,,znak pusty, któremu odpowiada pewien znak w alfabecie zaszyfrowanym. Na przykªad A B C D E F G H I J K L M N O P Q R S T U V W X Y Z s z y f r o w a n i e 3 c d g h j k 4 m p q W powy»szym szyfrze, wyst¦puj¡ dwa nulle: b i l. t ∅ ∅0 u v x b l Wtajemniczeni wiedz¡, »e po otrzymaniu zaszyfrowanej wiadomo±ci, nale»y te dwa znaki zignorowa¢. Na przykªad zaszyfrowane wiadomo±ci esmsbhp13m1s oraz e1sbmsh1pb3ms oznaczaj¡ to samo, a mianowicie wiadomo±¢ KATAPULTA. Druga denicja jest nast¦puj¡ca: homofonem nazywamy jednostk¦ tekstu jawnego, której odpowiada wi¦cej ni» jedna jednostka tekstu zaszyfrowanego. I tym razem mamy problemy z wieloznaczno±ci¡ funkcji szyfruj¡cej. Problem ten pokonujemy powtarzaj¡c elementy w alfabecie jawnym. A oto przykªad A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A T s z y f r o w a n i e 3 c d g h j k 4 m p q t u v x b 5 l Trzy homofony powy»szego alfabetu to A, A i T. Dzi¦ki nim wiadomo±¢ KATAPULTA mo»emy zaszyfrowa¢ tak, »e »adna litera alfabetu zaszyfrowanego nie powtarza si¦: esm5hp31b. Przy ukªadaniu przeksztaªcenia szyfruj¡cego mo»emy stosowa¢ zarówno nulle jak i homofony. amanie szyfru jest wtedy jeszcze bardziej utrudnione. Oprócz tych dwóch utrudnie« stosowane s¡ te» i inne bardziej skomplikowane. Niektóre z nich opiszemy poni»ej. 2.7 Jednostki dwuliterowe czyli digramy Digramy jako alfabet po raz pierwszy zastosowaª niejaki Giovanni Battista Porta w 1563 roku. Alfabet taki skªadaª si¦ z czterystu digramów i do ka»dego z nich Porta z niebywaª¡ inwencj¡ dobraª pewien szczególny znak. Ogólnie, stosuj¡c digramy jako jednostki tekstu jawnego, mamy alfabet 2 zªo»ony z N liter. Jego symbole zast¦pujemy b¡d¹ pojedynczymi znakami, 18 Rysunek 2.1: Tablica Porty jak to zrobiª Porta, b¡d¹ te» (innymi) digramami. Nasze przeksztaªcenie szyfruj¡ce przedstawiamy w postaci tabeli, jak na przykªad w tabeli Porty. Dokªadnie, je±li 2 cja E∗k : A → A jest alfabetem, to przeksztaªceniem bazowym jest bijekA2 . W szczególno±ci liczba liter w tek±cie jawnym m musi by¢ parzysta. Przestrzeni¡ kluczy jest tu oczywi±cie zbiór wszystkich permu2 ∗ tacji zbioru A . Przeksztaªcenie szyfruj¡ce Ek jest generowane przez Ek w naturalny sposób, tj. Je±li m = m1 m2 . . . mp , gdzie mi s¡ digramami, to Ek (m) = Ek∗ (m2 )Ek∗ (m2 ) . . . Ek∗ (mp ). Powy»sze przeksztaªcenie nazywamy 2-dzielnym. Aby zªama¢ kod digramowy mo»emy stosowa¢ analiz¦ cz¦sto±ci wyst¦powania jednostek dwuliterowych. Aby metoda ta si¦ powiodªa, przechwycony tekst musi by¢ bardzo dªugi. Je»eli dla tekstu o jednostkach jednoliterowych potrzebowali±my N znaków, aby ªamanie si¦ powiodªo, to teraz potrzebujemy 2 okoªo N znaków. Dla j¦zyka angielskiego jest to ju» ponad 525 liter. 19 Gªówn¡ przeszkod¡ przy stosowaniu szyfrów dwudzielnych jest brak efektywnego algorytmu szyfruj¡cego i deszyfruj¡cego. Próby uproszczenia ogólnej zasady doprowadziªy do powstania szyfrów opartych na kwadracie oraz na macierzach. Szyfry oparte na kwadracie omówimy w nast¦pnych trzech podrozdziaªach. 2.8 Szyfr Playfaira Problem zapami¦tania du»ej ilo±ci znaków doprowadziª w 1854 roku niejakiego Charlesa Wheatstone'a do wynalezienia prostej metody zast¦powania jednego bloku liter drugim. Litery alfabetu umieszczone s¡ w kwadracie 5×5, a blok liter tekstu jawnego tworzy w tym kwadracie przek¡tn¡ prostok¡ta. Blok dwuliterowy odczytany z drugiej przek¡tnej jest odpowiadaj¡cym blokiem kryptotekstu. Je±li litery znajduj¡ si¦ w tym samym wierszu lub w tej samej kolumnie, szyfrowanie jest nieco trudniejsze. Ogólnie po krótkiej praktyce, ªatwo jest posªugiwa¢ si¦ opisanym szyfrem. Szyfr ten nazwany szyfrem Playfaira, byª stosowany przez Anglików, prawdopodobnie, od czasów Wojny Krymskiej (1854), poprzez Wojny Burskie (1880 do 1902) a» do ko«ca pierwszej wojny ±wiatowej. Wiadomo jednak, »e od poªowy 1915 roku, Niemcy nie mieli problemów z jego zªamaniem. Szyfr ten u»ywa digramów jako jednostek tekstu. Kluczem jest macierz 5×5 zawieraj¡ca 25 liter (bez j). Do jej uªo»enia u»yjemy sªowa kluczowego ,,szyfrowanie. s o e h q Digram xy = kij kmn , gdzie z w b k t x 6= y y f a n c d l m u v r i g p x oraz i, j , m, n ∈ {1, 2, 3, 4, 5} je±li i 6= m i=m i 6= m szyfrujemy jako kin kmj ki,j+1 ki,n+1 ki+1,j km+1,j je±li je±li oraz oraz oraz j= 6 n; j= 6 n; j = n. (Dodanie 1 do wska¹nika 5 daje tu wynik 1.) Je»eli lamy, tzn. wtykamy pomi¦dzy xiy liter¦ 20 q, x = y, digram rozdzie- która jest ró»na od x i od y. Przeksztaªcenie deszyfruj¡ce w pierwszym przypadku, tj. gdy deszyfrowane litery znajduj¡ si¦ w innych wierszach oraz kolumnach, pokrywa si¦ z szyfruj¡cym. W pozostaªych przypadkach pozycje liter digramu przesu- wamy w lewo lub w gór¦ stosuj¡c zasad¦ cykliczno±ci. zaszyfrowanym tek±cie nie mo»e si¦ tra¢ digram postaci Zauwa»my, »e w xx. amanie szyfru Playfaira i pozostaªych dwóch szyfrów opartych na kwadracie, polega na analizie statystycznej powi¡za« liter kryptotekstu i na tej podstawie odtworzeniu kwadratu. 2.9 Podwójny szyfr Playfaira Aby unikn¡¢ niewygody zwi¡zanej z digramami zªo»onymi z takich samych liter, w latach trzydziestych XX wieku, na potrzeby faszystowskiej organizacji SD stworzono system oparty na dwóch kwadratach. Tym razem zrezygnowano z litery y, która byªa zast¦powana przez tak»e zostaªo zmodykowane, tzn. i. Przeksztaªcenie szyfruj¡ce zostaª dodany dodatkowy krok. Krok podstawowy algorytmu szyfruj¡cego niewiele ró»niª si¦ od przeksztaªcenia Playfaira. Dokªadnie, wykorzystano dwa kwadraty: d k v c q o a r g u p s f i w e l t n h b j m x z s i r t b f l m u v c d g o w h n j p x e a k . q z (2.1) Pierwszej litery digramu szukamy w pierwszym kwadracie, a drugiej w drugim. W rezultacie mamy tylko dwa przypadki. Je±li lij lmn jest digramem, lij jest w pierwszym kwadracie, a lmn w drugim, i, j , m, n ∈ {1, 2, 3, 4, 5}, to bijekcja zbioru digramów wyglada nast¦puj¡co. ( lmj lin je±li i 6= m, E ∗ (lij lmn ) = li,j+1 lm,n+1 je±li i = m przy czym i znów, pierwsza litera jest w pierwszym kwadracie, a druga w drugim oraz dodanie 1 rozumiemy jako przesuni¦cie cykliczne w kwadracie. Jak ju» wspomnieli±my, algorytm szyfrowania skªadaª si¦ z dwóch kroków. W pierwszym tekst jawny dzielony byª na póª lub na bloki 17-literowe w przypadku, gdy wiadomo±¢ zawieraªa wi¦cej ni» 34 litery. 21 Bloki te byªy umieszczane jeden nad drugim, a digramy do szyfrowania zbierano pionowo. Na przykªad, aby zaszyfrowa¢ tekst ZBIERAMY SIE W PIATEK dzielimy go na poªowy i odpowiednio umieszczamy: Z B I E R A M Y S I E W P I A T E K ZI, BE, IW, EP, RI, AA, MT, YE, SK. Stosuj¡c kwadraty z (2.1) otrzymujemy digramy lv, lk, wo, jh, of, sr, nm, pq oraz fa, które po prostu ª¡czymy w tekst otrzymuj¡c szyfr: lvlkw ojhof srnmp qfa. Digramy do przeksztaªcenia to Przy deszyfrowaniu, post¦pujemy w odwrotnej kolejno±ci. Zauwa»amy, »e przeksztaªcenie deszyfruj¡ce digramy jest takie samo jak szyfruj¡ce w pierwszym przypadku, tj. kiedy litery znajduj¡ si¦ w wierszach o innych numerach. 2.10 szyfr Delastelle'a Kwadrat zaproponowany przez felixa Delastelle'a w 1902 roku jest typowym przykªadem szyfru transpozycyjnego (przeksztaªcenie szyfruj¡ce jest równe deszyfruj¡cemu) i eliminuje wszelkie niedogodno±ci zwi¡zane ze stosowaniem ró»nych przypadków. W kwadracie Delastelle'a nie ma litery pujemy przez v. s o b j q z a c k t y f n i d g l m u v w, któr¡ zast¦- r e h p x Bazowe przeksztaªcenie szyfruj¡ce polega na zamianie wspóªrz¦dnych: (lij lmn ) = lim ljn . Dla przykªadu zaszyfrujemy fraz¦ E∗ SZYFR FRANCUSKI. Pod ka»d¡ liter¡ piszemy pionowo jej wspóªrz¦dne w kwadracie, i znajdujemy litery o wspóªrz¦dnych zapisanych poziomo. S Z 1 1s 1 2z Y F 1 1s 3 4g R F 1 1s 5 4v Otrzymany kryptogram to R A 1 2z 5 2t szsgs vztnc qbki. 22 N C 2 3n 3 2c U S 5 1q 3 1b K I 4 2k 2 4i 2.11 Jednostki wieloliterowe Aby jeszcze bardziej utrudni¢ ªamanie tekstu mo»emy zastosowa¢ trigramy, czyli jednostki trzyliterowe. Pojawia si¦ tu jednak problem odpowiedniego zapisania przeksztaªcenia szyfruj¡cego tabelka musi by¢ trzywymiarowa. Tym gorszy jest ten problem im dªu»sze s¡ jednostki tekstu. Specjalne sze±ciany szyfruj¡ce na wzór kwadratów Playfaira byªy proponowane przez Luigi Gioppi di Tuerkheim w 1897 roku oraz przez Williama Friedmana w latach dwudziestych XX wieku. Zdecydowanie ch¦tniej przyj¦to popularne podczas I Wojny wiatowej ksi¡»ki kodowe, gdzie szyfrowano od razu caªe wyrazy a nawet zdania. Jednostkami tekstu jawnego s¡ tu cz¦sto powtarzaj¡ce si¦ sekwencje liter. W dalszej perspektywie oznacza to tworzenie swego rodzaju ,,sªowników zwanych ksi¡»kami kodowymi. I tu pojawia si¦ kolejny problem. Nikt nie jest w stanie pami¦ta¢ caªej tre±ci takiej ksi¡»ki. Zatem musi ona zawsze by¢ pod r¦k¡ zarówno koduj¡cego jak i dekoduj¡cego. Stwarza to du»e pole manewru dla szpiegów i nie tylko. W sierpniu 1914 roku niemiecki kr¡»ownik Magdeburg próbowaª uciec od rosyjskiego pancernika i sztuka ta mu si¦ nie udaªa. Co gorsza, statek zamiast zaton¡¢, osiadª na mieli¹nie i w zwi¡zku z tym wszystkie ksi¡»ki kodowe niemieckiej marynarki zamiast zaton¡¢, traªy w r¦ce Rosjan, którzy po przestudiowaniu ich ,,podali dalej. W rezultacie ksi¡»ki dostaªy si¦ w r¦ce niejakiego Winstona Churchilla, który wiedziaª jak je wykorzysta¢. 2.12 Szyfry polialfabetyczne Blaise de Vigenére w wydanej w 1586 roku ksi¡»ce Traicté des Chifres opi- saª kilka ró»nych metod szyfrowania. Ostatecznie jego nazwiskiem nazwano szyfr, który opisany byª wcze±niej przez biskupa J.H. von Trittenheim'a. Idea szyfrów tego typu polega na u»yciu kilku metod szyfruj¡cych nast¦puj¡cych po sobie. Na przykªad, rozwa»my ci¡g kluczy k0 , k1 , . . . , kr−1 do szyfrów Cezara. Przeksztaªcenie szyfruj¡ce deniujemy w nast¦puj¡cy sposób. Ek0 k1 ...kr−1 (m0 m1 . . . mn ) = (m0 + k0 )(m1 + k1 ) . . . (mn + kn mod r ), przy czy dodawanie wykonujemy modulo liczba liter w alfabecie. Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»sami¢ ci¡g kluczy i sªowo. Na przykªad zaszyfrujmy BETYCZNA stosuj¡c klucz anulka. FUNKCJA POLIALFA- W tym celu uªó»my tabel¦ przesuni¦¢: 23 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s n o p q r s t u v w x y z a b c d e f g h i u v w x y z a b c d e f g h i t u v w x y z j j k l m n o p q k l m r s l m n o p q r s t u v w x y z a b c d e f g h k l m n o p q r s t u v w x y z a b c d e f a b c d e f g h i j k l m n o p q r s i t j k g h i j t u v w x y z Pierwszy wiersz powy»szej tabeli to alfabet, a ka»dy nast¦pny wiersz, to alfabet pisany pocz¡wszy od odpowiedniej litery sªowaklucza. Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa ,,anulka i szyfrujemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªug drugiego itd. F U N K C J a n u l k a f h h v m j A P O L I A a n u l k a a c i w s a L F A B E T a n u l k a l s u m o t Y C Z N A a n u l k y p t y k Otrzymali±my zatem kryptogram fhhvm jaciw salsu motyp tyk. Deszyfro- wanie odbywa si¦ na podobnej zasadzie, tj. Dk0 k1 ...kr−1 (m0 m1 . . . mn ) = (m0 − k0 )(m1 − k1 ) . . . (mn − kn mod r ), gdzie odejmowanie jest wykonywane modulo liczba liter w alfabecie. Aby uªatwi¢ szyfrowanie i odszyfrowywanie, J.H. von Trittenheim zaproponowaª poni»sz¡ tabel¦ przesuni¦¢ alfabetu. Nazywa si¦ ona tabula recta. 24 tablic¡ Tryteniusza lub a b c d e f b c d e f g h g h c d e f d e f g h e f g h f g h g h g h i j k i j k l m n o p q r l m n o p q r l m n o p q r i j k i j k l m n o p q r i j k l m n o p q r l m n o p q r i j k i j k l m n o p q r l m n o p q r h i j k i j k l m n o p q r j k l m n o p q r k l m n o p q r l m n o p q r s s s s s s s s s s s t u v w x y z t u v w x y z a t u v w x y z a b t u v w x y z a b c t u v w x y z a b c d t u v w x y z a b c d e t u v w x y z a b c d e t u v w x y z a b c d e t u v w x y z a b c d e t u v w x y z a b c d e t u v w x y z a b c d e t u v w x y z a b c d e m n o p q r s n o p q r s t u v w x y z a b c d e o p q r s t u v w x y z a b c d e p q r s t u v w x y z a b c d e q r s t u v w x y z a b c d e r s t u v w x y z a b c d e t u v w x y z a b c d e s t u v w x y z a b c d e u v w x y z a b c d e f g h v w x y z a b c d e f w x y z a b c d e f g h x y z a b c d e f g h y z a b c d e f g h z a b c d e g h f s i f g h f f f f g h f f g g h g h g h i i j i j k i j k l l m g h f g h f g h i j k g h i j k l m n k l m n o g h i g h f f f f i j j k l m n o p i j k l m n o p q k l m n o p q r g h i j i j k l m n o p q r l m n o p q r i j k i j k l m n o p q r i j k l m n o p q r i j k l m n o p q r j k l m n o p q r s s s s s s t t u t u v t u v w t u v w x t u v w x y amanie szyfrów Vigenére'a polega na dopasowaniu odpowiedniego alfabetu do pozycji danej litery. Gªównym problemem jest tutaj jednak znalezienie okresu r. I to jest zapewne gªówna przyczyna, dla której szyfr Viginére'a byª ,,nieªamalny przez prawie trzysta lat! Dopiero w 1863 roku, ocer armii pruskiej, F. W. Kasiski wynalazª metod¦ wypadkowej przypadkowo±ci1 , której nie opiszemy z uwagi na zbyt skomplikowany aparat statystyczny. Wykorzystuj¡c ci¡g kluczy k0 k1 · · · kr−1 do monoalfabetycznych szyfrów Beauforta tworzymy szyfr Beauforta, w którym przeksztaªcenia szyfruj¡ce i deszyfruj¡ce pokrywaj¡ si¦. Ek0 k1 ...kr−1 (m0 m1 . . . mn ) = (−m0 + k0 )(−m1 + k1 ) . . . (−mn + kn mod r ), 1 ang. the incidence of coincidences 25 Dodawanie i odejmowanie, odbywa si¦ na zasadach arytmetyki modularnej z moduªem, którym jest liczba liter w alfabecie. Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»sami¢ ci¡g kluczy i pewien wyraz hasªo. Dla przykªadu zaszyfrujmy CJA POLIALFABETYCZNA stosuj¡c klucz anulka. FUNK- W tym celu uªó»my tabel¦ alfabetów szyfruj¡cych: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a z y x w v u t s r q p o n m l k j i h g f n m l k j f e d c b a z y x w v u t s u t l i h g s r q p o n m l k j k j k j i h g f i h g f e d c b a z e d c b r q p o y x w v e d c b a z y x w v u t s r q p o n m i h g f e d c b a z y x w v u t s r q p o n m l a z y x w v u t s r q p o n m l k j i h g f Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa e d c b anulka i szyfru- jemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªug drugiego itd. F U N K C J a n u l k a v t h b i r A P O L I A a n u l k a a y g a c a L F A B E T a n u l k a p i u k g h Y C Z N A a n u l k c l v y k Otrzymali±my zatem kryptogram vthbi rayga capiu kghcl vyk. Podobnie jak dla szyfru Vigenére'a i w tym przypadku mo»emy utworzy¢ odpowiedni¡ tabel¦ przesuni¦¢ alfabetu. Uogólnieniem dwóch powy»szych systemów jest Vigenére'a. kluczy wariant aniczny szyfru Do konstrukcji przeksztaªcenia szyfruj¡cego u»ywamy tu ci¡gu (n0 , k0 ), (n1 , k1 ) . . . , (nr−1 , kr−1 ) do szyfrów anicznych. Sama kon- strukcja odbywa si¦ na podobnej zasadzie jak w poprzednich przypadkach: E(m0 m1 . . . mp ) = (n0 m0 + k0 )(n1 m1 + k1 ) . . . (np mod r mp + kp mod r ). Wedªug F. Bauera, oryginalny szyfr Vigenére'a skªadaª si¦ z serii przesuni¦tych alfabetów ustawionych bez okre±lonych reguª arytmetycznych: 26 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z s z y f z y f r o w a n i e b c d g h j k l m p q l m p q t t u v x r o w a n i e b c d g h j k y f r o w a n i e b c d g h j k l m p q t u v x s z f l m p q t u v x r o w a n i r o w a n i e b c d g h e b c d g h j o w a n i e b c d g h j k Generalnie, je±li mamy ci¡g rowany przez ten ci¡g j k k u v x s s z y l m p q t u v x s z y f l m p q t u v x s z y f r E0 , E1 , . . . , Er−1 szyfr polialfabetyczny bijekcji alfabetu, to gene- jest dany przez przeksztaªcenie E(m0 m1 . . . mp ) = E0 (m0 )E1 (m1 ) . . . Ep mod r (mp ), m = m0 m1 . . . mp jest wiadomo±ci¡ jawn¡. Dla przykªadu, szyfr szyfr oryginalny w powy»szym systemie, to lssnq muogk ubusc. gdzie frazy W latach czterdziestych XX wieku C.E. Shannon stworzyª teori¦ entropii, która zajmuje si¦ badaniem informacji zawartej w tek±cie. Mi¦dzy innymi zdeniowaª on zasad¦ bezwarunkowego bezpiecze«stwa, liwego do zªamania. Szyfr polialfabetyczny jest takim, je±li speªnione s¡ czyli szyfru niemo»- nast¦puj¡ce warunki • Klucz u»yty do szyfrowania wiadomo±ci jest dªu»szy lub równy szyfrowanej wiadomo±ci. • Klucz musi by¢ wygenerowany w sposób caªkowicie losowy (nie mo»e istnie¢ sposób na odtworzenie klucza na podstawie znajomo±ci dziaªania generatorów liczb pseudolosowych). • Klucz nie mo»e by¢ u»yty do zaszyfrowania wi¦cej ni» jednej wiadomo±ci. Opublikowany w 1917 roku szyfr G.S. Vernama speªnia te warunki. Kryptosystem ten jest u»ywany do dzi± w poª¡czeniu gor¡cej linii mi¦dzy Waszyng- tonem a Moskw¡. Idea tego szyfru polega na tym, »e klucz jest generowany pseudoprzypadkowo i ten sam generator strumienia pseudoprzypadkowego zamontowany jest na obu ko«cach linii przesyªowej. Klucz szyfruj¡cy i deszyfruj¡cy jest ten sam. Wiadomo±¢ jest najpierw kodowana na strumie« zer i jedynek a nast¦pnie dodawany jest do niej modulo dwa pseudoprzypadkowy strumie« klucza. Dekodowanie odbywa si¦ w oparciu o t¦ sam¡ zasad¦. 27 Zdecydowanie nie jest bezwarunkowo bezpieczny system autoklucz, gdzie sama szyfrowana wiadomo±¢ jest kluczem (drugi warunek nie jest speªniony). System autoklucza polega na zastosowaniu pewnego systemu, gdzie litery alfabetu mo»na uto»sami¢ z kluczem. W ten sposób pami¦tamy jeden klucz (starter), wedªug którego szyfrujemy pierwsz¡ liter¦ tekstu. Druga litera jest szyfrowana wg klucza, którym jest pierwsza litera itd. gdzie starterem jest k, Dla szyfru Cezara, mamy E(m0 m1 m2 . . . mp ) = (m0 + k)(m1 + m0 )(m2 + m1 ) . . . (mp + mp−1 ). 2.13 a«cuch szyfrów i DES Do±¢ istotn¡ wad¡ schematu opisanego w poprzednim paragrae, jest fakt, »e ten sam tekst szyfruje si¦ tak samo, je±li u»yty jest ten sam klucz. Chodzi o to, »e potencjalny intruz wcale nie musi zna¢ tekstu jawnego, by wymusi¢ na odbiorcy szyfru okre±lone dziaªanie wystarczy, »e prze±le mu przechwycony wcze±niej (zaszyfrowany) tekst. Poniewa» intruz wie jaka reakcja byªa wcze±niej, podejrzewa, »e taka sama b¦dzie i tym razem. Jednym ze sposobów omini¦cia tej niedogodno±ci jest zastosowanie a«cuch szyfrów 1 . Pomysª jest nast¦puj¡cy: Dzielimy tekst jawny (zakodowany w strumie« bitów) na bloki bitów. Potrzebny jest inicjuj¡cy wektor zero-jedynkowy C0 o n Mi po n bitach oraz klucz K tej samej dªugo±ci. Pierwszy blok tekstu jawnego szyfrujemy jako C1 = M1 ⊕ C0 ⊕ K , drugi jako C2 = M2 ⊕ C1 ⊕ K , i tak dalej. Ogólnie, Cj = Mj ⊕ Cj−1 ⊕ K . W celu rozszyfrowania, dzielimy tekst zaszyfrowany na n-bitowe kawaªki Ci i otrzymujemy kolejno M1 = C1 ⊕ C0 ⊕ K , nast¦pnie, M2 = C2 ⊕ C1 ⊕ K itd. Je±li który± z Ci jest bª¦dny, to otrzymujemy bª¡d w co najwy»ej dwóch kawaªkach tekstu jawnego, mianowicie Mi oraz Mi+1 . Wektor C0 musi by¢ przesªany innym kanaªem ni» wiadomo±¢ jawna i klucz. Przy odpowiednio du»ym n istnieje bardzo maªa szansa, »e wiadomo±¢, klucz i wektor inicjuj¡cy powtórz¡ si¦. 1 a«cuch szyfrów jest wykorzystany w systemie DES , który byª u»ywany od 1977 roku do ko«ca lat osiemdzisi¡tych. W 1974 roku, National Bureau of Standards zobowiazaªo rmy ameryka«skie do napisania programu szyfruj¡cego, który b¦dzie standardem w kodowaniu wiadomo±ci rz¡dowych. Miaª on 1 ang. 1 Data cipherblock chaining Encryption Standard 28 zastapi¢ niewygodne w u»yciu ksi¡»ki kodowe. Odpowiedzi¡ rmy IBM byª system LUCIFER, który po uproszczeniu i modykacji staª si¦ standardem. Program szyfruj¡cy zostaª rozpowszechniony w postaci ko±ci, któr¡ ka»dy zainteresowany mógª wmontowa¢ w swój komputer. Rozszyfrowywanie polegaªo na u»yciu tej samej ko±ci. Opiszemy teraz zasad¦ dziaªania algorytmu DES. Wej±ciowe 64 bity s¡ najpierw pomieszane przez pocz¡tkow¡ permutacj¦ tworz¡ wektor L0 , a nast¦pne 32 tworz¡ R0 . IP . Pierwsze 32 bity Po szesnastu rundach manipu- lacji, wektory lewy i prawy ª¡cz¡ si¦ w caªo±¢ i przechodz¡ przez permutacj¦ IP −1 generuj¡c ostateczn¡ wersj¦ szyfru. Podczas 16 rund szyfrowania tworz¡ si¦ kolejno wektory oraz R1 , R2 , . . . , R16 . Dla 1 ≤ i ≤ 16, Ki f (Ri−1 , Ki ) mamy Ri = Li−1 ⊕ f (Ri−1 , Ki ), Li = Ri−1 , gdzie L1 , L2 , . . . , L16 jest wektorem dwójkowym o 32 wspóªrz¦dnych, a wektory s¡ 48-bitowymi wektorami generowanymi przez klucz K wedªug proce- dury, któr¡ opiszemy pó¹niej. Dekodowanie odbywa si¦ w odwrotn¡ stron¦, tj. najpierw zaszyfrowany −1 tekst jest poddawany permutacji IP , tworz¡ si¦ L16 i R16 , a nast¦pnie obliczane s¡ kolejno R15 = L16 , L15 = R16 ⊕ f (R15 , K16 ) . . . , R0 = L1 , L0 = R1 ⊕ f (R0 , K1 ). Poª¡czony wektor L0 R0 jest poddany permutacji IP i powstaje ci¡g 64 bitów wiadomo±ci jawnej. Warto±ci¡ funkcji f jest 32-bitowy ci¡g. Procedura jego powstawania wy- Ki ma 48 bitów, a Ri−1 - 32 bity. rozszerzy¢ Ri−1 do 48 bitów. Rozszerzenie gl¡da nast¦puj¡co. Jak ju» wspominali±my, Aby te wektory doda¢, musimy Ri−1 odbywa si¦ wedªug Tabeli selekcji bitów. Powstaªy 48-bitowy strumie« jest podzielony na 8 wektorow 6-bitowych, które s¡ przepuszczone przez S -boksów, rozwa»my wektor sze±ciobitowy a1 a2 a3 a4 a5 a6 , na przykªad 010011, który traa na S4 . Bity a1 a6 to numer wiersza (i), a a2 a3 a4 a5 to numer kolumny (j ) zapiboksy (Tabela S -boksów). S- Aby przybli»y¢ metod¦ dziaªania sane w ukªadzie dwójkowym. Strumie« wyj±ciowy (w ukªadzie dziesi¦tnym) jest na pozycji i w S4 (i, j) S -boksa. znajduje si¦ na pozycji wyj±ciowym jest 012 = 1 oraz 10012 = 9 7 = 01112 . Zatem strumieniem W naszym przypadku, (1, 9) liczba 0111. 29 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Rysunek 2.2: Tabela selekcji bitów Po wyj±ciu z S -boksów, strumienie 4-bitowe ª¡cz¡ si¦ tworz¡c 32-bitowy wektor, który dodatkowo przechodzi przez permutacj¦ Klucz K P. ma 64 bity podzielone na 8-bitowe cz¦±ci, z których ka»da ma 7 efektywnych bitów, a ósmy bit sprawdza parzysto±¢. Dokªadnie, jest on ustalony tak, by w caªej ósemce liczba jedynek byªa parzysta. W przypadku, gdyby wyst¡piª bª¡d w transmisji klucza, zostaje on wykryty z dokªadnym wskazaniem ósemki, w której wyst¡piª. Z 64 bitów klucza, po sprawdzeniu poprawno±ci, 8 bitów sprawdzaj¡cych jest odrzuconych, a pozostaªe 56 bitów przechodzi przez permutacj¦ pocz¡tkow¡ P C1. Spermutowany strumie« 56 bitów jest podzielony na póª. Pierwsze 28 bitów tworzy wektor C0 , a nast¦- pne D0 . Wektory C1 i D1 powstaj¡ przez (cykliczne) przesuni¦cie zawarto±ci C0 , odpowiednio, D0 o LS1 = 1 pozycji w lewo. Ogólnie, Ci oraz Di powstaj¡ przez przesuni¦cie zawarto±ci, odpowiednio, Ci−1 , Di−1 o LSi pozycji w lewo. Wektory Ci oraz Di s¡ nast¦pnie ª¡czone i po przej±ciu selekcji P C2 tworz¡ 48-bitowy strumie« Ki . Gªówne zarzuty wobec DES, to, po pierwsze, zbyt krótki klucz, co powoduje, »e mo»e on by¢ znaleziony w miar¦ szybko metod¡ sprawdzenia wszyst56 kich 2 mo»liwo±ci. Po drugie, nie wiadomo, jakie kryteria kierowaªy konstruktorami S -boksów. Testy statystyczne pokazuj¡, »e liczby w S -boksach nie s¡ przypadkowe. Niewykluczone, »e kryje si¦ tu pewna furtka pozwalaj¡ca ªatwo rozszyfrowa¢ zakodowan¡ wiadomo±¢. Mimo swoich wad DES byª do±¢ dªugo u»ywany, a» w ko«cu ust¡piª on miejsca kryptosystemom o kluczu publicznym. Rozpowszechnienie szybkich, ªatwo programowalnych komputerów doprowadziªo do sytuacji, w której ko±¢ szyfruj¡ca okazaªa si¦ zb¦dna: Po co montowa¢ do komputera dodatkowe urz¡dzenie, je±li mo»na napoisa¢ program, który powoduje takie samo dziaªanie, a jeszcze dodatkowo mo»na go w ka»dej chwili ulepszy¢. 30 kolumna 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 wiersz S1 S2 S3 S4 S5 S6 S7 S8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 1 3 13 4 7 1 2 8 14 12 0 1 10 6 9 11 5 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 Rysunek 2.3: Tabela 31 S -boksów