Def (Obfuscator)
F : a family of functions
a PPT O is an obfuscator of F if
- 【(Statsitical) Approximate Functionality】
- ∀F ∈ F, Prcoins of O[ ∃x, O(F)(x) ≠ F(x) ] ≦ ε(n). (普通のO(F)はパーフェクト)
- 【Polynomial Slowdown】
- ∃p: poly, ∀F ∈ F, O(F) runs in time ≦ p(time(F)).
- 【Virtual Black-box property】
- ∀A : nonuniform PPT, ∀p: poly, ∃S: nonuniform PPT, ∀F ∈ F,
- | Pr[ b ← A(O(F)) : b = 1 ] - Pr[b ← SF : b = 1] | ≦ 1/p(n). (n >> 0)
Theorem (Obfuscator)
Obfuscators do not exist.
Proof Idea
Suppose ∃ O : obfuscator.
Take ∀α, β ∈ {0,1}k.
- Cα, β(x) := return β if x = α, or 0k otherwise.
- Dα, β(C) := return 1 if C(α) = β, or 0 otherwise.
Consider an adversary A doing
Then
- Pr[ A(O(Cα, β), O(Dα, β)) = 1 ] = 1.
So, especially when α ← {0,1}k, β≠0k,
- 1 ≒ Pr[ SCα, β, Dα, β = 1 ]
- ≒ Pr[ SZk, Dα, β = 1 ]
- Zk : a TM that always output 0k
- ≒ Pr[ A(O(Zk), O(Dα, β)) = 1 ] ≒ 0.
Contradiction!
Construction in the random oracle model
Fx denotes a point function that outputs 1 for x.
Fx, y denotes a point function that outputs y for x.
Let R be a random oracle.
O(Fx) :
- z = R(x)
- return "on input y, return 1 if R(y) = z, or 0 otherwise".
O(Fx, y) :
- r ← {0,1}n
- z1 = R1(x,r)
- z2 = R2(x,r) + y
- return "on input a, return z2 + R2(a, r) if R1(a, r) = z1."
Def (Computational approximate functionality)
F : a family of functions
a PPT O is an obfuscator of F with computational approximate functionality if (Polynomial Slowdown), (Vritual Black-box property) and
- ∀F ∈ F, ∀A : a nonuniform PPT, Pr[ x ← A(O(F)) : O(F)(x) ≠ F(x) ] ≦ ε(n).
Def (Statistical Perfect One-Way Function)
A probabilistic function family H = {Hk}k is a statistically perfect one-way (POW) function if
- 【Efficient Verification】
- ∃VH: PT, ∀k ∈ Kn, ∀x ∈ {0,1}n, ∀r ∈ {0,1}n, VH(x, Hk(x, r)) = 1. (それら以外では0)
- 【Collision Resistance】
- ∀A: nonuniform PPT,
- Pr[ k ← Kn, (x1, x2, y) ← A(k) : x1 ≠ x1, VH(x1, y) = VH(x2, y) = 1 ] ≦ ε(n).
- 【Statistical 2-indistinguishability】
- ∀X = {Xn}: well-spread, ∀k ∈ Kn,
- Δ( (Hk(Xn, Rn1), Hk(Xn, Rn2)), (Hk(Un1, Rn1), Hk(Un2, Rn2)) ) ≦ ε(n).
Theorem (Obfuscator with computational approximate functionality)
Obfuscators with computational approximate functionality exist for point functions.
Construction
Let H be a POW function.
O(Fx) :
- z = H(x)
- return "on input y, return 1 if VH(y, z) = 1, or 0 otherwise".
O(Fx, y) : // t = |y|
- r1, ... , rt+1 ← {0,1}n
- u1 = O(Fx; r1)
- i ∈ [1..t]:
- zi+1 = x if yi = 1, or uniform if yi = 0
- ui+1 = O(Fzi+1; ri+1)
- return "on input a,
- u1(a) =? 0: return 0
- else i ∈ [2..(t+1)]: yi-1 = ui(a)
- return y = y1...yt."
最終更新:2011年09月02日 18:15