Informacje na temat trybów pracy szyfrów blokowych
Transkrypt
Informacje na temat trybów pracy szyfrów blokowych
TRYBY PRACY SZYFRÓW BLOKOWYCH PODSTAWOWE WIADOMO CI O SZYFRACH STRUMIENIOWYCH 1. Wst p Wyst puj dwa podstawowe typy algorytmów symetrycznych: szyfry blokowe i strumieniowe. Szyfry blokowe działaj na blokach tekstu jawnego (zwykle bloki te s wielko ci 64 bitów lub dłu sze). Szyfry strumieniowe działaj na ci gach tekstu jawnego i szyfrogramu, za ka dym razem po bicie (lub bajcie, a zdarza si , e tak e po słowie 32bitowym). W przypadku szyfrów blokowych jeden blok tekstu jawnego jest zamieniany w jeden blok szyfrogramu takiej samej długo ci przy u yciu klucza. W przypadku szyfru strumieniowego jeden bit lub bajt tekstu jawnego b dzie ka dorazowo zaszyfrowany w inny bit lub bajt. Kryptograficzny tryb pracy zwykle ł czy szyfr podstawowy, pewien rodzaj sprz enia zwrotnego i pewne proste operacje – proste, gdy bezpiecze stwo jest funkcj algorytmu szyfruj cego, a nie trybu pracy. Tryb pracy nie mo e zmniejsza bezpiecze stwa algorytmu szyfruj cego, a wi c: wyst puj ce w tek cie jawnym wzorce powinny by ukryte, ci g wej ciowy szyfru powinien mie charakter losowy, powinny by trudno wykrywalne zmiany tekstu jawnego poprzez wprowadzenie bł dów do szyfrogramu a tak e powinno by mo liwe szyfrowanie wi cej ni jednego tekstu jawnego za pomoc tego samego klucza. Tryb pracy powinien tak e minimalizowa zmniejszenie efektywno ci pracy szyfru podstawowego. Powinien zapewnia odporno na bł dy. W niektórych zastosowaniach istnieje potrzeba zrównoleglenia operacji szyfrowania lub deszyfrowania, w innych mo na wykona jak najwi cej oblicze wst pnych. Proces odszyfrowania powinien tak e by w stanie powróci do wła ciwego cyklu pracy przy obecno ci bł dów w szyfrogramie (wprowadzonych celowo lub zakłóce kanału transmisji; obejmuje to tak e zagubione lub dodane bity). ę ą ą ś ą Ŝ ą ą ę Ŝ Ŝ ś Ŝ Ŝ ę Ŝ ę ą Ŝ Ŝ ń ą ą Ŝ ę ć ń ę ą ą ś ś ć ć ą ć ę Ŝ ć Ŝ ę Ŝ ą Ŝ ć ś ę ć ś ć Ŝ ę ć ę ń Ŝ ć ć ę ś ś ń Ŝ 2. Tryb elektronicznej ksi ki kodowej – ECB Tryb elektronicznej ksi ki kodowej (ang. electronic codebook – ECB) jest najbardziej oczywistym zastosowaniem szyfru blokowego: ka dy blok tekstu jawnego jest szyfrowany w blok szyfrogramu. Poniewa jeden blok tekstu jawnego jest szyfrowany zawsze w blok szyfrogramu o takiej samej wielko ci, teoretycznie jest mo liwe utworzenie ksi ki kodowej tekstu jawnego i odpowiadaj cego mu szyfrogramu. Dla długo ci bloku wynosz cej 64 bity ksi ka kodowa b dzie mie 264 odmiennych warto ci wej ciowych. Dla ka dego klucza wyst puje odmienna ksi ka kodowa. ą Ŝ Ŝ Ŝ ś Ŝ ą ą ś ę ą Ŝ ć ś ę ą Ŝ -1- ś Ŝ ą Ŝ 3. Tryb wi zania bloków zaszyfrowanych – CBC Wi zanie bloków polega na wykorzystaniu mechanizmu sprz enia zwrotnego. Wyniki szyfrowania poprzedniego bloku s danymi wej ciowymi operacji szyfrowania bloku bie cego, czyli ka dy blok jest wykorzystywany do modyfikacji szyfrowania bloku nast pnego. Ka dy blok szyfrogramu zale y nie tylko od bloku tekstu jawnego, który go wytwarza, ale tak e od wszystkich poprzednich bloków tekstu jawnego. W trybie wi zania bloków zaszyfrowanych (ang. cipher block chaining – CBC) tekst jawny jest przed zaszyfrowaniem sumowany modulo 2 z poprzednimi blokami szyfrogramów. Na poni szym rysunku przedstawiono schemat działania tego trybu: ę Ŝ ą ą Ŝ ą ś Ŝ ę Ŝ Ŝ Ŝ ą Ŝ Rysunek 1 - Tryb CBC Po zaszyfrowaniu bloku tekstu jawnego w rejestrze sprz enia zwrotnego znajduje si blok wynikowy. Zanim b dzie szyfrowany kolejny blok tekstu jawnego, tworzy si jego sum modulo 2 z zawarto ci rejestru sprz enia zwrotnego, otrzymuj c w wyniku kolejn warto wej ciow dla procedury szyfruj cej. Wynikowy blok szyfrogramu jest ponownie przechowywany w rejestrze sprz enia zwrotnego w celu zsumowania modulo 2 z nast pnym blokiem tekstu jawnego. Czynno ci te s powtarzane a do ko ca wiadomo ci. Wynik szyfrowania ka dego bloku zale y od wszystkich poprzednich bloków. Odszyfrowanie jest tak e proste: blok szyfrogramu jest odszyfrowywany i tak e zapami tywany w rejestrze sprz enia zwrotnego. Po odszyfrowaniu nast pnego bloku jest on dodawany modulo 2 z zawarto ci rejestru sprz enia zwrotnego. Nast pnie kolejny blok szyfrogramu jest zachowywany w rejestrze sprz enia zwrotnego – i tak dalej, do ko ca szyfrogramu (patrz rys. nr 1). Matematycznie operacje w trybie CBC wygl daj nast puj co: Ci = E K ( Pi ⊕ Ci −1 ) Pi = Ci −1 ⊕ DK (Ci ) ę ę Ŝ ę ę ę ę ś ś ą Ŝ ą ą ą ś ć ą ę Ŝ ę ś Ŝ ą Ŝ ń ś Ŝ Ŝ Ŝ ę ę ę Ŝ ę ś ą ę Ŝ ę ń Ŝ ę ą ą ą Wektor pocz tkowy 3.1. Tryb CBC wymusza szyfrowania identycznych bloków tekstu jawnego do postaci odmiennych bloków szyfrogramu jedynie wtedy, gdy ró ne s niektóre z poprzednich bloków tekstu jawnego. Oznacza to, e dwie identyczne wiadomo ci szyfrowane tym samym kluczem dadz identyczny kryptogram, co najcz ciej jest niepo dane. Dlatego te wprowadza si tzw. wektor pocz tkowy, zwany IV (ang. initialization vector). Inaczej wektor pocz tkowy zwany jest zmienn pocz tkuj c lub pocz tkow warto ci Ŝ ą Ŝ ś ę ą ś Ŝ ą ę Ŝ ą ą ą ą -2- ą ą ą ą ś ą zwi zania. Posta wektora pocz tkowego nie ma znaczenia; wyst puje on tylko po to, aby ka da wiadomo stała si niepowtarzalna. Kiedy odbiorca deszyfruje pierwszy blok, u ywa warto ci tego wektora wył cznie do wypełnienia rejestru sprz enia zwrotnego, a nast pnie go ignoruje. Przyjmuje si , e wektor pocz tkowy powinien by losowym ci giem bitów. Przy zastosowaniu wektora pocz tkowego nawet identyczne bloki tekstu jawnego b d szyfrowane w odmienne bloki szyfrogramu tworz cego wiadomo . W ten sposób niemo liwe jest dla podsłuchuj cego podj cie prób powtórzenia bloku, a znacznie utrudnione staje si tak e zbudowanie ksi ki kodowej. Ci g IV powinien by niepowtarzalny dla ka dej wiadomo ci, zaszyfrowanej przy u yciu tego samego klucza (ale nie jest to bezwzgl dnie wymagane). Wektor pocz tkowy nie musi by utrzymywany w tajemnicy, mo e by przesyłany razem z kryptogramem. ę ą ć ą ę Ŝ ś ć ę Ŝ ś ą ę Ŝ ę Ŝ ą ć ą ę ą ą ą ś ć ę Ŝ ą ę Ŝ ą Ŝ Ŝ ą ć ś Ŝ ę ą ć Ŝ ć 4. Szyfry strumieniowe Szyfry strumieniowe przekształcaj tekst jawny w szyfrogram kolejno, bit po bicie (jak na poni szym rysunku): ą Ŝ Rysunek 2 - Szyfr strumieniowy Generator strumienia klucza, zwany tak e generatorem klucza bie cego, wytwarza strumie bitów k1, k2, …, ki. Strumie ten jest sumowany modulo 2 z ci giem bitów tekstu jawnego p1, p2, p3, …, pi w celu wytworzenia bitów kryptogramu: ci = pi ⊕ ki Odbiorca sumuje modulo 2 bity szyfrogramu z identycznym strumieniem klucza w celu odtworzenia bitów tekstu jawnego: pi = ci ⊕ ki Poniewa pi ⊕ ki ⊕ ki = pi wszystko działa poprawnie. Bezpiecze stwo całego systemu zale y tylko od wewn trznych wła ciwo ci generatora strumienia klucza. Je li generator strumienia klucza wytwarza niesko czony ci g zer, to szyfrogram jest równy tekstowi jawnemu. Je li generator strumienia klucza wytwarza powtarzaj cy si wzorzec o długo ci 16 bitów, to algorytm b dzie zwykłym sumatorem modulo 2 z bardzo małym stopniem zabezpieczenia. Je li generator strumienia wytwarza niesko czony strumie bitów losowych (nie pseudolosowych, lecz rzeczywistych losowych), otrzymujemy klucz jednorazowy i doskonałe zabezpieczenie (one-time-pad). W rzeczywisto ci szyfry strumieniowe stanowi kompromis pomi dzy prost sum modulo 2 a kluczem jednorazowym. Generator strumienia klucza wytwarza strumie bitów, który wygl da losowo, ale jest ci giem zdeterminowanym, który mo e by bezbł dnie odtworzony Ŝ Ŝ ń ą ń ą Ŝ ę ń Ŝ ś ś ś ń ą ś ę ę ą ś ś ń ń ę ś ą ą ń ę ą ą Ŝ -3- ć ą podczas deszyfrowania. Im bli szy postaci losowej jest ci g wyj ciowy generatora strumienia, tym trudniejsze dla kryptoanalityka b dzie jego złamanie. Oczywi cie zadanie zbudowania generatora strumienia klucza, wytwarzaj cego losowo wygl daj cy ci g bitów jest zadaniem trudnym. Je li generator strumienia klucza wytwarza ten sam ci g bitów za ka dym razem, kiedy zostanie wł czony, to złamanie takiego systemu kryptograficznego b dzie trywialne. W takiej sytuacji atakuj cy: - je li posiada szyfrogram i odpowiadaj cy mu tekst jawny, sumuje modulo 2 tekst jawny z kryptogramem, otrzymuj c klucz; - je li posiada dwa ró ne szyfrogramy, zaszyfrowane przy u yciu tego samego klucza, mo e zsumowa je modulo 2, uzyskuj c sum modulo 2 dwóch wiadomo ci zapisanych tekstem jawnym. Informacja taka jest łatwa do złamania. Ŝ ą ś ę ś ą ś ą ą ą ą Ŝ ę ą ą ś ą ą ś Ŝ Ŝ Ŝ ę ć ą ś Ze wzgl du na bezpiecze stwo, wszystkie szyfry strumieniowe zawieraj klucze. Ci g wyj ciowy generatora strumienia klucza jest funkcj klucza. Teraz je li atakuj cy uzyska par tekst jawny / szyfrogram, mo e jedynie odczyta wiadomo ci zaszyfrowane przy u yciu pojedynczego klucza, a po zmianie klucza nie b dzie ju mógł nic zrobi . Szyfry strumieniowe s u yteczne przy szyfrowaniu nieko cz cych si nigdy strumieni danych, np. w ł czach T1 (stosowanym w USA; jest to system teletransmisyjny bliskiego zasi gu z modulacj PCM). ę ń ą ś ą ś ą ą ę Ŝ ć ś Ŝ ę Ŝ ć ę ą Ŝ ń ą ą ę ą Rysunek 3 - Generator strumienia klucza 4.1. Samosynchronizuj ce szyfry strumieniowe W samosynchronizuj cych szyfrach strumieniowych (ang. self-synchronous stream cipher) ka dy bit ci gu klucza jest funkcj pewnej stałej liczby poprzednich bitów szyfrogramu. Szyfr ten nazywa si inaczej szyfrem samokluczuj cym (ang. ciphertext auto key – CTAK). Na rysunku pokazano schemat działania samosynchronizuj cego szyfru strumieniowego: ą Ŝ ą ą ę ą ą Rysunek 4 - Generator strumienia klucza samosynchronizuj cego szyfru strumieniowego ą -4- Stan wewn trzny jest funkcj n poprzednich bitów szyfrogramu. Zło ono kryptograficzna zawiera si w funkcji wyj ciowej, która pobiera stan wewn trzny i wytwarza bit strumienia klucza. Poniewa stan wewn trzny zale y od n poprzednich bitów szyfrogramu, generator strumienia klucza do odszyfrowania b dzie automatycznie zsynchronizowany z generatorem strumienia klucza po odebraniu n bitów szyfrogramu. W implementacjach tego trybu ka da wiadomo rozpoczyna si losowym nagłówkiem o długo ci n bitów. Nagłówek ten jest szyfrowany, przesyłany i nast pnie odszyfrowywany. Deszyfrowanie b dzie z pocz tku niepoprawne, ale po odebraniu tych n bitów oba generatory strumienia klucza b d zsynchronizowane. Wad samosynchronizuj cych szyfrów jest propagacja bł dów – dla ka dego bitu zniekształconego podczas przesyłania generator po stronie deszyfruj cej niepoprawnie wytworzy n bitów strumienia klucza (dopóki uszkodzony bit nie opu ci rejestru wewn trznego). ę ą Ŝ ś ć ę ę ś ę Ŝ Ŝ ę ę Ŝ ś ć ę ś ę ą ę ą ę ą ą Ŝ ą ś ę 5. Tryb sprz enia zwrotnego kryptogramu – CFB Szyfry blokowe mog tak e by zaimplementowane jako samosynchronizuj ce szyfry strumieniowe. Takie rozwi zanie jest nazywane trybem sprz enia zwrotnego kryptogramu (ang. cipher feedback – CFB). W trybie CBC nie mo na rozpocz szyfrowania, zanim nie zostanie odebrany pełen blok danych, co mo e stanowi utrudnienie w niektórych zastosowaniach. Tryb CBC jest nieprzydatny je li dane musz by przetwarzane w porcjach 8-bitowych (jednobajtowych). W trybie CFB dane mog by szyfrowane w jednostkach mniejszych ni rozmiar bloku. Mo na np. szyfrowa jeden znak ASCII naraz (jest to 8-bitowe CFB) i ka d inn , dowoln (oczywi cie mniejsz lub równ rozmiarowi bloku, b d cego wej ciem algorytmu szyfruj cego) ilo bitów jednorazowo. ą Ŝ ć ą ą ę Ŝ ą Ŝ Ŝ ć ć ś ą ą Ŝ ć ć Ŝ ć Ŝ ą ą ą ę ś ą ą ś ą ą ś ć Rysunek 5 - Tryb CFB Algorytm blokowy CFB operuje na kolejce (rejestrze) o rozmiarze bloku wej ciowego (na rysunku to 64 bity). Rejestr jest na pocz tku wypełniany warto ci pocz tkow (IV), jak w trybie CBC. Po zaszyfrowaniu zawarto ci rejestru 8 skrajnych bitów z lewej strony dodaje si modulo 2 z pierwszym 8-bitowym znakiem tekstu jawnego w celu uzyskania pierwszego 8-bitowego znaku kryptogramu. Ten znak mo e by nast pnie przesłany. Te same 8 bitów podaje si na 8 bitów skrajnych z prawej strony kolejki, a wszystkie bity przesuwane s w lewo, przy czym 8 najbardziej znacz cych bitów jest odrzucanych. Nast pny znak szyfruje si w dokładnie taki sam sposób. ś ą ś ą ą ą ś ę ę Ŝ ć ę ą ę ą ę -5- Rysunek 6 - Tryb n-bitowego CFB Odszyfrowywanie jest odwrotno ci tego procesu. Po obu stronach – nadawczej i odbiorczej – blokowy algorytm stosuje si w trybie szyfruj cym. Matematycznie (je li rozmiar bloku wynosi n, czyli dla n-bitowego CFB) operacje w trybie CFB wygl daj nast puj co: ci = pi ⊕ Ek (ci −1 ) pi = ci ⊕ Ek (ci −1 ) Podobnie, jak w trybie CBC, algorytm ł czy znaki tekstu jawnego tak, e szyfrogram zale y od całego poprzedzaj cego tekstu jawnego. ś ą ę ą ś ę ą ą ą ą Ŝ Ŝ ą 5.1. Wektor pocz tkowy Mamy tu mocniejsze wymaganie ni dla IV w trybie CBC: wektor pocz tkowy musi by niepowtarzalny (w CBC tylko powinien taki by ). Je li ci g nie jest niepowtarzalny, to kryptoanalityk mo e odtworzy zwi zany z ci giem tekst jawny. Ŝ ą ć ć Ŝ ć ś ą ą ą 6. Tryb sprz enia zwrotnego wyj ciowego – OFB Tryb sprz enia zwrotnego wyj ciowego (ang. output feedback – OFB) jest kolejn metod działania szyfru blokowego jako synchronicznego szyfru strumieniowego. Jest bardzo podobny w działaniu do trybu CFB, z t ró nic , e n bitów poprzedniego bloku wyj ciowego jest przesuwanych na skrajne prawe pozycje (najmniej znacz ce) kolejki: ę Ŝ ś ą ą Ŝ ą ą Ŝ ś ą Rysunek 7 - Tryb OFB Odszyfrowanie jest odwrotno ci tego procesu. Takie działanie nazywa si n-bitowym OFB: ę ś ą -6- Rysunek 8 - Tryb n-bitowego OFB Po obu stronach, szyfruj cej i deszyfruj cej, algorytm blokowy stosuje si w trybie szyfrowania. Metoda OFB jest tak e nazywana trybem wewn trznego sprz enia zwrotnego, gdy mechanizm sprz enia zwrotnego jest niezale ny zarówno od ci gu tekstu jawnego, jak i ci gu szyfrogramu. Matematycznie operacje w trybie OFB wygl daj nast puj co: ci = pi ⊕ Si ; S i = Ek ( Si −1 ) ę ą ą ę ę Ŝ Ŝ ę Ŝ Ŝ Ŝ ą ą ę ą ą ą pi = ci ⊕ S i ; S i = Ek ( S i −1 ) Si jest stanem niezale nym zarówno od tekstu jawnego, jak i od szyfrogramu. Analiza wykazała, e tryb OFB powinien by u ywany tylko wtedy, gdy rozmiar sprz enia zwrotnego jest równy rozmiarowi bloku (np. 64 bity dla DES). Ŝ ę Ŝ 6.1. ć Ŝ Ŝ Wektor pocz tkowy Powinien by niepowtarzalny, ale nie musi by utrzymywany w tajemnicy. ć 6.2. ć Szyfry strumieniowe w trybie OFB Szyfry strumieniowe mog tak e pracowa w trybie OFB. W tym przypadku klucz wpływa na działanie funkcji nast pnego stanu: ą Ŝ ć ę Rysunek 9 - Generator strumienia klucza w trybie OFB Funkcja wyj ciowa nie zale y od klucza; jest ona zwykle prosta, np. 1 bit stanu wewn trznego lub suma modulo 2 wielu bitów stanu wewn trznego. Zło ono kryptograficzna spoczywa w funkcji nast pnego stanu i zale y od klucza. Metoda ta jest cz sto nazywana trybem ze sprz eniem wewn trznym, gdy mechanizm sprz enia ma charakter wewn trzny w stosunku do algorytmu generowania klucza. ś Ŝ ę ę Ŝ ś ć ę Ŝ ę ę ę Ŝ ę Ŝ ę -7- Ŝ 7. Rzadziej stosowane tryby pracy szyfrów blokowych 7.1. Tryb licznikowy Szyfry blokowe, pracuj ce w trybie licznikowym, wykorzystuj sekwencj liczb jako ci g wej ciowy algorytmu. W trybie licznikowym warto ci wej ciow rejestru zamiast danych wyj ciowych algorytmu szyfrowania s dane licznika. Po ka dym bloku szyfruj cym licznik zwi ksza si o pewn stał warto , typowo 1. Wła ciwo ci tego trybu dotycz ce samosynchronizacji s identyczne jak trybu OFB. ę ą ą ą ś ś ś ą ś ą ą ę Ŝ ę ą ą ą ą ś ć ś ś ą 7.1.1. Szyfry strumieniowe w trybie licznikowym Maj one proste funkcje stanu wewn trznego i skomplikowane funkcje wyj ciowe zale ne od klucza: ę ą ś Ŝ Rysunek 10 - Generator strumienia klucza w trybie sprz enia zwrotnego licznikowego ę Ŝ Funkcja nast pnego stanu mo e by nawet licznikiem, zwi kszaj cym o 1 swój stan poprzedni. W przypadku szyfru strumieniowego w trybie licznikowym jest mo liwe generowanie i-tego bitu klucza ki bez konieczno ci wytworzenia poprzednich bitów tego klucza – wystarczy ustawi r cznie licznik na i-ty stan wewn trzny. ę ę Ŝ ć ą Ŝ ś ę ę ć 7.2. Tryb wi zania blokowego – BC Aby zastosowa tryb wi zania blokowego (ang. block chaining – BC), wystarczu policzy sum modulo 2 ci gu wej ciowego szyfru blokowego ze wszystkimi pozostałymi blokami szyfrogramu. Podobnie jak w trybie CBC proces rozpoczyna si od wektora pocz tkowego IV. Posta matematyczna: Ci = Ek ( Pi ⊕ Fi ); Fi +1 = Fi + ⊕Ci ć ą ę ć ą ś ę ą ć Pi = Fi ⊕ Dk (Ci ); Fi +1 = Fi + ⊕Ci 7.3. Tryb propaguj cego wi zania bloków zaszyfrowanych Tryb propaguj cego wi zania bloków zaszyfrowanych (ang. propagating cipher block chaining – PCBC) jest podobny do trybu CBC, z t jednak ró nic , e oba bloki, poprzedni tekstu jawnego i poprzedni szyfrogramu, s dodawane modulo 2 do aktualnego bloku tekstu jawnego przed szyfrowaniem (lub po szyfrowaniu): ą ą ą Ŝ ą -8- ą Ŝ Rysunek 11 - Tryb PCBC Posta matematyczna: ć Ci = E K ( Pi ⊕ Ci −1 ⊕ Pi −1 ) Pi = Ci −1 ⊕ Pi −1 ⊕ DK (Ci ) Tryb PCBC jest stosowany w jednej z wersji algorytmu Kerberos do realizacji szyfrowania i sprawdzania spójno ci w jednym przebiegu algorytmu. ś 7.4. Tryb wi zania bloków zaszyfrowanych z sum kontroln Tryb wi zania bloków zaszyfrowanych z sum kontroln (ang. cipher block chaining with checksum – CBCC) jest wariantem CBC. Obliczan na bie co sum modulo 2 wszystkich kolejnych bloków tekstu jawnego dodaje si do ostatniego bloku tekstu jawnego przed jego zaszyfrowaniem. ą ą ą ę ą Ŝ ą ę 7.5. Tryb sprz enia zwrotnego wyj ciowego z funkcj nieliniow Tryb sprz enia zwrotnego wyj ciowego z funkcj nieliniow (ang. output feedback with a nonlinear function – OFBNLF) jest odmian trybów OFB i ECB, w której klucz zmienia si z ka dym blokiem: Ci = E ki ( Pi ); ki = Ek (ki −1 ) ę Ŝ ś ą ą ą ę Ŝ Pi = Dki (Ci ); ki = Ek (ki −1 ) 7.6. Inne tryby pracy Istniej inne tryby pracy szyfrów blokowych, jednak s wykorzystywane bardzo rzadko. Wi zanie bloków tekstu jawnego (ang. plaintext block chaining – PBC) jest podobne do CBC, z t ró nic , e poprzedni blok tekstu jawnego jest dodawany modulo 2 do bloku tekstu jawnego zamiast do bloku szyfrogramu. Sprz enie zwrotne tekstu jawnego (ang. plaintext feedback – PFB) jest podobne do CFB z t ró nic , e to tekst jawny jest wykorzystywany do organizacji sprz enia zwrotnego. Znana jest tak e metoda wi zania bloków zaszyfrowanych ró nic tekstu jawnego (ang. cipher block chaining of plaintext difference – CBCPD). ą ą ą ą Ŝ ą Ŝ ę Ŝ ą Ŝ ą Ŝ ę Ŝ ą Ŝ Ŝ -9- 8. Problem dopełnienia Wi kszo wiadomo ci nie dzieli si dokładnie na 64-bitowe (lub innego rozmiaru, wymaganego przez algorytm szyfruj cy) bloki, prawie zawsze ostatni blok jest krótszy. Tymczasem wi kszo trybów pracy wymaga bloków o stałym rozmiarze. Problemowi temu mo na zaradzi , stosuj c dopełnianie (ang. padding). Aby otrzyma blok o pełnej długo ci, mo na dopełni go pewnym regularnym wzorcem – jedynkami, zerami, naprzemiennymi jedynkami i zerami. Dopełnienie nale y usun po odszyfrowaniu, co wymaga, aby strona deszyfruj ca znała liczb pozycji dopełnienia (mo na to zapisa np. jako ostatni bajt wiadomo ci). Przyjmuj c np. e ostatni blok składa si z trzech bajtów, a rozmiar bloku wynosi 8 bajtów (64 bity), wymagane jest dodanie 5 bajtów (40 bitów). Mo na doda 4 bajty losowe (albo np. same 0), a w ostatnim bajcie podajemy cyfr 5. Przy odszyfrowywaniu usuwamy ostatnie 5 bajtów z ostatniego bloku. Aby ten sposób działał poprawnie, ka da wiadomo musi by dopełniona – tak e taka, która ko czy si na granicy bloku. Mo na zastosowa wiele innych rozwi za , np. tzw. podkradanie szyfrogramu (ang. ciphertext stealing). Przykładowe rozwi zanie podkradania szyfrogramu dla trybu ECB prezentuje poni szy rysunek: ę ę ś ć ś ą ę ś Ŝ ć ć ą ć ś Ŝ ć Ŝ ą ć ę ą Ŝ ę ć ś Ŝ ą Ŝ ć ę Ŝ ś ć ć Ŝ ę ń Ŝ ć ą ń ą Ŝ Rysunek 12 - Podkradanie szyfrogramu - tryb ECB Pn-1 jest ostatnim pełnym blokiem tekstu jawnego, a Pn ko cowym, krótkim i niepełnym blokiem tekstu jawnego. Cn-1 jest ostatnim pełnym blokiem kryptogramu, a Cn – ko cowym, krótkim i niepełnym blokiem szyfrogramu. C’ jest wynikiem po rednim, a nie cz ci przesyłanego kryptogramu. ń ń ę ś ś ą Dopełnianie w trybie CFB działa identycznie, jak w przypadku ECB, jednak istniej zastosowania dla których szyfrogram musi mie dokładnie taki sam rozmiar, jak tekst jawny. Wtedy ostatni, krótszy blok nale y zaszyfrowa inaczej. Zakładaj c, e krótszy blok ma j bitów, nale y zaszyfrowa ostatni pełny blok ponownie, wybra jego j najbardziej znacz cych bitów (z lewej strony) i doda je modulo 2 do krótkiego bloku: ą ć Ŝ Ŝ ą ć ć ą ć ć - 10 - Ŝ Rysunek 13 – Przykładowe dopełnianie bloku – tryb CFB Mo na tu tak e zastosowa podkradanie szyfrogramu: Ŝ Ŝ ć Rysunek 14 - Podkradanie szyfrogramu - tryb CFB 9. Zadania do wykonania Dokona implementacji najcz ciej stosowanych trybów: ECB, CBC, CFB, OFB. Porówna najcz ciej stosowane tryby. Poda ich wady i zalety w konkretnych zastosowaniach. Opisa bezpiecze stwo, odporno na bł dy i wydajno tych trybów. Porówna opisane metody dopełnienia. Jaki poziom bezpiecze stwa zapewniaj te 9.3. metody? Jakie inne metody mo na spróbowa opracowa ? Wykaza , e wektor pocz tkowy nie musi by trzymany w tajemnicy. 9.4. 9.1. 9.2. ę ś ć ę ś ć ć ę ć ń ś ć ś ć ń Ŝ ć Ŝ ć ą ć ć - 11 - ć ą