CN113722754A - 隐私可执行文件的生成方法、装置和服务器 - Google Patents
隐私可执行文件的生成方法、装置和服务器 Download PDFInfo
- Publication number
- CN113722754A CN113722754A CN202110979075.9A CN202110979075A CN113722754A CN 113722754 A CN113722754 A CN 113722754A CN 202110979075 A CN202110979075 A CN 202110979075A CN 113722754 A CN113722754 A CN 113722754A
- Authority
- CN
- China
- Prior art keywords
- privacy
- code
- target
- preset
- algorithm
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 145
- 238000012545 processing Methods 0.000 claims abstract description 139
- 238000010801 machine learning Methods 0.000 claims description 39
- 238000005457 optimization Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 29
- 230000002123 temporal effect Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本说明书提供了隐私可执行文件的生成方法、装置和服务器。基于该方法,可以先获取基于隐私SQL语言生成的目标业务代码;并调用预设的隐私结构化查询语言编译器对目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,其中,编译后的代码包含针对预设的隐私算法库的接口调用;再根据上述编译后的代码,生成符合要求的隐私可执行文件。从而能有效地降低用户操作难度、减少用户工作量,高效地生成满足用户个性化需求的、适配于多种目标隐私算法的隐私可执行文件,进而多个参与方可以通过运行该隐私可执行文件,在保护数据隐私的前提下,安全地合作完成基于目标隐私算法的目标数据处理。
Description
技术领域
本说明书涉及数据加密技术领域,尤其涉及隐私可执行文件的生成方法、装置和服务器。
背景技术
在一些较复杂的数据处理场景中,有时需要多个数据方共同参与合作,分别使用各自所持有的隐私数据来联合完成某一项具体的数据处理(例如,联合查询等);同时,还要求在上述数据处理过程中要保护参与数据处理的数据方的数据隐私,避免对外泄露数据方所持有的隐私数据。
针对上述数据处理场景,通常需要用户预先准备好相应的隐私可执行文件,以便后续数据方可以通过运行上述隐私可执行文件来完成相应的数据处理。
但是,基于现有方法在生成上述隐私可执行文件时,往往存在用户操作难度大、生成效率低,且所支持的隐私算法相对有限、扩展性差等技术问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书提供了一种隐私可执行文件的生成方法、装置和服务器,以有效地降低用户操作难度、减少用户工作量,高效地生成满足用户个性化需求的、能适配于多种目标隐私算法的隐私可执行文件。
本说明书实施例提供了一种隐私可执行文件的生成方法,包括:
获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;
调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;
根据所述编译后的代码,生成符合要求的隐私可执行文件。
在一些实施例中,根据所述编译后的代码,生成符合要求的隐私可执行文件,包括:
检测所述编译后的代码的代码类型;
在确定所述编译后的代码的代码类型为第一类型的情况下,将所述编译后的代码与预设的隐私算法库中的目标隐私算法进行编译链接,得到符合要求的隐私可执行文件;其中,所述第一类型为C/C++代码。
在一些实施例中,在检测所述编译后的代码的代码类型之后,所述方法还包括:
在确定所述编译后的代码的代码类型为第二类型的情况下,将所述编译后的代码确定为符合要求的隐私可执行文件;其中,所述第二类型为Python代码。
在一些实施例中,在生成符合要求的隐私可执行文件之后,所述方法还包括:
向多个参与方提供所述隐私可执行文件;其中,所述多个参与方响应需求方发起的联合处理请求,基于所述隐私可执行文件,分别输入各自的隐私数据,以合作完成基于目标隐私算法的目标数据处理;所述需求方基于所述隐私可执行文件,获取目标处理结果的明文数据。
在一些实施例中,所述目标业务代码至少包含有基于隐私SQL语言生成的改进的from子句;其中,所述改进的from子句用于限定隐私数据的输入方。
在一些实施例中,所述目标业务代码还包含有基于隐私SQL语言生成的reveal子句;其中,所述reveal子句用于限定目标处理结果的明文数据的输出方。
在一些实施例中,所述目标业务代码还包含有基于隐私SQL语言生成的目标隐私算法的指示信息,和/或,目标机器学习框架的指示信息。
在一些实施例中,调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,包括:
调用预设的隐私结构化查询语言编译器中的前端模块处理目标业务代码,得到中间代码;
调用预设的隐私结构化查询语言编译器中的优化模块对所述中间代码分别进行基于编译维度的第一类优化处理,以及与目标隐私算法匹配的基于密码学维度的第二类优化处理,得到优化后的中间代码;
调用预设的隐私结构化查询语言编译器中的后端模块处理所述优化后的中间代码,以得到与目标隐私算法和/或目标机器学习框架匹配的编译后的代码。
在一些实施例中,所述目标隐私算法包括以下至少之一:安全多方计算算法、同态加密算法、零知识证明算法。
在一些实施例中,所述目标机器学习框架包括以下至少之一:Rosetta框架、TF-Encrypted框架、PySyft框架。
本说明书实施例还提供了一种隐私可执行文件的生成装置,包括:
获取模块,用于获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;
调用模块,用于调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;
生成模块,用于根据所述编译后的代码,生成符合要求的隐私可执行文件。
本说明书实施例还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现以下步骤:获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;根据所述编译后的代码,生成符合要求的隐私可执行文件。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被计算机设备执行时实现以下步骤:获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;根据所述编译后的代码,生成符合要求的隐私可执行文件。
本说明书提供的隐私可执行文件的生成方法、装置和服务器,基于该方法,可以先获取基于隐私SQL语言生成的目标业务代码;并调用同时支持基于编译维度和密码学维度两种维度的优化处理的预设的隐私结构化查询语言编译器对目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,其中,编译后的代码包含针对预设的隐私算法库的接口调用;再根据所述编译后的代码,生成符合要求的隐私可执行文件。从而能够有效地降低用户操作难度、减少用户工作量,自动且高效地生成得到满足用户个性化需求的、能适配于多种目标隐私算法的隐私可执行文件,进而后续多个参与方可以通过运行该隐私可执行文件,在保护数据隐私的前提下,安全地通过合作完成基于目标隐私算法的目标数据处理。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的隐私可执行文件的生成方法的流程示意图;
图2是在一个场景示例中,应用本说明书实施例提供的隐私可执行文件的生成方法的一种实施例的示意图;
图3是在一个场景示例中,应用本说明书实施例提供的隐私可执行文件的生成方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的隐私可执行文件的生成方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的服务器的结构组成示意图;
图6是本说明书的一个实施例提供的隐私可执行文件的生成装置的结构组成示意图;
图7是在一个场景示例中,应用本说明书实施例提供的隐私可执行文件的生成方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
参阅图1所示,本说明书实施例提供了一种隐私可执行文件的生成方法。其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容:
S101:获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码。
S102:调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法。
S103:根据所述编译后的代码,生成符合要求的隐私可执行文件。
通过上述实施例,一方面引入并利用隐私SQL语言来生成所需要的目标业务代码;另一方面还引入并利用支持进行基于编译维度和密码学维度两种维度的优化处理的预设的隐私结构化查询语言编译器来对目标业务代码进行预设的编译处理,从而可以有效地降低用户的操作难度、减少用户工作量,自动且高效地生成得到能够适配于多种目标隐私算法的隐私可执行文件,以满足用户多样化的个性需求。
在一些实施例中,上述目标业务代码具体可以为包括使用隐私SQL语言,根据预设的生成规则所生成的业务代码。
其中,上述隐私SQL语言具体可以理解为一种在标准SQL(Structured QueryLanguage,结构化查询语言)语言(例如,SQL-99)的基础上进行相应改进后得到的,能够同时支持多种隐私算法的类SQL语言。在本实施例中,所使用隐私SQL语言可以记为:MEP-SQL。
在一些实施例中,可以预先根据所多个参与方需要进行的目标数据处理、该目标数据处理所依赖的目标隐私算法,以及多个参与方事先确认的预设的合作协议(一种涉及隐私保护的合作协议),使用上述隐私SQL语言,来生成得到与目标数据处理对应的目标业务代码。
在本实施例中,由于是使用隐私SQL语言来生成目标业务代码,而隐私SQL语言又是一种类SQL语言。具体的,隐私SQL语言与标准SQL语言的在语法、逻辑上大部分都是相同、通用的。因此,隐私SLQ语言区别于其他语言,对大部分用户相对友好。用户或者布设于用户侧的诸如计算机、笔记本电脑等终端设备不需要额外耗费大量的时间和精力单独去学习新的语言规则,而是可以直接延用标准SQL语言的语法、逻辑来使用隐私SQL语言,以高效、便捷地生成得到对应的目标业务代码。
在一些实施例中,上述目标数据处理具体可以理解为一种需要多个参与方使用各自所持有的隐私数据合作,来联合完成的数据处理。
其中,多个参与方具体可以是两个参与方,也可以是三个参与方,还可以是更多数量个参与方等等。
上述隐私数据具体可以理解为参与方单独持有,并要求进行隐私保护、不对外公开,用于进行目标数据处理的数据。
具体的,例如,上述隐私数据可以是某购物网站(作为一个参与方)所持有的该网站用户的交易数据,也可以是某银行(作为另一个参与方)所持有的该银行储户的用户数据,还可以是某统计机构(作为又一个参与方)所持有的该机构所采集到的各类统计数据等等。当然,需要说明的是,上述所列举的隐私数据只是一种示意性说明。具体实施时,根据具体的应用场景和处理需求,上述隐私数据还可以包括其他类型的参数数据。对此,本说明书不作限定。
在一些实施例中,所述目标数据处理具体可以包括以下至少之一:联合统计、联合建模、联合查询等等。相应的,最终所得到的目标数据处理结果具体可以包括:联合统计的统计结果、联合建模所得到模型函数、联合查询所得到的查询结果等等。
当然,需要说明的是,上述所列举的目标数据处理,以及目标处理结果只是一种示意性说明。具体实施时,根据具体的应用场景和处理需求,上述目标数据处理,以及目标处理结果还可以包括其他类型的数据处理,以及相应的其他类型的处理结果。对此,本说明书不作限定。
在一些实施例中,用户或终端等设备在使用隐私SQL语言具体生成目标业务代码的过程中,可以充分利用隐私SQL语言的特性,根据与隐私SQL语言相匹配的预设的生成规则,来生成得到与基于目标隐私算法的目标数据处理相匹配、功能多样,且自定义程度相对较高的目标业务代码。
具体的,可以参阅图2所示。相对标准SQL语言(SQL-99),隐私SQL语言具体可以支持生成使用改进的from子句(例如,from_clause_ex),以及reveal子句(例如,reveal_clause)。
在一些实施例中,在使用隐私SQL语言生成目标业务代码的过程中,具体实施时,可以根据预设的生成规则,使用第一类关键字段(例如,part字段),结合预设的合作协议,来生成目标业务代码中改进的from子句。
具体的,可以按照以下形式,使用隐私SQL语言,根据预设的生成规则,来生成所需要的改进的from子句:from part table_name(table_alias_name)。
可以参阅图3所示。相对于基于标准SQL语言生成的from子句,基于隐私SQL语言生成的改进的from子句增加了part字段作为第一类关键字段。
其中,第一类关键字段part字段的具体取值可以根据预设的合作协议确定,对应一个或多个具体参与方(即,一个或多个具体的输入方)。位于第一类关键字段后的隐私数据字段table_name(table_alias_name)用于指示该参与方在根据预设的合作协议与其他参与方联合进行目标数据处理时,所要输入的隐私数据的数据名(或者隐私数据表的表名)。上述改进的from子句用于限定隐私数据的输入方。
具体的,例如,根据预设的合作协议,确定后续需要联合进行的目标数据处理是由三个参与方,包括:第一参与方、第二参与方和第三参与方来合作完成的。进一步还可以确定,上述三个参与方在合作进行目标数据处理时,第一参与方输入隐私数据A,第二参与方输入隐私数据B,第三参与方输入隐私数据C。
为了能够准确地限定各个参与方输入相应的隐私数据;同时,也为了避免在进行目标数据处理的过程中,参与方加载获取其他参与方输入的隐私数据,造成其他参与方所持有的隐私数据遭到泄露。
在具体生成目标业务代码时,例如,可以使用SQL语言,根据预设的生成规则和预设的合作协议,生成以下所示用于限定第一参与方作为输入方输入隐私数据A的改进的from子句:from P0 table_A。其中,P0为part字段的一个取值,对应第一参与方,table_A指示隐私数据A。基于上述改进的from子句,后续在进行目标数据处理时,第二参与方(对应的part字段的取值为P1)和第三参与方(对应的part字段的取值为P2)无法输入隐私数据A,同时也无法加载获取第一参与方所输入的隐私数据A。从而可以保护目标数据处理过程中第一参与方的数据隐私,避免第一参与方所持有的隐私数据A遭到泄露。
在一些实施例中,在使用隐私SQL语言生成目标业务代码的过程中,具体实施时,可以根据预设的生成规则,使用第二类关键字段(例如,reveal字段)和第三类关键字段(例如,part_list字段),结合预设的合作协议,来生成目标业务代码中的reveal子句。
具体的,可以按照以下形式,使用隐私SQL语言,根据预设的生成规则,来生成所需要的reveal子句:reveal to part_list。
需要说明的是,基于标准SQL语言通常无法生成上述reveal子句,也不会在业务代码中使用到上述reveal子句。
其中,第三类关键字段part_list字段的具体取值可以根据预设的合作协议确定,对应一个或多个有权限获取目标处理结果的明文数据的参与方(即,一个或多个具体的输出方)。第二类关键字段reveal字段用于指示针对上述输出方输出目标处理结果的明文数据。上述reveal子句用于限定目标处理结果的明文数据的输出方。
具体的,例如,根据预设的合作协议,确定合作进行目标数据处理的三个参与方中有第一参与方(对应的part_list字段的取值为P0)有权限得到目标处理结果的明文数据。
相应的,在具体生成目标业务代码时,可以使用SQL语言,根据预设的生成规则和预设的合作协议,生成以下所示用于限定第一参与方作为输出方获取目标处理结果的明文数据的reveal子句:reveal to P0。
在一些实施例中,使用隐私SQL语言,根据预设的生成规则所生成的目标业务代码,区别于基于标准SQL语言所生成的业务代码。
具体的,所述目标业务代码至少可以包含有基于隐私SQL语言生成的改进的from子句;其中,所述改进的from子句用于限定隐私数据的输入方。这样,基于上述目标业务代码,可以对后续目标数据处理过程中隐私数据的输入方进行有效的限定。
在一些实施例中,所述目标业务代码具体还可以包含有基于隐私SQL语言生成的reveal子句;其中,所述reveal子句用于限定目标处理结果的明文数据的输出方。这样,基于上述目标业务代码,可以对后续目标数据处理过程中目标处理结果的明文数据的输出方进行有效的限定。
在一些实施例中,需要说明的是,在具体生成目标业务代码时,上述reveal子句可以是一种可选的子句。具体的,在需要将目标处理结果的明文数据向某个参与方输出的情况下,上述目标业务代码中可以包含有相应的reveal子句。在不需要将目标处理结果的明文数据向任何一个参与方输出的情况下,上述目标业务代码也可以不包含有reveal子句。
例如,根据预设的合作协议,最终多个参与方只获得目标处理结果的密文数据。在这种情况下,所生成的目标业务代码可以不包含有reveal子句。
在一些实施例中,所述目标业务代码具体还可以包含有基于隐私SQL语言生成的目标隐私算法的指示信息,和/或,目标机器学习框架的指示信息。
这样,基于上述目标业务代码,可以对后续目标数据处理过程所使用的目标隐私算法,和/或,目标机器学习框架进行指定。相应的,可以使得后续所得到的用于实现目标数据处理的隐私可执行文件是与用户所指定的目标隐私算法,和/或,目标机器学习框架相匹配的。
在一些实施例中,所述目标隐私算法具体可以包括以下至少之一:安全多方计算算法(例如,MPC.so)、同态加密算法(例如,HE.so)、零知识证明算法(例如,ZKP.so)等等。当然,需要说明的是,上述所列举的隐私算法只是一种示意性说明。具体实施时,根据具体情况和处理需求,上述目标隐私算法还可以包括其他类型的用于保护数据隐私的密码学算法。
通过上述实施例,可以利用本说明书实施例所提供的隐私可执行文件的生成方法拓展适配于多种用户指定的目标隐私算法,满足用户多样化的个性需求。
在一些实施例中,所述目标机器学习框架具体可以包括以下至少之一:Rosetta框架、TF-Encrypted框架、PySyft框架等等。当然,需要说明的是,上述所列举的机器学习框架只是一种示意性说明。具体实施时,根据具体情况和处理需求,上述目标机器学习框架还可以包括其他类型的隐私机器学习框架。
通过上述实施例,还可以利用本说明书实施例所提供的隐私可执行文件的生成方法拓展适配于多种用户指定的目标机器学习框架,进一步满足用户更加多样化的个性需求。
在一些实施例中,上述目标业务代码还可以不包含有上述目标隐私算法的指示信息,和/或,目标机器学习框架的指示信息。相应的,后续可以根据用户所指定的目标隐私算法,和/或,目标机器学习框架,通过有针对性地调整预设的隐私结构化查询语言编译器的相关编译器参数,使得经过预设的隐私结构化查询语言编译器的预设的编译处理后,所得到的编译后的代码是与用户所指定的目标隐私算法,和/或,目标机器学习框架是相匹配的。
在一些实施例中,上述预设的隐私结构化查询语言编译器(可以记为MEP-SQLCompiler)具体可以理解为一种结合了隐私保护,能够同时支持基于编译维度和密码学维度两种维度的优化处理的,适配于隐私SQL语言的编译器。
具体的,可以参阅图4所示,于声色隐私结构化查询语言编译具体可以包括:前端模块(可以记为MEP-SQL Frontend)、优化模块(可以记为Optimizer)、后端模块(可以记为MEP-SQL Backend)三部分。
其中,上述优化模块可以同时支持基于编译维度和密码学维度两种维度的优化处理的。
上述后端模块具体可以包括:不考虑机器学习框架的处理子模块,以及与多种机器学习框架分别匹配对应的多个处理子模块。
在一些实施例中,上述调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,具体实施时,可以包括以下内容:
S1:调用预设的隐私结构化查询语言编译器中的前端模块处理目标业务代码,得到中间代码;
S2:调用预设的隐私结构化查询语言编译器中的优化模块对所述中间代码分别进行基于编译维度的第一类优化处理,以及与目标隐私算法匹配的基于密码学维度的第二类优化处理,得到优化后的中间代码;
S3:调用预设的隐私结构化查询语言编译器中的后端模块处理所述优化后的中间代码,以得到与目标隐私算法和/或目标机器学习框架匹配的编译后的代码。
通过上述实施例,可以利用预设的隐私结构化查询语言编译器对目标业务代码进行同时涉及编译维度和密码学维度的多种处理,从而可以与目标隐私算法和/或目标机器学习框架匹配的,适合于基于目标隐私算法的目标数据处理的编译后的代码。
在一些实施例中,上述中间代码(Intermediate Representation,IR),也可以称为中间表示层,具体可以是指经预设的隐私结构化查询语言编译器中的前端模块处理后的代码。
在一些实施例中,上述基于编译维度的第一类优化处理具体可以包括针对编译维度的格式、数值、符号的优化处理。上述基于密码学维度的第二类优化处理具体可以包括针对密码学维度的,与目标隐私算法对应的多种运算(例如,加法运算、乘法运算等)的优化处理。
在一些实施例中,在不需要考虑所涉及的机器学习框架的情况下,可以调用预设的隐私结构化查询语言编译器中的后端模块通过处理优化后的中间代码,得到对应的相对更适于运算、更为高效的C/C++代码作为所述编译后的代码。
在一些实施例中,在需要考虑所涉及的机器学习框架的情况下,可以调用预设的隐私结构化查询语言编译器中预先配置好的与所要求的机器学习框架相匹配的处理子模块来处理优化后的中间代码,以得到与所要求的机器学习框架匹配的编译后的代码。
具体的,例如,当所要求的目标机器学习框架为Rosetta框架时,可以调用预设的隐私结构化查询语言编译器中与Rosetta框架匹配对应的处理子模块(Rosetta Backend模块)来处理优化后的中间代码,得到基于Rosetta框架的Python代码,作为相匹配的编译后的代码。
又例如,当所要求的目标机器学习框架为TF-Encrypted框架时,可以调用预设的隐私结构化查询语言编译器中与TF-Encrypted匹配对应的处理子模块(TF-EncryptedBackend模块)来处理优化后的中间代码,得到基于TF-Encrypted框架的Python代码,作为相匹配的编译后的代码。
通过上述实施例,利用预设的隐私结构化查询语言编译器可以得到适用于多种场景的不同类型的编译后代码,满足用户的多样化的定制需求。
在一些实施例中,编译后的代码具体可以包含有针对预设的隐私算法库的接口调用。其中,所述预设的隐私算法库至少包含有目标隐私算法。上述目标隐私算法具体可以理解为用户指定的隐私算法。
在一些实施例中,上述根据所述编译后的代码,生成符合要求的隐私可执行文件,具体实施时,可以包括以下内容:
S1:检测所述编译后的代码的代码类型;
S2:在确定所述编译后的代码的代码类型为第一类型的情况下,将所述编译后的代码与预设的隐私算法库中的目标隐私算法进行编译链接,得到符合要求的隐私可执行文件;其中,所述第一类型为C/C++代码。
通过上述实施例,可以区分编译后的代码的不同代码类型,在确定所得到的编译后的代码为C代码或C++代码的情况下,可以通过将编译后的代码与预设的隐私算法库中的目标隐私算法进行编译链接,以得到满足用户需求的隐私可执行文件。
具体进行编译链接时,可以选择使用与编译后的代码相匹配的编译器,将编译后的代码与预设的隐私算法库中的目标隐私算法进行针对性的编译链接。
以编译后的代码为C++代码为例,可以选择使用GNU g++(一种与C++匹配对应的编译器)将C++代码与预设的隐私算法库中的同态加密算法进行编译链接,得到最终符合要求的隐私可执行文件。
在一些实施例中,在检测所述编译后的代码的代码类型之后,所述方法具体实施时,还可以包括:在确定所述编译后的代码的代码类型为第二类型的情况下,将所述编译后的代码确定为符合要求的隐私可执行文件;其中,所述第二类型为Python代码。
需要说明的是,在确定所得到的编译后的代码为Pyhon代码的情况下,可以确定该编译后的代码是与诸如Rosetta框架、TF-Encrypted框架、PySyft框架等目标机器学习框架相适配的编译后的代码。而上述目标机器学习框架本身又是使用Pyhon代码生成的。并且,Python代码本身是一种脚本文件,不需要另外再进行编译链接,就可以直接在上述所目标机器学习框架上执行。因此,可以将上述代码类型为Pthon代码的编译后的代码视为能够在所适配的目标机器学习框架上直接运行的广义上的一种可执行文件。
通过上述实施例,可以区分编译后的代码的不同代码类型,在确定所得到的编译后的代码为Python代码的情况下,可以将上述编译后的代码作为满足用户需求的隐私可执行文件。
在一些实施例中,在得到符合要求的隐私可执行文件之后,所述方法具体实施时,还可以包括以下内容:向多个参与方提供所述隐私可执行文件;其中,所述多个参与方响应需求方发起的联合处理请求,基于所述隐私可执行文件,分别输入各自的隐私数据,以合作完成基于目标隐私算法的目标数据处理;所述需求方基于所述隐私可执行文件,获取目标处理结果的明文数据。
具体的,服务器可以将所生成的用于实现基于目标隐私算法的目标数据处理的隐私可执行文件分别发送给基于预设的合作协议要参与目标数据处理的多个参与方。多个参与方可以在各自的节点端服务器上部署好该隐私可执行文件。完成准备工作。
当需求方希望进行目标数据处理,获取目标处理结果时,可以发起关于目标数据处理的联合处理请求。其中,需求方具体可以是多个参与方中的一个参与方,也可以是多个参与方以外的其他数据方。
多个参与方可以响应该联合处理请求,分别运行各自节点服务器上的隐私可执行文件,并根据预设的合作协议,将相应的隐私数据分别输入至该隐私可执行文件中。
隐私可执行文件可以获取并根据各个参与方分别输入的隐私数据进行基于目标隐私算法的目标数据处理,得到目标处理结果的明文数据;同时,可以避免在处理过程中对外泄露各个参与方输入的隐私数据。
进一步,隐私可执行文件可以自动将目标处理结果的明文数据发送给需求方。其中,基于预设的合作协议,该需求具有获取目标处理结果的明文数据的权限。
通过上述实施例,多个参与方可以利用所生成的隐私可执行文件,在不泄露参与方的隐私数据的前提下,安全、高效地完成基于目标隐私算法的目标数据处理,并只对需求方提供目标处理结构的明文数据,保护各个参与方的数据隐私。
由上可见,基于本说明书实施例提供的隐私可执行文件的生成方法,获取基于隐私SQL语言生成的目标业务代码;并调用预设的隐私结构化查询语言编译器对目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,其中,编译后的代码包含针对预设的隐私算法库的接口调用;再根据上述编译后的代码,生成得到符合要求的隐私可执行文件。从而能有效地降低用户操作难度、减少用户工作量,高效地生成满足用户个性化需求的、适配于目标隐私算法的隐私可执行文件,进而多个参与方可以通过运行该隐私可执行文件,在保护数据隐私的前提下,安全地合作完成基于目标隐私算法的目标数据处理。
本说明书实施例所提供的上述隐私可执行文件的生成方法具体还可以应用于包含有服务器和终端设备的系统。
其中,服务器具体可以为一种部署于负责在线生成隐私可执行文件的网络平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
终端设备具体可以包括一种部署于用户一侧,能够实现数据采集、数据传输、代码生成等功能的前端设备。具体的,所述终端设备例如可以为台式电脑、平板电脑、笔记本电脑等。或者,所述终端设备也可以为能够运行于上述电子设备中的软件应用。
具体实施时,终端设备可以先基于用户所要求的目标数据处理、目标数据处理所基于的预设的合作协议的步伐,使用隐私SQL语言,根据预设的生成规则,生成对应的目标业务代码;再将该目标业务代码发送至服务器,以请求服务器进行进一步的编译处理。其中,服务器布设有预设的隐私结构化查询语言编译器。
服务器在接收到目标业务代码后,可以调用预设的隐私结构化查询编译器对该目标业务代码进行预设的编译处理。具体的,可以先调用预设的隐私结构化查询语言编译器中的前端模块处理目标业务代码,得到中间代码;再调用预设的隐私结构化查询语言编译器中的优化模块对所述中间代码分别进行基于编译维度的第一类优化处理,以及与目标隐私算法匹配的基于密码学维度的第二类优化处理,得到优化后的中间代码;然后调用预设的隐私结构化查询语言编译器中的后端模块处理所述优化后的中间代码,以得到与目标隐私算法匹配的编译后的代码。
接着,服务器可以检测编译后的代码的代码类型;并区分不同的代码类型,采用与代码类型相匹配的生成方式,来利用编译后的代码,生成符合要求的隐私可执行文件;并将该隐私可执行文件反馈给终端设备。
这样用户只需要在终端设备上进行较为简单的操作,就能够获取满足自己个性化需求的隐私可执行文件。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;根据所述编译后的代码,生成符合要求的隐私可执行文件。
为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器503,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口501,具体可以用于获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码。
所述处理器502,具体可以用于调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;根据所述编译后的代码,生成符合要求的隐私可执行文件。
所述存储器503,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述隐私可执行文件的生成方法的计算机可读存储介质,所述计算机可读存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;根据所述编译后的代码,生成符合要求的隐私可执行文件。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机可读存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图6所示,在软件层面上,本说明书实施例还提供了一种隐私可执行文件的生成装置,该装置具体可以包括以下的结构模块:
获取模块601,具体可以用于获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;
调用模块602,具体可以用于调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;
生成模块603,具体可以用于根据所述编译后的代码,生成符合要求的隐私可执行文件。
在一些实施例中,所述生成模块603具体可以用于检测所述编译后的代码的代码类型;在确定所述编译后的代码的代码类型为第一类型的情况下,将所述编译后的代码与预设的隐私算法库中的目标隐私算法进行编译链接,得到符合要求的隐私可执行文件;其中,所述第一类型为C/C++代码。
在一些实施例中,所述生成模块603具体还可以用于在确定所述编译后的代码的代码类型为第二类型的情况下,将所述编译后的代码确定为符合要求的隐私可执行文件;其中,所述第二类型为Python代码。
在一些实施例中,所述装置具体还可以包括发送模块,具体可以用于向多个参与方提供所述隐私可执行文件;其中,所述多个参与方响应需求方发起的联合处理请求,基于所述隐私可执行文件,分别输入各自的隐私数据,以合作完成基于目标隐私算法的目标数据处理;所述需求方基于所述隐私可执行文件,获取目标处理结果的明文数据。
在一些实施例中,所述目标业务代码至少可以包含有基于隐私SQL语言生成的改进的from子句;其中,所述改进的from子句用于限定隐私数据的输入方。
在一些实施例中,所述目标业务代码具体还可以包含有基于隐私SQL语言生成的reveal子句;其中,所述reveal子句用于限定目标处理结果的明文数据的输出方。
在一些实施例中,所述目标业务代码具体还可以包含有基于隐私SQL语言生成的目标隐私算法的指示信息,和/或,目标机器学习框架的指示信息。
在一些实施例中,为了调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,上述调用模块602具体可以用于调用预设的隐私结构化查询语言编译器中的前端模块处理目标业务代码,得到中间代码;调用预设的隐私结构化查询语言编译器中的优化模块对所述中间代码分别进行基于编译维度的第一类优化处理,以及与目标隐私算法匹配的基于密码学维度的第二类优化处理,得到优化后的中间代码;调用预设的隐私结构化查询语言编译器中的后端模块处理所述优化后的中间代码,以得到与目标隐私算法和/或目标机器学习框架匹配的编译后的代码。
在一些实施例中,所述目标隐私算法具体可以包括以下至少之一:安全多方计算算法、同态加密算法、零知识证明算法等。
在一些实施例中,所述目标机器学习框架具体可以包括以下至少之一:Rosetta框架、TF-Encrypted框架、PySyft框架等。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,基于本说明书实施例提供的隐私可执行文件的生成装置,能有效地降低用户操作难度、减少用户工作量,高效地生成满足用户个性化需求的、适配于目标隐私算法的隐私可执行文件,进而多个参与方可以通过运行该隐私可执行文件,在保护数据隐私的前提下,安全地合作完成基于目标隐私算法的目标数据处理。
在一个具体的场景示例中,可以应用本说明书实施例所提供的隐私可执行文件的生成方法来高效、便捷地生成相应的隐私代码(例如,隐私可执行文件)。
在本场景示例中,考虑到在人工智能AI(Artificial Intelligence)领域,基于密码算法的主流机器学习的框架通常包括:Rosetta、TF-Encrypted、PySyft等,这些框架大多可以通过使用密码学算法与AI的框架结合起来,以实现隐私AI中的业务逻辑。但是在商业智能BI(Business Intelligence)领域,则缺少类隐私AI框架这一类的隐私BI框架。基于现有方法,通常可以使用隐私AI框架来处理相应的BI领域问题,但是这样会存在易用性差、性能及扩展性不理想等多种问题。并且,随着数据挖掘、数据查询等领域的发展,联合查询(一种目标数据处理)越来越受到关注,而常见编写查询代码的方式是使用结构化查询语言(SQL)。但是,上述BI领域对隐私保护的要求较为为严格,要求在进行联合查询时,要保护参与方的数据隐私,避免参与方所提供的隐私数据遭到泄露。
而基于现有方法,在生相应的隐私代码来完成基于隐私保护的联合查询时,往往存在以下问题:所使用的语言与标准SQL(例如,SQL-99)差异较大,导致编写难度大、编写过程复杂、效率慢。此外,基于现有方法所使用的常规的编译器只能支持进行编译领域的优化处理,无法支持进行与用户所选中的目标隐私算法相匹配的密码学领域的优化处理。
针对现有方法存在的上述问题,考虑可以通过以下方式来生成符合要求的隐私代码:
2)使用类SQL的隐私结构化查询语言(例如,MEP-SQL,相对于SQL-99的语言标准只进行极少改动)来生成相应的业务代码;
2)使用隐私结构化查询语言编译器(例如,预设的隐私结构化查询语言编译器)来将基于MEP-SQL语言生成的业务代码编译为更高效的C/C++代码(例如,编译后的代码);
3)将编译器生成的C/C++代码结合隐私算法库(例如,预设的隐私算法库)中的MPC\HE\ZKP等(目标隐私算法)进行编译链接生成符合要求的隐私可执行文件。
具体实施时,可以参阅图7所示,包括以下内容。
在本场景示例中,首先,用户可以使用MEP-SQL(例如,隐私SQL语言)来编写业务代码(例如,目标业务代码)。
然后,使用MEP-SQL Compiler(例如,预设的隐私结构化查询语言编译器)将MEP-SQL代码编译生成C++代码,其中,C++代码中包含对密码算法库的接口调用等。
最后,使用GNU g++将所生成的C++代码跟密码算法库中的算法,例如MPC.so、HE.so、ZKP.so等链接为可执行文件。
需要注意的是,在链接的时候并不会把密码算法库中所有的算法一起链接到可执行文件中,而是根据生成的C++代码中所使用的密码算法来决定链接哪一种密码算法。
进而,后续可以通过运行该可执行文件,来根据不同参与方的隐私输入(例如,输入的隐私数据),输出计算结果(例如,目标处理结果)。
在本场景示例中,上述处理过程中相对于现有方法至少包含有以下三个部分的改进和区别:使用了隐私SQL语言(MEP-SQL);MEP-SQL编译器的引入和使用;以及多种高性能密码算法库的链接实现。
具体的,针对使用了隐私SQL语言(MEP-SQL),考虑到易用性,参考SQL-99标准,设计专用于隐私领域的隐私SQL语言。基于该隐私SQL语言,在使用时,与SQL-99标准的差异主要体现在Select语句中。具体可以参阅图2。
进一步,较为明显的不同点主要包括:from子句不同和reveal子句。
对于from子句,基于隐私SQL语言,参阅图3所示,增加了party(例如,第一类关键字段)来说明后面的数据表是属于哪个参与方的隐私数据表,这里的参与方的个数可以根据隐私协议(预设的合作协议)的不同而不同。例如,对于3方协议,party代表的是P0 orP1or P2;而对于2方协议,party代表的是P0 or P1。其中,P0、P1、P2等都是MEP-SQL语言的关键字,跟SQL-99一样,关键字不区分大小写。
对于新增加可选的reveal子句,由于使用MEP-SQL查询的结果如果不指定reveal子句,那么查询结果是密文的,如果要把查询的结果用明文的方式暴露给指定的参与方,那么就要增加reveal子句。其中,reveal子句的语法格式为:reveal to part_list。
其中,party_list代表的是参与方的列表,即可以指定多个参与方,多个参与方中间可以使用预设的分隔符号“,”隔开。
例如,reveal子句为:REVEAL TO P0,P1;表示的是将结果暴露给参与方P0,P1;另外如果暴露结果给所有的参与方,可以使用ALL关键字来替代所有的Party lists,reveal子句可以为:REVEAL TO ALL。
对于所使用的MEP-SQL编译器的整体架构设计可以参阅图4所示,可以包括以下多个结构模块。
MEP-SQL Frontend模块(前端模块)根据用户输入的MEP-SQL代码输出对应的IR(Intermediate Representation),即中间表示层(例如,中间代码)。
Optimizer模块(优化模块)对IR进行优化。其中,这些优化主要包含两个部分,一个部分是针对编译器领域的优化,另外一个部分是针对密码学领域的优化。输出是优化后的IR(例如,优化后的中间代码)。
MEP-SQL Backend模块(后端模块)根据输入的优化IR生成高效的C++代码(编译后的代码)。由于架构设计的灵活性,也可以编写基于具体隐私AI框架的后端模块,例如,Rosetta Backend模块(对应Rosetta框架),根据输入的优化后的IR生成基于Rosetta框架的Python代码。又例如,TF-Encrypted Backend模块(对应TF-Encrypted框架),根据输入的优化后的IR生成基于TF-Encrypted框架的Python代码等。上述代码可直接运行在对应的隐私机器学习框架上。类似的,也可以增加基于其他隐私机器学习的后端来支持生成依赖于对应隐私机器学习的后端模块,以适配更多样的隐私机器学习框架。
还对密码算法进行算法实现及工程上的优化,并提供多个基于不同密码算法的库文件,例如:MPC.so、HE.so、ZKP.so等,以实现高性能密码算法库,满足更多样化的密码算法的需求。
通过上述场景示例,验证了本说明书实施例所提供的隐私可执行文件的生成方法可以获取以下所列举的较好的效果:1)易用性高,相对于其他的隐私方案,可以使用类SQL标准的MEP-SQL语言编写代码,由于MEP-SQL语言跟标准的SQL语言的语法大部分都是相同的,故对熟悉SQL的用户来说,更容易上手;2)移植性高,使用MEP-SQL编译器对MEP-SQL代码进行编译,以生成相应的C/C++代码,用户可以根据自己的个性化需要把生成的代码和隐私算法库移植到其他项目中进行重新编译链接即可,具有较好的移植性;3)性能好,MEP-SQL编译器中专门设计有一个优化器模块(例如,Optimizer)可以对要生成的代码进行优化,其中,这些优化方法包含传统的编译器领域的代码优化方法和针对隐私领域的一些特定优化方法,在这两种优化方法的优化下,可以使得生成代码的效率变得更高;4)扩展性强,通常基于其他隐私方案如果要扩展支持另外的密码学算法,例如,ZKP(零知识证明密码算法),需对整体的隐私方案进行修改来支持ZKP(Zero—Knowledge Proof)算法,而基于本方案只需要在编译MEPSQL代码的时候使用编译器参数来选择隐私算法为ZKP算法即可,这样MEPSQL编译器即可生成依赖于ZKP算法的C/C++代码,通过这种方式可以较为高效、便捷地扩展支持多种用户指定的密码算法。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机可读存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (13)
1.一种隐私可执行文件的生成方法,其特征在于,包括:
获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;
调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;
根据所述编译后的代码,生成符合要求的隐私可执行文件。
2.根据权利要求1所述的方法,其特征在于,根据所述编译后的代码,生成符合要求的隐私可执行文件,包括:
检测所述编译后的代码的代码类型;
在确定所述编译后的代码的代码类型为第一类型的情况下,将所述编译后的代码与预设的隐私算法库中的目标隐私算法进行编译链接,得到符合要求的隐私可执行文件;其中,所述第一类型为C/C++代码。
3.根据权利要求2所述的方法,其特征在于,在检测所述编译后的代码的代码类型之后,所述方法还包括:
在确定所述编译后的代码的代码类型为第二类型的情况下,将所述编译后的代码确定为符合要求的隐私可执行文件;其中,所述第二类型为Python代码。
4.根据权利要求1所述的方法,其特征在于,在生成符合要求的隐私可执行文件之后,所述方法还包括:
向多个参与方提供所述隐私可执行文件;其中,所述多个参与方响应需求方发起的联合处理请求,基于所述隐私可执行文件,分别输入各自的隐私数据,以合作完成基于目标隐私算法的目标数据处理;所述需求方基于所述隐私可执行文件,获取目标处理结果的明文数据。
5.根据权利要求1所述的方法,其特征在于,所述目标业务代码至少包含有基于隐私SQL语言生成的改进的from子句;其中,所述改进的from子句用于限定隐私数据的输入方。
6.根据权利要求5所述的方法,其特征在于,所述目标业务代码还包含有基于隐私SQL语言生成的reveal子句;其中,所述reveal子句用于限定目标处理结果的明文数据的输出方。
7.根据权利要求6所述的方法,其特征在于,所述目标业务代码还包含有基于隐私SQL语言生成的目标隐私算法的指示信息,和/或,目标机器学习框架的指示信息。
8.根据权利要求7所述的方法,其特征在于,调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码,包括:
调用预设的隐私结构化查询语言编译器中的前端模块处理目标业务代码,得到中间代码;
调用预设的隐私结构化查询语言编译器中的优化模块对所述中间代码分别进行基于编译维度的第一类优化处理,以及与目标隐私算法匹配的基于密码学维度的第二类优化处理,得到优化后的中间代码;
调用预设的隐私结构化查询语言编译器中的后端模块处理所述优化后的中间代码,以得到与目标隐私算法和/或目标机器学习框架匹配的编译后的代码。
9.根据权利要求7所述的方法,其特征在于,所述目标隐私算法包括以下至少之一:安全多方计算算法、同态加密算法、零知识证明算法。
10.根据权利要求7所述的方法,其特征在于,所述目标机器学习框架包括以下至少之一:Rosetta框架、TF-Encrypted框架、PySyft框架。
11.一种隐私可执行文件的生成装置,其特征在于,包括:
获取模块,用于获取目标业务代码;其中,所述目标业务代码为基于隐私SQL语言生成的业务代码;
调用模块,用于调用预设的隐私结构化查询语言编译器对所述目标业务代码进行预设的编译处理,得到相匹配的编译后的代码;其中,所述编译后的代码包含有针对预设的隐私算法库的接口调用,所述预设的隐私算法库至少包含有目标隐私算法;
生成模块,用于根据所述编译后的代码,生成符合要求的隐私可执行文件。
12.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被计算机设备执行时实现权利要求1至10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110979075.9A CN113722754B (zh) | 2021-08-25 | 2021-08-25 | 隐私可执行文件的生成方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110979075.9A CN113722754B (zh) | 2021-08-25 | 2021-08-25 | 隐私可执行文件的生成方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722754A true CN113722754A (zh) | 2021-11-30 |
CN113722754B CN113722754B (zh) | 2024-06-14 |
Family
ID=78677818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110979075.9A Active CN113722754B (zh) | 2021-08-25 | 2021-08-25 | 隐私可执行文件的生成方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722754B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226928A (zh) * | 2023-05-09 | 2023-06-06 | 京东科技控股股份有限公司 | 多方业务隐私数据的联合计算方法、装置、设备和介质 |
WO2023116466A1 (zh) * | 2021-12-20 | 2023-06-29 | 杭州趣链科技有限公司 | 隐私计算方法、装置、电子设备及计算机可读存储介质 |
CN117851270A (zh) * | 2024-03-07 | 2024-04-09 | 中国电子科技集团公司第十五研究所 | 晶上系统编译器测试方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN108701198A (zh) * | 2016-02-17 | 2018-10-23 | 微软技术许可有限责任公司 | 合取sql语句的可搜索加密 |
CN109739524A (zh) * | 2019-01-09 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种软件安装包的生成方法、装置、电子设备及存储介质 |
CN110287102A (zh) * | 2019-05-22 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 核心数据检测处理方法、装置、计算机设备及存储介质 |
US20200226284A1 (en) * | 2019-01-11 | 2020-07-16 | Experian Information Solutions, Inc. | Systems and methods for secure data aggregation and computation |
CN111783124A (zh) * | 2020-07-07 | 2020-10-16 | 矩阵元技术(深圳)有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
CN112231752A (zh) * | 2020-10-20 | 2021-01-15 | 南开大学 | 一种无交互频率隐藏的密文插入查询删除方法 |
CN112711773A (zh) * | 2021-01-12 | 2021-04-27 | 北京金万维科技有限公司 | 基于php开发平台不停服务对明文密码加密的方法 |
CN112910870A (zh) * | 2021-01-22 | 2021-06-04 | 西安电子科技大学 | 基于区块链的协同隐私计算数据通信方法 |
CN113076108A (zh) * | 2021-06-04 | 2021-07-06 | 华控清交信息科技(北京)有限公司 | 一种代码执行方法、装置和用于代码执行的装置 |
CN113239395A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 数据查询方法、装置、设备、存储介质及程序产品 |
-
2021
- 2021-08-25 CN CN202110979075.9A patent/CN113722754B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701198A (zh) * | 2016-02-17 | 2018-10-23 | 微软技术许可有限责任公司 | 合取sql语句的可搜索加密 |
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN109739524A (zh) * | 2019-01-09 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种软件安装包的生成方法、装置、电子设备及存储介质 |
US20200226284A1 (en) * | 2019-01-11 | 2020-07-16 | Experian Information Solutions, Inc. | Systems and methods for secure data aggregation and computation |
CN110287102A (zh) * | 2019-05-22 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 核心数据检测处理方法、装置、计算机设备及存储介质 |
CN111783124A (zh) * | 2020-07-07 | 2020-10-16 | 矩阵元技术(深圳)有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
CN112231752A (zh) * | 2020-10-20 | 2021-01-15 | 南开大学 | 一种无交互频率隐藏的密文插入查询删除方法 |
CN112711773A (zh) * | 2021-01-12 | 2021-04-27 | 北京金万维科技有限公司 | 基于php开发平台不停服务对明文密码加密的方法 |
CN112910870A (zh) * | 2021-01-22 | 2021-06-04 | 西安电子科技大学 | 基于区块链的协同隐私计算数据通信方法 |
CN113239395A (zh) * | 2021-05-10 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 数据查询方法、装置、设备、存储介质及程序产品 |
CN113076108A (zh) * | 2021-06-04 | 2021-07-06 | 华控清交信息科技(北京)有限公司 | 一种代码执行方法、装置和用于代码执行的装置 |
Non-Patent Citations (8)
Title |
---|
KARTHIKEYAN BHARGAVAN等: "Cryptographic Protocol Synthesis and Verification for Multiparty Sessions", 《2009 22ND IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM》, vol. 1, pages 124 - 140, XP031524640 * |
余永红;柏文阳;: "基于敏感数据加密的分布式安全数据库服务研究", 计算机应用研究, no. 09, pages 3510 - 3513 * |
六三: "安全多方计算入门级介绍二", Retrieved from the Internet <URL:安全多方计算入门级介绍二 - 六三的文章 - 知乎 https://zhuanlan.zhihu.com/p/363805982> * |
孙立林: "分布式隐私人工智能基础设施", 《软件和集成电路》, no. 06, pages 48 - 49 * |
沈硕等: "交叉K函数的安全多方计算方法研究", 《测绘与空间地理信息》, vol. 44, no. 05, pages 36 - 40 * |
相冲等: "三维设计方法在水泥工厂设计中的应用", 《水泥技术》, no. 06, pages 27 - 30 * |
陈友良: "基于区块链的企业数据交换关键技术研究", 《中国优秀硕士学位论文全文数据库》, pages 138 - 8 * |
陈希等: "Go语言在国产CPU平台上应用前景的探索与思考", 《电子技术应用》, vol. 44, no. 08, pages 1 - 4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116466A1 (zh) * | 2021-12-20 | 2023-06-29 | 杭州趣链科技有限公司 | 隐私计算方法、装置、电子设备及计算机可读存储介质 |
CN116226928A (zh) * | 2023-05-09 | 2023-06-06 | 京东科技控股股份有限公司 | 多方业务隐私数据的联合计算方法、装置、设备和介质 |
CN116226928B (zh) * | 2023-05-09 | 2024-04-16 | 京东科技控股股份有限公司 | 多方业务隐私数据的联合计算方法、装置、设备和介质 |
CN117851270A (zh) * | 2024-03-07 | 2024-04-09 | 中国电子科技集团公司第十五研究所 | 晶上系统编译器测试方法、装置、电子设备及存储介质 |
CN117851270B (zh) * | 2024-03-07 | 2024-05-03 | 中国电子科技集团公司第十五研究所 | 晶上系统编译器测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113722754B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113722754B (zh) | 隐私可执行文件的生成方法、装置和服务器 | |
EP3674914A1 (en) | Multi-party data joint query method, device, server and storage medium | |
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN111783124B (zh) | 基于隐私保护的数据处理方法、装置和服务器 | |
JP2019508950A (ja) | 統合ブロックチェーンに基づくデータ転送制御方法及びシステム | |
CN111310221B (zh) | 持久层数据的加解密方法、装置、设备及存储介质 | |
CN111125727B (zh) | 混淆电路生成方法、预测结果确定方法、装置和电子设备 | |
CN102087577A (zh) | 与位置无关地执行用户接口操作 | |
CN115208665B (zh) | 一种基于区块链的种质资源数据安全共享方法及系统 | |
CN113239395A (zh) | 数据查询方法、装置、设备、存储介质及程序产品 | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
CN111753315B (zh) | 输入数据的计算方法、计算引擎及存储介质 | |
CN112596711A (zh) | 一种基于Web系统的个性化权限管理设置方法及系统 | |
WO2020257123A1 (en) | Systems and methods for blockchain-based authentication | |
WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
CN116383246A (zh) | 联合查询方法以及装置 | |
CN111046408A (zh) | 判断结果处理方法、查询方法、装置、电子设备和系统 | |
US20160098294A1 (en) | Execution of a method at a cluster of nodes | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
CN111880805A (zh) | 软件项目的包文件生成方法及装置、设备、存储介质 | |
CN114327486B (zh) | 基于领域专用语言实现多方安全计算的方法、装置及介质 | |
CN111460514B (zh) | 数据匹配方法、装置和电子设备 | |
CN111460515B (zh) | 数据匹配方法、装置和电子设备 | |
CN115826961B (zh) | 设计器及引擎分离重用的数据分析系统设计方法及装置 | |
US20240134723A1 (en) | Technology and protocol agnostic key-value pair based user interface and data rendering to support a transaction |
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 | ||
GR01 | Patent grant |