IT用語/MAC(メッセージ認証符号)

MAC(Message Authentication Code:メッセージ認証符号)(2014-09-27)


共通鍵暗号を使った電子署名にMACがあります。
電子署名は、例えばメールの全文に対して共通鍵で認証符号(あるメッセージ)を生成して、その認証符号(あるメッセージ)が送信側と受信側で一致すればメールの改竄やなりすましがされていない証明になるという発想です。*1
認証符号(あるメッセージ)(MAC値)っていうのは、いわゆる「暗号文」のことなのですが、

  • 認証符号の長さは十分に短い(圧縮された暗号文、って呼べばいいでしょうか)
  • 認証符号の長さはメール全文の長さに関わらず、一定の長さが望ましい

という風にします。これは、例えばメール本文よりも認証符号の方が長かったり、長さが変わって解読のヒントになったりしたら困るからです。
そしてこれらの条件を共通鍵で実現する方式が以下になります。

CBC-MAC(Cipher Block Chaining MAC)

うーん、詳細は不勉強ですが、大雑把に言うと
ブロック暗号で生成した暗号文の一部分(最後の暗号文ブロック)を認証符号として使用する方式です。

HMAC(Hash-based MAC)

共通鍵にハッシュ関数を合わせて使用する方式です。

CMAC(Cipher-based MAC)

CBC-MACの修正版。可変長のメッセージにおいても安全な、ブロック暗号をベースとしたメッセージ認証符号アルゴリズム。
・・・うーん、やっぱ無理!この辺の難しい話にはついていけないです [worried]


MIC(Message Integrity Code:メッセージ完全性符号)

もうMACと一緒で良いじゃん・・・と思ってるんですが、厳密にはこちらは「共通鍵を使わず」に(特定のアルゴリズムで)生成した認証符号だそうです。どこかに送付して使うときは別途暗号化しないと信頼できないよ、と。


*1 余談。共通鍵を使うので「受信者は偽造ができる」のが特徴です。言い換えると送信者の「否認防止性は無い」。*2
*2 余談の余談。電子署名の用途は3セットで覚えておきます「否認防止」「改竄検出」「認証」

  最終更新のRSS