Tryb działania szyfru blokowego

Tryby uwierzytelnionego szyfrowania z dodatkowymi danymi (AEAD)Edit

Główny artykuł: Authenticated encryption

Zaprojektowano wiele trybów działania, aby połączyć tajność i uwierzytelnianie w jednym prymitywie kryptograficznym. Przykładami takich trybów są: rozszerzony łańcuch bloków szyfrujących (XCBC), łańcuch bloków szyfrujących uwzględniający integralność (IACBC), tryb równoległy uwzględniający integralność (IAPM), OCB, EAX, CWC, CCM i GCM. Tryby uwierzytelnionego szyfrowania klasyfikuje się jako tryby jednoprzebiegowe lub dwuprzebiegowe. Niektóre jednoprzebiegowe uwierzytelnione algorytmy szyfrowania, takie jak tryb OCB, są obciążone patentami, podczas gdy inne zostały specjalnie zaprojektowane i wydane w sposób pozwalający uniknąć takich obciążeń.

Ponadto niektóre tryby pozwalają również na uwierzytelnianie niezaszyfrowanych powiązanych danych i są one nazywane schematami AEAD (uwierzytelnione szyfrowanie z powiązanymi danymi). Na przykład, tryb EAX jest dwuprzebiegowym schematem AEAD, podczas gdy tryb OCB jest jednoprzebiegowy.

Licznik Galois (GCM)Edycja

GCM

Licznik Galois

Szyfrowanie równoległe

Tak

.

Deszyfrowanie równoległe

Tak

Losowy dostęp do odczytu

Tak

Tryb Galois/counter (GCM) łączy dobrze znany trybznany tryb licznikowy szyfrowania z nowym trybem Galois uwierzytelniania. Kluczową cechą jest łatwość równoległego obliczania mnożenia pola Galois używanego do uwierzytelniania. Ta cecha pozwala na uzyskanie większej przepustowości niż w przypadku algorytmów szyfrujących.

GCM jest zdefiniowany dla szyfrów blokowych o rozmiarze bloku 128 bitów. Kod uwierzytelniania wiadomości Galois (GMAC) jest wariantem GCM opartym tylko na uwierzytelnianiu, który może tworzyć przyrostowy kod uwierzytelniania wiadomości. Zarówno GCM jak i GMAC mogą akceptować wektory inicjalizacyjne o dowolnej długości. GCM może w pełni wykorzystywać przetwarzanie równoległe, a implementacja GCM może efektywnie wykorzystywać potok instrukcji lub potok sprzętowy. Tryb pracy CBC powoduje zacięcia w potoku, które ograniczają jego efektywność i wydajność.

Podobnie jak w CTR, bloki są numerowane sekwencyjnie, a następnie ten numer bloku jest łączony z IV i szyfrowany za pomocą szyfru blokowego E, zwykle AES. Wynik tego szyfrowania jest następnie XORed z tekstem jawnym, aby uzyskać szyfrogram. Podobnie jak wszystkie tryby licznika, jest to zasadniczo szyfr strumieniowy, a zatem konieczne jest użycie innego IV dla każdego szyfrowanego strumienia.

Bloki szyfrogramu są traktowane jako współczynniki wielomianu, który jest następnie obliczany w punkcie H, zależnym od klucza, przy użyciu arytmetyki pól skończonych. Wynik jest następnie szyfrowany, tworząc znacznik uwierzytelniający, który może być użyty do weryfikacji integralności danych. Zaszyfrowany tekst zawiera IV, szyfrogram i znacznik uwierzytelniania.

Licznik z kodem uwierzytelniania wiadomości w łańcuchu szyfrów (CCM)Edytuj

Licznik z kodem uwierzytelniania wiadomości w łańcuchu szyfrów (licznik z CBC-MAC; CCM) jest uwierzytelnionym algorytmem szyfrowania zaprojektowanym w celu zapewnienia zarówno uwierzytelniania, jak i poufności. Tryb CCM jest zdefiniowany tylko dla szyfrów blokowych o długości bloku 128 bitów.

Syntetyczny wektor inicjujący (SIV)Edycja

Syntetyczny wektor inicjujący (SIV) jest trybem szyfru blokowego odpornym na nieuprawnione użycie asocjacji.

SIV syntetyzuje wewnętrzny IV używając funkcji pseudolosowej S2V. S2V to kluczowy hash oparty na CMAC, a dane wejściowe do funkcji to:

  • Dodatkowe uwierzytelnione dane (obsługiwane jest zero, jedno lub wiele pól AAD)
  • Plaintext
  • Klucz uwierzytelniający (K1).

SIV szyfruje wyjście S2V i tekst jawny przy użyciu AES-CTR, z kluczem szyfrującym (K2).

SIV może obsługiwać zewnętrzne uwierzytelnione szyfrowanie oparte na nonce, w którym to przypadku jedno z pól danych uwierzytelnionych jest wykorzystywane do tego celu. RFC5297 określa, że do celów interoperacyjności ostatnie uwierzytelnione pole danych powinno być wykorzystywane jako zewnętrzny nonce.

Ze względu na użycie dwóch kluczy, klucza uwierzytelniania K1 i klucza szyfrowania K2, schematy nazewnictwa dla wariantów AEAD SIV mogą prowadzić do pewnych nieporozumień; na przykład AEAD_AES_SIV_CMAC_256 odnosi się do AES-SIV z dwoma kluczami AES-128, a nie AES-256.

AES-GCM-SIVEdit

AES-GCM-SIV to tryb pracy dla Advanced Encryption Standard, który zapewnia podobną wydajność do trybu Galois/licznikowego, jak również odporność na nadużycia w przypadku ponownego użycia nonce kryptograficznego. Konstrukcja jest zdefiniowana w RFC 8452.

AES-GCM-SIV syntetyzuje wewnętrzny IV. Uzyskuje hash dodatkowych uwierzytelnionych danych i tekstu jawnego za pomocą funkcji skrótu POLYVAL Galois. Hasz jest następnie szyfrowany kluczem AES i używany jako znacznik uwierzytelnienia i wektor inicjalizacyjny AES-CTR.

AES-GCM-SIV jest ulepszeniem bardzo podobnie nazwanego algorytmu GCM-SIV, z kilkoma bardzo małymi zmianami (np. jak inicjalizowany jest AES-CTR), ale które przynoszą praktyczne korzyści dla jego bezpieczeństwa „Ten dodatek pozwala na szyfrowanie do 250 wiadomości tym samym kluczem, w porównaniu ze znaczącym ograniczeniem tylko do 232 wiadomości, które było dozwolone w GCM-SIV.”

Tryby tylko poufnościEdit

Zdefiniowano wiele trybów pracy. Niektóre z nich są opisane poniżej. Celem trybów szyfrowania jest maskowanie wzorców występujących w zaszyfrowanych danych, jak pokazano w opisie słabości EBC.

Różne tryby szyfrowania maskują wzorce poprzez kaskadowanie wyjść z bloku szyfrującego lub innych globalnie deterministycznych zmiennych do kolejnego bloku szyfrującego. Wejścia wymienionych trybów są podsumowane w poniższej tabeli:

Podsumowanie trybów
Tryb Formuły Szyfrogram
Elektroniczna książka kodowa (ECB) Yi = F(PlainTexti, Key) Yi
Cipher block chaining (CBC) Yi = PlainTexti XOR Ciphertexti-1 F(Y, Key); Ciphertext0 = IV
Propagating CBC (PCBC) Yi = PlainTexti XOR (Ciphertexti-1 XOR PlainTexti-1) F(Y, Key); Szyfrogram0 = IV
Sprzężenie zwrotne szyfru (CFB) Yi = Ciphertexti-1 Plaintext XOR F(Y, Key); Szyfrogram0 = IV
Output feedback (OFB) Yi = F(Yi-1, Klucz); Y0 = F(IV, Klucz) Plaintext XOR Yi
Licznik (CTR) Yi = F(IV + g(i), Klucz); IV = token() Plaintext XOR Yi

Uwaga: g(i) to dowolna funkcja deterministyczna, często jest to funkcja tożsamości.

Elektroniczna książka kodowa (ECB)Edycja

ECB

Elektroniczna książka kodowa

Szyfrowanie równoległe

Tak

Dekryptowanie równoległe

.

Tak

Losowy dostęp do odczytu

Tak

Najprostszym z trybów szyfrowania jest tryb elektronicznej książki kodowej (ECB) (nazwany tak na cześć konwencjonalnych fizycznych książek kodowych). Wiadomość jest dzielona na bloki, a każdy blok jest szyfrowany oddzielnie.

