I need two devices to communicate in plain sight and I want to know what to ask for. Nothing is secret so no need to encrypt. However, I need the source to be authenticated to prevent bad actors from sending false communications. Is there a term for protocols that carry some authentication in each message which is validated on receipt and which only the sender can generate correctly?
1 Answer
Yes, this would be a message authentication code or MAC. It is a cryptographic hash that only the parties that have the secret key can compute.
- Party A computes the MAC over the message.
- Party A sends the MAC and the message to party B.
- Party B computes the MAC over the message.
- Party B now compares the computed MAC to the actual MAC, and knows whether the message has been tampered with, and wheter it came from someone who had the key.
There are also asymmetric solutions to this, where party A has the private key and party B has the public key. This means party B kan only verify messages, not create them. In this case it is called a digital signature, and the message is called a signed message.
-
I prefer using the term MAT (message authentication tag) to evade confusion with NIC MAC.– OvermindCommented Mar 26, 2019 at 11:13
-
Really appreciated. That is just what I needed to know. searched online for hours but never found that explanation. Greatly appreciated.– RichardCommented Mar 26, 2019 at 14:52