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
  • A(C, D) := return D(C).

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