CMACとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > CMACの意味・解説 

CMAC

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/02/13 03:59 UTC 版)

CMAC (Cipher-based MAC)[1] は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。

CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出[2]されたXCBC[3]と呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、One-Key CBC-MAC (OMAC)として発表した[4][5]。さらに、OMACの改良としてOMAC1[6]を発表し、さらなるセキュリティ解析を行った[7]。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。

bビットのブロック暗号 (E) と秘密鍵 (k) を用いてメッセージ (m) の ℓビットのCMACタグ (t) を生成する場合、はじめに2つの bビットの副鍵 (k1 and k2) を以下の手順で生成する(これは有限体GF(2b) 上での xx2 の乗算と等価である)。 ここで ≪ は左シフト演算子である。

  1. 一時的な値として k0 = Ek(0) を計算する。
  2. msb(k0) = 0 であれば k1 = k0 ≪ 1 とする。そうでない場合は k1 = (k0 ≪ 1) C とする。ここで Cb のみに依存するある定数である。(具体的には、二元体上の b 次既約多項式の中で、辞書順序において最も小さいものの主係数以外の係数)
  3. msb(k1) = 0 であれば k2 = k1 ≪ 1 とする。そうでない場合は k2 = (k1 ≪ 1) ⊕ C とする。
  4. 副鍵 (k1, 2) をMAC生成に用いる。

例として、b = 4 の場合 C = 00112 であり、k0 = Ek(0) = 01012 である。そのため k1 = 10102k2 = 0100 ⊕ 0011 = 01112 となる。

CMACタグの生成プロセスは以下の通りである。

  1. メッセージ mb ビットごとのブロックに分割する。 m = m1 ∥ … ∥ mn−1mn′ このとき m1, …, mn−1 は完全なブロックとする(空のメッセージは1つの不完全なブロックとして扱う)。
  2. mn′ が完全なブロックであれば mn = k1mn′ とする。そうでない場合は mn = k2 ⊕ (mn′∥ 10…02) とする。
  3. c0 = 00…02 と置く。
  4. i = 1,…, n に対して ci = Ek(ci−1mi) を計算する。
  5. t = msb(cn) を出力とする。

検証プロセスは以下の通りである。

  1. 上記のアルゴリズムでタグを生成する。
  2. 生成したタグと受け取ったタグが等しいことを確認する。

脚注

  • ^ NIST, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B.
  • ^ J. Black, P. Rogaway, A Suggestion for Handling Arbitrary-Length Messages with the CBC MAC, available from NIST.
  • ^ J. Black, P. Rogaway, CBC MACs for Arbitrary-Length Messages: The Three-Key Constructions, Advances in Cryptology—Crypto 2000.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, available from NIST.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, Fast Software Encryption 2003.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC—Addendum, available from NIST.
  • ^ T. Iwata, K. Kurosawa, Stronger Security Bounds for OMAC, TMAC, and XCBC, available from NIST.

外部リンク

  • RFC 4493 The AES-CMAC Algorithm
  • RFC 4494 The AES-CMAC-96 Algorithm and Its Use with IPsec
  • RFC 4615 The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128)



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「CMAC」の関連用語

CMACのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CMACのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCMAC (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS