共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2...
TRANSCRIPT
![Page 1: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/1.jpg)
1
共通鍵暗号の証明可能安全性
ソニー・コンピュータエンタテインメント
盛合 志帆
2005/5/17
ISEC研究会チュートリアル「暗号技術の証明可能安全性」
© 2005 Sony Computer Entertainment Inc. All Rights Reserved.
![Page 2: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/2.jpg)
2
共通鍵暗号の証明可能安全性
• Distinguishing Attack に対する安全性
– Ruby-Rackoff Construction
• Key Recovery Attack に対する安全性
– 差分解読法・線形解読法に対する証明可能
安全性
– “Provable Security” vs “Practical Security”
![Page 3: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/3.jpg)
3
Distinguishing Attack に対する安全性
![Page 4: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/4.jpg)
4
ブロック暗号
• 平文 M から暗号文 C への置換 (Permutation)– 鍵を決める=置換を決定する
[Luby-Rackoff 88]安全なブロック暗号(擬似ランダム置換)の構成法
Luby-Rackoff Construction (Feistel cipher)
EK (·)M C = EK (M)
![Page 5: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/5.jpg)
5
ブロック暗号の安全性定義(擬似ランダム置換)
EK(·) P(·)
ランダム置換オラクルブロック暗号オラクル
A 適応的選択平文攻撃adaptive chosen-plaintext attackを行う攻撃者 A
E が擬似ランダム置換 (PRP)⇔ A が EK(·) と P(·) を区別できない
⇔ AdvE (A) = | Pr [A EK(·) = 1] – Pr [A P(·) = 1] | ≤ εprp def
K P
![Page 6: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/6.jpg)
6
EK (·)
ブロック暗号の安全性定義(強擬似ランダム置換)
EK(·) P(·)
ランダム置換オラクルブロック暗号オラクル
B 適応的選択平文・暗号文攻撃adaptive chosen plaintext and ciphertext attackを行う攻撃者 B
E が強擬似ランダム置換 (SPRP)⇔ B が EK(·) と P(·) を区別できない
⇔ AdvE (B) = | Pr [B EK(·) = 1] – Pr [B P(·) = 1] | ≤ εsprp def
K P
–1
![Page 7: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/7.jpg)
7
Luby-Rackoff Construction [LR88]
擬似ランダム関数(PRF) f ∈ F n を用いて
擬似ランダム置換(PRP) を構成
3段ϕ (f1, f2, f3 )で PRPAdvE (A) ≤ 2d 2/2n
4段ϕ (f1, f2, f3 , f4)で SPRPAdvE (B) ≤ 2d 2/2n
f
f
f
f
f : PRF
PRP
SPRP
prp
sprp
![Page 8: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/8.jpg)
8
差分解読法・線形解読法に対する証明可能安全性
![Page 9: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/9.jpg)
9
差分解読法・線形解読法に対する証明可能安全性
ブロック暗号の差分解読法・
線形解読法に対する安全性指標
• 最大平均差分確率 ADPmax
• 最大平均線形確率 ALPmax
ラウンド関数 f の最大差分特性確率・
最大線形特性確率を用いて評価
f
f
f
f
f : ラウンド関数
![Page 10: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/10.jpg)
10
差分解読法・線形解読法に対する証明可能安全性
最大平均差分確率 ADPmax
(最大平均線形確率 ALPmax )が十分
小さいことが証明できる
→「差分解読法(線形解読法)に対する
証明可能安全性をもつ」
f
f
f
f
f : ラウンド関数
![Page 11: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/11.jpg)
11
差分解読法に対する証明可能安全性
![Page 12: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/12.jpg)
12
ラウンド関数 f の差分特性確率
• 差分特性確率 (Differential Characteristic Prob)
DCP(Δ X →Δ Y ) = Pr [ f (X ⊕Δ X) = f (X) ⊕Δ Y ]
• 最大差分特性確率
DCPmax = max DCP(Δ X →Δ Y )
fΔX ΔY
X
Δ X≠ 0Δ Y
![Page 13: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/13.jpg)
13
Feistel 暗号の最大平均差分確率
• 平均差分確率 (Average of Differential Prob)
ADP(N)(Δ P →Δ C ) = Σ Π DCP(Δ Xi →Δ Yi )
• 最大平均差分確率
ADPmax = max ADP(N)(Δ P →Δ C )
N
Δ P≠ 0Δ C
i=1ΔXi-2⊕ΔYi-1 =ΔXi3 ≤ι ≤ Ν
f
f
f
f
N段Feistel暗号
(N)
![Page 14: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/14.jpg)
14
Feistel 暗号の最大平均差分確率
• なぜ「最大平均差分確率」?
ADPmax = max aver Pr [ F(P ⊕Δ P) = F(P) ⊕Δ C ]
鍵に関する平均値の最大値が
ADPmaxに等しくなる [LMM91](各段に入力される鍵は独立で
一様に分布しているものとする)
Δ P≠ 0Δ C f
f
f
f
F
K P
鍵 K に依存
![Page 15: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/15.jpg)
15
Nyberg-Knudsen [NK95]
• 4段 Feistel 暗号について以下が成り立つ
ADPmax ≤ 2 DCPmax
• ラウンド関数 f が全単射の場合
3段 Feistel 暗号について
ADPmax ≤ 2 DCPmax
2
f
f
f
f
(4)
(3) 2
![Page 16: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/16.jpg)
16
青木-太田 [AO96]
• ラウンド関数 f が全単射の場合
3段 Feistel 暗号について以下が成り立つ
ADPmax ≤ DCPmax2
f
f
f
(3)
![Page 17: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/17.jpg)
17
線形解読法に対する証明可能安全性
![Page 18: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/18.jpg)
18
ラウンド関数 f の線形特性確率
• 線形特性確率 (Linear Characteristic Prob)
LCP(ΓY →ΓX ) = | 2 Pr [X ·ΓX = f (X) · ΓY ] – 1 |2
• 最大線形特性確率
LCPmax = max LCP(ΓY →ΓX )
fΓX ΓY
X
ΓY≠ 0ΓX
![Page 19: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/19.jpg)
19
Feistel 暗号の最大平均線形確率
• 平均線形確率
ALP(N)(ΓC →ΓP) = Σ Π LCP(ΓYi →ΓXi )
• 最大平均差分確率
ALPmax = max ALP(N)(ΓC →ΓP)
N
ΓC≠ 0ΓP
i=1ΓYi-2⊕ΓXi-1 =ΓYi3 ≤ι ≤ Ν
f
f
f
f
N段Feistel暗号
(N)
![Page 20: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/20.jpg)
20
Nyberg [N94]
• 4段 Feistel 暗号について以下が成り立つ
ALPmax ≤ 2 LCPmax
• ラウンド関数 f が全単射の場合
3段 Feistel 暗号について
ALPmax ≤ 2 LCPmax
2
f
f
f
f
(4)
(3) 2
![Page 21: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/21.jpg)
21
青木-太田 [AO96]
• ラウンド関数 f が全単射の場合
3段 Feistel 暗号について以下が成り立つ
ALPmax ≤ LCPmax2
f
f
f
(3)
![Page 22: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/22.jpg)
22
差分解読法・線形解読法に対する
証明可能安全性理論に基づく暗号設計: 例) MISTY
![Page 23: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/23.jpg)
23
松井 [M95]
• ラウンド関数 f が全単射の場合
3段 MISTY構造について以下が成り立つ
ADPmax ≤ DCPmax
ALPmax ≤ LCPmax
2f
(3)
2(3)
f
f
p
p
p
≤ p2
![Page 24: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/24.jpg)
24
松井 [M95] (続)
• ラウンド関数 f が全単射で n1 ≤ n2の場合
f1
f2
f3
p1
p2
p3
≤ max {p1 p2, p2 p3, 2n1- n2p1 p3 }
n1 n2
ゼロ拡張
切捨て
ゼロ拡張
![Page 25: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/25.jpg)
25
MISTY1
FO
FO
FO
FO
FI
FI
FI
S9
S7
S9
32 32 16 16 9 7
FL FL
FLFL
FLFL
≤ p1 p2
p1
p2
p1
≤ (p1 p2 )2
≤ (( p1 p2)2)2
![Page 26: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/26.jpg)
26
S-box
• n ビット入出力の全単射関数の
最大差分確率・最大線形確率 p
n :偶数の場合 p ≤ 22 – n (予想)n :奇数の場合 p ≤ 21 – n
• 差分解読法・線形解読法に対して最良の確率を持つ関数 (almost bent function)– 有限体上のべき乗関数が知られている
ちょっとおトク
![Page 27: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/27.jpg)
27
MISTY1
FO
FO
FO
FO
FI
FI
FI
S9
S7
S9
32 32 16 16 9 7
FL FL
FLFL
FLFL
≤ ((2-8 2-6)2)2 = 2-56
≤ 2-8 2-6
p1 = 2-8
p2= 2-6
p1
≤ (2-8 2-6 )2
差分解読法・線形解読法に対し定量的に評価
![Page 28: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/28.jpg)
28
“Provable Security” vs“Practical Security”
![Page 29: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/29.jpg)
29
ブロック暗号設計の理想と現実
• 理想:
最大平均差分確率(最大平均線形確率)
で評価したい
• 現実:
– 最大平均差分確率を計算するのは困難
– タイトに評価できない構造もある : SPN
→最大差分特性確率(最大線形特性確率)の上限を評価
![Page 30: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/30.jpg)
30
ADPmax vs DCPmax(N) (N)
• 最大平均差分確率
ADPmax = max Σ Π DCP(Δ Xi →Δ Yi )
• 最大差分特性確率
DCPmax = max Π DCP(Δ Xi →Δ Yi )
N
Δ P≠ 0Δ C
i=1ΔXi-2⊕ΔYi-1 =ΔXi3 ≤ι ≤ Ν
(N)
Δ P≠ 0Δ C
N
i=1(N)
ADPmax DCPmax
![Page 31: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/31.jpg)
31
Practical Security に基づく設計
• Wide Trail Strategy– 差分・線形経路上の active S-box の個数の下限値を保証
– [Daemen95] AES/Rijndael– [Kanda01] Camellia– [Shirai-Preneel04] ODM-MR design
![Page 32: 共通鍵暗号の証明可能安全性isec/event/isec050517/isec...2 共通鍵暗号の証明可能安全性 • Distinguishing Attack に対する安全性 – Ruby-Rackoff Construction](https://reader034.vdocuments.net/reader034/viewer/2022042621/5f721facc5180773994e074f/html5/thumbnails/32.jpg)
32
まとめ
• 共通鍵暗号の証明可能安全性– Ruby-Rackoff Construction– 差分解読法・線形解読法に対する証明可能
安全性
– “Provable Security” vs “Practical Security”