L’interface est Seal(key, nonce, plaintext, aad) → ciphertext ‖ tag et Open(key, nonce, ciphertext ‖ tag, aad) → plaintext or failure ; le déchiffrement ne renvoie rien du tout lorsque la vérification du tag échoue. AEAD standard : AES-GCM, ChaCha20-Poly1305, AES-CCM, AES-GCM-SIV (RFC 8452) et AES-OCB (RFC 7253), tous couramment utilisés avec des tags de 128 bits.
La règle du nonce conditionne la sécurité : la plupart des AEAD exigent un nonce qui ne se répète jamais sous la même clé, et une répétition avec AES-GCM ou ChaCha20-Poly1305 révèle le XOR des textes clairs et permet des falsifications. Utilisez des compteurs ou de longs nonces aléatoires (ceux de XChaCha20-Poly1305 font 192 bits), respectez les limites d’utilisation de la clé ou choisissez un mode résistant aux erreurs d’utilisation comme AES-GCM-SIV.
TLS 1.3 n’utilise que des suites de chiffrement AEAD ; le chiffrement du contenu JWE (A128GCM, A256GCM, A128CBC-HS256), HPKE, age, les jetons locaux de PASETO, QUIC et SSH (chacha20-poly1305@openssh.com, aes256-gcm@openssh.com) reposent tous sur des AEAD.