Cryptographic Hash Functions

情報セキュリティ特論(3)
黒澤 馨 (茨城大学)
[email protected]
演習 (1)
One-time padについて考える。
• 鍵K=(001101)で、平文M=(111111)を
暗号化せよ。
• C=K+M
=(001101)+(111111)
=(110010)
演習 (1)
One-time padについて考える。
• 鍵K=(001101)で、暗号文C=(101101)を
復号せよ。
• M=K+C
=(001101)+(101101)
=(100000)
演習 (2)
• One-Time Padが無条件に安全であることを、
n=1ビットの場合と同様に、
n=2ビットに対し、証明せよ。
証明 (n=2の場合)
• 敵が暗号文C=(00)を入手した。
• このとき、
Pr(M=00 | C=00)=Pr(M=00)
を証明する。
C=M+K mod 2より、C=00となる(M,K)は、
K
11
10
01
00
1
00
01
10
11
M
C=00という条件の下で、M=00となる事象は、
K
11
10
01
00
1
00
01
10
11
M
K
11
10
01
00
1
00
01
10
11
M
Pr( M=00, K=00)
Pr(M=00 | C=00) =
Pr( M=00, K=00)+…+Pr( M=11, K=11)
K
11
10
01
00
1
00
01
10
11
M
Pr( M=00) ・1/4
Pr(M=00 | C=00) =
Pr( M=00) ・1/4 +…+Pr( M=11) ・1/4
K
11
10
01
00
1
00
01
10
11
Pr( M=00)
Pr(M=00 | C=00) =
Pr( M=00) +…+Pr( M=11)
M
K
11
10
01
00
1
00
Pr(M=00 | C=00) =
01
10
Pr( M=00)
11
M
Pr(M=00 | C=00)=Pr(M=00)
• 同様にして、
Pr(M=01 | C=00) = Pr(M=01)
…
Pr(M=11 | C=11) = Pr(M=11)
演習 (3)
共通鍵暗号系(G,E,D)が無条件に安全
であるための必要十分条件は、
・ M上の任意の確率関数 PM
・ ∀m ∈ M
・ ∀C ∈ C
に対し、
~
~
~
Pr( C = c | M = m ) = Pr( C = c )
であることを証明せよ。
順方向の証明
• Pr(C=c | M=m)=Pr(C=c)
と仮定する。
• このとき、無条件に安全、すなわち、
Pr(M=m | C=c) =Pr(M=m)
を示す。
証明
• Pr(C=c | M=m)=Pr(C=c)と仮定。
証明
• Pr(C=c | M=m)=Pr(C=c)と仮定。
• 両辺に、Pr(M=m) / Pr(C=c)を掛けると、
証明
• Pr(C=c | M=m)=Pr(C=c)と仮定。
• 両辺に、Pr(M=m) / Pr(C=c)を掛けると、
• 右辺=Pr(M=m)
証明
•
•
•
•
Pr(C=c | M=m)=Pr(C=c)と仮定。
両辺に、Pr(M=m) / Pr(C=c)を掛けると、
右辺=Pr(M=m)
左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)
証明
•
•
•
•
Pr(C=c | M=m)=Pr(C=c)と仮定。
両辺に、Pr(M=m) / Pr(C=c)を掛けると、
右辺=Pr(M=m)
左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)
= Pr(C=c, M=m) / Pr(C=c)
証明
•
•
•
•
Pr(C=c | M=m)=Pr(C=c)と仮定。
両辺に、Pr(M=m) / Pr(C=c)を掛けると、
右辺=Pr(M=m)
左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)
= Pr(C=c, M=m) / Pr(C=c)
= Pr(M=m | C=c)
証明
•
•
•
•
Pr(C=c | M=m)=Pr(C=c)と仮定。
両辺に、Pr(M=m) / Pr(C=c)を掛けると、
右辺=Pr(M=m)
左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)
= Pr(C=c, M=m) / Pr(C=c)
= Pr(M=m | C=c)
よって、Pr(M=m | C=c) =Pr(M=m)
証明
•
•
•
•
Pr(C=c | M=m)=Pr(C=c)と仮定。
両辺に、Pr(M=m) / Pr(C=c)を掛けると、
右辺=Pr(M=m)
左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)
= Pr(C=c, M=m) / Pr(C=c)
= Pr(M=m | C=c)
よって、Pr(M=m | C=c) =Pr(M=m)
ゆえに、無条件に安全。
逆方向の証明
• 無条件に安全と仮定する。
すなわち、
Pr(M=m | C=c) =Pr(M=m)
• このとき、
Pr(C=c | M=m)=Pr(C=c)
を示す。
逆方向の証明
• Pr(M=m | C=c) =Pr(M=m)と仮定。
逆方向の証明
• Pr(M=m | C=c) =Pr(M=m)と仮定。
• 両辺に、Pr(C=c) / Pr(M=m)を掛けると
逆方向の証明
• Pr(M=m | C=c) =Pr(M=m)と仮定。
• 両辺に、Pr(C=c) / Pr(M=m)を掛けると
• 右辺= Pr(C=c)
逆方向の証明
•
•
•
•
Pr(M=m | C=c) =Pr(M=m)と仮定。
両辺に、Pr(C=c) / Pr(M=m)を掛けると
右辺= Pr(C=c)
左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m)
逆方向の証明
•
•
•
•
Pr(M=m | C=c) =Pr(M=m)と仮定。
両辺に、Pr(C=c) / Pr(M=m)を掛けると
右辺= Pr(C=c)
左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m)
= Pr(M=m, C=c) / Pr(M=m)
逆方向の証明
•
•
•
•
Pr(M=m | C=c) =Pr(M=m)と仮定。
両辺に、Pr(C=c) / Pr(M=m)を掛けると
右辺= Pr(C=c)
左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m)
= Pr(M=m, C=c) / Pr(M=m)
= Pr(C=c | M=m)
逆方向の証明
•
•
•
•
Pr(M=m | C=c) =Pr(M=m)と仮定。
両辺に、Pr(C=c) / Pr(M=m)を掛けると
右辺= Pr(C=c)
左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m)
= Pr(M=m, C=c) / Pr(M=m)
= Pr(C=c | M=m)
よって、Pr(C=c | M=m)=Pr(C=c)
無条件に安全な暗号系の制限
• 定理
無条件に安全な暗号系においては
|K| ≧ |M|
対策
• 擬似乱数生成器、
PseudoRandom Bit Generator (PRBG)、
を利用する。
擬似乱数生成器
短いシード
K
PRBG
長い擬似乱数
PRBG(K)
ただし、
・ |PRBG(K)| > |K|
・ PRBG(K)と真の乱数は、区別がつかない(indistinguishable)。
Distinguisher
PRBG(K)
D
0 or 1
P0 = Pr(D=1)
真の乱数
D
P1 = Pr(D=1)
0 or 1
定義
• PRBG(K)と真の乱数はindistinguishable
if |P0-P1|<ε
for 全ての多項式時間のD
• 上記が成り立つとき、
PRBG(K)は擬似ランダム
|PRBG(K)|=nビットとする
全てのnビットの集合
PRBG(K)の集合
|PRBG(K)|=nビットとする
全てのnビットの集合
PRBG(K)の集合
{D=1となるnビットの集合}
|PRBG(K)|=nビットとする
全てのnビットの集合
PRBG(K)の集合
{D=1となるnビットの集合}
P0 = Pr(PRBG(K)が入力のときD=1)
= 斜線の面積 / 赤の面積
|PRBG(K)|=nビットとする
全てのnビットの集合
PRBG(K)の集合
{D=1となるnビットの集合}
P1 = Pr(真の乱数が入力のときD=1)
= 黒の面積 / 全面積
定義
• PRBG(K)と真の乱数はindistinguishable
if |P0-P1|<ε
for 全ての多項式時間のD
• 上記が成り立つとき、
PRBG(K)は擬似ランダム
One-Time Padの改良
短い鍵
K
PRBG
長い擬似乱数
PRBG(K)
暗号文
C = M + PRBG(K)
擬似ランダム関数FK(x)
• 鍵K ← ランダム のとき、
• Y0=(FK(0…0), …, FK(1…1))
と
Y1=(乱数、…、乱数)
がindistinguishable
擬似ランダム関数FK(x)
• 鍵K ← ランダム のとき、
• Y0=(FK(0…0), …, FK(1…1))
と
Y1=(乱数、…、乱数)
がindistinguishable
しかし、|Y0|=|Y1|=2n
擬似ランダム関数FK(x)
• 鍵K ← ランダム のとき、
• Y0=(FK(0…0), …, FK(1…1)) → D → 0 or 1
• |Y0|=2n
• Distinguisher Dは、
読み込むだけで指数時間かかってしまう。
In Experiment 0
• K ← randam
xi
Distinguisher
D
FK(x)
yi
i=1, 2, …, q,
where q=多項式個
0 or 1
p0 = Pr(D=1)
In Experiment 1
• f ← nビットからnビットへの全ての関数の集合から
randamに選んだ関数
xi
Distinguisher
D
f
yi
i=1, 2, …, q,
where q=多項式個
0 or 1
p1 = Pr(D=1)
定義
• {FK(x)}は、擬似ランダム関数族 if
|p0-p1|<ε
for 全ての多項式時間アルゴリズム D
置換
• F:{nビットの集合}→ {nビットの集合}
は置換
if Fが1対1の関数.
置換
• F:{nビットの集合}→ {nビットの集合}
は置換
if Fが1対1の関数.
y=F(x)が置換ならば、
逆関数 x=F-1(y)が存在する
In Experiment 0
• K←ランダム
xi
yj
Distinguisher
D
FK
yi
FK-1
xj
0 or 1
p0 = Pr(D=1)
In Experiment 1
• π ← nビット上の全ての置換の集合から
ランダムに選んだ置換
xi
yj
Distinguisher
D
π
yi
π-1
xj
0 or 1
p1 = Pr(D=1)
In Experiment 1
• Choose a random permutationπ
m_i
c_j
Distinguisher
D
π
c_i
π ^{-1}
m_j
0 or 1
定義
• {FK(x)}は、擬似ランダム置換族 if
|p0-p1|<ε
for 全ての多項式時間アルゴリズム D
Block Cipher (AES)
m=128 bits
c=128 bits
Key k
Encryption
E
c=128 bits
Decryption
D
m=128 bits
A Block Cipher (AES) is
• {permutation πover {128 bit strings }}
That is,
π:message space ={128 bit strings}
→
ciphertext space ={128 bit strings}
• Key k specifies a permutation.
AES
• Key:128 bits, 192 bits or 256 bits
• 仮定
{AESK}は、擬似ランダム置換族
ECB Mode
encrypts a long message M as follows.
M = (m1,・・・・・・・・・・・・・・・・・,mt)
Ek
Ek
C=(c1,・・・・・・・・・・・・・・・・・,ct)
Not Secure
• If c1=c2,
then the adversary knows
m1=m2
Message
Ciphertext
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
Counter Mode
• The sender keeps a counter ctr.
ctr
ctr+1
Ek
m1
(ctr,

ctr+t
‥‥
mt
c1, ‥ ‥ ‥ ‥
Ek

,ct)=C
Security Proof
• {AES}~Random Permutation Family P
~Random Function Family F
• Replace AES E_K
with a random function f.
The adversary can see no difference.
Counter Mode
ctr
ctr+1
Ek
m1
(ctr,

ctr+t
‥‥
mt
c1, ‥ ‥ ‥ ‥
Ek

,ct)=C
Idealized Counter Mode
ctr
ctr+1
ctr+t
f
f
‥‥
m1
(ctr,

mt
c1, ‥ ‥ ‥ ‥

,ct)=C
Idealized Counter Mode
ctr
ctr+1
ctr+t
f
m1
(ctr,

f
r1
‥‥
mt
c1, ‥ ‥ ‥ ‥

rt
,ct)=C
One-Time Pad
Hence Secure
ctr
ctr+1
ctr+t
f
m1
(ctr,

f
r1
‥‥
mt
c1, ‥ ‥ ‥ ‥

rt
,ct)=C
CTR mode
• Was shown by Diffie and Hellman in1979
• It is standarized as
NIST recommendation SP800-38A
CBC mode
On IV
• If IV=fixed value or ctr,
then CBC mode is not secure.
• If IV=random,
then the security is proved.
NIST SP800-38A
• For the CBC and CFB modes,
the IV for any particular execution of the
encryption process must be unpredictable.
• For the OFB mode,
unique IVs must be used for each
execution of the encryption process.
CFB mode
OFB mode
Standards
• CBC mode, CFB mode and OFB mode
are standards of
• NIST
FIPS81, SP800-38A
• US
ANSI X3
• ISO 8372, ISO/IEC 10116
Security of Symmetric Encryption
• Was defined and studied by
Bellare, Desai, Jokiph, Rogaway
in the paper
“A concrete Security Treatment of
Symmetric Encryption”
(FOCS’97)
4 Security Definitions
•
•
•
•
LOR (Left or Right) CPA (CCA)
ROR (Real or Random) CPA (CCA)
FTG (Find then Guess) CPA (CCA)
SEM (Semantic Security) CPA (CCA)
LOR-CPA secure
If the following two worlds are indistinguishable.
m_0, m_1
E_K
m_0, m_1
D
E_K(m_0)
E_K
D
E_K(m_1)
0 or 1
0 or 1
ROR-CPA secure
If the following two worlds are indistinguishable.
m
E_K
m
D
E_K(m)
E_K
D
E_K(random r)
0 or 1
0 or 1
FTG-CPA security
Is defined by using Find stage and Guess stage.
E_K(x_b)
m_i
E_K
m_j
D
E_K(m_i)
E_K
D
E_K(m_j)
Guess stage:
For a random bit b
Find stage:
x_0, x_1
0 or 1
FTG-CPA secure
If the following two worlds are indistinguishable.
E_K(x_0)
E_K(x_1)
m_j
E_K
m_j
D
E_K(m_j)
E_K
D
E_K(m_j)
0 or 1
0 or 1
Relationship
FTG
LOR
Reduction is loose
ROR
Strongest security
Semantic
Security
(omitted)
LOR-CPA security
• CTR mode, CBC mode
BDJR (FOCS 1997)
• CFB mode
Alkassar, Geraldy, Birgit Pfitzmann,
Sadeghi (FSE 2001)
• CTR-OFB mode
Jaechul Sung, Sangjin Lee, Jongin Lim,
Wonil Lee, Okyeon Yi (ICISC 2001)
This Talk
•
•
•
•
•
Security of Block Ciphers
Encryption Schemes
MAC Schemes
Tweakable Block Cipher
CMAC
Message Authentication Code
(MAC)
Key K
Key K
(M, Tag)
× Impersonate
× Forge
CBC-MAC is well known
M=(m1,
m2, ・・・,
mt)
・・・
Ek
Ek
Ek
Tag
Attack on CBC-MAC
Obtains (m, Tag)
Outputs M=(m, m+Tag), Tag
(m,
m
m+Tag)
m
偽造
Ek
Ek
Ek
Tag
Tag
Tag
Model of Security
Chose Message Attack
M_i
Forgery
(M’, Tag’)
Tag_i
MAC scheme is secure if
Pr(Forgery)=negligible
Security of CBC MAC
• Secure if |M|=fixed
• But, not secure if |M|=variable
EMAC
Is an improvement of CBC-MAC as follows.
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
Tag of CBC-MAC
E_K’
Tag
EMAC is Secure for variable |M|
M=(m_1,
m_2, ・・・,
m_t)
・・・
f1
f1
f1
x
f2
f1, f2は、ランダム関数
Tag = f2(x)
EMAC is Secure for variable |M|
M1=(m_1,
m_2, ・・・,
m_t)
・・・
f1
f1
f1
x1
f2
f1, f2は、ランダム関数
Tag1 = f2(x1)
Model of Security
Chose Message Attack
M1
Tag1=f2(x1)
Model of Security
Chose Message Attack
M2
Tag2=f2(x2)
Model of Security
Chose Message Attack
Mq
Tagq=f2(xq)
Model of Security
Chose Message Attack
M1, M2, ⋯, Mq
Forgery
(M’, Tag’)
Tag1, ⋯, Tagq
偽造成功 if Tag ’= f2(x’)
M’=(m_1’,
m_2’, ・・・,
m_t’)
・・・
f1
f1
f1
x’
f2
Tag’
In general,
M
H
Tag=H(M)
for some function H
MAC Theorem
H is a pseudo-random function
H is a secure MAC
Proof
• Assume that there exists
a chosen message attacker A on H
who succeeds with prob. ε
• Then we will show that
H is not a pseudo-random function.
Consider D which uses A
as follows
M’
m_i
H
D=A
H
D
Tag’
Tag_i
M’, Tag’
Pr(D=1)=ε
1 if Tag’ =Tag’
0 else
Replace H with a random function f
M’
m_i
f
D=A
f
D
Tag’
Tag_i
M’, Tag’
Pr(D=1) = 2-128
because Tag’ is random
1 if Tag’ =Tag’
0 else
Proof (cont.)
• If the oracle=H, then
Pr(D=1)=ε
• If the oracle=random function f,
Pr(D=1)=2-128
Proof (cont.)
• If the oracle=H, then
Pr(D=1)=ε
• If the oracle=random function f,
Pr(D=1)=2-128
• Hence H is not a pseudo-random function
(PRF)
Proof (cont.)
• If the oracle=H, then
Pr(D=1)=ε
• If the oracle=random function f,
Pr(D=1)=2-128
• Hence H is not a PRF
• Consequently,
If H is a PRF, then H is a secure MAC.
We will show EMAC=PRF
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
E_K’
Tag
= PRF
E_K’ can be replace by RF f
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
f
Tag
Let X=CBC(M)
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
X=CBC(M)
f
f(X)
M’=(m_1’,
m_2’, ・・・, )
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
X, X’
f
f(X), f(X’)
M*=(m1*,
m2*, ・・・, )
M=(m1,
m2, ・・・,
mt)
・・・
Ek
Ek
Ek
It is known that
Pr(x≠x*) ~1
f
f(x), f(x*)
M’=(m_1’,
m_2’, ・・・, )
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
X≠X’
f=random
f(X) and f(X’) are
independently random
This implies that EMAC=PRF
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
x
f
f(x)
Security of EMAC
• We proved that EMAC=PRF
• Therefore from MAC theorem,
EMAC is secure
This Talk
•
•
•
•
•
Security of Block Ciphers
Encryption Schemes
MAC Schemes
Tweakable Block Cipher
CMAC
Tweakable Block Cipher
• Was proposed by Listov, Rivest and Wagner
at Crypto 2002.
• We can obtain many independent PRPs
from a single secret key K.
c=EK(m)
c1= [E]K(tweak T1, m1)
c2= [E]K(tweak T2, m2)
are independent PRPs,
where Ti is publicly known
To tell the truth
• Kurosawa considered a similar thing
at the same time independently
• I posted it to ePrint after,
citing LRW paper.
• Recently Louis Granboulan sent me an
email.
Email of Louis Granboulan
• I am wondering
why this paper has not been published.
• In my opinion,
it contains new and interesting results.
(January 12, 2008)
ePrint 2002/127
Kaoru Kurosawa,
“Power of a Public Random Permutation
and
its Application to Authenticated-Encryption”
I will talk about this paper here.
DESX
Was proposed by Rivest many years ago
to strength the security of DES
K2
E_K
K2
It has two keys, K and K2
Kilian and Rogaway (’96)
proved that the essential key length is
Indeed larger than DES.
K2
E_K
K2
Even and Mansour (’91)
showed that DESX is secure
even if E_K is publicly accessible.
K2
E_K
K2
Kurosawa (ePrint02)
• Many PRPs can be obtained
from a single secret key K2
even if E_K is publicly accessible.
• while Even and Mansour showed that
a single PRP can be obtained.
Proposed Construciton
K2=secre key
E_K is publicly accessible
T_1, …, T_m are publicly known
K2・T_m
K2・T_1
Q1
…
E_K
K2・T_1
Qm
E_K
K2・T_m
Theorem
Q1, …, Qm are independent PRPs
K2・T_m
K2・T_1
Q1
…
E_K
K2・T_1
Qm
E_K
K2・T_m
Corollaries
Q1’, …, Qm’ are independent PRPs
if D does not have access to Qi-1.
K2・T_m
K2・T_1
Q 1’
E_K
…
Qm’
E_K
Construction of LRW
Both K and K2 = secret keys
T_1, …, T_m = publicly known
K2・T_m
K2・T_1
…
E_K
K2・T_1
E_K
K2・T_m
Comparison
• LRW construciton is obtained
by letting K=secret.
• In other words,
the proposed construction gives
a tweakable block cipher
such that E_K is publicly accessible.
This Talk
•
•
•
•
•
Security of Block Ciphers
Encryption Schemes
MAC Schemes
Tweakable Block Cipher
CMAC
EMAC requires 2 key schedulings
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
E_K’
Tag
EMAC was improved as follows
• XCBC: Black and Rogaway (2000. 6)
1 block-cipher key + 2 other keys
• TMAC: Kurosawa and Iwata (2002. 7)
1 block-cipher key + 1 other key
• OMAC: Iwata and Kurosawa (2002.12)
1 block-cipher key
 CMAC
