![見出し画像](https://assets.st-note.com/production/uploads/images/154590505/rectangle_large_type_2_234b488cc2d9fbd66618d2179938eebe.png?width=1200)
メッセージ認証コード(MAC)について
メッセージ認証コード は、送信されたメッセージが途中で改ざんされていないことを確認するために使われる技術です。共通鍵暗号方式を使用します。メッセージの改ざんがないことは確認できますが、送信者の真正性は保障されません。
似た用途でデジタル署名もよく利用されますが、デジタル署名では公開鍵暗号方式を使用し、送信者の真正性が保証されます。
MACにはCMACとHMACの2種類が存在します。
CMAC(Cipher-based Message Authentication Code)
CMACはブロック暗号を利用するメッセージ認証コードです。以下にCMACの主な認証フローを記載します。
![](https://assets.st-note.com/img/1725812928-dWbtJIue4KyAfFHqMc1QlLoS.jpg?width=1200)
HMAC(Hash-based Message Authentication Code)
HMACはハッシュ関数を利用するメッセージ認証コードです。以下にHMACの主な認証フローを記載します。
![](https://assets.st-note.com/img/1725812938-Msg1LaRmpkWi7vdCIy86tlOV.jpg?width=1200)
ハッシュにはSHA-256やSHA-384、SHA-512が電子政府推奨暗号リストに記載されています。MD-5やSHA-1は現在では非推奨です。