Wadą tej metody jest brak rozproszenia. Ponieważ ECB szyfruje identyczne bloki tekstu jawnego w identyczne bloki szyfrogramu, nie ukrywa dobrze wzorców danych. ECB nie jest zalecane do stosowania w protokołach kryptograficznych.

Niesamowity przykład stopnia, w jakim ECB może pozostawić wzorce danych tekstu jawnego w szyfrogramie można zobaczyć, gdy tryb ECB jest używany do szyfrowania obrazu bitmapowego, który wykorzystuje duże obszary o jednolitym kolorze. Podczas gdy kolor każdego pojedynczego piksela jest zaszyfrowany, ogólny obraz może być nadal rozpoznany, ponieważ wzór identycznie kolorowych pikseli w oryginale pozostaje w zaszyfrowanej wersji.

Original image

Encrypted using ECB mode

Modes other than ECB result in pseudo-randomness

Trzeci obraz to sposób, w jaki może wyglądać obraz zaszyfrowany za pomocą CBC, CTR lub jakimkolwiek innym, bardziej bezpiecznym trybem – nie do odróżnienia od losowego szumu. Zauważ, że losowy wygląd trzeciego obrazu nie gwarantuje, że obraz został bezpiecznie zaszyfrowany; opracowano wiele rodzajów niezabezpieczonego szyfrowania, które dałyby równie „losowo wyglądające” dane wyjściowe.

TrybECB może również sprawić, że protokoły bez ochrony integralności będą jeszcze bardziej podatne na ataki powtórkowe, ponieważ każdy blok zostanie odszyfrowany dokładnie w ten sam sposób.

Łańcuchowanie bloków szyfrujących (CBC)Edycja

CBC

Łańcuchowanie bloków szyfrujących

Szyfrowanie równoległe

.

Nie

Deszyfrowanie równoległe

Tak

Losowy dostęp do odczytu

Tak

Ehrsam, Meyer, Smith i Tuchman wynaleźli w 1976 roku tryb pracy CBC (cipher block chaining). W trybie CBC, każdy blok tekstu jawnego jest XORowany z poprzednim blokiem szyfrogramu przed zaszyfrowaniem. W ten sposób każdy blok szyfrogramu zależy od wszystkich bloków tekstu jawnego przetworzonych do tego momentu. Aby każda wiadomość była unikalna, w pierwszym bloku musi być użyty wektor inicjujący.

Jeśli pierwszy blok ma indeks 1, wzór matematyczny na szyfrowanie CBC jest następujący

C i = E K ( P i ⊕ C i – 1 ) , {displaystyle C_{i}=E_{K}(P_{i}}),}

C 0 = I V , {displaystyle C_{0}=IV,}

natomiast wzór matematyczny na deszyfrowanie CBC to

P i = D K ( C i ) ⊕ C i – 1 , {displaystyle P_{i}=D_{K}(C_{i})⊕ C_{i-1},}

C 0 = I V . {C_{0}=IV.}

PrzykładEdit

CBC jest najczęściej stosowanym trybem pracy. Jego główne wady to to, że szyfrowanie jest sekwencyjne (tzn. nie może być paralelizowane), oraz to, że wiadomość musi być wypełniona do wielokrotności rozmiaru bloku szyfrującego. Jednym ze sposobów radzenia sobie z tym ostatnim problemem jest metoda znana jako kradzież szyfrogramu. Zauważ, że jednobitowa zmiana w tekście jawnym lub wektorze inicjalizacji (IV) wpływa na wszystkie następujące bloki szyfrogramu.

Deszyfrowanie z nieprawidłowym IV powoduje, że pierwszy blok tekstu jawnego jest uszkodzony, ale kolejne bloki tekstu jawnego będą poprawne. Dzieje się tak, ponieważ każdy blok jest XORowany z szyfrogramem poprzedniego bloku, a nie z tekstem jawnym, więc nie trzeba odszyfrowywać poprzedniego bloku przed użyciem go jako IV do odszyfrowania bieżącego. Oznacza to, że blok tekstu jawnego może być odzyskany z dwóch sąsiednich bloków szyfrogramu. W konsekwencji, deszyfrowanie może być paralelizowane. Zauważ, że zmiana jednego bitu w szyfrogramie powoduje całkowite uszkodzenie odpowiadającego mu bloku tekstu jawnego i odwraca odpowiadający mu bit w następnym bloku tekstu jawnego, ale reszta bloków pozostaje nienaruszona. Ta osobliwość jest wykorzystywana w różnych atakach typu padding oracle, takich jak POODLE.

