|
CMAC (Cipher-based MAC) は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。 CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出されたXCBCと呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、One-Key CBC-MAC (OMAC)として発表した。さらに、OMACの改良としてOMAC1を発表し、さらなるセキュリティ解析を行った。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。 ''b''ビットのブロック暗号 (''E'') と秘密鍵 (''k'') を用いてメッセージ (''m'') の ℓビットのCMACタグ (''t'') を生成する場合、はじめに2つの ''b''ビットの副鍵 (''k''1 and ''k''2) を以下の手順で生成する(これは有限体GF(2''b'') 上での ''x'' と ''x''2 の乗算と等価である)。 ここで ≪ は左シフト演算子である。 # 一時的な値として ''k''0 = ''Ek''(0) を計算する。 # msb(''k''0) = 0 であれば ''k''1 = ''k''0 ≪ 1 とする。そうでない場合は ''k''1 = (''k''0 ≪ 1) ⊕ ''C'' とする。ここで ''C'' は二元体上の ''b'' 次既約多項式の中で、辞書順序において最も小さいものの主係数以外の係数である。 # msb(''k''1) = 0 であれば ''k''2 = ''k''1 ≪ 1 とする。そうでない場合は ''k''2 = (''k''1 ≪ 1) ⊕ ''C'' とする。 # 副鍵 (''k''1, 2) をMAC生成に用いる。 例として、''b'' = 4 の場合 ''C'' = 00112 であり、''k''0 = ''Ek''(0) = 01012 である。そのため ''k''1 = 10102、''k''2 = 0100 ⊕ 0011 = 01112 となる。 CMACタグの生成プロセスは以下の通りである。 # メッセージ ''m'' を ''b'' ビットごとのブロックに分割する。 ''m'' = ''m''1 ∥ … ∥ ''m''''n''−1 ∥ ''mn''′ このとき ''m''1, …, ''m''''n''−1 は完全なブロックとする(空のメッセージは1つの不完全なブロックとして扱う)。 # ''mn''′ が完全なブロックであれば ''mn'' = ''k''1 ⊕ ''mn''′ とする。そうでない場合は ''mn'' = ''k''2 ⊕ (''mn''′∥ 10…02) とする。 # ''c''0 = 00…02 と置く。 # ''i'' = 1,…, ''n'' に対して ''ci'' = ''Ek''(''c''''i''−1 ⊕ ''mi'') を計算する。 # ''t'' = msbℓ(''cn'') を出力とする。 検証プロセスは以下の通りである。 # 上記のアルゴリズムでタグを生成する。 # 生成したタグと受け取ったタグが等しいことを確認する。 == 脚注 == * 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 . 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「CMAC」の詳細全文を読む スポンサード リンク
|