I'm reading an article about authenticated encryption and don't understand some inputs to an encryption function. They are associated data, public and secret message numbers. Can you explain me their meanings?
As documented in the call for submissions of the CAESAR competition, an authenticated encryption scheme may have up to five inputs.
- The key. This one is obvious. The key needs to stay confidential and once the key is leaked all authentication and confidentiality guarantees are lost.
- The plaintext. This is also obvious. This is the message to be encrypted. It is guaranteed, that an (polynomialy bounded) attacker can't alter nor extract any information about the plaintext from the ciphertext.
- The associated data. This is mainly meta data. It is guaranteed that an attacker can't alter the associated data, but may read it in clear text. Associated data is commonly used to transport IVs, headers or routing information.
- The public message number. This is can be just a part of the associated data, but it also can be an additional fixed-length input. The public message number is guarenteed not to be altered, but may be read in clear text. A reuse of a (public message number , secret message number) pair may result in a complete loss of security guarantees for a given scheme. The use of this number may be to prevent replay attacks and to serve as a nonce for the underlying schemes.
- The secret message number. This is a relatively new input. It is the plaintext equivalent to the public message number. Thus, the confidentiality of this number is also guaranteed. The use of this number may be to hide parts of the nonce for the underlying system from attackers or to allow (some sort of) hybrid encryption.