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 -
ć
ą

Podobne dokumenty