Authenticated Encryption (AE) is a block cipher mode of operation which simultaneously provides confidentiality, integrity, and authenticity assurances on the data; decryption is combined in single step with integrity validation. These attributes are provided under a single, easy to use programming interface.
The need for AE emerged from the observation that securely combining a confidentiality mode with an authentication mode could be error prone and difficult. This was confirmed by a number of practical attacks introduced into production protocols and applications by incorrect implementation, or lack of, authentication (including SSL/TLS).
Six different authenticated encryption modes (namely OCB 2.0, Key Wrap, CCM, EAX, Encrypt-then-MAC (EtM), and GCM) have been standardized in ISO/IEC 19772:2009. More were developed in response to NIST solicitation. Sponge functions can be used in duplex mode to provide authenticated encryption.
A typical programming interface for AE mode implementation would provide the following functions:
- Input: plaintext, key, and optionally a header in plaintext that will not be encrypted, but will be covered by authenticity protection.
- Output: ciphertext and authentication tag (Message Authentication Code).
- Input: ciphertext, key, authentication tag, and optionally a header.
- Output: plaintext, or an error if the authentication tag does not match the supplied ciphertext or header.
The header part is intended to provide authenticity and integrity protection for networking or storage metadata for which confidentiality is unnecessary, but authenticity is desired.
In addition to protecting message integrity and confidentiality, authenticated encryption can provide plaintext awareness and security against chosen ciphertext attack. In these attacks, an adversary attempts to gain an advantage against a cryptosystem (e.g., information about the secret decryption key) by submitting carefully chosen ciphertexts to some "decryption oracle" and analyzing the decrypted results. Authenticated encryption schemes can recognize improperly-constructed ciphertexts and refuse to decrypt them. This in turn prevents the attacker from requesting the decryption of any ciphertext unless he generated it correctly using the encryption algorithm, which would imply that he already knows the plaintext. Implemented correctly, this removes the usefulness of the decryption oracle, by preventing an attacker from gaining useful information that he does not already possess.
Many specialized authenticated encryption modes have been developed for use with symmetric block ciphers. However, authenticated encryption can be generically constructed by combining an encryption scheme and a Message Authentication Code (MAC), provided that:
- The encryption scheme is semantically secure under a chosen plaintext attack.
- The MAC function is unforgeable under a chosen message attack.
Bellare and Namprempre (2000) analyzed three compositions of these primitives, and demonstrated that encrypting a message and subsequently applying a MAC to the ciphertext implies security against an adaptive chosen ciphertext attack, provided that both functions meet the required properties.
In 2013, a competition was announced to encourage design of authenticated encryption modes.
Approaches to Authenticated Encryption
- Encrypt-then-MAC (EtM): The standard method according to ISO/IEC 19772:2009. This is the only method which can reach the highest definition of security in AE, but this can only be achieved when the MAC used is "Strongly Unforgeable"
- Encrypt-and-MAC (E&M): Used in, e.g., SSH. Even though the E&M approach has not been proved to be strongly unforgeable in itself, it is possible to apply some minor modifications to SSH to make it strongly unforgeable despite the approach.
- MAC-then-Encrypt (MtE): Used in, e.g., SSL/TLS. Even though the MtE approach has not been proven to be strongly unforgeable in itself, the SSL/TLS implementation has been proved to be strongly unforgeable by Krawczyk who showed that SSL/TLS was in fact secure because of the encoding used alongside the MtE mechanism.
- Block cipher mode of operation
- NIST: Modes Development
- CCM mode
- CWC mode
- OCB mode
- EAX mode
- GCM Mode
- How to choose an Authenticated Encryption mode
- Bellare, M.; Namprempre, C. (2000), "Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm", in T. Okamoto, Extended abstract in Advances in Cryptology: Asiacrypt 2000 Proceedings, Lecture Notes in Computer Science (Springer-Verlag) 1976: 531, doi:10.1007/3-540-44448-3_41, ISBN 978-3-540-41404-9
- "people had been doing rather poorly when they tried to glue together a traditional (privacy-only) encryption scheme and a message authentication code (MAC)", in: M. Bellare, P. Rogaway, D. Wagner. "A Conventional Authenticated-Encryption Mode". NIST. Retrieved March 12, 2013.
- "it is very easy to accidentally combine secure encryption schemes with secure MACs and still get insecure authenticated encryption schemes", in: T. Kohno, J. Viega, and D. Whiting. "The CWC Authenticated Encryption (Associated Data) Mode". NIST. Retrieved March 12, 2013.
- "Failures of secret-key cryptography". Daniel J. Bernstein. Retrieved March 12, 2013.
- "Information technology -- Security techniques -- Authenticated encryption". 19772:2009. ISO/IEC. Retrieved March 12, 2013.
- "Encryption modes development". NIST. Retrieved April 17, 2013.
- The Keccak Team. "Duplexing The Sponge".
- "CAESAR: Competition for Authenticated Encryption: Security, Applicability, and Robustness". Retrieved March 12, 2013.
- "Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm". M. Bellare and C. Namprempre. Retrieved April 13, 2013.
- "The Order of Encryption and Authentication for Protecting Communications (Or: How Secure is SSL?)". H. Krawczyk. Retrieved April 13, 2013.