Cipher Block Chaining
(CBC) Cipher Block Chaining Режим зчеплення блоків шифротексту - одна із схем симетричного шифрування з використанням зворотного зв'язку. Кожен блок відкритого тексту (крім першого) складається за модулем 2 (XOR) бітно з результатом попереднього шифрування. При шифруванні першого блоку як попередній використовується вектор ініціалізації (IV), який узгоджується відправником та одержувачем перед початком процесу шифрування/розшифрування.
Має низку різних модифікацій:
- (BC) block chaining Режим зчеплення блоків
- (CBC$) Режим зчеплення блоків з випадковим вектором ініціалізації
- (CBCC) cipher block chaining with checksum Режим зчеплення блоків шифротексту з контрольною сумою
- (PCBC) propagating cipher block chaining Режим зчеплення блоків з поширенням помилок
- (CBCPD) зчеплення блоків тексту за відмінностями відкритого тексту
Постановка задачі захисту (Security challenge)
Основною особливістю даної схеми шифрування є те, що, на відміну від схеми ECB, однакові блоки відкритого тексту, що належать одному повідомленню, шифруються в різні блоки шифротексту, таким чином окремі зразки в блоці не зберігаються.
Для даної схеми шифрування характерні такі особливості:
- Якщо при передачі повідомлення відбудеться зміна будь-якого одного біта шифротексту, помилка пошириться на поточний і наступний блок даних відкритого тексту. Однак на наступні блоки (через один) помилка не пошириться, тому схему CBC також називають самовідновлюється.
- У разі втрати або вставки хоча б одного біта в шифротекст відбудетьсяусунення бітів і меж блоків, що призведе до помилкової розшифрації всіх наступних блоків шифротексту (виправна, при реалізації методів контролю меж блоків шифротексту)
- Зловмисник може додати блоки до кінця зашифрованого повідомлення, доповнюючи цим відкритий текст (проте без ключа виходить сміття)
- Два однакові повідомлення мають однакові шифротексти під час використання однакового вектора ініціалізації (IV).
- З п. 4 випливає, що якщо використовувати один вектор ініціалізації (IV) для шифрування різних повідомлень, що мають однакові перші k блоків – перші k блоків шифротексту так само будуть однакові, що дає можливість здійснити атаку (описано у розділі проблем безпеки схеми ECB)
- Узагальнюючи п. 5 і 4, можна сказати, що для дуже великих повідомлень (32 Гбайта при довжині блоку 64 біта), все-таки можливе застосування атак, заснованих на структурних особливостях відкритого тексту (наслідок парадоксу днів народження).
- Помилка синхронізації IV є фатальною для роботи
- Помилка хоча б одного біта при шифруванні призводить до помилок у всіх наступних блоках шифротексту - як наслідок повне сміття при вірній розшифрації
- Процес розшифрування можна виконувати паралельно.
Теоретичні основи розв'язання задачі (Theoretical issues)

Математично схема симетричного шифрування може бути описана таким чином:
Шифрування:
Розшифрування:
де – відкритий текст, – блоки відкритого тексту N біт, t – кількість блоків, на яку розбитий відкритий текст, – блоки шифротексту, що відповідають блокам відкритого тексту, та – алгоритми шифрування та розшифрування на ключі k,IV– вектор ініціалізації.
Доведемо, щошифрування та розшифрування приводять до одного відкритого тексту:
CBC CTS (CipherText Stealing) захоплення зашифрованого тексту
Останній блок відкритого тексту (з номером t) може містити менше N біт, у такому разі його необхідно доповнювати, що не завжди можливо – у такому випадку застосовують техніку CBC (CipherText Stealing) захоплення зашифрованого тексту, яка дозволяє використовувати схему CBC без доповнення відкритого тексту тексту до кратного N числу біт (аналогічно ECB CTS).
У цій схемі останні два блоки вихідного тексту Mt та Mt-1 зашифровані окремо по-іншому принципу та в іншому порядку. Припустимо, що Mt-1 має N біт, а Mt - n біт, причому n Основні криптографічні конструкції та їх стійкість (Cryptographic primitives and/or protocols)
Практичні застосування криптографічних конструкцій, особливості їх реалізації (Practical issues)

Схему симетричного шифрування CBC часто використовують із шифрування повідомлення. Однак паралельна обробка неможлива через особливості роботи, оскільки використовується механізм формування ланцюжка. З цієї причини схему CBC не використовують при шифруванні масивів файлів з довільним доступом (бази даних. Досить часто схему СВС застосовують встановлення автентичності повідомлення (підпис).
Докладніше розглянемо роботу алгоритму DES із використанням схеми шифрування CBC:
вихідний файл M, згідно зі схемою CBC розбивається на блоки по 8 байт (64 біт). Кожен із цих блоків відкритого тексту складається за модулем 2 (операція XOR) з результатом шифрування попереднього 64-бітового блоку відкритого тексту. Перший блок відкритого тексту складається із початковим вектором ініціалізації IV. Отримана сума потім шифрується за алгоритмом DES з використанням ключа, якийвідомий і відправнику, і одержувачу інформації. Отриманий 64-бітовий блок шифротексту складається за модулем 2 з наступним блоком відкритого тексту
Глосарій (Glossary)
Бібліографічний покажчик (Bibliography)
- (ECB) Electronic Code Book (Режим електронної кодової книги)
- (ECB CTS) CipherText Stealing (Захоплення зашифрованого тексту)
- (CBC) Cipher Block Chaining Режим зчеплення блоків шифротексту
- (CBC CTS) CipherText Stealing (Захоплення зашифрованого тексту)
- (BC) block chaining Режим зчеплення блоків
- (CBC$) Режим зчеплення блоків з випадковим вектором ініціалізації
- (CBCC) cipher block chaining with checksum Режим зчеплення блоків шифротексту з контрольною сумою
- (PCBC) propagating cipher block chaining Режим зчеплення блоків з поширенням помилок
- (CBCPD) зчеплення блоків тексту за відмінностями відкритого тексту