AES-GCM
Что такое AES-GCM?
AES-GCMРежим аутентифицированного шифрования, объединяющий AES в режиме счётчика с тегом аутентификации на основе GHASH, обеспечивая конфиденциальность и целостность за один проход.
AES-GCM (Galois/Counter Mode) — это режим аутентифицированного шифрования с присоединёнными данными (AEAD), стандартизованный в NIST SP 800-38D. Он использует AES (блок 128 бит, ключи 128/192/256 бит) в режиме CTR для шифрования и функцию GHASH в GF(2^128) для формирования 128-битного тега аутентификации над шифротекстом и дополнительными аутентифицируемыми данными (AAD). Один проход даёт одновременно конфиденциальность и целостность, а поскольку режим счётчика полностью параллелен и использует аппаратные инструкции AES-NI, AES-GCM применяется по умолчанию в TLS 1.2/1.3 (RFC 5288, RFC 8446), IPsec, SSH и 802.11ac.
Его определяющая слабость — катастрофический сбой при повторном использовании nonce. Аутентификация в GCM — это полиномиальный MAC, вычисляемый при ключе, полученном шифрованием нулевого блока; повтор 96-битного nonce с тем же ключом даёт два шифротекста, уравнения тегов которых позволяют атакующему вычислить этот ключ аутентификации («запрещённая атака», описанная Антуаном Жу). После его восстановления атакующий может подделывать действительные теги для произвольных сообщений. Это не теория: в 2016 году исследование Nonce-Disrespecting Adversaries (Böck, Zauner, Devlin, Somorovsky, Jovanovic, USENIX WOOT) просканировало интернет и обнаружило 184 HTTPS-сервера, повторяющих nonce, — включая финансовые учреждения, — что полностью нарушало подлинность их соединений, а также более 70 000 серверов, использующих случайные nonce, которые рискуют столкновением в длительных сессиях.
Меры защиты: использовать детерминированные или счётчиковые nonce и никогда — случайные; ограничивать объём данных на ключ (NIST ограничивает ~2³² блоков); либо применять режимы, устойчивые к повторному использованию nonce, такие как AES-GCM-SIV (RFC 8452).
flowchart TD K[Ключ AES] --> CTR N[96-битный nonce/IV] --> CTR[AES-CTR шифрование] P[Открытый текст] --> CTR CTR --> C[Шифротекст] C --> G[GHASH над GF 2^128] AAD[Дополнительные аутент. данные] --> G G --> T[128-битный тег аутентификации] C --> OUT[Шифротекст + тег] T --> OUT N -. повтор с тем же ключом .-> X[Запрещённая атака:<br/>восстановить ключ аутент., подделать теги]
● Примеры
- 01
Шифр-набор TLS 1.3 TLS_AES_128_GCM_SHA256.
- 02
Шифрование дисков и отдельных записей в облачных сервисах KMS.
● Частые вопросы
Что такое AES-GCM?
Режим аутентифицированного шифрования, объединяющий AES в режиме счётчика с тегом аутентификации на основе GHASH, обеспечивая конфиденциальность и целостность за один проход. Относится к категории Криптография в кибербезопасности.
Что означает AES-GCM?
Режим аутентифицированного шифрования, объединяющий AES в режиме счётчика с тегом аутентификации на основе GHASH, обеспечивая конфиденциальность и целостность за один проход.
Как защититься от AES-GCM?
Защита от AES-GCM обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия AES-GCM?
Распространённые альтернативные названия: Galois/Counter Mode, AES-128-GCM, AES-256-GCM.