Horton principle

The Horton principle is a design rule for cryptographic systems and can be expressed as "Authenticate what is being meant, not what is being said" or "mean what you sign and sign what you mean" not merely the encrypted version of what was meant. The principle is named after the title character in the Dr. Seuss children's book Horton Hatches the Egg.

Utility
The Horton principle becomes important when using message authentication codes (or MACs) in a cryptographic system. Suppose Alice wants to send a message to Bob, and she uses a MAC to authenticate a message m that was made by concatenating three data fields, where m := a || b || c. Bob needs to know what rules Alice used to create the message in order to split m back into its components, but if he uses the wrong rules then he will get the wrong values from an authenticated message. When applied in this case, the Horton principle works by authenticating the meaning instead of the message. For instance, MAC clears not only the communication but also the information that Bob used in parsing such message into its meaning. The meaning, however, also depends on the decryption key used and that the authentication must be applied to the plaintext instead of the ciphertext.

Problems
The problem is that the MAC is only authenticating a string of bytes, while Alice and Bob need to authenticate the way the message was constructed as well. If not, then it may be possible for an attacker to substitute a message with a valid MAC but a different meaning.

Systems can manage this problem by adding metadata such as a protocol number or by formatting messages with an explicit structure, such as XML.