A message authentication code (MAC) is a small block of data attached to a message that is used by the recipient to verify the integrity of the message. One could think of it as akin to the wax seals that used to be placed on letters and formal correspondence to verify the identify of the sender and confirm that the message had not been opened. Such codes are used when certain types of encrypted or secured data are sent so the sender can check to confirm that the message has not been compromised. Message authentication codes can appear on messages such as electronic funds transfers and emails.
When a message is generated, the MAC is created at the same time. The message is sent to the recipient, and when the recipient opens it, the contents of the message are run through an algorithm to create a new message authentication code. This new code is compared with the code sent along with the original message. If the codes are the same, the message is authenticated. If there is a difference, it indicates that something about the message changed between sender and recipient.
The process of generating and comparing MACs usually happens behind the scenes. The sender and recipient rely on the encryption programs they use to handle the MAC. The program that generates the message authentication code is written by a programmer familiar with cryptography needs. Custom applications may be written for high security situations, or people can use generic programs that are readily available.
Several different methods can be used to create a MAC, including a stream cipher, a hash function, or a block cipher. Also known as a checksum, the MAC can be one among several layers of security that are designed to keep prying eyes away from messages and to ensure that messages are not manipulated or altered without alerting the recipient. When a recipient opens a message that has been compromised, an alert will display to tell the user that the message authentication code does not match and that there is a problem with the message.
Cryptography is a constantly evolving process. As new techniques are developed, new methods for cracking them are also created. People interested in data security must think several steps ahead to predict methods for breaking cryptography so they can build strong security systems. The development of supercomputers has assisted with this process by allowing cryptographers to develop and experiment with highly advanced encryption methods.