用于sparse函数的非可延展混淆器制造技术

技术编号:17216095 阅读:31 留言:0更新日期:2018-02-08 02:02
描述了一种用于混淆计算机程序的系统。接收未受保护的计算机程序的敏感数据作为输入。使用随机预言机来代数地隐藏代表该敏感数据的一组多项式大小的点函数。系统输出内部隐藏该敏感数据的一组经混淆的指令。使用该组经混淆的指令将未受保护的计算机程序转换成受保护的、经混淆的计算机程序,经混淆的计算机程序接受该组多项式大小的点函数。将该经混淆的计算机程序写入非易失性计算机可读介质。

Non extendible obfuscation for sparse function

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提供了朴素模型中具有超多项式硬度的强伪随机函数的强点混淆。这样的程序很重要,因为其代表了对其它系统的基于密码的访问控制。然而,混淆仅针对点函数族实现,其中,与秘密值x相关联的点函数将字符串x'作为输入,并且如果x=x'则输出1;否则输出0。该工作的主要限制在于系统只能处理一个密码而不是很多。另外,参考文献4中公开的工作提供了如何混淆ROM中的一些类别的函数并以可组合的方式实现混淆。该工作考虑了针对图形访问函数类的混淆,这些函数是点函数的通用类,但不考虑混淆的非可延展性。参考文献5考虑了混淆的弱概念(被称为不可分辨性混淆(iO))中的多项式有序有界决策图(POBDD)的混淆。POBDD被用作非循环图,其顶点和边分别代表变量和二进制值。iO不保证电路的敏感信息的保护。最后,参考文献6提供了针对iO概念中所有多项式大小电路的通用混淆,其在加密多线性编码下满足较弱的安全形式。由于底层构建块,混淆方案是不切实际的,因为即使混淆简单的程序,经混淆的程序的大小也太大而无法在实践中部署。例如,针对16比特字符串相等性测试的经混淆的程序具有30千兆字节(GB),并且其执行时间超过30分钟。因此,不断需要用于混淆多项式数量的点而不是恒定数量的点的非可延展混淆器,并且还根据比现有方法更强的混淆概念来提供安全性。
技术实现思路
本专利技术涉及一种用于混淆计算机程序的系统,并且更具体地涉及一种用于混淆包含任何多项式大小的点函数组以保护计算机程序中的敏感信息的计算机程序的系统。该系统包括一个或更多个处理器和非暂时性计算机可读介质,该非暂时性计算机可读介质具有在其上编码的可执行指令,使得当被执行时,所述一个或更多个处理器执行多个操作。系统接收未受保护的计算机程序P的敏感数据作为输入。使用随机预言机来代数地隐藏表示敏感数据的一组多项式大小的点函数。输出一组内部隐藏敏感数据的经混淆的指令。该组经混淆的指令被用于将未受保护的计算机程序P转换成受保护的经混淆的计算机程序P',该经混淆的计算机程序P'接受该组多项式大小的点函数。经混淆的计算机程序P'被写到非易失性计算机可读介质。使用预言机来代数地隐藏计算机程序P的一组多项式大小的点函数,从而得到接受该组多项式大小的点函数的经混淆的计算机程序P'。该组多项式大小的点函数包含敏感信息,并且经混淆的计算机程序P'不易受对手攻击。在另一方面,防止对手学习该组多项式大小的点函数。在另一方面,防止对手将经混淆的计算机程序P'修改为另一个再混淆的计算机程序。在另一方面,利用输入来评估经混淆的计算机程序P',其中,如果输入是该组多项式大小的点函数中的一个,那么该经混淆的计算机程序P'将被评估为输出1,否则为0。在另一方面,本专利技术还包括一种用于使处理器执行本文所描述的操作的方法。最后,在另一方面,本专利技术还包括计算机程序产品,其包括存储在非暂时性计算机可读介质上的计算机可读指令,该计算机可读指令可由具有用于使处理器执行本文所述操作的处理器的计算机执行。附图说明从以下结合附图对本专利技术的各个方面的详细描述,本专利技术的目的、特征和优点将变得显而易见,其中:图1是描绘根据本专利技术的实施方式的用于混淆计算机程序的系统的组件的框图;图2是根据本专利技术的实施方式的计算机程序产品的图示;以及图3是示出根据本专利技术的实施方式的用于混淆计算机程序的系统的操作的流程图。具体实施方式本专利技术涉及一种用于混淆计算机程序的系统,并且更具体地涉及一种用于混淆包含任何多项式大小的点函数组以保护计算机程序中的敏感信息的计算机程序的系统。提出以下描述以使得本领域普通技术人员能够进行和使用本专利技术并将其并入特定应用的上下文中。在不同应用中的各种修改以及各种用途对于本领域技术人员将是显而易见的,并且本文定义的一般原理可以应用于广泛的方面。因此,本专利技术不旨在限于所提出的方面,而是符合与本文公开的原理和新颖特征相一致的最宽范围。在下面的详细描述中,阐述了许多具体细节,以便更全面地理解本专利技术。然而,对于本领域技术人员显而易见的是,可以实施本专利技术而不必限于这些具体细节。在其它情况下,为了避免模糊本专利技术,以框图形式而不是详细地示出公知的结构和装置。读者的注意力被引导到与本说明书同时提交并且与本说明书一起公开进行审查的所有论文和文件,并且所有这样的论文和文件的内容通过引用并入本文。除非另有明确说明,否则本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征可由起相同作用、等效或相似目的的另选特征来替代。因此,除非另有明确说明,所公开的每个特征都仅是一类等同或类似特征的一个示例。此外,权利要求中未明确说明用于执行指定功能的“装置”或用于执行特定功能的“步骤”的任何元素不被解释为如在35U.S.C第112节第6段中指定的“装置”或“步骤”条款。特别是,本文权利要求中“…的步骤”或“…的动作”的使用不旨在援引35U.S.C第112节第6段中的规定。请注意,如果使用的话,标签左、右、前、后、顶、底、向前、向后、顺时针和逆时针都仅出于方便的目的,并不意味着任何特定的固定方向。相反,它们用于反映对象的各个部分之间的相对位置和/或方向。因此,随着本专利技术的改变,上述标签可能改变其方向。在详细描述本专利技术之前,首先提供在说明书中使用的引用的文献参考的列表。接下来,提供对本专利技术的各个主要方面的描述。接下来是提供本专利技术的概述的介绍。最后,提供本专利技术的具体细节,以给出对特定方面的理解。(1)并入的参考文献的列表在本申请中引用和并入以下参考文献。为了清晰和方便起见,本文将参考文献列为读者的中心资源。以下参考文献通过引用并入本文,如同完全包括在本文中。参考文献通过参考相应的参考文献号在本申请中引用,如下所列:1.RanCanettiandMayankVaria.2009.No本文档来自技高网
...
用于sparse函数的非可延展混淆器

【技术保护点】
一种用于混淆计算机程序的系统,所述系统包括:一个或更多个处理器和非暂时性计算机可读介质,所述非暂时性计算机可读介质具有在其上编码的可执行指令,使得当所述可执行指令被执行时,所述一个或更多个处理器执行以下操作:接收未受保护的计算机程序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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1