A system used to confuse computer programs. Receive sensitive data from unprotected computer programs as input. A random oracle is used to hide a set of polynomial size points that represent the sensitive data in algebra. The system outputs a group of confusing instructions that hide the sensitive data inside. Using the group of confused instructions, the unprotected computer program is converted into a protected and confused computer program, and the point function of the polynomial size is accepted by the confused computer program. The confusing computer program is written into a nonvolatile computer readable medium.
【技术实现步骤摘要】
【国外来华专利技术】用于sparse函数的非可延展混淆器相关申请的交叉引用这是于2015年7月9日在美国提交的标题为“Non-MalleableObfuscatorforaPolynomialSetofSparseFunctions”的美国临时申请No.62/190,435的非临时申请,该临时申请通过引用整体并入本文
本专利技术涉及一种用于混淆计算机程序的系统,并且更具体地涉及一种用于混淆包含任何多项式大小的(polynomial-size)点函数组以保护计算机程序中的敏感信息的计算机程序的系统。
技术介绍
在软件开发中,混淆是指创建混淆的代码(即难以理解的源代码或机器代码)的行为。程序员可能会故意混淆代码来掩盖其目的或其逻辑,以防止篡改、阻止逆向工程或作为阅读源代码的人的难题或娱乐挑战。称为混淆器的程序使用各种技术将可读代码转换为混淆的代码。以下是混淆算法中的现有技术。参考文献1(参见下文提供的参考文献列表)中描述的工作考虑了非可延展加密混淆的概念。其为多点程序类提供了非可延展混淆的第一结构,该结构接受来自输入域的恒定数量的点,并通过访问随机预言机(RandomOracle)(即,在随机预言机模型(ROM)中)对这些点进行混淆。此外,参考文献2中描述的工作考虑了加密混淆的概念。该工作提供了针对朴素模型(plainmodel)(即,不在随机预言机模型(ROM)中)中的一般函数的加密混淆的强概念的强不可能结果。该工作不考虑非可延展性。参考文献3提供了朴素模型中具有超多项式硬度的强伪随机函数的强点混淆。这样的程序很重要,因为其代表了对其它系统的基于密码的访问控制。然而,混淆仅针对 ...
【技术保护点】
一种用于混淆计算机程序的系统,所述系统包括:一个或更多个处理器和非暂时性计算机可读介质,所述非暂时性计算机可读介质具有在其上编码的可执行指令,使得当所述可执行指令被执行时,所述一个或更多个处理器执行以下操作:接收未受保护的计算机程序P的敏感数据作为输入;使用随机预言机代数地隐藏代表所述敏感数据的一组多项式大小的点函数;输出内部隐藏所述敏感数据的一组经混淆的指令;使用所述一组经混淆的指令将所述未受保护的计算机程序P转换成受保护的、经混淆的计算机程序P',所述经混淆的计算机程序P'接受所述一组多项式大小的点函数;以及由所述一个或更多个处理器将所述经混淆的计算机程序P'写入非易失性计算机可读介质。
【技术特征摘要】
【国外来华专利技术】2015.07.09 US 62/190,4351.一种用于混淆计算机程序的系统,所述系统包括:一个或更多个处理器和非暂时性计算机可读介质,所述非暂时性计算机可读介质具有在其上编码的可执行指令,使得当所述可执行指令被执行时,所述一个或更多个处理器执行以下操作:接收未受保护的计算机程序P的敏感数据作为输入;使用随机预言机代数地隐藏代表所述敏感数据的一组多项式大小的点函数;输出内部隐藏所述敏感数据的一组经混淆的指令;使用所述一组经混淆的指令将所述未受保护的计算机程序P转换成受保护的、经混淆的计算机程序P',所述经混淆的计算机程序P'接受所述一组多项式大小的点函数;以及由所述一个或更多个处理器将所述经混淆的计算机程序P'写入非易失性计算机可读介质。2.根据权利要求1所述的系统,其中,所述一个或更多个处理器还执行防止对手学习所述一组多项式大小的点函数的操作。3.根据权利要求2所述的系统,其中,所述一个或更多个处理器还执行防止对手将所述经混淆的计算机程序P'修改为另一个经再混淆的计算机程序的操作。4.根据权利要求3所述的系统,其中,所述一个或更多个处理器还执行用输入来评估所述经混淆的计算机程序P'的操作,其中,如果所述输入是所述一组多项式大小的点函数中的一个,则所述经混淆的计算机程序P'将被评估为输出1,否则被评估为输出0。5.根据权利要求1所述的系统,其中,在所述经混淆的计算机程序P'的情况下,所述一个或更多个处理器还执行防止对手将所述经混淆的计算机程序P'修改为另一个经再混淆的计算机程序的操作。6.根据权利要求1所述的系统,其中,所述一个或更多个处理器还执行用输入来评估所述经混淆的计算机程序P'的操作,其中,如果所述输入是所述一组多项式大小的点函数中的一个,则所述经混淆的计算机程序P'将被评估为输出1,否则被评估为输出0。7.一种用于混淆计算机程序的计算机实现的方法,该方法包括:使一个或更多个处理器执行存储在非暂时性存储器上的指令的动作,使得在执行时,所述一个或更多个处理器执行以下操作:接收未受保护的计算机程序P的敏感数据作为输入;使用随机预言机代数地隐藏代表所述敏感数据的一组多项式大小的点函数;输出内部隐藏所述敏感数据的一组经混淆的指令;使用所述一组经混淆的指令将所述未受保护的计算机程序P转换成受保护的、经混淆的计算机程序P',所述经混淆的计算机程序P'接受所述一组多项式大小的点函数;以及由所述一个或更多个处理器将所述经混淆的计算机程序P'写入非易失性计算机可读介质。8.根据权利要求7所述的方法,其中,所述一个或更多个处理器还执行防止对手学习所述一组多项式大小的点函数的操作。9.根据权利要求8所述的方法,其中,所述一个或更多个处理器还执行防止对手将所述经混淆的计算机程序P'修改为另一...
【专利技术属性】
技术研发人员:K·埃尔·德弗拉维,赵忠原,D·C·爱朋,J·卡茨,
申请(专利权)人:赫尔实验室有限公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。