本技术涉及隐私安全领域,具体而言,涉及一种构建复杂数据服务的隐私计算方法以及装置。
背景技术:
1、数据服务指的是原始数据在特定分析程序上执行并输出结果的过程。传统的数据服务场景通常仅包含一个计算任务,该计算任务读入原始数据,并产生最终的模型或结论。
2、然而,在复杂的场景下,直接从原始数据产生最终的模型或结论是复杂的。例如,在机器学习中,需要对原始数据进行多次的清洗。在卫星遥感数据中,需要将原始数据中的信息进一步处理为标准化范围的值。例如夜间灯光数据中对云层的处理、对闪电的处理。可以认为,从一个或多个数据中获得模型或结论,需要多个不同领域、不同经验的专家对数据进行多次处理,而将不同的处理方法集成到一个计算任务中,是不现实的。
3、所以,需要解决大规模数据服务中不同的数据处理阶段需要多个不同领域、不同经验的专家相互协作的问题。
4、此外,在完成上述多阶段数据处理的同时,更重要的需求是保证全过程的数据隐私安全。
5、针对相关技术中数据隐私安全的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本技术的主要目的在于提供一种构建复杂数据服务的隐私计算方法以及装置,以解决数据隐私安全的问题。
2、为了实现上述目的,根据本技术的一个方面,提供了一种隐私计算方法。
3、根据本技术的隐私计算方法包括:
4、基于任务图确定参与方,所述参与方至少包括如下之一数据提供方、算法提供方、数据使用方、算力提供方、中间数据发起方;
5、根据所述任务图中的当前数据处理任务所需的输入数据,以及所述当前数据处理任务将要生成的中间数据的参与方的私钥集合,在可信执行环境中计算并输出预设处理结果,所述数据处理任务是包括对数据进行加工或对数据运行分析程序;
6、根据所述预设处理结果与所述中间数所有参与方的公钥,得到当前数据处理任务参与方总公钥,并进行校验。
7、进一步地,所述方法还包括:
8、将所述中间数据所有权确定为所述中间数据生成任务的输入数据提供方、所述中间数据生成任务的发起方、所述中间数据生成任务的所有输入数据的拥有方。
9、进一步地,所述方法还包括:
10、对于所述中间数据,构建参与方生成树;
11、通过将所述中间数据,生成任务的算法提供方,所述中间数据生成任务的发起方,所述中间数据生成任务的所有输入数据作为生成树上该中间数据的子节点;
12、对于生成树上该中间数据的所有子节点,如果是一个参与方,则将其作为最终叶子节点;
13、如果是原始数据,则替换为该原始数据提供方并作为最终叶子节点;
14、生成树所有的叶子节点,作为该中间数据所有权的参与方集合。
15、进一步地,所述根据所述任务图中的当前数据处理任务所需的输入数据,以及所述当前数据处理任务将要生成的中间数据的参与方的私钥集合,在可信执行环境中计算并输出预设处理结果,包括:
16、根据所述任务图中的当前数据处理任务所需的输入数据以及所述当前数据处理任务将要生成的中间数据的参与方的私钥集合ts,
17、通过数据安全通道传入所述算力执行方的可信执行环境中;
18、基于输入数据运行数据分析程序得到中间数据r;
19、计算当前数据处理任务参与方总私钥sk,其定义为sk=sum(ts),其中sum(ts)表示对集合ts中所有私钥进行基于其所在群的求和运算;
20、计算当前数据处理任务参与方总公钥pk=genpublic(sk),其中genpublic(sk)表示从私钥sk计算出其对应公钥的函数;
21、计算re=encpk(r),其中encpk(r)表示用公钥pk对r进行加密的结果;
22、计算h=h(r),表示r的哈希值;
23、计算σ=signsk(re||h||halg),表示用sk对re,h,halg的拼接进行数字签名,其中halg为从当前enclave获取的自身的哈希值。
24、进一步地,所述基于任务图确定参与方,包括:
25、将未进行过任何处理的数据称作原始数据、将进行过至少一次处理的数据称为中间数据,所有任务执行完毕后得到的输出为最终结果。
26、将一次数据处理的输入作为一个或多个原始/中间数据,输出为一个中间数据或最终结果;
27、将一次数据处理的输出作为下一次数据处理的输入,将数据多阶段处理的全流程用一个图来表示,作为所述任务图。
28、进一步地,所述参与方都各自有一对公私钥,
29、所述数据提供方,提供原始数据
30、所述算法提供方,提供对数据进行处理或进行分析的算法;
31、所述数据使用方,得到最终结果;
32、所述算力提供方,执行数据处理任务或数据分析任务,且具有可信执行环境;
33、所述中间数据发起方,根据已有的算法、原始数据或中间数据的哈希值和描述,发起数据处理任务,生成新的中间数据并发布。
34、进一步地,所述根据所述预设处理结果与所述中间数所有参与方的公钥,得到当前数据处理任务参与方总公钥,并进行校验,包括:
35、基于所述根据所述预设处理结果与所述中间数所有参与方的公钥基于其所在群进行求和运算,得到当前数据处理任务参与方总公钥。
36、进一步地,所述方法还包括:
37、基于所述当前数据处理任务参与方总公钥对所述算力提供方提交进行签名验证,如果验证通过则认为该加密后的中间数据re合法。
38、进一步地,所述在可信执行环境中计算并输出预设处理结果,包括:
39、通过运行在可信执行环境中enclave,计算并输出pk,re,σ,h。
40、为了实现上述目的,根据本技术的另一方面,提供了一种隐私计算装置。
41、根据本技术的隐私计算装置包括:
42、确定模块,用于基于任务图确定参与方,所述参与方至少包括如下之一数据提供方、算法提供方、数据使用方、算力提供方、中间数据发起方;
43、任务图处理模块,用于根据所述任务图中的当前数据处理任务所需的输入数据,以及所述当前数据处理任务将要生成的中间数据的参与方的私钥集合,在可信执行环境中计算并输出预设处理结果;
44、处理模块,用于根据所述预设处理结果与所述中间数所有参与方的公钥,得到当前数据处理任务参与方总公钥,并进行校验。
45、在本技术实施例中构建复杂数据服务的隐私计算方法以及装置,采用基于任务图确定参与方的方式,通过根据所述任务图中的当前数据处理任务所需的输入数据,以及所述当前数据处理任务将要生成的中间数据的参与方的私钥集合,在可信执行环境中计算并输出预设处理结果,达到了根据所述预设处理结果与所述中间数所有参与方的公钥,得到当前数据处理任务参与方总公钥,并进行校验的目的,从而实现了在保护隐私的情况下实现了数据的多阶段、涉及多参与方的处理的技术效果,进而解决了数据隐私安全的技术问题。