情報セキュリティ特論( 3 )
DESCRIPTION
情報セキュリティ特論( 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) - PowerPoint PPT PresentationTRANSCRIPT
情報セキュリティ特論( 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
M
1
01 10 1100
00
01
10
11
C=00 という条件の下で、 M=00 となる事象は、
K
M
1
01 10 1100
00
01
10
11
K
M
1
01 10 1100
00
01
10
11
Pr(M=00 | C=00) =
Pr( M=00, K=00)+…+Pr( M=11, K=11)
Pr( M=00, K=00)
K
M
1
01 10 1100
00
01
10
11
Pr(M=00 | C=00) =
Pr( M=00) ・ 1/4 +…+Pr( M=11) ・ 1/4
Pr( M=00) ・ 1/4
K
M
1
01 10 1100
00
01
10
11
Pr(M=00 | C=00) =
Pr( M=00) +…+Pr( M=11)
Pr( M=00)
K
M
1
01 10 1100
00
01
10
11
Pr(M=00 | C=00) = Pr( M=00)
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 | = m ) = Pr( = c )
であることを証明せよ。M~
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) 、
を利用する。
擬似乱数生成器
PRBG短いシード K
長い擬似乱数 PRBG(K)
ただし、
・ |PRBG(K)| > |K|
・ PRBG(K) と真の乱数は、区別がつかない (indistinguishable) 。
Distinguisher
DPRBG(K) 0 or 1
P0 = Pr(D=1)
D真の乱数 0 or 1
P1 = Pr(D=1)
定義
• PRBG(K) と真の乱数は indistinguishable
if |P0-P1|<ε
for 全ての多項式時間の D
• 上記が成り立つとき、 PRBG(K) は擬似ランダム
全ての n ビットの集合
PRBG(K) の集合
|PRBG(K)|=n ビットとする
全ての n ビットの集合
PRBG(K) の集合
{D=1 となる n ビットの集合 }
|PRBG(K)|=n ビットとする
全ての n ビットの集合
PRBG(K) の集合
{D=1 となる n ビットの集合 }
|PRBG(K)|=n ビットとする
P0 = Pr(PRBG(K) が入力のとき D=1) = 斜線の面積 / 赤の面積
全ての n ビットの集合
PRBG(K) の集合
{D=1 となる n ビットの集合 }
|PRBG(K)|=n ビットとする
P1 = Pr( 真の乱数が入力のとき D=1) = 黒の面積 / 全面積
定義
• PRBG(K) と真の乱数は indistinguishable
if |P0-P1|<ε
for 全ての多項式時間の D
• 上記が成り立つとき、 PRBG(K) は擬似ランダム
One-Time Pad の改良
PRBG短い鍵 K
長い擬似乱数 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
Distinguisher D
FK(x)
xi
yi
0 or 1
i=1, 2, …, q, where q= 多項式個
p0 = Pr(D=1)
In Experiment 1• f ← n ビットから n ビットへの全ての関数の集合から randam に選んだ関数
Distinguisher Df
xi
yi
0 or 1
i=1, 2, …, q, where q= 多項式個
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← ランダム
Distinguisher D
FK FK-1
xi
yi
yj
xj
0 or 1
p0 = Pr(D=1)
In Experiment 1• π ← nビット上の全ての置換の集合から ランダムに選んだ置換
Distinguisher Dπ π-1
xi
yi
yj
xj
0 or 1
p1 = Pr(D=1)
In Experiment 1
• Choose a random permutationπ
Distinguisher D
π
m _i
c_i
π ^{-1}
c_j
m _j
0 or 1
定義
• {FK(x)} は、擬似ランダム置換族 if
|p0-p1|<ε
for 全ての多項式時間アルゴリズム D
Block Cipher (AES)
m=128 bits
EncryptionE
c=128 bits
c=128 bits
Decryption D
m=128 bits
Key k
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 = ( m
1, ・・・・・・・・・・・・・・・・・ ,mt )
C= ( c
1, ・・・・・・・・・・・・・・・・・ ,ct )
Ek Ek
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 ctr+t
‥ ‥ m1 mt
(ctr, c1, ,ct)‥ ‥ ‥ ‥ = C
Ek Ek
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 ctr+t
‥ ‥ m1 mt
(ctr, c1, ,ct)‥ ‥ ‥ ‥ = C
Ek Ek
Idealized Counter Mode
ctr ctr+1 ctr+t
‥ ‥ m1 mt
(ctr, c1, ,ct)‥ ‥ ‥ ‥ = C
f f
Idealized Counter Mode
ctr ctr+1 ctr+t
‥ ‥ m1 mt
(ctr, c1, ,ct)‥ ‥ ‥ ‥ = C
f f
r1 rt
One-Time Pad
ctr ctr+1 ctr+t
‥ ‥ m1 mt
(ctr, c1, ,ct)‥ ‥ ‥ ‥ = C
f f
r1 rt
Hence Secure
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
DE_K
m_0, m_1
E_K(m_0)
0 or 1
DE_K
m_0, m_1
E_K(m_1)
0 or 1
If the following two worlds are indistinguishable.
ROR-CPA secure
DE_K
m
E_K(m)
0 or 1
DE_K
m
E_K(random r)
0 or 1
If the following two worlds are indistinguishable.
FTG-CPA security
E_K D
m_i
E_K(m_i)
x_0, x_1
DE_K
m_j
E_K(m_j)
0 or 1
E_K(x_b)
Find stage:
Guess stage:For a random bit b
Is defined by using Find stage and Guess stage.
FTG-CPA secure
DE_K
m_j
E_K(m_j)
0 or 1
E_K(x_1)
DE_K
m_j
E_K(m_j)
0 or 1
E_K(x_0)
If the following two worlds are indistinguishable.
Relationship
LOR FTG
Semantic SecurityROR
Reduction is loose
(omitted)
Strongest security
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
Ek Ek Ek
・・・
Tag
M=(m1, m2, ・・・ , mt)
Attack on CBC-MAC
EkEk
Tag
Ek
Tag
m ( m, m+Tag )
Tag
m偽造
Obtains (m, Tag) Outputs M=(m, m+Tag), Tag
Model of Security
M_i
Tag_i
(M’, Tag’)
Forgery
Chose Message Attack
MAC scheme is secure if Pr(Forgery)=negligible
Security of CBC MAC
• Secure if |M|=fixed
• But, not secure if |M|=variable
EMAC
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’
Is an improvement of CBC-MAC as follows.
Tag of CBC-MAC
EMAC is Secure for variable |M|
f1 f1 f1
・・・
Tag = f2(x)
M=(m_1, m_2, ・・・ , m_t)
f2
f1, f2 は、ランダム関数
x
EMAC is Secure for variable |M|
f1 f1 f1
・・・
Tag1 = f2(x1)
M1=(m_1, m_2, ・・・ , m_t)
f2
f1, f2 は、ランダム関数
x1
Model of Security
M1
Tag1=f2(x1)
Chose Message Attack
Model of Security
M2
Tag2=f2(x2)
Chose Message Attack
Model of Security
Mq
Tagq=f2(xq)
Chose Message Attack
Model of Security
M1, M2, ⋯, Mq
Tag1, ⋯, Tagq
(M’, Tag’)
Forgery
Chose Message Attack
f1 f1 f1
・・・
偽造成功 if Tag ’= f2(x’)
M’=(m_1’, m_2’, ・・・ , m_t’)
f2
x’
Tag’
In general,
H
M
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 Aas follows
D=AH
m_i
Tag_i
M’, Tag’
DH
M’
Tag’
1 if Tag’ =Tag’0 else
Pr(D=1)=ε
Replace H with a random function f
D=Af
m_i
Tag_i
M’, Tag’
Df
M’
Tag’
1 if Tag’ =Tag’0 else
Pr(D=1) = 2-128
because Tag’ is random
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
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’ = PRF
E_K’ can be replace by RF f
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
f
Let X=CBC(M)
E_K E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
f(X)
f
X=CBC(M)
E_K E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
f(X), f(X’)
f
X, X’
M’=(m_1’, m_2’, ・・・ , )
Ek Ek Ek
・・・
M=(m1, m2, ・・・ , mt)
f(x), f(x*)
f
Pr(x≠x*) ~1
M*=(m1*, m2*, ・・・ , )
It is known that
E_K E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
f(X) and f(X’) areindependently random
f=random
X≠X’
M’=(m_1’, m_2’, ・・・ , )
This implies that EMAC=PRF
E_K E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
f(x)
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.
c1= [E]K(tweak T1, m1 )c2= [E]K(tweak T2, m2 )
are independent PRPs,where Ti is publicly known
c=EK(m)
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
E_K
K2
K2
Was proposed by Rivest many years agoto strength the security of DES
It has two keys, K and K2
Kilian and Rogaway (’96)
E_K
K2
K2
proved that the essential key length is Indeed larger than DES.
Even and Mansour (’91)
E_K
K2
K2
showed that DESX is secure even if E_K is publicly accessible.
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 ConstrucitonK2=secre keyE_K is publicly accessibleT_1, …, T_m are publicly known
E_K
K2 ・ T_1
K2 ・ T_1
E_K
K2 ・ T_m
K2 ・ T_m
…Q1Qm
Theorem
E_K
K2 ・ T_1
K2 ・ T_1
E_K
K2 ・ T_m
K2 ・ T_m
…
Q1, …, Qm are independent PRPs
Q1Qm
Corollaries
E_K
K2 ・ T_1
E_K
K2 ・ T_m
…
Q1’, …, Qm’ are independent PRPsif D does not have access to Qi
-1.
Q1’ Qm’
Construction of LRW
E_K
K2 ・ T_1
K2 ・ T_1
Both K and K2 = secret keysT_1, …, T_m = publicly known
E_K
K2 ・ T_m
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
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’
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
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’
The last E_K can be removed
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’
If we remove the last E_K
E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K’
Replace E_K’ with DESX
E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K
K2
=E_K’
From Even and Mansour
E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
E_K
K2
Even if D has access to this E_K,red part is a PRP
=PRP
E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
Tag
E_K
K2
fK(M)
Further Pr( fK(M)=fK(M’) )=negligibleHence this MAC is a PRF
=PRP
E_K E_K
・・・
M=(m_1, m_2, ・・・ , m_t)
Tag
E_K
K2
Therefore this MAC is secureXCBC is almost this construciton
XCBC (Black & Rogaway)
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
K2 if |m_t|<128
K3 if |m_t|=128
Key = (K, K2, K3)
TMAC (Kurosawa and Iwata )
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t )
K2 if |m_t|<128
K2 ・ T if |m_t|=128
Keys = (K, K2) :
T is a public const.
OMAC (Iwata and Kurosawa )
E_K E_K E_K
・・・
Tag
M=(m_1, m_2, ・・・ , m_t)
LT if |m_t|<128
LT2 if |m_t|=128
Key = K :
L=EK(0…0)T is a public const.
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
CMACSecurity 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
演習
E_KE_K
Tag
( m1, m2 )
CBC-MAC について、以下のM=(m1, m2), Tag を基に、偽造せよ。