New

Browser Tokens

Let your AI agents pay anywhere, without ever seeing card data

Evervault logo

On the (Im)possibility of Obfuscating Programs

Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, Ke Yang — Published

The Papers below are about program obfuscation. The aim of program obfuscation is to make a program unintelligible while preserving its functionality. “Unintelligible” means making a program provably secure against attackers, and “preserving its functionality” means that the obfuscated program remains fully executable and has the same input-output behavior as the original program.

Program obfuscation enables one party, A, to give another party, B, a program that B can run — without letting B figure out how the programs work.

Program obfuscation was first introduced in 2001 in On the (Im)possibility of Obfuscating Programs; specifically, this Paper proved the impossibility of virtual black box obfuscation, and introduced the weaker indistinguishability obfuscation (IO). A revised version of the paper was published in 2010.

Other papers related to program obfuscation include Candidate Indistinguishability Obfuscation and Functional Encryption for all circuits, which proposed a candidate IO scheme; How to Use Indistinguishability Obfuscation: Deniable Encryption, and More, which introduces the concept of punctured programs applied to IO, and resolves the deniable encryption problem; and Indistinguishability Obfuscation from Well-Founded Assumptions, which shows how to construct IO based on well-founded cryptographic assumptions. Bruce Schneier has provided caveats about the latter paper.

Evervault logo mark
Evervault logo mark

Subscribe to our newsletter

Sign up to get access to the latest product insights.

© 2026 Evervault Inc. All rights reserved.