On the (Im)possibility of Obfuscating Programs 2: Without the Size 1^|M| a Simulator with Oracle Access to ⟨M⟩ Cannot Decide Every Decidable Promise Problem Closed under Functional EquivalenceResearch Paper
Motivation
Barak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan and Yang (J. ACM 59(2), 2012) proved that virtual-black-box obfuscation is impossible in general: there are programs from which any obfuscated copy leaks something that oracle access to the program does not. The definition being refuted asks that whatever can be computed from the obfuscated code can also be computed by a simulator that only has oracle access to the program and is told an upper bound on its size.
Appendix A of the paper studies the computability analogue of this definition, where running time is unbounded. Rice's theorem says that no non-trivial property of the function computed by a Turing machine is decidable. The appendix asks a relative version: if a property of programs depends only on the computed function and is decidable from the code on a promise, can it also be decided from black-box access alone? Theorem A.2 answers yes when the simulator is given the size . Theorem A.4, the goal of this mission, shows that the size cannot be dropped. The result says which part of the simulator's interface is essential: an upper bound on program length is needed already in the computability setting, not only to pay for running time.
Setting
A machine is a one-tape Turing machine over the tape alphabet , with the blank, and with states ; state is initial. In state reading symbol the machine either halts or moves to a new state and performs one action (move left, move right, or write a symbol). One such transition is one step. The size is the number of states.
Inputs are natural numbers in unary: input is the tape , so . When halts, its output is the number of consecutive s starting at the head. The computed function is defined where halts. The step-bounded function is
A promise problem is a pair of disjoint sets of machines. It is closed under if implies and . It is decidable if a program reading the description outputs on and on ; outside , may diverge.
An oracle machine may query : it asks and receives . is its output with this oracle and no input. In particular does not know .
Conjecture A.3 (Rice's theorem, third generalization) asserts: for every promise problem closed under and decidable, there is an oracle machine with
The proof uses the description complexity of a partial function, .
Formalization targets
Goal: Theorem A.4
There is a decidable promise problem closed under that no oracle machine without the size can decide. The witness is
Milestones, in the order of the paper's proof
- is closed under .
- .
- is decidable.
- The machine that reads its input and returns satisfies for and otherwise, and .
- If , there is such that every agreeing with on all with also has .
- For all some machine computes (for , , ) and has the same step profile as on all .
- For every some has , so machines computing lie in .
Significance
The result. Theorem A.4 separates two interfaces for a simulator. With , every decidable promise problem closed under is decided from black-box access (Theorem A.2). Without it, some are not. The size bound in the virtual-black-box definition is therefore doing real work even when complexity is ignored, and any computability-theoretic notion of obfuscation must hand the simulator a bound on the program's length.
Formalizing it. The theorem is proved in the paper in a few lines, and the proof rests on facts the paper does not argue: that a halting oracle computation reads only finitely many oracle values, that a machine with a prescribed function and a prescribed running time on short inputs exists, and that some has description complexity above . The paper says only "Let r be a string of Kolmogorov complexity 2n"; the counting argument behind it is left implicit. No machine-checked proof of Theorem A.4 or of Theorem A.2 is known to exist. This mission produces one in a model with literal step counts, together with reusable statements about step-bounded Turing machines and the use principle for oracle programs.
Difficulty
The obvious attempt at Conjecture A.3 is to search for a machine consistent with the observed values of and run on it. Without a size bound the search space is infinite, and a finite prefix of never pins down . The difficulty of the formal proof is elsewhere. It has to build as an actual Turing machine with an exact step count on short inputs, and to prove that its description complexity exceeds . Both need the step semantics to be exact. A fuel-based semantics in which larger programs need more fuel on the same input does not support the construction of .
Formalization scope
Machines are Mathlib's Post–Turing machines Turing.TM0.Machine Bool (Fin (q+1)), with the blank false and initial state 0. is TM0.eval followed by the head read-out; iterates TM0.step at most times. is the number of states, so there are finitely many machines of each size. Inputs are unary, . This is forced, because the proof compares inputs both with numbers (, ) and with lengths (, ). The paper's string is a natural number. The description is the encoding of and the transition table, and the decider is a Mathlib Nat.Partrec.Code acting on it. is sInf over , which would be for a function no machine computes; that case does not arise for , and milestone 7 asserts outright.
Oracle machines are the published uniform oracle programs FriedbergMuchnik.Program with semantics oracleEval. A query is coded Nat.pair t x, and the answers and are coded and . runs on the fixed input .
The simulator is a single program chosen before , and it only sees the values of it queries. A formalization in which is an arbitrary function of the whole oracle, or receives , would make the goal false, and one in which the oracle is changes the statement. Both are excluded here.
Needed infrastructure: computability of simulating a TM0 machine from its description (for milestone 3), the use principle for oracleEval with a total oracle (milestone 5), explicit construction and step analysis of and (milestones 4 and 6), and a counting bound on machines of bounded size (milestone 7). The first two are reusable beyond this mission. Proofs of individual milestones are welcome independently.
Selected references
- B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. Vadhan, K. Yang, On the (Im)possibility of Obfuscating Programs, Journal of the ACM 59(2), 2012. https://doi.org/10.1145/2160158.2160159 (Appendix A, Conjecture A.3 and Theorem A.4, p. A:42 of the author's copy).
- H. G. Rice, Classes of recursively enumerable sets and their decision problems, Transactions of the AMS 74(2), 1953. https://doi.org/10.1090/S0002-9947-1953-0053041-6