首页> 外文期刊>Journal of the Association for Computing Machinery >On the (Im)possibility of Obfuscating Programs
【24h】

On the (Im)possibility of Obfuscating Programs

机译:关于混淆程序的(不可能)可能性

获取原文
获取原文并翻译 | 示例
       

摘要

Informally, an obfuscator O is an (efficient, probabilistic) "compiler" that takes as input a program (or circuit) P and produces a new program O(P) that has the same functionality as P yet is "unintelligible" in some sense. Obfuscators, if they exist, would have a wide variety of cryptographic and complexity-theoretic applications, ranging from software protection to homomorphic encryption to complexity-theoretic analogues of Rice's theorem. Most of these applications are based on an interpretation of the "unintelligibility" condition in obfuscation as meaning that O(P) is a "virtual black box," in the sense that anything one can efficiently compute given O(P), one could also efficiently compute given oracle access to P. In this work, we initiate a theoretical investigation of obfuscation. Our main result is that, even under very weak formalizations of the above intuition, obfuscation is impossible. We prove this by constructing a family of efficient programs V that are unobfuscatable in the sense that (a) given any efficient program P' that computes the same function as a program P e V, the "source code" P can be efficiently reconstructed, yet (b) given oracle access to a (randomly selected) program P e V, no efficient algorithm can reconstruct P (or even distinguish a certain bit in the code from random) except with negligible probability. We extend our impossibility result in a number of ways, including even obfuscators that (a) are not necessarily computable in polynomial time, (b) only approximately preserve the functionality, and (c) only need to work for very restricted models of computation (TC~0). We also rule out several potential applications of obfuscators, by constructing "unobfuscatable" signature schemes, encryption schemes, and pseudorandom function families.
机译:非正式地,混淆器O是一个(高效,概率的)“编译器”,其将程序(或电路)P作为输入,并生成具有与P相同功能但在某种意义上“难以理解”的新程序O(P)。 。混淆器(如果存在)将具有各种各样的密码学和复杂性理论应用程序,从软件保护到同态加密再到莱斯定理的复杂性理论类似物。这些应用大多数基于对混淆中“不可理解”条件的解释,即O(P)是“虚拟黑匣子”,从某种意义上说,任何人都可以有效地计算给定的O(P),也可以在给定Oracle对P的访问权限的情况下有效地计算。在这项工作中,我们开始进行混淆的理论研究。我们的主要结果是,即使在上述直觉的形式化非常薄弱的​​情况下,混淆也是不可能的。我们通过构造一系列有效的程序V来证明这一点,这些有效的程序V在以下意义上是不模糊的:(a)给定任何与程序P e V具有相同功能的有效程序P',可以有效地重构“源代码” P,然而(b)赋予oracle访问(随机选择的)程序P e V的机会,除非概率可以忽略,否则没有有效的算法可以重建P(甚至从随机中区分出代码中的某个位)。我们以多种方式扩展了不可能的结果,甚至包括混淆器,这些混淆器(a)不一定可以在多项式时间内进行计算,(b)仅大致保留功能,并且(c)仅需要用于非常受限的计算模型( TC〜0)。通过构造“不可混淆”签名方案,加密方案和伪随机函数族,我们还排除了混淆器的几种潜在应用。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号