ภาพประกอบบทความ
← ホームへ戻る

メッセージ認証コード(MAC)の仕組みとセキュリティ上の役割

🗓 2026年8月8日

デジタル通信において、送られてきたデータが本当に信頼できる送信元から届いたのか、そして途中で内容が書き換えられていないかを確認することは極めて重要です。この「真正性の確認」と「整合性のチェック」を同時に実現するのが、メッセージ認証コード(MAC: Message Authentication Code)です。一般的に認証タグとも呼ばれるこの短いデータ断片は、通信の信頼性を担保するための不可欠なツールとなっています。

ภาพประกอบบทความ

Key Facts

  • 目的: メッセージの真正性(送信者の証明)と整合性(改ざんの有無)を検証すること。
  • 鍵の仕組み: 送信者と受信者が事前に共有した同一の秘密鍵を使用する対称的な仕組み。
  • デジタル署名との違い: MACは共通鍵を用いるため、検証者がタグを偽造できる可能性があり、非否認性を完全には提供しない。
  • 主要な実装: ハッシュ関数ベースのHMACや、ブロック暗号ベースのCMAC、高速なユニバーサルハッシュベースの手法がある。

MACの基本概念と動作原理

MACシステムは、簡潔に言えば3つのアルゴリズムで構成されています。まず、安全な鍵空間からランダムに秘密鍵を生成する「鍵生成アルゴリズム」、次に秘密鍵とメッセージから認証タグを算出する「MAC生成アルゴリズム」、そして最後に、同じ鍵とタグを用いてメッセージが正当であるかを確認する「検証アルゴリズム」です。

実際の運用フローでは、送信者がメッセージにMACタグを付与して送信し、受信者が手元の鍵で同じ計算を行い、得られた結果が受信したタグと一致するかを照合します。もし1ビットでもデータが変更されていれば、計算結果は全く異なるものとなり、受信者は即座に改ざんを検知できます。

用語の整理:MACとMIC

通信分野では、ネットワーク層のMACアドレス(Media Access Control)との混同を避けるため、MACの代わりにMIC(Message Integrity Code)という用語が使われることがあります。しかし、MICという言葉は単なるメッセージダイジェスト(ハッシュ値)を指す場合もあり、曖昧さが残ります。そのため、技術的な文脈では「鍵付きハッシュ」や「メッセージ認証コード」といった明確な表現が推奨されます。

セキュリティ要件とデジタル署名との比較

安全なMACであるためには、「選択メッセージ攻撃」に対する耐性が必要です。これは、攻撃者が任意のメッセージに対するMACタグを(秘密鍵を知らずに)入手できたとしても、別の新しいメッセージに対する有効なタグを偽造することが計算量的に不可能であることを意味します。

ここで混同されやすいのがデジタル署名です。両者の決定的な違いは、使用する鍵の形式にあります。MACは共通鍵(対称鍵)を使用しますが、デジタル署名は公開鍵暗号方式(秘密鍵と公開鍵のペア)を使用します。このため、MACでは検証者が鍵を持っているため、理論上は検証者がタグを偽造することが可能です。一方、デジタル署名は本人しか持たない秘密鍵で作成されるため、「本人が署名した」という強力な証拠(非否認性)となります。

MACとデジタル署名の比較
比較項目 メッセージ認証コード (MAC) デジタル署名
使用する鍵 共通鍵(共有秘密鍵) 公開鍵ペア(秘密鍵・公開鍵)
主な目的 整合性と真正性の確認 整合性、真正性、および非否認性
処理速度 一般的に高速 計算負荷が高く低速
非否認性 原則としてなし(鍵共有者のため) あり(秘密鍵保持者のみ作成可能)

実装手法と標準規格

MACは、既存の暗号プリミティブを組み合わせて構築されます。代表的なアプローチは以下の通りです。

  • ハッシュベース: HMACのように、暗号学的ハッシュ関数を利用して構築される手法。
  • ブロック暗号ベース: OMAC (CMAC)、GCM、PMACなど、AESなどのブロック暗号を利用する手法。
  • ユニバーサルハッシュベース: Poly1305やUMAC/VMACなど、極めて高速な処理が可能な手法。
  • 専用アルゴリズム: SipHashのように、最初から鍵付きハッシュとして設計された高速なアルゴリズム。

