130 likes | 267 Views
Information Security – Theory vs. Reality 0368-4474-01, Winter 2012-2013 Lecture 10: Garbled circuits and obfuscation. Eran Tromer Slides credit: Boaz Barak. Recall our high-level goal. Ensure properties of a distributed computation when parties are mutually untrusting ,
E N D
Information Security – Theory vs. Reality 0368-4474-01, Winter 2012-2013Lecture 10: Garbled circuits and obfuscation Eran TromerSlides credit: Boaz Barak
Recall our high-level goal Ensure properties of adistributed computationwhen parties aremutually untrusting, faulty, leaky&malicious.
Garbled circuits: variants of functionality(summary of whiteboard discussion) “Honest-but-curious” model • Offline-online evaluation for public circuitsCircuit U is public, Alice chooses x, Bob learns U(x) and nothing else. • Offline-online evaluation for secret circuitsAlice chooses C and x, Bob learns C(x) and nothing else.Obtained from previous by making U a universal circuit and plugging in the description of C.
Garbled circuits: construction(summary of whiteboard discussion) The garbled circuits Choose random keys for each value for each wire. Output: • Gate tables (double-encryption of output keys under input keys, permuted) • Keys of output wires The garbled inputs Keys for chosen values in input wires Evaluation Gate-by-gate, using double decryption.
What Is an Obfuscator? • An obfuscator: an algorithm O such that for any program P , O(P) is a program such that: • O(P) has the same functionality as P • O(P) is infeasible to analyze / “reverse-engineer”. Intuition: an obfuscator should provide a “virtual black-box” in the sense that giving someone O(P) should be equivalent to giving her a black-box that computes P.
Why might obfuscators exist? • Practical Reasons: • Understanding code is very difficult • Obfuscation used (successfully?) in practice for security purposes • Theoretical Reasons: • All canonical hard problems are problems of reverse engineering: SAT, HALTING • Rice’s Theorem: You can’t look at the code (Turing Machine description) of a function and find out a non-trivial property of it.
Applications for obfuscators • “Digital right management” • Converting symmetric-key encryption to asymmetric-key encryption • Removing Random Oracles for specific natural protocols. • Give someone ability to sign/decrypt a restricted subset of the message space.
Defining obfuscators • Definition 1 An algorithm O is an obfuscatorif for any circuit C: • (functionality) O(C)~ C(i.e., O(C) computes the same function as C) • (polynomial slowdown) |O(C)| p(|C|) for some polynomial p( ). • We say that O is efficient if it runs in polynomial time.
Defining security “Anything that can be learned from the obfuscated form, could have been learned by merely observing the circuit’s input-output behavior (i.e., by treating the circuit as a black-box)’’ A Natural Formal Interpretation: For any adversary A there’s a simulator S such that for any circuit C A(O(C)) C.I. SC(1|C|) This definition is impossible to meet!
Defining security (2) Relaxation: simulator should only compute a specific function (even predicate) rather than generate an indistinguishable output. Weak Obfuscators: "p.p.t. adversary A" (poly time) predicate p:{0,1}*{0,1}$ S such that for all circuits C Pr[ A(O(C)) = p(C) ]£Pr[ SC(1|C|) = p(C) ] + negl(|C|) Note: may be too weak for desired applications, but still we’ll prove that it is impossible to meet.
Inherently Unobfuscatable Functions Definition 2 A (efficiently computable) function ensemble { Ft }( Ft:{0,1}|t|{0,1}|t| ) is an unobfuscatable function ensemble (UF) if it satisfies: There’s a poly time predicate p:{0,1}*{0,1} such that: • (a) (p easy to compute with a circuit)There’s a p.p.t A such that for any circuit C such that C ~ Ft : A(C) = p(Ft) • (b) (p hard to compute with black-box access)For any p.p.t S , for random t {0,1}n : • Pr [ SFt (1n) = p(t) ] £ ½ + negl(n) Theorem 1: unobfuscatable functions “very weak” obfuscators.
Results(summary of whiteboard discussion) • There exist unobfuscatable functions (if there exist OWFs). • <proof intuition> • Efficient (even weak) obfuscators do not exist. • Moreover: • There exist unobfuscatable encryption schemes (if any exist). • There exist unobfuscatable signature schemes (if any exist). • Natural relaxations of obfuscation (e.g., approximate correctness) are still impossible. • State of the art • Constructions for very simple classes (e.g., point functions) • In practice, heuristics to slow down reverse engineering.