Paper 2014/776

How to Obfuscate Programs Directly

Joe Zimmerman

Abstract

We propose a new way to obfuscate programs, using composite-order multilinear maps. Our construction operates directly on straight-line programs (arithmetic circuits), rather than converting them to matrix branching programs as in other known approaches. This yields considerable efficiency improvements. For an NC1 circuit of size $s$ and depth $d$, with $\n$ inputs, we require only $O(d^2s^2 + \n^2)$ multilinear map operations to evaluate the obfuscated circuit---as compared with other known approaches, for which the number of operations is exponential in $d$. We prove virtual black-box (VBB) security for our construction in a generic model of multilinear maps of hidden composite order, extending previous models for the prime-order setting. Our scheme works either with "noisy" multilinear maps, which can only evaluate expressions of degree $\lambda^c$ for pre-specified constant $c$; or with "clean" multilinear maps, which can evaluate arbitrary expressions. The "noisy" variant can be instantiated at present with the Coron-Lepoint-Tibouchi scheme, while the existence of "clean" maps is still unknown. With known "noisy" maps, our new obfuscator applies only to NC1 circuits, requiring the additional assumption of FHE in order to bootstrap to P/poly (as in other obfuscation constructions). From "clean" multilinear maps, on the other hand (whose existence is still open), we present the first approach that would achieve obfuscation for P/poly directly, without FHE. We also introduce the concept of succinct obfuscation, in which the obfuscation overhead size depends only on the length of the input and of the secret part of the circuit. Using our new techniques, along with the assumption that factoring is hard on average, we show that "clean" multilinear maps imply succinct obfuscation for P/poly. For the first time, the only remaining obstacle to implementable obfuscation in practice is the noise growth in known, "noisy" multilinear maps. Our results demonstrate that the question of "clean" multilinear maps is not a technicality, but a central open problem.

Metadata
Available format(s)
PDF
Publication info
Preprint. MINOR revision.
Keywords
Obfuscation
Contact author(s)
jzim @ cs stanford edu
History
2014-10-01: revised
2014-10-01: received
See all versions
Short URL
https://ia.cr/2014/776
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2014/776,
      author = {Joe Zimmerman},
      title = {How to Obfuscate Programs Directly},
      howpublished = {Cryptology {ePrint} Archive, Paper 2014/776},
      year = {2014},
      url = {https://eprint.iacr.org/2014/776}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.