Режим сцепления блоков шифротекста


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

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

C 0 = I V {displaystyle C_{0}=IV} C i = E k ( P i ⊕ C i − 1 ) {displaystyle C_{i}=E_{k}left(P_{i}oplus C_{i-1} ight)}

где i {displaystyle i} — номера блоков, I V {displaystyle IV} — вектор инициализации (синхропосылка), C i {displaystyle C_{i}} и P i {displaystyle P_{i}} — блоки зашифрованного и открытого текстов соответственно, а E k {displaystyle E_{k}} — функция блочного шифрования. Расшифровка:

P i = C i − 1 ⊕ D k ( C i ) {displaystyle P_{i}=C_{i-1}oplus D_{k}left(C_{i} ight)} Шифрование в режиме CBC Расшифрование в режиме CBC

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

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


Имя:*
E-Mail:
Комментарий: