A note on obfuscation for cryptographic functionalities of secret-operation then public-encryption
TAMC'11 Proceedings of the 8th annual conference on Theory and applications of models of computation
A general and efficient obfuscation for programs with tamper-proof hardware
ISPEC'11 Proceedings of the 7th international conference on Information security practice and experience
On obfuscating programs with tamper-proof hardware
Inscrypt'10 Proceedings of the 6th international conference on Information security and cryptology
A note on (im)possibilities of obfuscating programs of zero-knowledge proofs of knowledge
CANS'11 Proceedings of the 10th international conference on Cryptology and Network Security
Black-box obfuscation for d-CNFs
Proceedings of the 5th conference on Innovations in theoretical computer science
Hi-index | 0.00 |
Loosely speaking, an obfuscation O of a function f should satisfy two requirements: firstly, using O, it should be possible to evaluate f; secondly, O should not reveal anything about f that cannot be learnt from oracle access to f alone. Several definitions for obfuscation exist. However, most of them are very hard to satisfy, even when focusing on specific applications such as obfuscating a point function (e.g., for authentication purposes). In this work, we propose and investigate two new variants of obfuscation definitions. Our definitions are simulation-based (i.e., require the existence of a simulator that can efficiently generate fake obfuscations) and demand only security on average (over the choice of the obfuscated function). We stress that our notions are not free from generic impossibilities: there exist natural classes of function families that cannot be securely obfuscated. Hence we cannot hope for a general-purpose obfuscator with respect to our definition. However, we prove that there also exist several natural classes of functions for which our definitions yield interesting results. Specifically, we show that our definitions have the following properties: Usefulness: -- Securely obfuscating (the encryption function of) a secure private-key encryption scheme yields a secure public-key encryption scheme. Achievability: -- There exist obfuscatable private-key encryption schemes. Also, a point function chosen uniformly at random can easily be obfuscated with respect to the weaker one (but not the stronger one) of our definitions. (Previous work focused on obfuscating point functions from arbitrary distributions.) Generic impossibilities: -- There exist unobfuscatable private-key encryption schemes. Furthermore, pseudorandom functions cannot be obfuscated with respect to our definitions. Our results show that, while it is hard to avoid generic impossibilities, useful and reasonable obfuscation definitions are possible when considering specific tasks (i.e., function families).