本文へスキップ
ecdsa.com

AEAD(関連データ付き認証付き暗号)

機密性と完全性を 1 回の操作で提供し、さらにヘッダーなど暗号化しない関連データも認証する共通鍵暗号のモードで、RFC 5116 で汎用的に定義されています。
別表記authenticated encryptionAERFC 5116

インターフェースは Seal(key, nonce, plaintext, aad) → ciphertext ‖ tag と Open(key, nonce, ciphertext ‖ tag, aad) → plaintext or failure で、タグの検証に失敗すると復号は何も返しません。標準的な AEAD には AES-GCM、ChaCha20-Poly1305、AES-CCM、AES-GCM-SIV(RFC 8452)、AES-OCB(RFC 7253)があり、いずれも一般には 128 ビットのタグで使われます。

安全性を左右するのは nonce の規則です。ほとんどの AEAD は同じ鍵のもとで nonce が決して重複しないことを要求し、AES-GCM や ChaCha20-Poly1305 で nonce が重複すると、平文の XOR が漏れ、偽造も可能になります。カウンターか長いランダムな nonce(XChaCha20-Poly1305 では 192 ビット)を使い、鍵ごとの使用量の上限を守るか、AES-GCM-SIV のような誤用耐性のあるモードを選んでください。

TLS 1.3 は AEAD の暗号スイートだけを使います。JWE のコンテンツ暗号化(A128GCM、A256GCM、A128CBC-HS256)、HPKE、age、PASETO の local トークン、QUIC、SSH(chacha20-poly1305@openssh.com、aes256-gcm@openssh.com)も、すべて AEAD を基盤としています。

規格と参考文献

すべての用語