编译设备和方法技术

技术编号:26045211 阅读:44 留言:0更新日期:2020-10-23 21:25
一些实施例涉及一种被配置用于选择保护性变换以改善计算机程序的安全性的编译设备(100)。所述编译设备被配置为将保护性变换分配给所述数据流图的部分,并且至少从满足所述安全性和/或所述性能目标的所述数据流图和所分配的保护性变换获得所述计算机程序表示的编译。

【技术实现步骤摘要】
【国外来华专利技术】编译设备和方法
本专利技术涉及一种编译设备、一种编译方法以及一种计算机可读介质。
技术介绍
由程序所使用或处理的数据能够具有高的价值。例如:允许实施给定功能的机器学习算法使用例如在机器学习过程期间学习到的机器学习模型的非常特定的权重。对所述程序的逆向工程能够揭示那些权重,使得攻击者能够容易地复制或改善算法功能,而无需访问被用于训练机器学习算法或计算力以实现训练过程的数据。类似地,一些应用利用秘密数据(诸如秘密密钥)来计算。保护那些密钥免于未经授权的使用是重要的。存在用于保护计算机程序免于可能揭露秘密信息的逆向工程的各种方式。例如,各种已知的混淆方法使得难以跟随计算机程序中的数据流。此外,编码可以被应用于计算机程序所作用于的数据,例如变量。试图对这样的受保护程序进行逆向工程的攻击者不知道程序作用于哪些数据。例如,可以使用各种白盒编码。例如,完全同态加密能够被用于保护所述算法。然而,这些编码技术到程序的自动化应用具有风险。然而,这些技术到程序的直接应用不是简单的。一方面,编码到整个程序的应用能够导致大的性能惩罚;另一方面,更不安全编码的应用能够导致安全风险。在US2003221121A1中描述了已知的编译器。已知的编译器保护软件免于窜改和逆向工程。程序的数据流被变换,使得可观察的操作与原始软件代码的意图分离。意图是攻击者将发现难以通过观察代码的执行来理解和解码数据流。
技术实现思路
将有利的是:具有自动地确定要在受保护的程序中使用的保护或者至少在其中进行辅助的设备和方法。为了实现这些和/或其他目的,提出了一种被配置用于选择保护性变换以改善计算机程序的安全性的编译设备。所述编译设备包括:输入接口,其被布置为接收计算机程序表示,处理器电路,其被配置为:从所述计算机程序表示中获得数据流图表示,反复地:将保护性变换分配给所述数据流图的部分,所述保护性变换选自可用保护性变换的列表,针对所述数据流图(200)和所分配的保护性变换来确定性能水平和安全性水平,如果所述性能水平和所述安全性水平满足安全性和/或性能目标,那么终止对保护性变换的所述分配,至少从满足所述安全性和/或所述性能目标的所述数据流图和所分配的保护性变换获得所述计算机程序表示的编译。存在各种类型的可用保护性变换,其中的一些给出比其他更好的保护,其中的一些需要比其他更多的资源,例如,其更好或更坏地执行。因为针对性能和安全性尝试并且评估不同的保护性变换,所以进行经改善的选择。所述编译设备是电子设备,例如,所述编译设备可以是计算机、服务器、台式计算机、膝上型计算机等。所述编译设备可以与其他编程工具或另外的编译设备(例如,链接器等)进行组合。在本文中所描述的编译方法可以被应用于多种多样的实践应用中。这样的实践应用包括密码应用的混淆,例如,数字消息的加密、解密和验证。例如,所述编译方法可以被应用于专有算法的混淆,例如,学习算法、图像处理、音频处理等。根据本专利技术的方法可以在计算机上被实施为计算机实施的方法,或者在专用硬件中实施,或者以这两者的组合来实施。针对根据本专利技术的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括被存储在计算机可读介质上的非瞬态程序代码,当所述程序产品在计算机上被运行时,所述非瞬态程序代码用于执行根据本专利技术的方法。在优选实施例中,所述计算机程序包括计算机程序代码,当所述计算机程序在计算机上被运行时,所述计算机程序代码适于执行根据本专利技术的方法的所有步骤。优选地,所述计算机程序被实施在计算机可读介质上。本专利技术的另一方面提供了一种使所述计算机程序可供下载的方法。当所述计算机程序被上载到例如Apple的AppStore、Google的PlayStore或Microsoft的WindowsStore中时并且当所述计算机程序可用于从这样的商店下载时使用该方面。附图说明将仅通过范例的方式参考附图来描述本专利技术的另外的细节、方面和实施例。附图中的元素是为了简单和清晰而图示的,而不一定是按比例绘制的。在附图中,与已经描述的元件相对应的元件可以具有相同的附图标记。在附图中,图1a示意性示出了编译设备的实施例的范例,图1b示意性示出了编译设备的实施例的范例,图1c示意性示出了编译设备的实施例的范例,图2a示意性示出了数据流图的实施例的范例,图2b示意性示出了数据流图的实施例的范例,图3a示出了优化对可用保护性变换的列表中的保护性变换的选择的方法,图3b示出了优化对可用保护性变换的列表中的保护性变换的选择的方法,图4a示意性示出了数据编码和解码系统的实施例的范例,图4b示意性示出了数据加密和解密系统的实施例的范例,图5示意性示出了编码的软件的实施例的范例,图6示意性示出了编译方法的实施例的范例,图7a示意性示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,图7b示意性示出了根据实施例的处理器系统的表示。图1a-2b、4a-5和7a-7b中的参考数字列表:100编译设备110输入接口120存储装置130解析部分132数据流解析器134编码分析器140优化器部分142性能分析器144安全性分析器145组合部分150编译单元160处理器电路161存储器200数据流图210copy-phi子图212-216copy或phi节点220,230节点222-226节点232-236节点241,242copy-phi网络243数据操纵块244编码245copy-phi网络中的元素410节点420数据生成器(例如,传感器)422编码和加密(公钥:pubK)430软件432算法433算法440硬件450云460软件(安全环境)462解密&解码470硬件472安全元件(私钥:pk)481-483编码1000计算机可读介质1010可写入部分1020计算机程序1110(一个或多个)集成电路1120处理单元1122存储器1124专用集成电路1126通信元件1130相互连接1140处理器系统具体实施方式尽管本专利技术容许许多不同形式的实施例,但是在附图中示出了并且将在本文中详细描述一个或多个特定实施例,并且理解本公开将被认为是本专利技术的原理的范例,而并不旨在将本专利技术限于所示和所描述的特定实施例。在下文中,出于理解的缘故,描述了实施例的在操本文档来自技高网...