また、信頼性を高めるために複数のプリミティブを組み合わせる手法もあります。例えば、TLS 1.2より前のバージョンでは、SHA-1とSHA-2という異なるハッシュ関数で処理した結果をXOR(排他的論理和)で結合し、一方のアルゴリズムに脆弱性が見つかっても安全性を維持する設計が採用されていました。

標準化の動向

MACの仕様は、NIST(米国国立標準技術研究所)やISO/IECによって標準化されています。FIPS PUB 198-1(HMAC)やNIST SP800-185(KMACなど)、ISO/IEC 9797シリーズなどがその代表例であり、業界全体で一貫したセキュリティレベルが確保されています。

運用上の注意点:リプレイ攻撃への対策

MACはデータの改ざんを防ぎますが、それだけでは不十分な場合があります。例えば、攻撃者が正当なメッセージとMACタグのセットをそのままコピーして、後で再送信する「リプレイ攻撃」には対応できません。受信側は正しいタグを確認するため、メッセージが正当であると誤認してしまいます。

これを防ぐには、メッセージ内にタイムスタンプシーケンス番号(連番)を含めるか、一度しか使用できないワンタイムMACを導入し、同じメッセージが二度と受け入れられない仕組みを構築する必要があります。

Frequently Asked Questions

MACとハッシュ関数の違いは何ですか?

通常のハッシュ関数は鍵を使用せず、誰でも同じ入力から同じ値を生成できます。一方、MACは秘密鍵を必要とするため、鍵を持っていない第三者は正しい認証タグを生成することができず、送信者の真正性を証明できる点が異なります。

MACで「非否認性」を実現することは可能ですか?

標準的なMACでは困難ですが、金融業界などで採用されている手法として、ハードウェアセキュリティモジュール(HSM)を用いて、一方は生成のみ、もう一方は検証のみを許可する権限分離を行うことで、実質的な非否認性を確保する運用が行われています。

ワンタイムMACとはどのようなものですか?

鍵を一度きりの通信にのみ使用するMACのことです。ユニバーサルハッシングなどの手法を用いて実装され、鍵を使い回さないことで、理論的に極めて高い安全性を得ることができます。これは認証における「ワンタイムパッド」のような概念です。

量子コンピュータはMACに影響を与えますか?

量子暗号の枠組みでの研究が進んでいますが、多くの量子MACにおいて、量子リソースを利用しても、条件付きに安全な古典的なワンタイムMACを超える決定的な優位性は得られないことが示されています。

References

  1. IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications (PDF). (2007 revision). . 12 June 2007. :10.1109/IEEESTD.2007.373646.  . Archived from the original (PDF) on 13 October 2008.
  2. "CS 513 System Security -- Hashes and Message Digests". www.cs.cornell.edu. Retrieved 20 December 2023.
  3. R. Shirey (August 2007). Internet Security Glossary, Version 2. Network Working Group. :10.17487/RFC4949. 4949. Informational. Obsoletes RFC 2828.
  4. The strongest adversary is assumed to have access to the signing algorithm without knowing the key. However, her final forged message must be different from any message she chose to query the signing algorithm before. See Pass's discussions before def 134.2.
  5. Theoretically, an efficient algorithm runs within probabilistic polynomial time.
  6. Pass, def 134.1
  7. Pass, def 134.2
  8. Bhaumik, Ritam; Chakraborty, Bishwajit; Choi, Wonseok; Dutta, Avijit; Govinden, Jérôme; Shen, Yaobin (2024). "The Committing Security of MACs with Applications to Generic Composition". In Reyzin, Leonid; Stebila, Douglas (eds.). Advances in Cryptology – CRYPTO 2024. Lecture Notes in Computer Science. Vol. 14923. Cham: Springer Nature Switzerland. pp. 425–462. :10.1007/978-3-031-68385-5_14.  .
  9. "VMAC: Message Authentication Code using Universal Hashing". CFRG Working Group. Retrieved 16 March 2010.
  10. Jean-Philippe Aumasson & (18 September 2012). "SipHash: a fast short-input PRF" (PDF).