Paper 2022/732

Structure-Preserving Compilers from New Notions of Obfuscations

Matteo Campanelli, Protocol Labs
Danilo Francati, Aarhus University
Claudio Orlandi, Aarhus University

The dream of software obfuscation is to take programs, as they are, and then compile them into obfuscated versions that hide their secret inner workings. In this work we investigate notions of obfuscations weaker than virtual black-box (VBB) but which still allow obfuscating cryptographic primitives preserving their original functionalities as much as possible. In particular we propose two new notions of obfuscations, which we call oracle-differing-input obfuscation (odiO) and oracle-indistinguishability obfuscation (oiO). In a nutshell, odiO is a natural strengthening of differing-input obfuscation (diO) and allows obfuscating programs for which it is hard to find a differing-input when given only oracle access to the programs. An oiO obfuscator allows to obfuscate programs that are hard to distinguish when treated as oracles. We then show applications of these notions, as well as positive and negative results around them. A few highlights include: – Our new notions are weaker than VBB and stronger than diO. – As it is the case for VBB, we show that there exist programs that cannot be obfuscated with odiO or oiO. – Our new notions allow to compile several flavours of secret key primitives (e.g., SKE, MAC, designated verifier NIZK) into their public key equivalent (e.g., PKE, signatures, publicly verifiable NIZK) while preserving one of the algorithms of the original scheme (function-preserving), or the structure of their outputs (format-preserving).

Available format(s)
Publication info
obfuscation compilers
Contact author(s)
matteo @ protocol ai
dfrancati @ cs au dk
orlandi @ cs au dk
2022-06-08: approved
2022-06-08: received
See all versions
Short URL
Creative Commons Attribution


      author = {Matteo Campanelli and Danilo Francati and Claudio Orlandi},
      title = {Structure-Preserving Compilers from New Notions of Obfuscations},
      howpublished = {Cryptology ePrint Archive, Paper 2022/732},
      year = {2022},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.