Authenticated Encryption (AE) are forms of encryption which simultaneously assure the confidentiality and authenticity of data. Programming interface A typical programming interface for an AE implementation provides the following functions: Encryption 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 or MAC). Decryption Input: ciphertext, key, authentication tag, and optionally a header (if used during the encryption). 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. History The need for authenticated encryption emerged from the observation that securely combining separate confidentiality and authentication block cipher operation modes 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). Around the year 2000, a number of efforts evolved around the notion of standardizing modes that ensured correct implementation. In particular, strong interest in possibly secure modes was sparked by the publication of Charanjit Jutla's integrity-aware CBC and integrity-aware parallelizable, IAPM, modes in 2000 (see OCB and chronology). Six different authenticated encryption modes (namely offset codebook mode 2.0, OCB2.0; Key Wrap; counter with CBC-MAC, CCM; encrypt then authenticate then translate, EAX; encrypt-then-MAC, EtM; and Galois/counter mode, GCM) have been standardized in ISO/IEC 19772:2009. More authenticated encryption methods were developed in response to NIST solicitation. Sponge functions can be used in duplex mode to provide authenticated encryption. Bellare and Namprempre (2000) analyzed three compositions of encryption and MAC primitives, and demonstrated that encrypting a message and subsequently applying a MAC to the ciphertext (the Encrypt-then-MAC approach) implies security against an adaptive chosen ciphertext attack, provided that both functions meet minimum required properties. Katz and Yung investigated the notion under the name "unforgeable encryption" and proved it implies security against chosen ciphertext attacks. In 2013, the CAESAR competition was announced to encourage design of authenticated encryption modes. In 2015, ChaCha20-Poly1305 is added as an alternative AE construction to GCM in IETF protocols. Authenticated encryption with associated data (AEAD) AEAD is a variant of AE that allows a recipient to check the integrity of both the encrypted and unencrypted information in a message.