【技术保护点】
1.一种被配置用于选择保护性变换以改善计算机程序的安全性的编译设备(100),所述编译设备包括:/n输入接口(110),其被布置为接收计算机程序表示,/n处理器电路,其被配置为:/n从所述计算机程序表示获得数据流图(200)表示,/n反复地:/n将保护性变换分配给所述数据流图的部分,所述保护性变换选自可用保护性变换的列表,/n针对所述数据流图(200)和所分配的保护性变换来确定性能水平和安全性水平,/n如果所述性能水平和所述安全性水平满足安全性目标和/或性能目标,那么终止对保护性变换的所述分配,/n至少从满足所述安全性目标和/或所述性能目标的所述数据流图和所分配的保护性变换来获得所述计算机程序表示的编译。/n

【技术特征摘要】
【国外来华专利技术】20180228 EP 18159169.41.一种被配置用于选择保护性变换以改善计算机程序的安全性的编译设备(100),所述编译设备包括:
输入接口(110),其被布置为接收计算机程序表示,
处理器电路,其被配置为:
从所述计算机程序表示获得数据流图(200)表示,
反复地:
将保护性变换分配给所述数据流图的部分,所述保护性变换选自可用保护性变换的列表,
针对所述数据流图(200)和所分配的保护性变换来确定性能水平和安全性水平,
如果所述性能水平和所述安全性水平满足安全性目标和/或性能目标,那么终止对保护性变换的所述分配,
至少从满足所述安全性目标和/或所述性能目标的所述数据流图和所分配的保护性变换来获得所述计算机程序表示的编译。


2.根据权利要求1所述的编译设备,其中,可用保护性变换的所述列表中的所述保护性变换具有相关联的安全性水平,
所述编译设备被配置为:
将初始保护性变换分配给被选择的所述数据流图的部分,使得所述相关联的安全性水平实现所述安全性目标,如果所确定的性能水平在所述性能目标之下,则一个或多个分配的保护性变换被修改为具有更低的相关联的安全性水平的保护性变换,并且/或者
所述编译设备被配置为:
将初始保护性变换分配给被选择的所述数据流图的部分,使得所述相关联的安全性水平在所述安全性目标之下,
如果所确定的性能水平在所述性能目标之上,一个或多个分配的保护性变换被修改为具有更高的相关联的安全性水平的保护性变换。


3.根据前述权利要求中的任一项所述的编译设备(100),其中,所述可用保护性变换包括针对所述数据流图的边缘的一个或多个变量保护和/或针对节点的操作保护。


4.根据前述权利要求中的任一项所述的编译设备,其中,所述处理器电路被配置为针对所述数据流图中的一个或多个边缘和/或节点来获得一个或多个安全性目标,所述安全性目标是从针对所述数据流图中的所述一个或多个边缘和/或节点而获得的所述安全性目标来获得的。


5.根据前述权利要求中的任一项所述的编译设备,其中,所述保护性变换包括以下中的一项或多项:
对变量的编码以及对解码的变量的操作的明文执行,
对变量的编码以及对所述编码的变量的操作的编码的执行,
被应用于变量和/或操作的同态加密,
恒定时间执行操作。


6.根据前述权利要求中的任一项所述的编译设备,其中,所述数据流图的部分被分配到多个编码域中的编码域,被分...

【专利技术属性】
技术研发人员:O·加西亚莫尔琼A·佩斯特林W·C·马龙
申请(专利权)人:皇家飞利浦有限公司
类型:发明
国别省市:荷兰;NL

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

1
相关领域技术
  • 暂无相关专利