Indistinguishability Obfuscation for RAM Programs and Succinct Randomized Encodings

© 2018 Society for Industrial and Applied Mathematics. We show how to construct indistinguishability obfuscation (\bfi/bfO) for RAM programs with bounded space, assuming/bfi/bfO for circuits and one-way functions, both with subexponential security. That is, given a RAM program whose computation requ...

Full description

Bibliographic Details
Main Authors: Bitansky, Nir (Author), Canetti, Ran (Author), Garg, Sanjam (Author), Holmgren, Justin (Author), Jain, Abhishek (Author), Lin, Huijia (Author), Pass, Rafael (Author), Telang, Sidharth (Author), Vaikuntanathan, Vinod (Author)
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Society for Industrial & Applied Mathematics (SIAM), 2021-11-08T20:25:00Z.
Subjects:
Online Access:Get fulltext
Description
Summary:© 2018 Society for Industrial and Applied Mathematics. We show how to construct indistinguishability obfuscation (\bfi/bfO) for RAM programs with bounded space, assuming/bfi/bfO for circuits and one-way functions, both with subexponential security. That is, given a RAM program whose computation requires space s(n) in the worst case for inputs of length at most n, we generate an obfuscated RAM program that, for inputs of size at most n, runs in roughly the same time as the original program, using space roughly s(n). The obfuscation process is quasi-linear in the description length of the input program and s(n). At the heart of our construction are succinct randomized encodings for RAM programs. We present two very different constructions of such encodings, each with its own unique properties. Beyond their use as a tool in obfuscation for RAM programs, we show that succinct randomized encodings are interesting objects in their own right. We demonstrate the power of succinct randomized encodings in applications such as publicly verifiable delegation, functional encryption for RAMs, and key-dependent security amplification.