Перейти к содержимому
ecdsa.com

AES-GCM

AES в режиме Галуа/счётчика (Galois/Counter Mode, NIST SP 800-38D) — самый распространённый AEAD: шифрование в режиме счётчика плюс аутентификатор GHASH, обычно с 96-битным nonce и 128-битным тегом.
Другие написанияGCMAES-256-GCMAES-128-GCMGalois/Counter Mode

Длина ключа — 128, 192 или 256 бит. Со стандартным 96-битным IV счётчик позволяет зашифровать до 2³² − 2 блоков (около 64 ГиБ) в одном сообщении. SP 800-38D требует, чтобы IV никогда не повторялся с одним ключом, и ограничивает число вызовов со случайными 96-битными IV значением 2³² на ключ, поэтому для долгоживущих ключей используют счётчики или регулярную смену ключа.

Повтор nonce катастрофичен: он раскрывает XOR двух открытых текстов и позволяет атакующему восстановить ключ GHASH и подделать теги для любого сообщения с этим ключом. Теги короче 128 бит ослабляют стойкость к подделке, их лучше не использовать. AES-GCM-SIV (RFC 8452) — вариант, устойчивый к ошибкам использования.

С инструкциями AES и умножения без переноса (carry-less multiplication) AES-GCM работает очень быстро: на одном ядре Apple M4 Max OpenSSL 3.6.5 шифрует около 10,4 ГБ/с с AES-128-GCM и 8,8 ГБ/с с AES-256-GCM на буферах по 16 КиБ. Идентификаторы: наборы TLS 1.3 TLS_AES_128_GCM_SHA256 (0x1301) и TLS_AES_256_GCM_SHA384 (0x1302), enc в JWE — A128GCM и A256GCM, обёртывание ключа — A256GCMKW, в WebCrypto — AES-GCM.

Стандарты и ссылки

Все термины