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, однакові блоки відкритого тексту, що належать одному повідомленню, шифруються в різні блоки шифротексту, таким чином окремі зразки в блоці не зберігаються.

Для даної схеми шифрування характерні такі особливості:

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

Теоретичні основи розв'язання задачі (Theoretical issues)

cipher

Математично схема симетричного шифрування може бути описана таким чином:

Шифрування:

Розшифрування:

де – відкритий текст, – блоки відкритого тексту 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)

chaining

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

Докладніше розглянемо роботу алгоритму DES із використанням схеми шифрування CBC:

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

Глосарій (Glossary)

Бібліографічний покажчик (Bibliography)

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