Cryptology ePrint Archive: Report 2014/222

The most efficient previous construction of a core obfuscator, due to Barak, Garg, Kalai, Paneth, and Sahai (Eurocrypt 2014), required the maximum number of levels of multilinearity to be O(\ell s^{3.64}), where 's' is the size of the Boolean formula to be obfuscated, and \ell is the number of input bits to the formula. In contrast, our construction only requires the maximum number of levels of multilinearity to be roughly \ell s, or only s when considering a keyed family of formulas, namely a class of functions of the form f_z(x)=\phi(z,x) where \phi is a formula of size s. This results in significant improvements in both the total size of the obfuscation and the running time of evaluating an obfuscated formula.

Our efficiency improvement is obtained by generalizing the class of branching programs that can be directly obfuscated. This generalization allows us to achieve a simple simulation of formulas by branching programs while avoiding the use of Barrington's theorem, on which all previous constructions relied. Furthermore, the ability to directly obfuscate general branching programs (without bootstrapping) allows us to efficiently apply our construction to natural function classes that are not known to have polynomial-size formulas.