メッセージ認証符号
MAC関数は暗号学的ハッシュ関数に似ているが、いくつかの必要条件の違いがある。MAC関数は選択平文攻撃における存在的偽造に対して耐性がなければならない。つまり、共通鍵を持ちMAC関数を計算できる神託機械にアクセスできる攻撃者が、任意に選んだメッセージに対応するMACを取得できたとしても、他の(神託機械に問い合わせていない)メッセージに対するMACを神託機械に対して問い合わせずに計算で求めることが計算量的に困難でなければならない。
MACはデジタル署名とは異なり、MAC値の生成と検証には同じ鍵が使われるので(共通鍵暗号)、送信者と受信者は通信を行う前に鍵を共有しておく必要がある。また共通鍵暗号であるために、認証されたメッセージは送信者本人が作成した物であり偽造ではないという確証、つまり否認不可性をもたない。なぜなら、受信者も含め共通鍵を知っている者であれば捏造したメッセージについてもMAC値を生成することができるからである。
公開鍵暗号を用いたデジタル署名では、メッセージの検証を公開鍵だけで行うことができるので、鍵の所有者はデジタル署名を作成できる秘密鍵を秘匿できる。したがって、デジタル署名が付与された文書はその所有者が署名したものと確定でき、否認不可な文書を作成することができる。
メッセージ認証コード(メッセージにんしょうコード、英: Message Authentication Code、MAC)は、メッセージを認証するための短い情報である。MACアルゴリズムは、入力として共通鍵と認証すべき任意長のメッセージを受け取り、MAC(「タグ」とも呼ばれる)を出力する。MACを付加することで、(共通鍵をもつ)検証者がメッセージ内容の変化を検出できるようになり、メッセージの完全性と認証が保証される。このため、メッセージ認証完全性コード(Message Authentication and Integrity Code、MAIC)とも呼ばれる。