メッセージ認証コード 【MAC】 Message Authentication Code
概要
メッセージ認証コード(MAC)とは、相手から届いたメッセージが途中で改竄やすり替えに合っていないか検証するための短い符号。送信者と受信者が共有する秘密のデータ(鍵)とメッセージ本体から生成する。送信者はメッセージと共有鍵を利用して一定の計算手順で短い符号(MAC値)を算出し、メッセージに添付して送信する。受信者は届いたメッセージの本文と鍵から同じ手順で符号を算出し、添付された符号と一致するか確かめる。両者が一致すれば、メッセージが確かに鍵の持ち主によって作成され、本文も第三者によって改竄やすり替えが行われていないことが分かる。
メッセージ認証コードは符号の生成と検証に共通の鍵を用いるため、(送信者と受信者の言い分が対立した場合などに)メッセージの作成者が送信者であることを保証することはできない(否認防止性がない)。メッセージ作成者の証明が必要な場合は電子署名を用いる。また、メッセージの送受信の前に鍵を安全な方法で共有しなければならず、実用的には公開鍵暗号によって鍵を交換するなどの方法が用いられる。
メッセージ認証コードの生成や検証の手順にはいくつかの標準的な方式があり、ハッシュ関数を用いる「HMAC」(Hash-based MAC)、共通鍵暗号を用いる「CMAC」(Cipher-based MAC)や「CBC-MAC」(Cipher Block Chaining MAC)などの方式がよく知られている。
(2021.9.2更新)