How to improve EMAC
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
E_K’
Tag
The last E_K can be removed
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K
E_K’
Tag
If we remove the last E_K
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
E_K’
Tag
Replace E_K’ with DESX
M=(m_1,
m_2, ・・・,
m_t)
・・・
K2
E_K
E_K
E_K
Tag
=E_K’
From Even and Mansour
M=(m_1,
m_2, ・・・,
m_t)
・・・
K2
E_K
E_K
E_K
Tag
Even if D has access to this E_K,
red part is a PRP
=PRP
M=(m_1,
m_2, ・・・,
m_t)
・・・
fK(M)
E_K
E_K
K2
E_K
Tag
Further Pr( fK(M)=fK(M’) )=negligible
Hence this MAC is a PRF
=PRP
M=(m_1,
m_2, ・・・,
m_t)
・・・
E_K
E_K
K2
E_K
Tag
Therefore this MAC is secure
XCBC is almost this construciton
XCBC (Black & Rogaway)
M=(m_1,
m_2, ・・・,
m_t)
K2 if |m_t|<128
・・・
K3 if |m_t|=128
E_K
E_K
E_K
Tag
Key=(K, K2, K3)
TMAC (Kurosawa and Iwata)
M=(m_1,
m_2, ・・・,
m_t )
K2 if |m_t|<128
・・・
K2・T
if |m_t|=128
E_K
E_K
E_K
Tag
Keys=(K, K2):
T is a public const.
OMAC (Iwata and Kurosawa)
M=(m_1,
m_2, ・・・,
m_t)
LT if |m_t|<128
・・・
LT2 if |m_t|=128
E_K
E_K
E_K L=E (0…0)
K
T is a public const.
Tag
Key =K:
From XCBC to OMAC=CMAC
• XCBC: Black and Rogaway (2000. 6)
1 block-cipher key + 2 other keys
• TMAC: Kurosawa and Iwata (2002. 7)
1 block-cipher key + 1 other key
• OMAC: Iwata and Kurosawa (2002.12)
1 block-cipher key
 CMAC
Security of each MAC is proved
NIST home page
• May 2005.
• In SP 800-38B, the CMAC
authentication mode is specified for use
with any approved block cipher.
NIST home page
• CMAC is an essentially OMAC
submitted by Iwata and Kurosawa.
• OMAC is an improvement of the XCBC,
submitted by Rogaway and Black,
which itself is an improvement of
the CBC-MAC algorithm.
NIST home page
• XCBC efficiently addresses
the security deficiencies of CBC-MAC;
• OMAC efficiently reduces
the key size of XCBC.
CMAC
•
•
•
•
•
NIST recommendation
CSE (Canada) standard
used in Windows XP (SP2)
used in Play Station 3
used in AACS developed by
IBM, Intel, Microsoft, Desney, Warner,
Sony, Toshiba and Matsushita
CMAC
• IETF RFC4493,4494,4615
• IEEE 802.16e
演習
CBC-MACについて、以下の
M=(m1, m2), Tagを基に、偽造せよ。
(m1,
m 2)
E_K
E_K
Tag