Despite working with AES-GCM and other AEAD algos for a few years, I've struggled with the concept of 'authenticated' in the term 'AEAD'. In my own experience (of Unix, PKI and blockchain) authentication means being able to attribute actions towards a particular entity (eg, a user account). In the simplest case, say authentication on a Linux box, logging in would use the pam_unix
Pluggable Authentication Module to check a user's provided password, when hashed, matches the hash stored on the Linux system. You could also authenticate user accounts by their fingerprint, or face match, etc. In each of these cases, authentication means being able to attribute that login or unlock action back to an individual entity (eg a user account).
Even the authentication
tag on crypto.stackexchange.com reads:
Authentication is successfully validating that an entity you are communicating with is actually who they claim to be. The entity typically demonstrates who they are by showing they possess a secret that only they could know.
Whereas the authenticated-encryption
tag reads reads:
Combination of encryption and authentication in a way that ensures confidentiality and integrity.
There's no authentication in the authenticated-encryption
definition, according to the definition provided in the authentication
tag.
Wondering exactly where the 'authentication' was in in AEAD has bugged me for years, and I've recently spent time investigating. This video from F5 'What Are AEAD Ciphers?' has some useful parts around 2:30 mins:
The authenticated encryption, the A part of the 'AE', brings in another piece which in the integrity of the message itself
The A part, the authenticated encryption, brings in the integrity
Whoever sent this message I need to make sure the message had not been changed or tampered with
Does 'authentication' in the sense of 'Authenticated Encryption', just mean 'message integrity' and not 'authentication' in the sense most cryptography, infosec and Unix people would use?
Some follow up questions:
If 'Authenticated' just means 'has message integrity': how and why did 'message integrity' get confused with 'authentication'? This seemingly uncommon definition of 'authentication' seems unusual in technical communities where words have very specific meanings.
If 'Authenticated' in fact means 'authenticated' in the common sense (which I now suspect it does not), how are AEAD messages attributable to a particular entity?