CBC (Cipher Block Chaining)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:27, 12 июня 2016.

Режим сцепления блоков шифротекста (Cipher Block Chaining, CBC) — один из вариантов использования симметричного блочного шифра с использованием механизма обратной связи. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования.

Шифрование может быть описано следующим образом:

где  — номера блоков,  — вектор инициализации (синхропосылка), и  — блоки зашифрованного и открытого текстов соответственно, а  — функция блочного шифрования. Расшифровка:

Шифрование в режиме CBC
Расшифрование в режиме CBC

Особенности:

  • Наличие механизма распространения ошибки: если при передаче произойдёт изменение одного бита шифротекста, данная ошибка распространится и на следующий блок. Однако на последующие блоки (через один) ошибка не распространится, поэтому режим CBC также называют самовосстанавливающимся.
  • Неустойчив к ошибкам, связанным с потерей или вставкой битов, если не используется дополнительный механизм выравнивания блоков.
  • Злоумышленник имеет возможность добавить блоки к концу зашифрованного сообщения, дополняя тем самым открытый текст (однако без ключа получается мусор)
  • Для очень крупных сообщений (32 Гбайта при длине блока 64 бита) всё-таки возможно применение атак, основанных на структурных особенностях открытого текста (следствие парадокса дней рождений).