Режим работы блочного шифра
Режим работы блочного шифра — это алгоритм (способ) применения блочного симметричного шифра для преобразования последовательности данных произвольной длины, превышающей размер одного блока. Блочный шифр сам по себе предназначен для шифрования только одного блока фиксированной длины (например, 64 или 128 бит). Режимы работы определяют, как обрабатывать открытый текст, превышающий этот размер, как связывать блоки между собой и как обеспечивать дополнительные свойства, такие как надёжность шифрования (отсутствие повторяющихся блоков шифротекста) и возможность проверки целостности.
История
Первые блочные шифры (например, DES, разработанный в 1970-х годах) использовались в основном с простейшими режимами, такими как ECB (Electronic Codebook). Однако вскоре были выявлены серьёзные недостатки этого режима, связанные с тем, что идентичные блоки открытого текста дают идентичные блоки шифротекста, что позволяет злоумышленнику анализировать структуру данных. Для устранения этого недостатка были разработаны более сложные режимы, вводящие обратную связь и случайные начальные векторы (IV).
В 1980-х годах Национальный институт стандартов и технологий США (NIST) опубликовал стандартные режимы работы для DES, которые затем были адаптированы для AES. В 2000-х годах появились режимы, обеспечивающие аутентификацию (проверку целостности) вместе с шифрованием, такие как GCM (Galois/Counter Mode) и CCM (Counter with CBC-MAC). Эти режимы стали основой для современных протоколов безопасности (например, TLS, IPsec).
Классификация режимов
Режимы работы блочных шифров делятся на несколько основных типов в зависимости от способа обработки блоков и целей:
По способу обработки блоков
- Режимы с прямой связью (Cipher Block Chaining, CBC): Каждый блок открытого текста перед шифрованием складывается (XOR) с предыдущим блоком шифротекста. Для первого блока используется начальный вектор (IV). Этот режим скрывает повторяющиеся блоки, но требует последовательной обработки (нельзя параллелить шифрование).
- Режимы с обратной связью по шифротексту (Cipher Feedback, CFB): Шифруется не сам блок открытого текста, а предыдущий блок шифротекста, а результат складывается с открытым текстом. Позволяет шифровать данные по одному байту (или биту), что удобно для потоковой передачи.
- Режимы с обратной связью по выходу (Output Feedback, OFB): Генерируется поток ключевых битов (гамма) путём многократного шифрования начального вектора. Этот поток затем складывается с открытым текстом. Режим устойчив к ошибкам передачи (один бит ошибки в шифротексте портит только один бит открытого текста), но требует синхронизации.
- Счётчиковый режим (Counter, CTR): Для каждого блока шифруется значение счётчика, который увеличивается на единицу для каждого следующего блока. Результат складывается с открытым текстом. Этот режим позволяет параллельное шифрование и дешифрование, так как каждый блок независим.
По наличию аутентификации
- Режимы без аутентификации: ECB, CBC, CFB, OFB, CTR. Они обеспечивают только конфиденциальность, но не защищают от модификации шифротекста (например, злоумышленник может изменить блок, не зная ключа, что приведёт к непредсказуемому изменению открытого текста).
- Режимы с аутентификацией (Authenticated Encryption, AE): Одновременно обеспечивают конфиденциальность и целостность (аутентификацию) данных. К ним относятся:
- GCM (Galois/Counter Mode): Сочетает CTR-режим для шифрования и GMAC (Galois Message Authentication Code) для аутентификации. Очень популярен в современных протоколах (TLS 1.2/1.3, IPsec).
- CCM (Counter with CBC-MAC): Сочетает CTR-режим для шифрования и CBC-MAC для аутентификации. Используется в стандартах IEEE 802.11 (Wi-Fi) и Bluetooth.
- EAX, OCB, SIV: Другие режимы, обеспечивающие аутентификацию, с различными свойствами (например, устойчивость к повторной передаче).
Характеристики и свойства
Каждый режим работы обладает набором характеристик, определяющих его применимость:
- Начальный вектор (IV): Случайное или псевдослучайное значение, используемое для инициализации режима. IV не должен повторяться при использовании одного и того же ключа (особенно критично для CTR и GCM). В некоторых режимах (CBC, CFB, OFB) IV должен быть непредсказуемым для злоумышленника.
- Параллелизация: Возможность одновременно шифровать или дешифровать несколько блоков. Режимы ECB, CTR, GCM (шифрование) позволяют параллелизацию, тогда как CBC, CFB, OFB — нет.
- Устойчивость к ошибкам: Как ошибка в одном бите шифротекста влияет на расшифрованный текст. В режимах ECB и CTR ошибка портит только соответствующий блок. В CBC ошибка портит текущий и следующий блок. В CFB и OFB — один или несколько блоков.
- Размер блока: Большинство современных блочных шифров (AES, ГОСТ 28147-89, Кузнечик) имеют размер блока 128 бит. Старые шифры (DES, 3DES) — 64 бита. Режимы работы адаптированы под конкретный размер блока.
Применение
Режимы работы блочных шифров используются во всех современных системах защиты данных:
- Протоколы передачи данных: TLS (Transport Layer Security) использует GCM (для AES) и CBC (для 3DES). IPsec (Internet Protocol Security) использует CBC, CTR, GCM.
- Шифрование дисков: Режимы XTS (XEX-based Tweaked Codebook) и LRW (Liskov, Rivest, Wagner) специально разработаны для шифрования дисковых разделов, так как они обеспечивают независимость шифрования каждого сектора (блока) и устойчивы к атакам по известному открытому тексту. Например, BitLocker (Windows) использует XTS-AES, а LUKS (Linux) — CBC с ESSIV.
- Беспроводные сети: Стандарт IEEE 802.11 (Wi-Fi) использует CCM (CCMP) для шифрования и аутентификации.
- Криптовалюты: Некоторые криптовалюты (например, Bitcoin) используют блочные шифры в режиме ECB для хэширования (SHA-256), но это не является типичным применением режимов шифрования.
- Государственные стандарты: В Российской Федерации для шифрования данных используются блочные шифры «Кузнечик» (ГОСТ Р 34.12-2015) и «Магма» (ГОСТ 28147-89). Для них стандартизированы режимы работы: ECB, CBC, CTR, OFB, CFB, а также режим с имитовставкой (аутентификацией) — GCM (ГОСТ Р 34.13-2015).
Критика и уязвимости
- Режим ECB: Считается небезопасным для большинства приложений, так как не скрывает повторяющиеся блоки. Его использование допустимо только для шифрования коротких, уникальных данных (например, ключей).
- Режим CBC: Уязвим к атакам на основе оракула дополнения (Padding Oracle Attack), если реализация не проверяет корректность дополнения (padding) перед аутентификацией. Эта атака была успешно применена к протоколу SSL/TLS (атака POODLE).
- Режимы без аутентификации (CBC, CTR, OFB): Не защищают от модификации шифротекста. Злоумышленник может изменить блок, что приведёт к непредсказуемому изменению открытого текста при расшифровке. Для защиты требуется дополнительная проверка целостности (например, HMAC).
- Повторное использование IV: В режимах CTR и GCM повторное использование одного и того же IV с одним и тем же ключом приводит к полной компрометации шифрования (можно восстановить открытый текст).
Интересные факты
- Режим GCM был разработан в 2004 году и быстро стал стандартом благодаря своей эффективности (сочетание шифрования и аутентификации в одном проходе) и возможности параллельной обработки.
- В 2010-х годах были предложены режимы с защитой от повторной передачи (nonce-misuse resistance), например, SIV (Synthetic Initialization Vector) и GCM-SIV, которые устойчивы к случайному повторению IV.
- В российской криптографии режим GCM (согласно ГОСТ Р 34.13-2015) реализован на основе блочного шифра «Кузнечик» и используется в системах защищённой передачи данных (например, в некоторых версиях протокола TLS).
Источники
- Стандарт NIST SP 800-38A «Recommendation for Block Cipher Modes of Operation: Methods and Techniques».
- Стандарт NIST SP 800-38D «Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC».
- ГОСТ Р 34.13-2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров».
- Книга «Handbook of Applied Cryptography» (A. Menezes, P. van Oorschot, S. Vanstone).
- Статья «A Survey of Block Cipher Modes of Operation» (M. Bellare, P. Rogaway).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →