Режим
сцепления блоков шифротекста
(
англ.
Cipher Block Chaining, CBC
) — один из
режимов шифрования
для симметричного
блочного шифра
с использованием механизма обратной связи. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция
XOR
) с предыдущим результатом шифрования.
Шифрование может быть описано следующим образом:
где
— номера блоков,
— вектор инициализации (
),
и
— блоки зашифрованного и открытого текстов соответственно, а
— функция
блочного шифрования
. Расшифровка:
Особенности:
Наличие механизма распространения ошибки: если при передаче произойдёт изменение одного бита шифротекста, данная ошибка распространится и на следующий блок. Однако на последующие блоки (через один) ошибка не распространится, поэтому режим CBC также называют
самовосстанавливающимся
.
Неустойчив к ошибкам, связанным с потерей или вставкой битов, если не используется дополнительный механизм выравнивания блоков.
Злоумышленник имеет возможность добавить блоки к концу зашифрованного сообщения, дополняя тем самым открытый текст (однако без ключа получается мусор. А с использованием Hash функции для подтверждения целостности сообщения, сводит этот тип атаки на нет.)
Для очень крупных сообщений (32 Гбайта при длине блока 64 бита) всё-таки возможно применение атак, основанных на структурных особенностях открытого текста (следствие
парадокса дней рождения
).
Требует дополнения сообщений до длины кратной длине блока.
Уязвим для атаки оракула дополнений (англ: Padding Oracle). В случае, если атакующий может отправлять зашифрованные сообщения на расшифрование неограниченное количество раз, он может, изменяя определенные байты, угадать корректное дополнение. Это приводит к возможности расшифровать сообщение за исключением первого блока, создать корректное произвольное зашифрованное сообщение за исключением первого блока без знания ключа.
Примечания
(неопр.)
. Дата обращения: 3 августа 2011.
20 августа 2011 года.
Литература
Шнайер Б.
9.3. Режим сцепления блоков шифротекста
// Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —
М.
: Триумф, 2002. — С. 225—229. — 816 с. —
3000 экз.
—
ISBN 5-89392-055-4
.