CN110333867B - 一种多方安全计算数据处理方法、装置及系统 - Google Patents
一种多方安全计算数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN110333867B CN110333867B CN201910317765.0A CN201910317765A CN110333867B CN 110333867 B CN110333867 B CN 110333867B CN 201910317765 A CN201910317765 A CN 201910317765A CN 110333867 B CN110333867 B CN 110333867B
- Authority
- CN
- China
- Prior art keywords
- multiparty
- source code
- compiling
- intermediate code
- operation library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例公开了一种多方安全计算数据处理方法、装置及系统,所述方法包括基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;对所述多方安全算法源码数据进行编译处理,获得中间代码文件;对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。利用本说明书各个实施例,可以提高多方安全计算算法源码数据生成的简便性以及后续编译执行处理的高效性。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别地,涉及一种多方安全计算数据处理方法、装置及系统。
背景技术
多方安全计算通常是基于布尔电路来实现的。先由开发者为实现某个场景下的多方安全计算进行算法编写,再使用电路编译器把所编写的算法编译为布尔电路文件,再利用虚拟机去解析执行该布尔电路文件。
由于布尔电路文件没有所谓的LOOP\IF-ELSE\CALL Function等特性,需要把算法源码中使用的循环、函数、IF-ELSE等语句全部展开,使得经过编译后产生的布尔电路文件非常大,不利于传输、存储、执行等操作。此外,由于目前电路编译器都对应特定的编写语言,且算法类型通常为面向特定领域的类高级语言,跟主流的高级语言有一些差异和限制。所以开发者还需要学习这一门语言的语法细节,从而给开发者带来诸多的不方便。
发明内容
本说明书实施例的目的在于提供一种多方安全计算数据处理方法、装置及系统,可以提高多方安全计算算法源码数据生成的简便性以及后续编译执行处理的高效性。
本说明书提供一种多方安全计算数据处理方法、装置及系统是包括如下方式实现的:
一种多方安全计算数据处理方法,包括:
基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
本说明书提供的所述方法的另一个实施例中,所述对所述多方安全算法源码数据进行编译处理,包括:
利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
本说明书提供的所述方法的另一个实施例中,所述对所述中间代码文件进行解析执行处理,包括:
利用JIT编译器对所述中间代码文件进行解析执行处理。
另一方面,本说明书实施例还提供一种多方安全计算数据处理装置,所述装置包括:
源码数据生成模块,用于基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
中间代码生成模块,用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
解析执行模块,用于对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
本说明书提供的所述装置的另一个实施例中,所述中间代码生成模块还用于利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
本说明书提供的所述装置的另一个实施例中,所述解析执行模块还用于利用JIT编译器对所述中间代码文件进行解析执行处理,获得执行结果。
另一方面,本说明书实施例还提供一种多方安全计算数据处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
另一方面,本说明书实施例还提供一种多方安全计算数据处理系统,所述多方安全计算数据处理系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。
另一方面,本说明书实施例还提供一种多方安全计算数据处理系统,所述系统包括多方安全运算库、算法生成模块以及LLVM编译器,其中,
所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
所述算法生成模块用于基于所述多方安全运算库中的布尔电路功能组件生成多方安全算法源码数据;
所述LLVM编译器用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件。
本说明书提供的所述系统的另一个实施例中,所述系统还包括JIT编译器,所述JIT编译器用于对所述中间代码文件进行解析执行处理,获得执行结果。
本说明书一个或多个实施例提供的多方安全计算数据处理方法、装置及系统,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一种多方安全计算数据处理方法实施例的流程示意图;
图2为本说明书提供的另一种多方安全计算数据处理方法实施例的流程示意图;
图3为本说明书提供的一种多方安全计算数据处理装置实施例的模块结构示意图;
图4为本说明书提供的一个实施例中的多方安全计算数据处理系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
目前多方安全计算通常是基于布尔电路来实现的。先由开发者为实现某个场景下的多方安全计算进行算法编写,再使用特定的电路编译器把所编写的算法编译为布尔电路文件,再解析执行该布尔电路文件,获得执行结果。但目前通过电路编译器编译后的布尔电路文件非常大,不利于传输、存储、执行等操作,且电路编译器对的算法源码编写语言类型较为单一,不利于大规模推广。
相应的,本说明书实施例提供了一种多方安全计算数据处理方法,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
本说明书一个或多个实施例提供一种多方安全计算数据处理方法。图1是本说明书提供的所述一种多方安全计算数据处理方法实施例流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
具体的一个实施例如图1所示,本说明书提供的多方安全计算数据处理方法的一个实施例中,所述方法可以包括:
S202:基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件。
可以基于预先构建的多方安全运算库生成多方安全算法源码数据,所述多方安全运算库可以包括基于预设语言编写的布尔电路功能组件。
一些实施方式中,可以预先将多方安全计算对应的布尔电路功能使用预设类型的开发语言编写,然后,将编写后的程序进行封装,获得一系列的布尔电路功能组件,形成多方安全运算库(Integer库)。所述预设类型的开发语言可以包括C、C++、Java、Python等主流开发语言,也可以为其他的特定领域的开发语言。表1给出了部分多方安全运算库可以支持的运算符。
表1多方安全运算库支持的运算符
实际应用场景中,用户可以根据自身需要选择编写算法源码的开发语言类型,然后,可以借助Integer库来编写目标应用场景下的多方安全计算算法。生成多方安全算法源码数据的语言类型可以为C、C++、Java、Python等主流开发语言,也可以为其他的特定领域的开发语言。
用户在编写算法源码的过程中,可以调取多方安全运算库中的布尔电路功能组件来完成相应函数的逻辑计算,多方安全运算库在运算完成后,可以将运算结果进行反馈。从而基于多方安全运算库,用户可以简单方便的实现多方安全计算算法的编写。且编写的算法源码后续无需再转换为布尔电路文件来执行,从而进一步提高后续数据编译以及执行处理的简便性。
S204:对所述多方安全算法源码数据进行编译处理,获得中间代码文件。
由上述实施例的内容可知,多方安全计算对应的布尔电路功能已经封装到Integer库中,基于Integer库编写的算法源码无需再借助电路编译器编译为电路文件来执行。相应的,本说明书的一些实施例中,用户可以根据编写算法源码的语言类型以及性能需求等选择编译器,以对所述多方安全算法源码数据进行编译处理。
图2表示本说明书提供的另一个或者多个实施例的多方安全算法数据处理流程示意图。如图2所示,优选的,本说明书的一个实施例中,可以采用下述方式对多方安全算法源码数据进行编译处理:
S2040:利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
可以利用LLVM编译器(Low Level Virtual Machine,底层虚拟机)对所述多方安全算法源码数据进行词法分析、语法分析、语义分析、执行优化等操作,生成LLVM中间代码数据,即LLVM IR数据。
LLVM编译器可以用于编译优化以任意程序语言编写的算法,从而可以使得算法源码的编写语言不再局限于特定的编写语言,便于多方安全计算的大规模推广。同时,还可以利用LLVM编译器对算法源码进行优化处理,从而可以进一步提高优化处理后的数据的可执行性。
LLVM编译器可以先对多方安全算法源码数据进行词法分析、语法分析、语义分析,完成错误处理以及语言优化。然后,可以对上述处理后的算法数据进行代码化简、静态单赋值等编译优化和转换。具体实施时,也可以利用LLVM的优化框架,根据实际需要自行设定优化方式。LLVM编译器对所述多方安全算法源码数据进行编译完成后,可以生成LLVM对应的中间代码(IR)文件,LLVM编译器可以将生成的LLVM IR文件返回。
通过利用封装有布尔电路功能的Integer库编写算法源码,并进一步利用LLVM的语法分析以及代码优化技术,可以使得最终获得的中间代码文件远小于布尔电路文件,且获得的中间代码数据更便于执行处理。
S206:对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
可以进一步通过虚拟机对所述中间代码数据进行解析执行,获得所述目标应用场景的执行结果。如图2所示,优选的,本说明书的一个实施例中,可以采用下述方式对所述中间代码文件进行解析执行处理:
S2060:利用JIT编译器对所述中间代码文件进行解析执行处理。
用户可以使用多方安全输入数据作为参数调用JIT编译器,以执行LLVM IR文件中的算法函数。JIT编译器获取LLVM IR文件后,可以对LLVM IR文件进行解析,以确保LLVM IR文件格式的正确性。如果,解析出错,可能调取的不是LLVM IR文件,或者LLVM IR文件本身出现了问题。相应的,可以向客户反馈结果出错信息。
若未出错,JIT编译器可以根据输入的多方安全输入数据找到用户要执行的算法函数,并进行动态编译和链接。具体的,可以将该算法函数编译成二进制,然后链接成可执行代码,进行执行。JIT编译器执行链接完的函数,返回结果给用户。
JIT编译器执行过程中,当第一次执行某算法函数时,可以将该函数编译成机器语言,并同时会进行内部存储;当再次执行该算法函数时,则可以直接执行已编译好的机器语言。从而利用JIT编译器可以大幅度提高解析执行的效率。
本说明书上述实施例提供的方案,通过利用封装有布尔电路功能的Integer库编写算法源码,并进一步利用LLVM的代码优化技术,可以使得最终获得的中间代码文件远小于布尔电路文件,且更便于执行处理。同时,用户还可以根据自身对开发语言的熟悉程度,选择熟悉的语言实现任意场景下的多方安全算法,进一步提高了算法源码编写的简便性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例提供的多方安全计算数据处理方法,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
基于上述所述的多方安全计算数据处理方法,本说明书一个或多个实施例还提供一种多方安全计算数据处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图3表示说明书提供的一种多方安全计算数据处理装置实施例的模块结构示意图,如图3所示,所述装置可以包括:
源码数据生成模块102,可以用于基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
中间代码生成模块104,可以用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
解析执行模块106,可以用于对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
利用上述实施例提供的方案,可以避免将算法源码再进行电路编译处理的过程,且编译后获得的中间代码文件远小于布尔电路文件,可以进一步提高后续数据传输以及执行效率。
本说明书的另一个实施例中,所述中间代码生成模块104还可以用于利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
利用上述实施例提供的方案,可以进一步提高算法源码编写的简便性以及编译后获得的中间代码的可执行性。
本说明书的另一个实施例中,所述解析执行模块106还可以用于利用JIT编译器对所述中间代码文件进行解析执行处理,获得执行结果。
利用上述实施例提供的方案,可以进一步提高解析执行的效率。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书一个或多个实施例提供的多方安全计算数据处理装置,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。因此,本说明书还提供一种多方安全计算数据处理设备,包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;
对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的多方安全计算数据处理设备,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
本说明书还提供一种多方安全计算数据处理系统,所述系统可以为单独的多方安全计算数据处理系统,也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述多方安全计算数据处理系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
图4表示本说明书一个或者多个实施例提供的多方安全计算数据处理系统的结构示意图。如图4所示,所述系统可以包括多方安全运算库、源码数据生成模块、LLVM编译器。
所述多方安全运算库可以包括基于预设语言编写的布尔电路功能组件;
所述算法生成模块可以用于基于所述多方安全运算库中的布尔电路功能组件生成多方安全算法源码数据;
所述LLVM编译器可以用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件。
可以预先将多方安全计算对应的布尔电路功能利用开发语言编写后,封装到Integer库中,开发语言可以包括C、C++、Java、Python等主流开发语言,也可以为其他的特定领域的开发语言。
实际应用场景中,用户可以根据自身需要选择编写算法源码的开发语言类型,然后,借助Integer库来编写目标应用场景下的多方安全计算算法。用户在编写算法源码的过程中,可以调取多方安全运算库中的电路功能运行组件来完成相应的逻辑函数的计算,多方安全运算库在运算完成后,可以将运算结果进行反馈。从而简单方便的实现多方安全计算算法的编写。
然后,可以利用LLVM编译器来对编写的多方安全算法源码数据进行编译处理。LLVM编译器(Low Level Virtual Machine,底层虚拟机)可以对所述多方安全算法源码数据词法分析、语法分析、语义分析、执行优化等操作,生成LLVM中间代码数据。
LLVM编译器可以用于编译优化以任意程序语言编写的算法,从而可以使得算法源码的编写语言不再局限于特定领域的编写语言,便于多方安全计算的大规模推广。同时,还可以利用LLVM编译器对算法源码进行优化处理,从而可以进一步提高优化处理后的数据的可执行性。
如图4所示,本说明书的另一个实施例中,所述系统还可以包括JIT编译器,所述JIT编译器可以用于对所述中间代码文件进行解析执行处理,获得执行结果。
可以利用JIT编译器对所述中间代码文件进行解析执行处理。用户可以使用多方安全输入数据作为参数调用JIT执行LLVM IR文件中的算法函数。JIT编译器调取LLVM IR文件后,可以先对LLVM IR文件进行解析,以确保LLVM IR文件格式的正确性。若文件格式正确,JIT编译器可以根据输入的多方安全输入数据找到用户要执行的算法函数,并进行动态编译和链接。具体的,可以将该算法函数编译成二进制,然后链接成可执行代码,进行执行。JIT编译器执行链接完的函数,可以返回结果给用户。
本说明书上述实施例提供的系统,通过利用封装有布尔电路功能的Integer库编写算法源码,并进一步利用LLVM的代码优化技术,可以使得最终获得的中间代码文件远小于布尔电路文件,且中间代码文件更便于执行处理。另外,LLVM编译器可以适应任意的源码编写语言,从而可以进一步提高算法编写的简便性。
需要说明的,上述所述的系统根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的多方安全计算数据处理系统,可以基于预先构建的多方安全运算库来简单方便的实现多方安全算法的编写。所述多方安全运算库中封装有预先编写好的布尔电路功能实现程序,从而可以将复杂的逻辑计算在算法编写过程中借助多方安全运算库来完成,避免了将算法源码再进行电路编译处理的过程。且通过利用多方安全运算库,还可以使得算法源码编译后获得的中间代码文件远小于布尔电路文件,进一步提高后续数据传输以及执行效率。
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
尽管本说明书实施例内容中提到的IR文件解析、函数执行等获取、定义、交互、计算、判断等操作和数据描述,但是,本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种多方安全计算数据处理方法,其特征在于,包括:
基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;所述多方安全运算库是通过预先将多方安全计算对应的布尔电路功能使用预设类型的开发语言编写程序并将编写后的程序进行封装得到一系列的布尔电路功能组件后形成的;
对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述多方安全算法源码数据进行编译处理,包括:
利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述中间代码文件进行解析执行处理,包括:
利用JIT编译器对所述中间代码文件进行解析执行处理。
4.一种多方安全计算数据处理装置,其特征在于,所述装置包括:
源码数据生成模块,用于基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;所述多方安全运算库是通过预先将多方安全计算对应的布尔电路功能使用预设类型的开发语言编写程序并将编写后的程序进行封装得到一系列的布尔电路功能组件后形成的;
中间代码生成模块,用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
解析执行模块,用于对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
5.根据权利要求4所述的装置,其特征在于,所述中间代码生成模块还用于利用LLVM编译器对所述多方安全算法源码数据进行编译处理。
6.根据权利要求4或5所述的装置,其特征在于,所述解析执行模块还用于利用JIT编译器对所述中间代码文件进行解析执行处理,获得执行结果。
7.一种多方安全计算数据处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
基于预先构建的多方安全运算库生成目标应用场景的多方安全算法源码数据,所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;所述多方安全运算库是通过预先将多方安全计算对应的布尔电路功能使用预设类型的开发语言编写程序并将编写后的程序进行封装得到一系列的布尔电路功能组件后形成的;
对所述多方安全算法源码数据进行编译处理,获得中间代码文件;
对所述中间代码文件进行解析执行处理,获得所述目标应用场景的执行结果。
8.一种多方安全计算数据处理系统,其特征在于,所述多方安全计算数据处理系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现所述权利要求1-3任一项所述方法的步骤。
9.一种多方安全计算数据处理系统,其特征在于,所述系统包括多方安全运算库、算法生成模块以及LLVM编译器,其中,
所述多方安全运算库包括基于预设语言编写的布尔电路功能组件;所述多方安全运算库是通过预先将多方安全计算对应的布尔电路功能使用预设类型的开发语言编写程序并将编写后的程序进行封装得到一系列的布尔电路功能组件后形成的;
所述算法生成模块用于基于所述多方安全运算库中的布尔电路功能组件生成多方安全算法源码数据;
所述LLVM编译器用于对所述多方安全算法源码数据进行编译处理,获得中间代码文件。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括JIT编译器,所述JIT编译器用于对所述中间代码文件进行解析执行处理,获得执行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910317765.0A CN110333867B (zh) | 2019-04-19 | 2019-04-19 | 一种多方安全计算数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910317765.0A CN110333867B (zh) | 2019-04-19 | 2019-04-19 | 一种多方安全计算数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110333867A CN110333867A (zh) | 2019-10-15 |
CN110333867B true CN110333867B (zh) | 2023-09-01 |
Family
ID=68139245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910317765.0A Active CN110333867B (zh) | 2019-04-19 | 2019-04-19 | 一种多方安全计算数据处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333867B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468564A (zh) * | 2021-06-30 | 2021-10-01 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114327486B (zh) * | 2021-12-31 | 2024-01-23 | 北京瑞莱智慧科技有限公司 | 基于领域专用语言实现多方安全计算的方法、装置及介质 |
CN115150084B (zh) * | 2022-09-05 | 2023-01-03 | 翼方健数(北京)信息科技有限公司 | 一种安全多方计算方法、系统和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116713B1 (en) * | 2013-03-12 | 2015-08-25 | Emc Corporation | System and method for expression evaluation in a distributed networking environment |
CN106933610A (zh) * | 2015-12-30 | 2017-07-07 | 北京金山安全软件有限公司 | 一种应用程序安装包生成方法、装置及电子设备 |
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN108809623A (zh) * | 2018-07-10 | 2018-11-13 | 矩阵元技术(深圳)有限公司 | 安全多方计算方法、装置及系统 |
CN109558750A (zh) * | 2018-11-30 | 2019-04-02 | 北京八分量信息科技有限公司 | 一种基于安全多方计算的数据处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114851B2 (en) * | 2014-01-24 | 2018-10-30 | Sachet Ashok Shukla | Systems and methods for verifiable, private, and secure omic analysis |
-
2019
- 2019-04-19 CN CN201910317765.0A patent/CN110333867B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116713B1 (en) * | 2013-03-12 | 2015-08-25 | Emc Corporation | System and method for expression evaluation in a distributed networking environment |
CN106933610A (zh) * | 2015-12-30 | 2017-07-07 | 北京金山安全软件有限公司 | 一种应用程序安装包生成方法、装置及电子设备 |
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN108809623A (zh) * | 2018-07-10 | 2018-11-13 | 矩阵元技术(深圳)有限公司 | 安全多方计算方法、装置及系统 |
CN109558750A (zh) * | 2018-11-30 | 2019-04-02 | 北京八分量信息科技有限公司 | 一种基于安全多方计算的数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110333867A (zh) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333867B (zh) | 一种多方安全计算数据处理方法、装置及系统 | |
US8645930B2 (en) | System and method for obfuscation by common function and common function prototype | |
KR20140000283A (ko) | 프로그램 상태를 체크포인팅하며 복원하기 위한 방법 | |
CN107003885B (zh) | 用于低级别可组合高性能计算库的技术 | |
US20200319867A1 (en) | Systems and methods for eager software build | |
Weil et al. | Efficient compilation of Esterel for real-time embedded systems | |
Khalate et al. | An LLVM-based C++ compiler toolchain for variational hybrid quantum-classical algorithms and quantum accelerators | |
CN110781126A (zh) | 一种TensorFlow的FPGA异构加速实现方法、系统、终端及存储介质 | |
US9684497B1 (en) | Optimized compiling of a template function | |
CN112269566B (zh) | 脚本生成处理方法、装置、设备及系统 | |
CN105005497A (zh) | 一种Java卡虚拟机中本地函数的调用方法及装置 | |
CN100468437C (zh) | .Net程序保护的方法和系统 | |
CN110018831B (zh) | 程序处理方法、装置及计算机可读存储介质 | |
WO2020211074A1 (zh) | 一种多方安全计算数据处理方法、装置及系统 | |
CN110209397B (zh) | 一种数据处理方法、装置及系统 | |
WO2022035476A1 (en) | Representing asynchronous state machine in intermediate code | |
Barve et al. | Parallelism in C++ programs targeting objects | |
CN113260976A (zh) | 用于在编译源代码中调度指令技术 | |
CN112596737A (zh) | 一种函数调用关系的扫描方法、系统、设备及存储介质 | |
CN111753990A (zh) | 一种量子计算机模拟环境方法、设备及介质 | |
Takizawa et al. | Xevolver for performance tuning of C programs | |
CN103019801A (zh) | 一种应用于高速数字io波形引擎的编译器 | |
CN102375740A (zh) | 手持装置及利用其实现Java组件与自定义构件互操作的方法 | |
CN111522556B (zh) | 一种分组密码编程语言及编译基础设施的设计方法 | |
Wypych et al. | Extension of Alvis compiler front-end |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010321 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |