...

暗号基盤特論 (M43160) ハードコア述語 ハードコア関数 ハードコア述語

by user

on
Category: Documents
2

views

Report

Comments

Transcript

暗号基盤特論 (M43160) ハードコア述語 ハードコア関数 ハードコア述語
2015/07/11
ハードコア述語
• 計算が容易:
暗号基盤特論
–  多項式時間アルゴリズム が存在して,任意
A
の入力 に対して は を出力する
x
A b( x )
予測困難性と識別困難性
(M43160)
• 予測困難:
–  どんな確率的多項式時間アルゴリズム を考
B
えても,以下の値は無視できる
8 July, 2015
小柴健史
Pr[ B( f (U n ),1n ) = b(U n )] −
1
2
f
b
は のハードコア述語という!
1
ハードコア関数
2
ハードコア述語とハードコア関数
• 計算が容易:
–  多項式時間アルゴリズム が存在して,任意
A
の入力 に対して は を出力する.ただ
x
A h( x )
し,関数 は長さ正則
h
• 識別困難:
–  どんな確率的多項式時間アルゴリズム を考
B
えても,以下の値は無視できる
• ハードコア述語は予想困難性の観点で定
義されている
• ハードコア関数は識別困難性の観点で定
義されている.
• にもかかわらず,ハードコア関数はハー
ドコア述語の一般化になっている
–  のとき,両者の定義は一致する
(n) = 1
! )) = 1]
Pr[B( f (U n ),h(U n )) = 1]− Pr[B( f (U n ),U (n)
f
h
は のハードコア関数という!
3
4
識別困難⇒予測困難
識別困難⇒予測困難
• 以下を仮定する
• アルゴリズム の成功確率を解析
A
1
Pr[ B( f (U n ),1 ) = b(U n )] > + ε
2
n
Pr[ A( f (U n ), h(U n )) = 1] − Pr[ A( f (U n ), U1 )) = 1]
f ( x), h( x)
• このとき, を入力とする以下の
アルゴリズム を考える
A
B( f ( x))
–  を走らせ, と一致していれば1
h( x )
= Pr[ B( f (U n )) = h(U n )] − Pr[ B( f (U n )) = U1 ]
≥
を出力し,そうでなければ0を出力する
–  は識別アルゴリズムになっている!
A
1
1
+ε − = ε
2
2
予測できるなら区別できる!
5
6
1
2015/07/11
予測困難⇒識別困難
よい入力の判定?
• 以下を仮定する
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), U1 )) = 1] > ε
f ( x)
• このとき, を入力とする以下のアルゴ
リズム を考える
A
–  p
の確率を見積もる
1 = Pr[ B( f ( x),1) = 1]
–  の確率を見積もる
p0 = Pr[ B( f ( x),0) = 1]
–  差が小さいときにはランダムに出力
p1 > p0
–  のとき1を出力,それ以外は0を出力
• (後で確かめるが)よい入力はそんな
に沢山はない
• 我々の目的は予測アルゴリズムの構成
–  予測の成功は,半分以上の確率で有意に予
測すること.
–  悪い入力に対して,予測確率が1/2を達成
すれば,なんとかなる.
–  「よい・悪い」の判定が必要.その判定に
もとづいてアルゴリズムの動作を変える.
7
予測困難⇒識別困難
8
予測困難⇒識別困難
まず,
Pr[ B( f (U n ), U1 )) = 1]
Pr[ B( f (U n ), h(U n )) = 1]
= Pr[U1 = h(U n )]Pr[ B( f (U n ), U1 )) = 1| U1 = h(U n )]
+ Pr[U1 = h(U n )]Pr[ B( f (U n ), U1 )) = 1| U1 = h(U n )]
(
±ε 2
>ε
)
= Pr[ B( f (U n ), h(U n )) = 1] + Pr[ B( f (U n ), h(U n )) = 1] 2
Pr[ B( f (U n ), U1 ) = 1]
>ε
>ε
なので
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), h(U n )) = 1] > 2ε
±ε 2
Pr[ B( f (U n ), h(U n )) = 1]
さらに,とりあえず,以下を仮定(★)
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), h(U n )) = 1] > 2ε
9
予測困難⇒識別困難
10
数え上げの議論
次に
乱数
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), h(U n )) = 1] > 2ε
1
は平均的な入力に対する評価なので,よい x
を
Pr[ B( f ( x), h( x)) = 1] − Pr[ B( f ( x), h( x)) = 1] > ε
を満たすものとする.このような は少な
x
くとも の割合存在する
ε
0
1
入力
2ε
面積:
11
12
2
2015/07/11
数え上げの議論
予測困難⇒識別困難
• よい に対して, x
p1 = Pr[ B( f ( x),1) = 1]
と p0 = Pr[ B( f ( x),0) = 1]
乱数
1
を精度 で見積もる
±ε 8
p0
• ( の)推定アルゴリズム
–  を 回実行し, と
B( f ( x), 0) k
B( f ( x), 0) = 1
なった回数を とおくとき,推定値は
s

p =s k
ε
0
ε
1 入力
2ε
面積:
0
13
推定アルゴリズムの評価
予測困難⇒識別困難
• よい では
p0 − p1 ≥ ε
x
• このとき
ε
p0 − 
p0 ≥
8
となる確率は極めて小さい! Hoeffding Bound:
• 高い確率で(確率 で) (1 − 2− n−1 )2 > 1 − 2− n
ε
ε
p0 − 
p0 <
p1 − 
p1 <
8
8
k
%
(
'
*
2 2
−2k
δ
*
Pr X − E[ X ] ≥ δ ≤ 2exp ' k
'
*
' ∑ (bi − ai ) *
& i=1
)
• 高い確率で,

p0 > 
p1
–  なら このとき予測値 = 0
p0 > p1


–  なら このとき予測値 = 1
p0 < p1
p0 < p1
X i ∈ [ai , bi ], X = ∑ X i k
i =1
(
)
k とおけばよい
= 32(n + 2) ε 2 log e
14
予測は正しい!
15
予測困難⇒識別困難
16
よい入力,わるい入力
Pr[ B( f ( x), h( x)) = 1]
• よい では,高い確率で
x
3ε

p0 − 
p1 >
4
• これを満たさないとき, が悪いと判断
x
よい入力の場合
+ε 2
+ε 4
–  判定しようがないのでランダムビットを出力
−ε 4
−ε 2
3ε

p0 − 
p1 >
4
悪い入力の場合
3ε

p0 − 
p1 ≤
4
グレーゾーンの場合
ε   5ε
< p0 − p1 ≤
4
4
高確率で正しい判定
17
Pr[ B( f ( x), h( x)) = 1]
18
3
2015/07/11
予測困難⇒識別困難
予測困難⇒識別困難
全体での評価する!
E:
推定アルゴリズムが失敗しない
• よい入力の場合
–  必ず予測フェーズに入り,その予測値は正し
い
• 悪い入力の場合
Pr[ A( f (U n )) = h(U n )]
–  必ず,ランダム予測を行う
= Pr[ E ]Pr[ A( f (U n )) = h(U n ) | E ]
• グレーゾーン入力の場合
+ Pr[¬E ]Pr[ A( f (U n )) = h(U n ) | ¬E ]
–  予測フェーズに入る場合もあれば,ランダム
予測する場合もある
–  予測フェーズに入った場合は,その予測値は
正しい
−n
≥ (1 − 2 ) Pr[ A( f (U n )) = h(U n ) | E ]
19
20
予測困難⇒識別困難
予測困難⇒識別困難
• よい入力の場合
Pr[ A( f ( x)) = h( x) | E, x ∈ G] = 1
• 悪い入力の場合
Pr[ A( f (U n )) = h(U n ) | E ]
= Pr[U n ∈ G ]Pr[ A( f (U n )) = h(U n ) | E ,U n ∈ G ]
Pr[ A( f ( x)) = h( x) | E, x ∈ B] = 1 2
+ Pr[U n ∈ B]Pr[ A( f (U n )) = h(U n ) | E ,U n ∈ B]
• グレーゾーン入力の場合
+ Pr[U n ∈ M ]Pr[ A( f (U n )) = h(U n ) | E ,U n ∈ M ]
Pr[ A( f ( x)) = h( x) | E, x ∈ M] ≥ 1 2
≥ ε + (1 − ε ) 2
=1 2+ε 2
21
22
予測困難⇒識別困難
予測困難⇒識別困難
まとめると,
以下の仮定(★)を思い出そう!
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), h(U n )) = 1] > 2ε
Pr[ A( f (U n )) = h(U n )]
≥ (1 − 2− n )(1 2 + ε 2) ≥ 1 2 + ε 3
実は,
Pr[ B( f (U n ), h(U n )) = 1] − Pr[ B( f (U n ), h(U n )) = 1] > 2ε
識別できるなら予測できる!
23
かもしれない.この場合,
Pr[ A( f (U n )) ≠ h(U n )] ≥ 1 2 + ε 3
A
が示せて, の結果を反転するアルゴリズ
ム を考えればよい.
A
24
4
2015/07/11
まとめ
• ハードコア述語の一般化:ハードコア関
数
• ハードコア関数の特殊ケースとハードコ
ア述語の等価性
次回
• ハードコア関数の構成方法
• XOR補題
25
5
Fly UP