AEAD-шифры
AEAD (от англ. Authenticated Encryption with Associated Data — аутентифицированное шифрование с присоединёнными данными) — это класс симметричных криптографических алгоритмов, которые одновременно обеспечивают конфиденциальность, целостность и аутентичность данных, а также защиту связанных с ними метаданных (associated data). В отличие от традиционных схем, где шифрование и контроль целостности выполняются отдельными алгоритмами (например, AES-CBC + HMAC), AEAD-шифры объединяют эти функции в единый процесс, что исключает уязвимости, связанные с неправильной реализацией или порядком операций.
История и предпосылки
Потребность в AEAD-шифрах возникла в начале 2000-х годов, когда стало очевидно, что раздельное шифрование и аутентификация (encrypt-then-MAC, MAC-then-encrypt, encrypt-and-MAC) имеют фундаментальные недостатки. Например, при схеме MAC-then-encrypt злоумышленник может модифицировать шифротекст, и проверка MAC до расшифровки не всегда выявляет атаку. В 2000 году криптографы Чарльз Раккофф и Филип Рогэвей опубликовали работу «A Security Analysis of the EAX Mode», где впервые формализовали понятие AEAD. В 2008 году Национальный институт стандартов и технологий США (NIST) утвердил первый стандартизированный AEAD-режим — GCM (Galois/Counter Mode) в составе рекомендаций SP 800-38D. С тех пор AEAD-шифры стали обязательным требованием для современных протоколов, включая TLS 1.3, SSH, IPsec и WireGuard.
Основные свойства
AEAD-шифры обеспечивают три ключевых свойства безопасности:
- Конфиденциальность: данные (plaintext) преобразуются в шифротекст (ciphertext), недоступный для чтения без ключа.
- Целостность: любое несанкционированное изменение шифротекста или связанных данных обнаруживается при расшифровке.
- Аутентичность: получатель может удостовериться, что сообщение отправлено именно тем отправителем, который владеет ключом.
Дополнительно AEAD-шифры принимают на вход три параметра: ключ (секретный), одноразовый номер (nonce, также называемый IV — initialisation vector) и связанные данные (associated data, AD). Связанные данные — это метаданные, которые не шифруются, но защищаются от модификации (например, заголовки сетевых пакетов, IP-адреса, номера сессий). На выходе формируется шифротекст и тег аутентификации (authentication tag) — короткая строка фиксированной длины, подтверждающая целостность.
Классификация AEAD-режимов
AEAD-шифры делятся на два основных класса: режимы на основе блочных шифров и режимы на основе потоковых шифров или хэш-функций.
Режимы на основе блочных шифров
Наиболее распространённые AEAD-режимы используют блочный шифр (обычно AES) как базовый примитив:
- GCM (Galois/Counter Mode): комбинирует режим счётчика (CTR) для шифрования и умножение в поле Галуа (GF(2¹²⁸)) для вычисления тега аутентификации. Требует одноразовый номер длиной 12 байт (96 бит). Высокая скорость на процессорах с поддержкой инструкций AES-NI и PCLMULQDQ. Используется в TLS 1.2/1.3, IEEE 802.11ac (Wi-Fi), SSH.
- CCM (Counter with CBC-MAC): использует режим счётчика для шифрования и CBC-MAC для аутентификации. Менее эффективен, чем GCM, но не требует аппаратного ускорения. Применяется в IEEE 802.11i (WPA2), Bluetooth Low Energy.
- EAX: гибридный режим на основе CTR и OMAC (One-Key CBC-MAC). Обеспечивает параллелизм и простоту реализации. Используется в некоторых протоколах аутентификации.
- OCB (Offset Codebook Mode): один из самых быстрых AEAD-режимов, запатентован (патенты принадлежат компании IBM и другим). Требует только один проход по данным. Применяется в некоторых военных и коммерческих системах, но из-за патентных ограничений реже используется в открытом ПО.
Режимы на основе потоковых шифров и хэш-функций
- ChaCha20-Poly1305: комбинация потокового шифра ChaCha20 и одноразового аутентификатора Poly1305. Разработан Дэниелом Бернштейном. Эффективен на процессорах без аппаратной поддержки AES, особенно на мобильных устройствах. Стандартизирован как RFC 8439. Используется в TLS 1.3, WireGuard, SSH (как альтернатива AES-GCM).
- AEGIS: семейство AEAD-шифров, основанных на AES-подобных операциях и имитирующих работу потокового шифра. Предлагает высокую скорость и устойчивость к атакам по сторонним каналам. Включён в финальный список конкурса CAESAR (Competition for Authenticated Encryption: Security, Applicability, and Robustness).
- NORX: AEAD-режим на основе хэш-функции NORX, ориентированный на лёгкую реализацию в программном и аппаратном обеспечении. Финалист конкурса CAESAR.
Устройство и принцип работы
Типичный AEAD-алгоритм работает в два этапа:
- Шифрование: открытый текст разбивается на блоки (если используется блочный шифр) или обрабатывается побайтово (потоковый шифр). Каждый блок шифруется с использованием ключа и одноразового номера. Параллельно вычисляется тег аутентификации, который зависит от шифротекста, связанных данных и, возможно, длины блоков.
- Расшифровка: получатель использует тот же ключ и одноразовый номер для расшифровки. После расшифровки вычисляется ожидаемый тег и сравнивается с полученным. Если теги не совпадают, данные отвергаются как скомпрометированные.
Ключевое отличие от раздельных схем — тег аутентификации вычисляется на основе шифротекста, а не открытого текста. Это предотвращает атаки, при которых злоумышленник может подменить шифротекст до проверки целостности.
Применение
AEAD-шифры являются стандартом де-факто в современных криптографических протоколах:
- TLS 1.3: обязательное использование AEAD-шифров (AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305). Замена устаревших режимов CBC и RC4.
- IPsec: режимы ESP (Encapsulating Security Payload) поддерживают AES-GCM и ChaCha20-Poly1305 для защиты туннелей VPN.
- WireGuard: использует исключительно ChaCha20-Poly1305 для шифрования и аутентификации всех пакетов.
- SSH: начиная с версии 7.7, рекомендован AEAD-режим (chacha20-poly1305@openssh.com).
- IEEE 802.11 (Wi-Fi): WPA2 использует AES-CCMP (на основе CCM), WPA3 — AES-GCM.
- Блокчейн и криптовалюты: некоторые протоколы (например, Libra/Diem) используют AEAD для защиты транзакций.
Критика и ограничения
Несмотря на преимущества, AEAD-шифры имеют ряд ограничений:
- Уязвимость к повторному использованию nonce: если один и тот же одноразовый номер используется дважды с одним ключом, злоумышленник может вычислить ключ или подменить данные. Это особенно критично для GCM, где повторное использование nonce приводит к полной компрометации безопасности. В ChaCha20-Poly1305 последствия менее катастрофичны, но также нарушают аутентичность.
- Атаки по сторонним каналам: реализация AEAD-шифров на аппаратном уровне может быть подвержена атакам по времени, энергопотреблению или электромагнитному излучению. Например, в 2016 году была обнаружена атака Lucky Thirteen на TLS, использующая утечки времени при обработке AEAD-тегов.
- Ограничения на размер данных: некоторые AEAD-режимы (например, GCM) имеют максимальный размер шифротекста (около 64 ГБ для GCM с 96-битным nonce), что может быть проблемой для больших файлов или потокового видео.
- Патентные ограничения: режим OCB защищён патентами, что ограничивает его использование в открытом ПО без лицензионных отчислений.
Интересные факты
- В 2013 году в ходе конкурса CAESAR (2014–2019) было предложено более 30 AEAD-алгоритмов. Победителями стали Ascon (для лёгкой криптографии), AEGIS, Deoxys и другие, но ни один из них не вытеснил AES-GCM и ChaCha20-Poly1305 в коммерческих протоколах.
- AEAD-шифры встроены в аппаратные модули безопасности (HSM) и криптографические ускорители современных процессоров (Intel AES-NI, ARMv8 Crypto Extensions).
- В 2024 году NIST начал процесс стандартизации лёгких AEAD-шифров для IoT-устройств, где ограничены вычислительные ресурсы и энергопотребление.
Источники
- NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC.
- RFC 8439: ChaCha20 and Poly1305 for IETF Protocols.
- CAESAR Competition: Final Portfolio of Authenticated Encryption Schemes.
- Раккофф Ч., Рогэвей Ф. «A Security Analysis of the EAX Mode» (2000).
- Бернстейн Д. «The Poly1305-AES Message-Authentication Code» (2005).
- ISO/IEC 19772:2009 — Information technology — Security techniques — Authenticated encryption.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →