Property |
Value |
dbo:abstract
|
- CMAC (Cipher-based MAC) は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。 CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出されたXCBCと呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、 (OMAC)として発表した。さらに、OMACの改良としてOMAC1を発表し、さらなるセキュリティ解析を行った。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。 bビットのブロック暗号 (E) と秘密鍵 (k) を用いてメッセージ (m) の ℓビットのCMACタグ (t) を生成する場合、はじめに2つの bビットの副鍵 (k1 and k2) を以下の手順で生成する(これは有限体GF(2b) 上での x と x2 の乗算と等価である)。ここで ≪ は左シフト演算子である。 1.
* 一時的な値として k0 = Ek(0) を計算する。 2.
* msb(k0) = 0 であれば k1 = k0 ≪ 1 とする。そうでない場合は k1 = (k0 ≪ 1) ⊕ C とする。ここで C は b のみに依存するある定数である。(具体的には、二元体上の 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 = 10102、k2 = 0100 ⊕ 0011 = 01112 となる。 CMACタグの生成プロセスは以下の通りである。 1.
* メッセージ m を b ビットごとのブロックに分割する。 m = m1 ∥ … ∥ mn−1 ∥ mn′ このとき m1, …, mn−1 は完全なブロックとする(空のメッセージは1つの不完全なブロックとして扱う)。 2.
* mn′ が完全なブロックであれば mn = k1 ⊕ mn′ とする。そうでない場合は mn = k2 ⊕ (mn′∥ 10…02) とする。 3.
* c0 = 00…02 と置く。 4.
* i = 1,…, n に対して ci = Ek(ci−1 ⊕ mi) を計算する。 5.
* t = msbℓ(cn) を出力とする。 検証プロセスは以下の通りである。 1.
* 上記のアルゴリズムでタグを生成する。 2.
* 生成したタグと受け取ったタグが等しいことを確認する。 (ja)
- CMAC (Cipher-based MAC) は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。 CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出されたXCBCと呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、 (OMAC)として発表した。さらに、OMACの改良としてOMAC1を発表し、さらなるセキュリティ解析を行った。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。 bビットのブロック暗号 (E) と秘密鍵 (k) を用いてメッセージ (m) の ℓビットのCMACタグ (t) を生成する場合、はじめに2つの bビットの副鍵 (k1 and k2) を以下の手順で生成する(これは有限体GF(2b) 上での x と x2 の乗算と等価である)。ここで ≪ は左シフト演算子である。 1.
* 一時的な値として k0 = Ek(0) を計算する。 2.
* msb(k0) = 0 であれば k1 = k0 ≪ 1 とする。そうでない場合は k1 = (k0 ≪ 1) ⊕ C とする。ここで C は b のみに依存するある定数である。(具体的には、二元体上の 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 = 10102、k2 = 0100 ⊕ 0011 = 01112 となる。 CMACタグの生成プロセスは以下の通りである。 1.
* メッセージ m を b ビットごとのブロックに分割する。 m = m1 ∥ … ∥ mn−1 ∥ mn′ このとき m1, …, mn−1 は完全なブロックとする(空のメッセージは1つの不完全なブロックとして扱う)。 2.
* mn′ が完全なブロックであれば mn = k1 ⊕ mn′ とする。そうでない場合は mn = k2 ⊕ (mn′∥ 10…02) とする。 3.
* c0 = 00…02 と置く。 4.
* i = 1,…, n に対して ci = Ek(ci−1 ⊕ mi) を計算する。 5.
* t = msbℓ(cn) を出力とする。 検証プロセスは以下の通りである。 1.
* 上記のアルゴリズムでタグを生成する。 2.
* 生成したタグと受け取ったタグが等しいことを確認する。 (ja)
|
dbo:wikiPageExternalLink
| |
dbo:wikiPageID
| |
dbo:wikiPageLength
|
- 3696 (xsd:nonNegativeInteger)
|
dbo:wikiPageRevisionID
| |
dbo:wikiPageWikiLink
| |
prop-ja:wikiPageUsesTemplate
| |
dct:subject
| |
rdfs:comment
|
- CMAC (Cipher-based MAC) は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。 CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出されたXCBCと呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、 (OMAC)として発表した。さらに、OMACの改良としてOMAC1を発表し、さらなるセキュリティ解析を行った。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。 bビットのブロック暗号 (E) と秘密鍵 (k) を用いてメッセージ (m) の ℓビットのCMACタグ (t) を生成する場合、はじめに2つの bビットの副鍵 (k1 and k2) を以下の手順で生成する(これは有限体GF(2b) 上での x と x2 の乗算と等価である)。ここで ≪ は左シフト演算子である。 CMACタグの生成プロセスは以下の通りである。 検証プロセスは以下の通りである。 (ja)
- CMAC (Cipher-based MAC) は、ブロック暗号に基づくメッセージ認証符号アルゴリズムである。認証およびデータの機密の保証に用いられる。この暗号利用モードは、CBC-MACのセキュリティ上の欠陥を修正したものである(CBC-MACは固定長のメッセージの場合のみ安全である)。 CMACアルゴリズムの中核は、John BlackとPhillip Rogawayによって提案、解析され、NISTに提出されたXCBCと呼ばれるCBC-MACの変種である。XCBCアルゴリズムはCBC-MACの欠陥を効率的に克服しているが、3つの鍵を必要とする。岩田と黒沢はXCBCの改良を提案し、 (OMAC)として発表した。さらに、OMACの改良としてOMAC1を発表し、さらなるセキュリティ解析を行った。OMACではXCBCよりも必要な鍵が少なくなっている。CMACはOMAC1と等価なものである。 bビットのブロック暗号 (E) と秘密鍵 (k) を用いてメッセージ (m) の ℓビットのCMACタグ (t) を生成する場合、はじめに2つの bビットの副鍵 (k1 and k2) を以下の手順で生成する(これは有限体GF(2b) 上での x と x2 の乗算と等価である)。ここで ≪ は左シフト演算子である。 CMACタグの生成プロセスは以下の通りである。 検証プロセスは以下の通りである。 (ja)
|
rdfs:label
| |
owl:sameAs
| |
prov:wasDerivedFrom
| |
foaf:isPrimaryTopicOf
| |
is dbo:wikiPageWikiLink
of | |
is owl:sameAs
of | |
is foaf:primaryTopic
of | |