Cipher Block Chaining

From CryptoWiki
Jump to: navigation, search

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

Имеет ряд различных модификаций:

  • (BC) block chaining Режим сцепления блоков
  • (CBC$) Cipher Block Chaining with random IV (initialization vector) Режим сцепления блоков со случайным вектором инициализации
  • (CBCC) cipher block chaining with checksum Режим сцепления блоков шифротекста с контрольной суммой
  • (PCBC) propagating cipher block chaining Режим сцепления блоков с распространением ошибок
  • (CBCPD) cipher block chaining of plaintext difference Сцепления блоков текста по различиям открытого текста


Contents

Постановка задачи защиты информации (Security challenge)

Основной особенностью данной схемы шифрования является то, что в отличие от схемы ECB одинаковые блоки открытого текста, принадлежащие одному сообщению, шифруются в различные блоки шифротекста, таким образом отдельные образцы в блоке не сохраняются.

Для данной схемы шифрования характерны так же следующие особенности:

  1. Если при передаче сообщения произойдёт изменение любого одного бита шифротекста, то ошибка распространится на текущий и следующий блок данных открытого текста. Однако на последующие блоки (через один) ошибка не распространится, поэтому схему CBC также называют самовосстанавливающейся.
  2. В случае потери или вставки хотя бы одного бита в шифротекст произойдет смещение битов и границ блоков, что приведет к ошибочной расшифрации всех последующих блоков шифротекста (исправима, при реализации методов контроля границ блоков шифротекста)
  3. Злоумышленник может добавить блоки к концу зашифрованного сообщения, дополняя тем самым открытый текст (однако без ключа получается мусор)
  4. Два одинаковых сообщения имеют одинаковые шифротексты при использовании одинакового вектора инициализации (IV).
  5. Из п. 4 следует, что если использовать один вектор инициализации (IV) для шифрования различных сообщений, имеющих одинаковые первые k блоков – первые k блоков шифротекста так же будут одинаковые, что дает возможность совершить атаку (описано в разделе проблем безопасности схемы ECB)
  6. Обобщая п. 5 и 4, можно сказать что для очень крупных сообщений (32 Гбайта при длине блока 64 бита), всё-таки возможно применение атак, основанных на структурных особенностях открытого текста (следствие парадокса дней рождения).
  7. Ошибка синхронизации IV является фатальной для процесса работы
  8. Ошибка хотя бы одного бита при шифровании приводит к ошибкам во всех последующих блоках шифротекста – как следствие полный мусор при верной расшифрации
  9. Процесс расшифрования возможно выполнять параллельно.

Теоретические основы решения задачи (Theoretical issues)

Блок схема работы шифра в схеме шифрования CBC

Математически схема симметричного шифрования может быть описана следующим образом:

Шифрование: CBC 1.PNG

Расшифрование: CBC 2.PNG

где ECB 2.PNG – открытый текст, Mi.PNG – блоки открытого текста по N бит, t – количество блоков, на которое разбит открытый текст, ECB 3.PNG – блоки шифротекста, соответствующие блокам Mi.PNG открытого текста, Ek.PNG и Dk.PNG – алгоритмы шифрования и расшифрования на ключе k, IV – вектор инициализации.

Докажем, что шифрование и расшифрование приводят к одному открытому тексту:

CBC 3.PNG

CBC CTS (CipherText Stealing) захват зашифрованного текста

Блок-схема режима работы в схеме шифрования CBC CTS

Последний блок открытого текста (с номером t) может содержать меньше N бит, в таком случае его необходимо дополнять, что не всегда возможно – в таком случае применяют технику CBC CTS (CipherText Stealing) захват зашифрованного текста, которая позволяет использовать схему CBC без дополнения открытого текста до кратного N числу бит (аналогично ECB CTS).

В этой схеме последние два блока исходного текста Mt и Mt-1 зашифрованы отдельно по-другому принципу и в другом порядке. Предположим, что Mt-1 имеет N бит, а Mt – n бит, причем n < N.

CBC 4.PNG

где Headn.PNG – функция, отсекающая крайние левые n бит, Padnn.PNG – функция, вставляющая N-n нулевых бит.

При расшифровании применяют следующие вычисления:

CBC 5.PNG

где Tailnn.PNG – функция, отсекающая крайние правые N-n бит.

Основные криптографические конструкции и их стойкость (Cryptographic primitives and/or protocols)

Практические применения криптографических конструкций, особенности их реализации (Practical issues)

Блок-схема работы DES по схеме CBC

Схему симметричного шифрования CBC часто используют для шифрования сообщения. Однако параллельная обработка невозможна из-за особенности работы, поскольку используется механизм формирования цепочки. По этой же причине схему CBC не используют при шифровании массивов файлов с произвольным доступом (базы данных. Достаточно часто схему СВС применяют для установления подлинности сообщения (подпись).

Более подробно рассмотрим работу алгоритма DES с использованием схемы шифрования CBC:

исходный файл M, согласно схеме CBC разбивается на блоки по 8 байт (64 бит). Каждый из этих блоков открытого текста складывается по модулю 2 (операция XOR) с результатом шифрования предыдущего 64-битового блока открытого текста. Первый блок открытого текста складывается с начальным вектором инициализации IV. Полученная сумма затем шифруется по алгоритму DES с использованием ключа, который известен и отправителю, и получателю информации. Полученный 64-битовый блок шифротекста складывается по модулю 2 со следующим блоком открытого текста

Глоссарий (Glossary)

Библиографический указатель (Bibliography)

Список литературы к разделу "Симметричные схемы шифрования"


Другие статьи по теме Симметричные схемы шифрования:

  1. (ECB) Electronic Code Book (Режим электронной кодовой книги)
    • (ECB CTS) CipherText Stealing (Захват зашифрованного текста)
  2. (CBC) Cipher Block Chaining Режим сцепления блоков шифротекста
    • (CBC CTS) CipherText Stealing (Захват зашифрованного текста)
    1. (BC) block chaining Режим сцепления блоков
    2. (CBC$) Cipher Block Chaining with random IV (initialization vector) Режим сцепления блоков со случайным вектором инициализации
    3. (CBCC) cipher block chaining with checksum Режим сцепления блоков шифротекста с контрольной суммой
    4. (PCBC) propagating cipher block chaining Режим сцепления блоков с распространением ошибок
    5. (CBCPD) cipher block chaining of plaintext difference Сцепления блоков текста по различиям открытого текста
  3. (CFB) Cipher Feed Back Режим обратной связи по шифротексту
  4. (OFB) Output Feed Back Режим обратной связи по выходу
  5. (OFBNLF) output feedback with a nonlinear function Режим нелинейной обратной связи по выходу
  6. (PBC) plaintext block chaining Сцепление блоков открытого текста
  7. (PFB) plaintext feedback Режим обратной связи по открытому тексту
  8. (CTR) Counter Режим счетчика
  9. Кратное шифрование
    1. Двойное
      • Метод Дэвиса-Прайса
    2. Тройное
      • Схема Тачмена
      • Схема с тремя ключами