情報セキュリティ特論( 6 )
description
Transcript of 情報セキュリティ特論( 6 )
23/04/24 confidential 2
• RSA 暗号 素因数分解の困難さ• ElGamal 暗号 離散対数問題の困難さ
5mod23 x
23/04/24 confidential 3
• RSA 暗号 素因数分解の困難さ• ElGamal 暗号 離散対数問題の困難さ
答えは、 x=3
5mod23 x
23/04/24 confidential 4
離散対数問題
• y=ax mod p (= 素数) となる x を求めよ、という問題。• p=1024 ビットのとき、 10 億年
23/04/24 confidential 5
• mod 5 において
14,44,14,44
13,23,43,33
12,32,42,22
4321
4321
4321
フェルマーの定理
23/04/24 confidential 6
• mod 5 において
14,44,14,44
13,23,43,33
12,32,42,22
4321
4321
4321
フェルマーの定理
3 の位数は4
4 の位数は2
2 の位数は4
23/04/24 confidential 7
• mod 5 において
14,44,14,44
13,23,43,33
12,32,42,22
4321
4321
4321
3 の位数は 4:
p-1(=4) を割り切る
4 の位数は 2:
p-1(=4) を割り切る
2 の位数は 4:
p-1(=4) を割り切る
23/04/24 confidential 8
• a の位数 となる最小の n
• 定理 任意の元 a の位数は、 p-1 を割り切る。
pan mod1
23/04/24 confidential 9
Diffie-Hellman の鍵共有法
• p = 大きな素数 , q = p-1 を割り切る大きな素数 g = 位数が大きな素数 q の元 gq=1 mod p
23/04/24 confidential 10
Diffie-Hellman の鍵共有法
pgx
aa mod
ランダムA B
pgy
bb mod
ランダム
x y
23/04/24 confidential 11
Diffie-Hellman の鍵共有法
pgx
aa mod
ランダムA B
pgy
bb mod
ランダム
〃
〃ab
ab
a
g
g
pyK
)(
mod)(
〃
〃ab
ba
b
g
g
pxK
)(
mod)(
x y
23/04/24 confidential 12
Diffie-Hellman の鍵共有法
pgx
aa mod
ランダムA B
pgy
bb mod
ランダム
〃
〃ab
ab
a
g
g
pyK
)(
mod)(
〃
〃ab
ba
b
g
g
pxK
)(
mod)(
敵
盗聴
x y
23/04/24 confidential 13
ba gygxg ,, abgDH 問題
1 億年 (DH 仮定 )
敵のゴール
p, q,
23/04/24 confidential 14
agxg , a離散対数問題DLOG 10 億年 ( 離散対数仮
定 )
ba gygxg ,, abgDH 問題
1 億年 (DH 仮定 )
離散対数問題との関係
?
23/04/24 confidential 15
(定理) DLOG を解くアルゴリズム A が存在す
るなら DH を解くアルゴリズム B が存在する
(証明)ba gg ,
ag A aabg
B
23/04/24 confidential 16
(定理) DLOG を解くアルゴリズム A が存在す
るなら DH を解くアルゴリズム B が存在する
(証明)ba gg ,
ag A aabg )( abg
B
23/04/24 confidential 17
PPT : Probabilistic Polynomial Time 確率的 多項式 時間
agxg , PPT アルゴリズム A a
乱数テープ R
23/04/24 confidential 18
R
a
A が aを出力
この面積全面積
Pr(A が解く ) =
agxg , PPT アルゴリズム A a
乱数テープ R
23/04/24 confidential 19
• 離散対数仮定 確率 ε 以上で DLOG を解くような PPT アルゴリズムは存在しない
• DH 仮定 確率 ε 以上で DH 問題を解くような PPT アルゴリズムは存在しない
23/04/24 confidential 20
定理
• 離散対数仮定が成り立てば、 DH 仮定が成り立つ。
23/04/24 confidential 21
ElGamal 暗号
• 公開鍵: p= 大きな素数 q= p-1 を割り切る大きな素数 g= 位数が q となる元 y (=gx mod p)• 秘密鍵 : x
23/04/24 confidential 22
ElGamal 暗号
• 公開鍵: p, q, g, y(=gx mod p)• 秘密鍵 : x• 平文: m• 暗号化: r ← zp-1
E(m)=(gr, myr)
23/04/24 confidential 23
ElGamal 暗号
• 公開鍵: p, q, g, y(=gx mod p)• 秘密鍵 : x• 平文: m• 暗号化: E(m)=(gr, myr) • 復号: myr / (gr)x=m(gx)r/grx=m mod p
23/04/24 confidential 24
敵への入力
• 公開鍵: p,q,g,y• 暗号文 : (gr, m ・ yr) mod p
23/04/24 confidential 25
巡回群
• <g>={1, g, g2, …, gq-1} は、 (生成元) g で生成される巡回群
23/04/24 confidential 26
DDH 仮定
• (g, gr, y, yr) と (g, gr, y, z) は 多項式時間で区別できない。• ただし、 z は <g> からランダムに選ばれた要素
23/04/24 confidential 27
DDH 仮定より
• 平文: m {1, g, g∈ 2, …, gq-1} とする。• 暗号文: E(m) = (gr, myr) ~ (gr, m z ) ただし、 z は <g> からランダムに選ばれた要素。
23/04/24 confidential 28
DDH 仮定より
• 平文: m {1, g, g∈ 2, …, gq-1} とする。• 暗号文: E(m) = (gr, myr) ~ (gr, m z ) ただし、 z は <g> からランダムに選ばれた要素。 mz=m× 乱数 → one-time pad
23/04/24 confidential 29
DDH 仮定より
• 平文: m {1, g, g∈ 2, …, gq-1} とする。• 暗号文: E(m) = (gr, myr) ~ (gr, m z ) ただし、 z は <g> からランダムに選ばれた要素。 mz=m× 乱数 → one-time pad m に関する情報は、もれていな
い
23/04/24 confidential 30
ElGamal 暗号の安全性
• DDH 仮定の下、• 平文 m に関する情報は、何ももれていな
い。
23/04/24 confidential 31
なりすまし攻撃
A B
オレオレ
23/04/24 confidential 32
A の公開鍵 v (=g-s mod p)
A B
s
v =g-s mod pをチェック
s
23/04/24 confidential 33
B が、なりすませてしまう
A B
s
s C
s
オレは A だ
23/04/24 confidential 34
Schnorr の認証法
A B
x =gyvc mod p
s
r← ランダムx=gr mod p
c← ランダム
y=r+sc mod q
x
c
y
v =g-s mod p
gy=gr+sc=gr(gs)c=xv-c
23/04/24 confidential 35
Schnorr の認証法
A B
x =gyvc mod pをチェック
s
r← ランダムx=gr mod p
c← ランダム
y=r+sc mod q
x
c
y
v =g-s mod p
23/04/24 confidential 36
零知識性
• B には、 s に関する情報が一切漏れていない。
23/04/24 confidential 37
零知識性
• B には、 s に関する情報が一切漏れていない
if B は、自分自身で通信系列 (x,c,y) を 生成できる。
23/04/24 confidential 38
定理
• B は、自分自身で通信系列 (x,c,y) を 生成できる。
23/04/24 confidential 39
証明
A B
x =gyvc mod pをチェック
s
r← ランダムx=gr mod p
c← ランダム
y=r+sc mod q
x
c
y
v =g-s mod p
23/04/24 confidential 40
証明
B B
3. x =gyvc mod p
1. c← ランダム
2. y← ランダム
x
c
y
23/04/24 confidential 41
証明
B B
3. x =gyvc mod p
1. c← ランダム
2. y← ランダム
4. x
c
y
23/04/24 confidential 42
健全性
• B を accept させられるなら、 A は s を知っている。
23/04/24 confidential 43
健全性
• B を accept させられるなら、 A は s を知っている。
• A をサブルーチンとして使って、 s を求めることができる
23/04/24 confidential 44
定理
• A が B を accept させられる
• A をサブルーチンとして使って、 s を求めることができる
23/04/24 confidential 45
証明
A B
x =gyvc mod p
c← ランダム
x
c
y
23/04/24 confidential 46
A を初期状態にリセット
A B
23/04/24 confidential 47
もう一度、 A を走らせる
A B
x
23/04/24 confidential 48
証明
A B
c’← ランダム
x
c’
23/04/24 confidential 49
証明
A B
x =gy’vc’ mod p
c’← ランダム
x
c’
y’
23/04/24 confidential 50
証明
A B
x =gy’vc’ mod p
x
c, c’
y, y’x =gyvc mod p
23/04/24 confidential 51
証明
A B
x =gy’vc’ mod p
x
c, c’
y, y’x =gyvc mod p
1 =gy-y’vc-c’ mod p
v –(c-c’) =gy-y’ mod p
23/04/24 confidential 52
証明
A B
x =gy’vc’ mod p
x
c, c’
y, y’x =gyvc mod p
1 =gy-y’vc-c’ mod p
v –(c-c’) =gy-y’ mod p
v =g-(y-y’)/(c-c’) mod p
23/04/24 confidential 53
証明
A B
x =gy’vc’ mod p
x
c, c’
y, y’x =gyvc mod p
1 =gy-y’vc-c’ mod p
v –(c-c’) =gy-y’ mod p
v =g-(y-y’)/(c-c’) mod p
v=g-s mod p
23/04/24 confidential 54
証明
A B
x =gy’vc’ mod p
x
c, c’
y, y’x =gyvc mod p
1 =gy-y’vc-c’ mod p
v –(c-c’) =gy-y’ mod p
v =g-(y-y’)/(c-c’) mod ps=(y-y’)/(c-c’)
v=g-s mod p
23/04/24 confidential 55
敵のモデル
• 学習段階• なりすまし段階
23/04/24 confidential 56
学習段階
A B
x =gyvc mod pをチェック
s
r← ランダムx=gr mod p
c← ランダム
y=r+sc mod q
x
c
y
敵:盗聴
23/04/24 confidential 57
なりすまし段階
敵 B
x =gyvc mod p
c← ランダム
x
c
y
23/04/24 confidential 58
定理
• なりすましに成功する敵が存在したと仮定すると、離散対数問題を解ける。
23/04/24 confidential 59
v=g-s mod p
s
学習段階
(x’’,c’’,y’’)
敵
なりすまし段階
敵 B
x
c
y
B
23/04/24 confidential 60
v=g-s mod p
学習段階
(x’’,c’’,y’’)
敵
なりすまし段階
敵 B
x
c,c’
y,y’
23/04/24 confidential 61
v=g-s mod p
学習段階
(x’’,c’’,y’’)
敵
なりすまし段階
敵 B
x
c,c’
y,y’
s=(y-y’)/(c-c’)
23/04/24 confidential 62
Schnorr のデジタル署名
A A秘密鍵: s
r← ランダムx=gr mod p
c=H(x,m)
y=r+sc mod q
x
y
公開鍵: v =g-s mod p
平文 m
23/04/24 confidential 63
Schnorr のデジタル署名
A A
x =gyvc mod pを計算
秘密鍵: s
r← ランダムx=gr mod p
c=H(x,m)
y=r+sc mod q
x
y
公開鍵: v =g-s mod p
B
σ=(c,y)
署名文
平文 m
c=H(x,m)をチェック
23/04/24 confidential 64
選択平文攻撃署名
オラクル
敵公開鍵 (平文 * 、署名文 * )
平文 m 署名文 σ
23/04/24 confidential 65
ランダム・オラクル・モデルにおける選択平文攻撃
署名オラクル
敵
H オラクル
公開鍵 (平文 * 、署名文 * )
平文 m 署名文 σ
乱数 c=H(m,x)(m, x)
23/04/24 confidential 66
定理• RO モデルにおいて、 Schnorr の署名に対し、確率 ε で 偽造に成功する敵 A が存在する。 ただし、 A は H オラクルに高々 h 回質問すると仮定する。
• Schnorr の認証法において、確率 ε/h で なりすましに成功する敵 B が存在する。
23/04/24 confidential 67
ランダム・オラクル・モデルにおける選択平文攻撃
署名オラクル
敵 A
H オラクル
公開鍵 v ( m* 、 c*, y* )
平文 mi署名文 σi
乱数 cj=H(mj,xj)(mj, xj)
23/04/24 confidential 68
なりすましの敵 B
署名オラクル
偽造の敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi署名文 σi
乱数 cj=H(mj,xj)(mj, xj)
公開鍵 v
なりすます
ぞ!
23/04/24 confidential 69
B のなりすまし戦略• 偽造の敵 A は、 H オラクルに 偽造用の (m*, x*) を k 番目に質問する。
偽造の敵 A
H オラクル
(m*,x*)
B
相手
23/04/24 confidential 70
B は k をランダムに推測
• B は、 x* を A に送る。
B 相手
x*
敵
H オラクル
(m*,x*)=
23/04/24 confidential 71
B のなりすまし戦略
• 相手が c* を返してきた。
B 相手
x*
c*
敵
H オラクル
(m*,x*)=
23/04/24 confidential 72
B のなりすまし戦略
• B は、 c*=H(m*,x*) とする。
B 相手
x*
c*
敵 A
H オラクル
(m*,x*) c*=H(m*,x*)
B の内部
=
23/04/24 confidential 73
B は、 A を最後まで走らせる
• A は、偽造 (m*,c*,y*) を出力する。
B 相手
x*
c*
敵 A
H オラクル
(m*,x*) c*=(m*,x*)
B の内部
(m*, c*, y*)
23/04/24 confidential 74
B は、この y* を相手に返す。• (m*,c*,y*) 及び x* は正しい偽造なので、 検査式 x*=g y* v c* mod p を満たす
B 相手
x*
c*
敵 A
H オラクル
(m*,x*) c*=H(m*,x*)
B の内部
(m*, c*, y*)
y*
23/04/24 confidential 75
よって、相手は accept する。• (m*,c*,y*) 及び x* は正しい偽造なので、 検査式 x*=g y* v c* mod p を満たす
B 相手
x*
c*
敵 A
H オラクル
(m*,x*) c*=H(m*,x*)
B の内部
(m*, c*, y*)
y* accept
23/04/24 confidential 76
これで、 B はなりすましに成功。
• (m*,c*,y*) 及び x* は正しい偽造なので、 検査式 x*=g y* v c* mod p を満たす
B 相手
x*
c*
敵 A
H オラクル
(m*,x*) c*=H(m*,x*)
B の内部
(m*, c*, y*)
y* accept
23/04/24 confidential 77
さて、 B は署名オラクルをどうシミュレート
署名オラクル
敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi
公開鍵 v
B
23/04/24 confidential 78
零知識性の証明の要領で
署名オラクル
敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi
公開鍵 v
ci, yi ← ランダムxi←gyivci
署名文 σi=(ci,yi)
23/04/24 confidential 79
H オラクルのシミュレート
署名オラクル
敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi
(mi, xi)
公開鍵 v
ci, yi ← ランダムxi←gyivci
σi=(ci,yi)
23/04/24 confidential 80
ci=H(mi,xi) とすれば、σi=(ci,yi) は検査式を満たす
署名オラクル
敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi
ci=H(mi,xi)(mi, xi)
公開鍵 v
ci, yi ← ランダムxi←gyivci
σi=(ci,yi)
23/04/24 confidential 81
平文 m, 署名文 σ = (c,y) の検査法
• x=gyvc mod p とおく。• c=H(m,x) をチェック
23/04/24 confidential 82
B は、両オラクルを正しくシミュレート
署名オラクル
敵 A
H オラクル
v ( m* 、 c*, y* )
平文 mi
ci=H(mi,xi)(mi, xi)
公開鍵 v
ci, yi ← ランダムxi←gyivci
σi=(ci,yi)
23/04/24 confidential 83
証明
• これで、 B は A の環境を完全にシミュレート
• よって、 A は最後まで走り、 偽造 (m*,c*,y*) を出力• B は、それを使ってなりすましに成功。
証明終わり
23/04/24 confidential 84
定理
• Schnorr の署名に対し、確率 ε で 偽造に成功する敵 A が存在する。
• Schnorr の認証法において、確率 ε/h で なりすましに成功する敵 B が存在する。
23/04/24 confidential 85
定理
• Schnorr の署名に対し、確率 ε で 偽造に成功する敵 A が存在する。
• Schnorr の認証法において、確率 ε/h で なりすましに成功する敵 B が存在する。• 確率 (ε/h)2 で離散対数問題を解ける
演習
• 教科書 p.49, 問 5.3, 問 5.4
23/04/24 confidential 86