Explicit initialization vectors wykorzystuje tę właściwość przez dodanie pojedynczego losowego bloku do tekstu jawnego. Szyfrowanie odbywa się w normalny sposób, z wyjątkiem IV nie musi być przekazywane do procedury deszyfrowania. Niezależnie od tego, jakiego IV użyje deszyfrowanie, tylko losowy blok jest „uszkodzony”. Można go bezpiecznie wyrzucić, a reszta deszyfrowania to oryginalny tekst jawny.

Propagowanie łańcucha bloków szyfrujących (PCBC)Edycja

PCBC

Propagowanie łańcucha bloków szyfrujących

Szyfrowanie równoległe

.

Nie

Dekryptaż równoległy

Nie

Losowy dostęp do odczytu

Nie

Tryb propagującego się łańcucha szyfrów lub szyfrogramu z tekstem jawnym

Tryb propagującego się łańcucha szyfrów lub szyfrogramu z tekstem jawnym został zaprojektowany tak, aby powodować powstawanie błędów w szyfrowaniu.Tryb łańcuchowania bloków został zaprojektowany tak, aby małe zmiany w szyfrogramie propagowały się w nieskończoność podczas deszyfrowania, jak również podczas szyfrowania. W trybie PCBC, każdy blok tekstu jawnego jest XORowany zarówno z poprzednim blokiem tekstu jawnego jak i poprzednim blokiem szyfrogramu przed zaszyfrowaniem. Podobnie jak w trybie CBC, w pierwszym bloku używany jest wektor inicjujący.

Algorytmy szyfrowania i deszyfrowania są następujące:

C i = E K ( P i ⊕ P i – 1 ⊕ C i – 1 ) , P 0 ⊕ C 0 = I V , { {styl C_{i}=E_{K}(P_{i} ⊕ P_{i-1} ⊕ C_{i-1}),P_{0}}oplus C_{0}=IV,}

P i = D K ( C i ) ⊕ P i – 1 ⊕ C i – 1 , P 0 ⊕ C 0 = I V . {{displaystyle P_{i}=D_{K}(C_{i})⊕ P_{i-1} ⊕ C_{i-1},P_{0} ⊕ C_{0}=IV.}

PCBC jest używane przede wszystkim w Kerberos v4 i WASTE, ale poza tym nie jest powszechne. W wiadomości zaszyfrowanej w trybie PCBC, jeśli dwa sąsiednie bloki szyfrogramu zostaną zamienione, nie ma to wpływu na odszyfrowanie kolejnych bloków. Z tego powodu, PCBC nie jest używany w Kerberos v5.

Sprzężenie zwrotne szyfru (CFB)Edycja

Pełny-blok CFBEdit

CFB

Sprzężenie zwrotne szyfru

Szyfrowanie równoległe

Nie

Decryption parallelizable

Yes

Random read access

Yes

Tryb cipher feedback (CFB), w swojej najprostszej formie wykorzystuje całe wyjście szyfru blokowego. W tej odmianie, jest bardzo podobny do CBC, czyni szyfr blokowy w samosynchronizujący się szyfr strumieniowy. Deszyfrowanie CFB w tej odmianie jest prawie identyczne z szyfrowaniem CBC wykonywanym w odwrotnej kolejności:

C i = { IV , i = 0 E K ( C i – 1 ) ⊕ P i , w przeciwnym razie P i = E K ( C i – 1 ) ⊕ C i , { {begin{aligned}C_{i}&={begin{cases}{}text{IV}},&i=0\\E_{K}(C_{i-1})\oplus P_{i},&{\text{otherwise}}\end{cases}}\\P_{i}&=E_{K}(C_{i-1})\oplus C_{i},\end{aligned}}}

CFB-1, CFB-8, CFB-64, CFB-128, itd.Edycja

NIST SP800-38A definiuje CFB z szerokością bitową. Tryb CFB wymaga również parametru całkowitego, oznaczonego s, takiego, że 1 ≤ s ≤ b. W specyfikacji trybu CFB poniżej, każdy segment tekstu jawnego (Pj) i segment szyfrogramu (Cj) składa się z s bitów. Wartość s jest czasami włączana do nazwy trybu, np. 1-bitowy tryb CFB, 8-bitowy tryb CFB, 64-bitowy tryb CFB lub 128-bitowy tryb CFB.

Tryby te powodują obcięcie danych wyjściowych bazowego szyfru blokowego.

I 0 = IV . {\displaystyle I_{0}={\text{IV}}.}

I i = ( ( I i – 1 ≪ s ) + C i ) mod 2 b , {displaystyle I_{i}={podstawa (}(I_{i-1} s ) +C_{i}{big )}{mod {2}}}^{b},}

