CBC

Skocz do: nawigacji, szukaj

Tryb wiązania bloków zaszyfrowanych (z ang. Cipher Block ChainingCBC) – tryb szyfrowania wiadomości za pomocą szyfru blokowego, w którym przed zaszyfrowaniem każdy z bloków wiadomości jest przekształcany funkcją XOR z szyfrogramem uzyskanym z szyfrowania poprzedniego bloku wiadomości. Pierwszy blok wiadomości jest szyfrowany za pomocą wylosowanego ciągu bitów (IV, initial vector) dołączanego do wiadomości.

Wzór dla kodowania:

C0 = IV
C_i = E(P_i \oplus C_{i-1})

Wzór dla dekodowania:

P_i = D(C_i) \oplus C_{i-1}

Tryb CBC jest jednym z najszerzej wykorzystywanych szyfrów blokowych. Należy jednak pamiętać, że w przypadku wystąpienia błędów w transmisji niemożliwe będzie poprawne rozszyfrowanie bloku, który znajduje się po bloku uszkodzonym. W trakcie implementacji CBC bardzo istotny jest poprawny dobór wielkości bloków. Jeżeli będą one za krótkie, to szansa pokrycia się dwóch identycznych bloków wiadomości niezaszyfrowanej jest stosunkowo duża. Obecnie uznawana za bezpieczną jest wielkość bloku wynosząca co najmniej 128 bitów. CBC nie zabezpiecza również przed celową podmianą, modyfikacją bloków lub bitów. Dlatego ważne jest podczas szyfrowania zapewnienie ochrony integralności. W tym celu stosowane są kody uwierzytelniające – Message Authentication Code. Brak zapewnienia ochrony integralności był przyczyną znalezienia poważnych błędów w protokołach kryptograficznych. Błąd taki znaleziono w wersji pierwszej protokołu SSH, wówczas brak ochrony integralności oraz błędna konstrukcja pakietów umożliwiały atakującemu wstawianie własnych danych do zaszyfrowanego strumienia danych.
Tryb ten sprawdza się bardzo dobrze w sytuacjach, gdy istnieje możliwość powtórzenia się bloków szyfru - dzięki zastosowaniu CBC, w przypadku gdy zaszyfrujemy dwa identyczne bloki tekstu jawnego, otrzymamy dwa różne szyfrogramy. Taka sytuacja jest możliwa dzięki wartości :C0 = IV czyli wektora początkowego (ang. initialization vector). Za każdym razem wartość IV jest losowa, dlatego nawet przy szyfrowaniu dwóch takich samych tekstów jawnych otrzymamy dwa różne szyfrogramy.

[edytuj] Zobacz też