C i = MSB s ( E K ( I i – 1 ) ) ⊕ P i , {displaystyle C_{i}=operatorname {MSB} _{s}{\i_big (}E_{K}(I_{i-1}){\i0,}

P i = MSB s ( E K ( I i – 1 ) ) ⊕ C i , { {displaystyle P_{i}=operatorname {MSB} _{s}{{big (}E_{K}(I_{i-1})⊕ C_{i},}

CFB-1 jest uważany za samosynchronizujący się i odporny na utratę szyfrogramu; „Gdy używany jest 1-bitowy tryb CFB, wtedy synchronizacja jest automatycznie przywracana b+1 pozycji po wstawionym lub usuniętym bicie. Dla innych wartości s w trybie CFB, oraz dla innych trybów poufności w tym zaleceniu, synchronizacja musi być przywracana zewnętrznie.” (NIST SP800-38A). Tzn. utrata 1 bitu w szyfrze blokowym o szerokości 128 bitów, takim jak AES, spowoduje utratę 129 nieważnych bitów przed wyemitowaniem bitów ważnych.

CFB może również samoczynnie zsynchronizować się w pewnych szczególnych przypadkach, innych niż podane. Na przykład, zmiana o jeden bit w CFB-128 z bazowym 128 bitowym szyfrem blokowym, zsynchronizuje się ponownie po dwóch blokach. (Jednakże, CFB-128 etc nie będzie obsługiwać utraty bitów z wdziękiem; utrata jednego bitu spowoduje, że deszyfrator straci wyrównanie z szyfratorem)

CFB w porównaniu do innych trybówEdit

Podobnie jak tryb CBC, zmiany w tekście jawnym propagują się na zawsze w szyfrogramie, a szyfrowanie nie może być równoległe. Również jak CBC, deszyfrowanie może być równoległe.

CFB, OFB i CTR mają dwie zalety w stosunku do trybu CBC: szyfr blokowy jest używany tylko w kierunku szyfrowania, a wiadomość nie musi być wypełniona do wielokrotności rozmiaru bloku szyfrującego (chociaż kradzież szyfrogramu może być również używana w trybie CBC, aby uczynić wypełnianie zbędnym).

Sprzężenie zwrotne wyjścia (OFB)Edycja

OFB

Sprzężenie zwrotne wyjścia

Szyfrowanie równoległe

Nie

Deszyfrowanie równoległe

Nie

Losowy dostęp do odczytu

Nie

Tryb wyjściowego sprzężenia zwrotnego (OFB) przekształca szyfr blokowy w synchroniczny szyfr strumieniowy. Generuje bloki strumienia kluczy, które są następnie XORed z blokami tekstu jawnego, aby uzyskać szyfrogram. Podobnie jak w przypadku innych szyfrów strumieniowych, odwrócenie bitu w szyfrogramie powoduje odwrócenie bitu w tekście jawnym w tym samym miejscu. Ta właściwość pozwala wielu kodom korygującym błędy działać normalnie, nawet jeśli są stosowane przed szyfrowaniem.

Z powodu symetrii operacji XOR, szyfrowanie i deszyfrowanie są dokładnie takie same:

C j = P j ⊕ O j , { {displaystyle C_{j}=P_{j},}

P j = C j ⊕ O j , {displaystyle P_{j}=C_{j},}}

O j = E K ( I j ) , {displaystyle O_{j}=E_{K}(I_{j}),}

I j = O j – 1 , {displaystyle I_{j}=O_{j-1},}

I 0 = IV . {\displaystyle I_{0}={\text{IV}}.}

Każda operacja wyjściowego szyfru blokowego ze sprzężeniem zwrotnym zależy od wszystkich poprzednich, a więc nie może być wykonywana równolegle. Jednakże, ponieważ tekst jawny lub szyfrogram jest używany tylko do końcowej operacji XOR, operacje szyfru blokowego mogą być wykonywane z wyprzedzeniem, pozwalając na wykonanie ostatniego kroku równolegle, gdy tekst jawny lub szyfrogram jest dostępny.

Możliwe jest uzyskanie strumienia kluczy w trybie OFB poprzez zastosowanie trybu CBC ze stałym ciągiem zer na wejściu. Może to być przydatne, ponieważ pozwala na wykorzystanie szybkich sprzętowych implementacji trybu CBC do szyfrowania w trybie OFB.

Użycie trybu OFB z blokiem częściowym jako sprzężeniem zwrotnym, podobnie jak w trybie CFB, zmniejsza średnią długość cyklu o współczynnik 232 lub więcej. Model matematyczny zaproponowany przez Daviesa i Parkina oraz poparty wynikami eksperymentalnymi wykazał, że tylko przy pełnym sprzężeniu zwrotnym można osiągnąć średnią długość cyklu zbliżoną do możliwego do uzyskania maksimum. Z tego powodu, wsparcie dla skróconego sprzężenia zwrotnego zostało usunięte ze specyfikacji OFB.

Licznik (CTR)Edycja

CTR

Licznik

Kodowanie równoległe

.

Tak

Deszyfrowanie równoległe

Tak

Losowy dostęp do odczytu

Tak

Uwaga: Tryb CTR (CM) jest również znany jako tryb licznika całkowego (ICM) i tryb segmentowego licznika całkowego (SIC).

Tak jak OFB, tryb licznika zmienia szyfr blokowy w szyfr strumieniowy. Generuje on następny blok strumienia kluczy poprzez zaszyfrowanie kolejnych wartości „licznika”. Licznik może być dowolną funkcją, która wytwarza sekwencję, co do której istnieje gwarancja, że nie będzie się powtarzać przez długi czas, choć najprostszy i najbardziej popularny jest rzeczywisty licznik inkrement-by-one. Użycie prostej deterministycznej funkcji wejściowej było kiedyś kontrowersyjne; krytycy twierdzili, że „celowe wystawianie kryptosystemu na znane systematyczne dane wejściowe stanowi niepotrzebne ryzyko.” Jednak dziś tryb CTR jest powszechnie akceptowany, a wszelkie problemy są uważane za słabość bazowego szyfru blokowego, który ma być bezpieczny bez względu na systemową stronniczość w danych wejściowych. Wraz z CBC, tryb CTR jest jednym z dwóch trybów szyfrów blokowych zalecanych przez Nielsa Fergusona i Bruce’a Schneiera.

Tryb CTR został wprowadzony przez Whitfielda Diffie i Martina Hellmana w 1979 roku.

Tryb CTR ma podobną charakterystykę do OFB, ale pozwala również na właściwość losowego dostępu podczas deszyfrowania. Tryb CTR jest dobrze przystosowany do pracy na maszynie wieloprocesorowej, gdzie bloki mogą być szyfrowane równolegle. Ponadto, nie cierpi na problem krótkiego cyklu, który może mieć wpływ na OFB.

Jeżeli IV/nonce jest losowy, to mogą być połączone razem z licznikiem przy użyciu dowolnej operacji odwracalnej (konkatenacji, dodawania lub XOR) w celu wytworzenia rzeczywistego unikalnego bloku licznika do szyfrowania. W przypadku nielosowego nonce (jak np. licznik pakietów), nonce i licznik powinny być konkatenowane (np. przechowując nonce w górnych 64 bitach, a licznik w dolnych 64 bitach 128-bitowego bloku licznika). Zwykłe dodawanie lub XORowanie nonce i licznika w jedną wartość w wielu przypadkach złamałoby zabezpieczenia w przypadku ataku typu chosen-plaintext, ponieważ osoba atakująca może być w stanie manipulować całą parą IV-licznik w celu spowodowania kolizji. Gdy atakujący kontroluje parę IV-counter i tekst jawny, XOR szyfrogramu ze znanym tekstem jawnym dałby wartość, która po XOR z szyfrogramem innego bloku dzielącego tę samą parę IV-counter, odszyfrowałaby ten blok.

Zauważ, że nonce na tym diagramie jest równoważny wektorowi inicjalizacyjnemu (IV) w innych diagramach. Jeśli jednak informacja o offsecie/lokalizacji jest uszkodzona, częściowe odzyskanie takich danych będzie niemożliwe ze względu na zależność od offsetu bajtowego.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.