一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统转让专利

申请号 : CN202110369562.3

文献号 : CN113139205B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王国赛张登辉李艺王一帆

申请人 : 华控清交信息科技(北京)有限公司

摘要 :

本发明实施例提供一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统。其中的方法包括:获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎。本发明实施例可以提高安全计算系统的计算效率,以及扩展安全计算系统的应用范围。

权利要求 :

1.一种安全计算方法,其特征在于,应用于通用计算引擎,所述通用计算引擎用于提供各种算子接口,算子接口实现的操作由预置计算引擎提供;所述方法包括:获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;

执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎;

所述在已注册算子中确定目标计算引擎注册的目标算子,包括:在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;

确定所述候选算子的算子优先级;

根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。

2.根据权利要求1所述的方法,其特征在于,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还包括:确定所述目标计算引擎的协议类型;

若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;

接收所述目标计算引擎对所述远程认证挑战返回的证明信息;

若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;

所述调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。

3.根据权利要求2所述的方法,其特征在于,所述通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标计算引擎通过执行所述目标算子对所述数据进行隐私计算。

4.根据权利要求1所述的方法,其特征在于,所述根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子,包括:确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同的候选算子中随机选择一个作为目标算子,以及确定目标算子所属的预置计算引擎为目标计算引擎。

5.根据权利要求1所述的方法,其特征在于,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还包括:获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;

根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;

根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。

7.根据权利要求1所述的方法,其特征在于,所述通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算之后,所述方法还包括:获取所述目标计算引擎返回的所述隐私计算的计算结果。

8.根据权利要求1至7任一所述的方法,其特征在于,所述预置计算引擎部署在云端或者集群中。

9.一种通用计算引擎,其特征在于,所述通用计算引擎用于提供各种算子接口,算子接口实现的操作由预置计算引擎提供;所述通用计算引擎包括:任务获取模块,用于获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;

任务执行模块,用于执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎;

所述通用计算引擎还包括:

候选确定模块,用于在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;

优先级确定模块,用于确定所述候选算子的算子优先级;

目标确定模块,用于根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。

10.根据权利要求9所述的通用计算引擎,其特征在于,所述通用计算引擎还包括:协议确定子模块,用于确定所述目标计算引擎的协议类型;

远程认证子模块,用于若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;

证明接收子模块,用于接收所述目标计算引擎对所述远程认证挑战返回的证明信息;

信道建立子模块,用于若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;

所述任务执行模块,具体用于通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。

11.根据权利要求10所述的通用计算引擎,其特征在于,所述任务执行模块,具体用于通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标计算引擎通过执行所述目标算子对所述数据进行隐私计算。

12.根据权利要求9所述的通用计算引擎,其特征在于,所述目标确定模块,具体用于确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同的候选算子中随机选择一个作为目标算子,以及确定目标算子所属的预置计算引擎为目标计算引擎。

13.根据权利要求9所述的通用计算引擎,其特征在于,所述通用计算引擎还包括:执行信息获取模块,用于获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;

优先级更新模块,用于根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。

14.根据权利要求9所述的通用计算引擎,其特征在于,所述通用计算引擎还包括:注册信息接收模块,用于接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;

算子注册模块,用于根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。

15.根据权利要求9所述的通用计算引擎,其特征在于,所述通用计算引擎还包括:结果获取模块,用于获取所述目标计算引擎返回的所述隐私计算的计算结果。

16.根据权利要求9至15任一所述的通用计算引擎,其特征在于,所述预置计算引擎部署在云端或者集群中。

17.一种用于安全计算的装置,其特征在于,所述装置应用于通用计算引擎,所述通用计算引擎用于提供各种算子接口,算子接口实现的操作由预置计算引擎提供;所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行如权利要求1至8任一所述的安全计算方法的指令。

18.一种安全计算系统,其特征在于,所述安全计算系统中包括通用计算引擎、预置计算引擎、以及用户端,所述通用计算引擎用于提供各种算子接口,算子接口实现的操作由预置计算引擎提供;

所述用户端,用于向所述通用计算引擎发送安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;

所述通用计算引擎,用于获取所述用户端发送的安全计算任务,并执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子;

所述预置计算引擎,用于向所述通用计算引擎注册所述预置计算引擎实现的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎;

所述通用计算引擎,还用于在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;确定所述候选算子的算子优先级;根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。

19.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至8任一所述的安全计算方法。

说明书 :

一种安全计算方法、通用计算引擎、用于安全计算的装置和安

全计算系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统。

背景技术

[0002] MPC(Secure Muti‑Party Computation,多方安全计算)是为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框
架。多方安全计算能够同时确保输入的隐私性和计算的正确性,在无可信第三方的前提下
通过数学理论保证参与计算的各方成员输入信息不暴露,且同时能够获得准确的运算结
果。
[0003] 然而,基于MPC的安全计算系统需要进行复杂的密码学操作,计算效率较低。

发明内容

[0004] 本发明实施例提供一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统,可以提高安全计算系统的计算效率,以及扩展安全计算系统的应用范围。
[0005] 为了解决上述问题,本发明实施例公开了一种安全计算方法,应用于通用计算引擎,所述方法包括:
[0006] 获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0007] 执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完
成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎
包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎。
[0008] 可选地,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还包括:
[0009] 确定所述目标计算引擎的协议类型;
[0010] 若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;
[0011] 接收所述目标计算引擎对所述远程认证挑战返回的证明信息;
[0012] 若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;
[0013] 所述调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:
[0014] 通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
[0015] 可选地,所述通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:
[0016] 通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标计算引擎通过执行所述目标算子对所
述数据进行隐私计算。
[0017] 可选地,所述在已注册算子中确定目标计算引擎注册的目标算子,包括:
[0018] 在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;
[0019] 确定所述候选算子的算子优先级;
[0020] 根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。
[0021] 可选地,所述根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子,包括:
[0022] 确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同的候选算子中随机选择一个作为目标
算子,以及确定目标算子所属的预置计算引擎为目标计算引擎。
[0023] 可选地,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还包括:
[0024] 获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;
[0025] 根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。
[0026] 可选地,所述方法还包括:
[0027] 接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;
[0028] 根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。
[0029] 可选地,所述通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算之后,所述方法还包括:
[0030] 获取所述目标计算引擎返回的所述隐私计算的计算结果。
[0031] 可选地,所述预置计算引擎部署在云端或者集群中。
[0032] 另一方面,本发明实施例公开了一种通用计算引擎,所述通用计算引擎包括:
[0033] 任务获取模块,用于获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0034] 任务执行模块,用于执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎
执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算
子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引
擎。
[0035] 可选地,所述通用计算引擎还包括:
[0036] 协议确定子模块,用于确定所述目标计算引擎的协议类型;
[0037] 远程认证子模块,用于若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;
[0038] 证明接收子模块,用于接收所述目标计算引擎对所述远程认证挑战返回的证明信息;
[0039] 信道建立子模块,用于若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;
[0040] 所述任务执行模块,具体用于通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
[0041] 可选地,所述任务执行模块,具体用于通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标
计算引擎通过执行所述目标算子对所述数据进行隐私计算。
[0042] 可选地,所述通用计算引擎还包括:
[0043] 候选确定模块,用于在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;
[0044] 优先级确定模块,用于确定所述候选算子的算子优先级;
[0045] 目标确定模块,用于根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。
[0046] 可选地,所述目标确定模块,具体用于确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同
的候选算子中随机选择一个作为目标算子,以及确定目标算子所属的预置计算引擎为目标
计算引擎。
[0047] 可选地,所述通用计算引擎还包括:
[0048] 执行信息获取模块,用于获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;
[0049] 优先级更新模块,用于根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。
[0050] 可选地,所述通用计算引擎还包括:
[0051] 注册信息接收模块,用于接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;
[0052] 算子注册模块,用于根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。
[0053] 可选地,所述通用计算引擎还包括:
[0054] 结果获取模块,用于获取所述目标计算引擎返回的所述隐私计算的计算结果。
[0055] 可选地,所述预置计算引擎部署在云端或者集群中。
[0056] 再一方面,本发明实施例公开了一种用于安全计算的装置,所述装置应用于通用计算引擎,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上
程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上
程序包含用于进行以下操作的指令:
[0057] 获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0058] 执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完
成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎
包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎。
[0059] 可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0060] 确定所述目标计算引擎的协议类型;
[0061] 若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;
[0062] 接收所述目标计算引擎对所述远程认证挑战返回的证明信息;
[0063] 若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;
[0064] 所述调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:
[0065] 通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
[0066] 可选地,所述通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算,包括:
[0067] 通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标计算引擎通过执行所述目标算子对所
述数据进行隐私计算。
[0068] 可选地,所述在已注册算子中确定目标计算引擎注册的目标算子,包括:
[0069] 在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;
[0070] 确定所述候选算子的算子优先级;
[0071] 根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。
[0072] 可选地,所述根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子,包括:
[0073] 确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同的候选算子中随机选择一个作为目标
算子,以及确定目标算子所属的预置计算引擎为目标计算引擎。
[0074] 可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0075] 获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;
[0076] 根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。
[0077] 可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0078] 接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;
[0079] 根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。
[0080] 可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0081] 获取所述目标计算引擎返回的所述隐私计算的计算结果。
[0082] 可选地,所述预置计算引擎部署在云端或者集群中。
[0083] 又一方面,本发明实施例公开了一种安全计算系统,所述安全计算系统中包括通用计算引擎、预置计算引擎、以及用户端;
[0084] 所述用户端,用于向所述通用计算引擎发送安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0085] 所述通用计算引擎,用于获取所述用户端发送的安全计算任务,并执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎
注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所述
已注册算子包括预置计算引擎注册的预置算子;
[0086] 所述预置计算引擎,用于向所述通用计算引擎注册所述预置计算引擎实现的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引
擎。
[0087] 又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的安全计算方法。
[0088] 本发明实施例包括以下优点:
[0089] 本发明实施例在安全计算系统中增加了通用计算引擎,所述通用计算引擎在安全计算系统中作为接口层,可用于提供各种算子接口。基于通用计算引擎提供的算子接口,可
以编写安全计算任务中隐私计算的相关代码。所述通用计算引擎可以获取安全计算任务,
并执行所述安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的
算子接口实现。在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算
引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
通过本发明实施例,可以在执行安全计算任务的过程中,对安全计算任务中的隐私计算动
态选择合适的目标算子。例如,可以根据实际需求,选择计算效率更高的目标计算引擎的目
标算子,或者,选择安全性更高的目标计算引擎的目标算子等,以满足不同场景的需求。本
发明实施例不仅可以提高安全计算系统的计算效率,还可以扩展安全计算系统的应用范
围。

附图说明

[0090] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
获得其他的附图。
[0091] 图1是本发明的一种安全计算方法实施例的步骤流程图;
[0092] 图2是本发明的一种安全计算系统框架示意图;
[0093] 图3是本发明的一种通用计算引擎实施例的结构框图;
[0094] 图4是本发明的一种安全计算系统的结构框图;
[0095] 图5是本发明的一种用于安全计算的装置800的框图;
[0096] 图6是本发明的一些实施例中服务器的结构示意图。

具体实施方式

[0097] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
[0098] 方法实施例
[0099] 参照图1,示出了本发明的一种安全计算方法实施例的步骤流程图,所述方法可应用于通用计算引擎,所述方法具体可以包括如下步骤:
[0100] 步骤101、获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0101] 步骤102、执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目
标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置
计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎。
[0102] 在本发明实施例中,安全计算任务可以为通过预设编程语言实现的计算机程序代码,安全计算系统通过执行该计算机程序代码可以实现相应的计算功能。所述安全计算任
务包括但不限于:实现数据的计算、清洗、分析、模型训练、存储、数据库查询等数据相关操
作。可以理解,本发明实施例对安全计算任务的具体类型不加以限制。
[0103] 本发明实施例在安全计算系统中增加了通用计算引擎,所述通用计算引擎在安全计算系统中作为接口层,可用于提供各种算子接口。基于通用计算引擎提供的算子接口,可
以编写安全计算任务中隐私计算的相关代码。
[0104] 在本发明实施例中,算子指operator,简单说来就是进行某种操作、动作,与之对应的,就是被操作的对象,称之为操作数。例如,加法操作可以称为一个算子,乘法操作可以
称为一个算子,除法操作可以称为一个算子等等。可以理解的是,算子不限于简单的算术操
作,还可以包括逻辑操作或者其它复杂操作。接口指对协定进行定义的引用类型。其他类型
实现接口,以保证它们支持某些操作。在本发明实施例中,算子接口实现的操作由预置计算
引擎提供。
[0105] 需要说明的是,本发明实施例对通用计算引擎提供的算子接口的编程语言不做限制。例如,可以为Python语言、C/C++语言、Java语言等。
[0106] 一个示例中,通用计算引擎提供如下算子接口:pp.add,该算子接口用于实现隐私加法计算的操作。其中,pp表示通用计算引擎提供的算子空间,算子空间pp中包含了通用计
算引擎E中已注册的所有算子。又如,pp中还可以包括算子接口pp.operator,该算子接口用
于实现隐私除法计算的操作。
[0107] 基于通用计算引擎提供的算子接口pp.add,可以编写Python的隐私加法计算代码如下:pp.add(x,y),表示对操作数x和y进行隐私相加。又如,基于通用计算引擎提供的算子
接口pp.reciprocal,可以编写Python的隐私除法计算代码如下:pp.reciprocal(x,y),表
示对操作数x和y进行隐私相除。
[0108] 在本发明实施例中,隐私计算指计算过程中不会泄露原始数据的计算。所述隐私计算可以包含任意计算类型的数学计算,如四则计算(例如加法计算、减法计算、乘法计算、
除法计算)、逻辑计算(例如与计算、或计算、异或计算)、模型训练等。
[0109] 用户可以利用通用计算引擎提供的算子接口编写隐私计算代码。根据应用场景的不同,隐私计算代码不同,如可以是机器学习算法的代码,也可以是隐私求交代码等。
[0110] 在具体实施中,所述安全计算任务可以由用户端提供,所述通用计算引擎获取所述用户端发送的安全计算任务之后,执行所述安全计算任务,在执行到所述算子接口实现
的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计
算引擎执行所述目标算子完成所述隐私计算。
[0111] 在本发明实施例中,不同的预置计算引擎可以向所述通用计算引擎注册各自的预置算子。其中,预置计算引擎可以包括基于不同安全计算协议的计算引擎,不同预置计算引
擎可以提供相同的算子或者不同的算子。进一步地,所述预置计算引擎包括但不限于:基于
多方安全计算的计算引擎(以下简称为MPC计算引擎)和基于可信执行环境的计算引擎(以
下简称为TEE计算引擎)。
[0112] MPC计算引擎基于多方安全计算协议进行隐私计算,本发明实施例对所述多方安全计算协议不做限制,例如可以包括基于秘密分享、半同态、不经意传输等技术实现的多方
安全计算协议。
[0113] TEE计算引擎基于TEE(Trusted Execution Environment,可信执行环境) 进行隐私计算,通过在CPU(Central Processing Unit,中央处理器)中保留的一块区域
(Enclave),可以在保证机密性和完整性的基础上,为数据和代码的执行提供安全空间。TEE
解决方案包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面
的Intel SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和
AMD PSP(Platform Security Processor,平台安全处理器)等。
[0114] SGX是英特尔指令集架构的一个扩展,通过在计算平台上提供一个 Enclave,即内存中一个加密的可信执行区域,可以保障关键代码和数据的机密性和完整性。本发明实施
例中的TEE计算引擎主要以SGX计算引擎为例进行说明,其他类型的TEE计算引擎的应用场
景相互参照即可。
[0115] 一个示例中,假设预置计算引擎包括MPC计算引擎和SGX计算引擎。 MPC计算引擎可以提供用于进行隐私加法计算的算子、用于进行隐私减法计算的算子、用于进行隐私乘
法计算的算子、用于进行隐私除法计算的算子等各种计算类型的算子,并且向所述通用计
算引擎注册其提供的各种计算类型的算子。同样地,SGX计算引擎也可以提供进行隐私加法
计算的算子、用于进行隐私减法计算的算子、用于进行隐私乘法计算的算子、用于进行隐私
除法计算的算子等各种计算类型的算子,并且向所述通用计算引擎注册其提供的各种计算
类型的算子。
[0116] 由此,所述通用计算引擎的已注册算子中包括MPC计算引擎注册的其提供的各种计算类型的算子,以及SGX计算引擎注册的其提供的各种计算类型的算子。
[0117] 一个示例中,假设所述安全计算任务中包含的隐私计算为隐私加法计算,且该隐私加法计算通过所述通用计算引擎提供的算子接口实现(如pp.add),则在执行到该隐私加
法计算时,在已注册算子中确定目标计算引擎注册的目标算子。例如,可以确定MPC计算引
擎注册的隐私加法计算的算子为目标算子,通过调用MPC计算引擎执行该目标算子完成该
隐私加法计算;或者,还可以确定SGX计算引擎注册的隐私加法计算的算子为目标算子,通
过调用SGX计算引擎执行该目标算子完成该隐私加法计算。
[0118] 通过本发明实施例,可以在执行安全计算任务的过程中,对安全计算任务中的隐私计算动态选择合适的目标算子。例如,在待执行的隐私计算为隐私加法计算时,由于MPC
计算引擎可以基于分片的密文直接获取计算结果,计算效率比SGX计算引擎高,因此,可以
确定MPC计算引擎注册的隐私加法计算的算子为目标算子。又如,在待执行的隐私计算为隐
私除法计算时,由于MPC计算引擎需要通过迭代逼近的方式获取结果,而SGX计算引擎可以
直接在明文上进行计算,SGX计算引擎在进行隐私除法计算时,计算效率高于MPC计算引擎,
因此,可以确定MPC计算引擎注册的隐私除法计算的算子为目标算子。
[0119] 由此,本发明实施例通过在安全计算系统中增加通用计算引擎作为接口层,可以为安全计算任务中的隐私计算动态选择更加合适的目标计算引擎的目标算子。例如,可以
根据实际需求,选择计算效率更高的目标计算引擎的目标算子,或者,选择安全性更高的目
标计算引擎的目标算子等,以满足不同场景的需求。
[0120] 在本发明的一种可选实施例中,所述方法还可以包括:
[0121] 步骤S11、接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;
[0122] 步骤S12、根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。
[0123] 各预置计算引擎可以向通用计算引擎注册其实现的算子。算子注册信息包含但不限于预置计算引擎名称、算子名称、算子优先级。其中,算子优先级可以作为通用计算引擎
自动选择目标算子时的参考信息。在完成算子注册后,各预置计算引擎等待通用计算引擎
的调用。
[0124] 一个示例中,注册信息表示为operator(计算引擎名称,算子名称,算子优先级)。假设SGX计算引擎向通用计算引擎分别注册了operator(S,add,3), operator(S,
reciprocal,1)等预置算子。其中,S为SGX计算引擎的名称;add/ reciprocal为SGX计算引
擎注册的预置算子的算子名称,add为隐私加法计算的算子,reciprocal为隐私除法计算的
算子;3/1为算子优先级,3表示SGX 计算引擎的add算子的算子优先级为3,表示SGX计算引
擎的reciprocal算子的算子优先级为1。此外,MPC计算引擎向通用计算引擎分别注册了 
operator(M,add,1),operator(M,reciprocal,5)等预置算子。其中,M为MPC计算引擎的名
称;add/reciprocal为MPC计算引擎注册的预置算子的算子名称, add为隐私加法计算的算
子,reciprocal为隐私除法计算的算子;1/5为算子优先级,1表示MPC计算引擎的add算子的
算子优先级为1,5表示MPC 计算引擎的reciprocal算子的算子优先级为5。
[0125] 其中,算子优先级的数值越小,表示优先级越高。在上述示例中,对于隐私加法计算add,SGX计算引擎的add算子的算子优先级为3,MPC计算引擎的add算子的算子优先级为
1。由于MPC计算引擎可以基于分片的密文直接获取计算结果,计算效率比SGX计算引擎高,
因此,MPC计算引擎的add算子的算子优先级比SGX计算引擎的高。而对于隐私除法计算 
reciprocal,SGX计算引擎的reciprocal算子的算子优先级为1,MPC计算引擎的reciprocal
算子的算子优先级为5。由于MPC计算引擎需要通过迭代逼近的方式获取结果,而SGX计算引
擎可以直接在明文上进行计算,SGX计算引擎在进行隐私除法计算时,计算效率高于MPC计
算引擎,因此,SGX 计算引擎的reciprocal算子的算子优先级比MPC计算引擎的高。
[0126] 在本发明的一种可选实施例中,所述在已注册算子中确定目标计算引擎注册的目标算子,具体可以包括:
[0127] 步骤S21、在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;
[0128] 步骤S22、确定所述候选算子的算子优先级;
[0129] 步骤S23、根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。
[0130] 通用计算引擎接收到安全计算任务之后,在执行所述安全计算任务的过程中,在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子。一个示例中,通用计算引
擎中已注册算子的算子注册信息包括算子名称,可以通过查询算子名称,确定计算类型与
所述隐私计算相匹配的候选算子。
[0131] 例如,在执行到通用计算引擎接口实现的隐私加法计算(pp.add)时,通过查询已注册的查询算子名称,可以确定SGX计算引擎S注册的add算子和MPC计算引擎M注册的add算
子为候选算子。然后,分别确定每个候选算子的算子优先级,SGX计算引擎S注册的add算子
的算子优先级为3, MPC计算引擎M注册的add算子的算子优先级为1。最后,由于MPC计算引
擎M的add算子的算子优先级比SGX计算引擎S的高,因此,可以确定 MPC计算引擎M的add算
子为目标算子。
[0132] 需要说明的是,本发明实施例对安全计算系统中预置计算引擎的类型不做限制,对每种预置计算引擎的数量也不做限制。例如,可以包括S1、S2、 S3等多个SGX计算引擎,也
可以包括M1、M2、M3等多个MPC计算引擎。
[0133] 在本发明的一种可选实施例中,所述根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子,具体可以包括:
[0134] 确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同的候选算子中随机选择一个作为目标
算子,以及确定目标算子所属的预置计算引擎为目标计算引擎。
[0135] 在本发明实施例中,优选地确定算子优先级最高的候选算子为目标算子。如果通用计算引擎无法确定某个候选算子的算子优先级,或者,如果存在至少两个算子优先级相
同的候选算子,则通用计算引擎可以随机选择一个候选算子作为目标算子。
[0136] 在本发明的一种可选实施例中,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还可以包括:
[0137] 步骤S31、获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;
[0138] 步骤S32、根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。
[0139] 在通用计算引擎无法确定某个候选算子的算子优先级,或者,存在至少两个算子优先级相同的候选算子的情况下,通用计算引擎随机选择一个候选算子作为目标算子。在
通用计算引擎确定目标算子并调用目标算子之后,可以获取所述目标算子的执行信息,所
述执行信息包括但不限于所述目标算子的执行状态和计算效率。其中,执行状态可以包括
但不限于执行成功、执行失败等。
[0140] 通用计算引擎可以根据所述目标算子的执行信息自动评估目标算子的算子优先级,并且在已注册算子中更新所述目标算子的算子优先级,在下次计算时可以使用更新后
的算子优先级,以提高算子优先级的实时性和准确性。
[0141] 在本发明的一种可选实施例中,所述预置计算引擎可以部署在云端或者集群中,以实现云计算。
[0142] 在本发明的一种可选实施例中,所述在已注册算子中确定目标计算引擎注册的目标算子之后,所述方法还可以包括:
[0143] 步骤S41、确定所述目标计算引擎的协议类型;
[0144] 步骤S42、若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;
[0145] 步骤S43、接收所述目标计算引擎对所述远程认证挑战返回的证明信息;
[0146] 步骤S44、若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;
[0147] 所述调用所述目标计算引擎执行所述目标算子完成所述隐私计算,具体可以包括:通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
[0148] 在通用计算引擎确定目标计算引擎的目标算子之后,确定所述目标计算引擎的协议类型,如果目标计算引擎的协议类型为明文类型,例如,如果目标计算引擎为TEE计算引
擎,则向所述目标计算引擎发起远程认证挑战。如果目标计算引擎的协议类型为密文类型,
例如,如果目标计算引擎为MPC 计算引擎,由于MPC计算引擎是在密文上进行计算,即使计
算数据被恶意用户窃取也不会泄露原始数据。因此,在目标计算引擎为MPC计算引擎时,可
以不用进行远程认证。而TEE计算引擎时直接在明文上进行计算,为了避免泄露原始数据,
本发明实施例对明文类型的目标计算引擎进行远程认证,以保证原始数据只被授权用户获
取而不会被泄露。
[0149] 远程认证是TEE提供的一项无可信第三方的硬件认证技术,通过该技术可以确保运行在远端或云端的硬件和软件真实可信,未被操作系统等特权系统篡改。该技术可以在
没有可信第三方的情况下,建立可信加密信道,保证数据传输的安全性。MPC无需远程认证
既可以保证数据传输的安全性。
[0150] 在目标计算引擎为TEE计算引擎的情况下,通用计算引擎向目标计算引擎发起远程认证挑战,目标计算引擎利用本地硬件生成证明信息,并返回给挑战方(通用计算引擎)。
如果证明信息通过了通用计算引擎的验证,通用计算引擎和目标计算引擎(TEE计算引擎)
可以通过秘钥分发等方式建立加密信道,进而可以通过所述加密信道,调用目标计算引擎
执行所述目标算子完成所述隐私计算。
[0151] 在具体实施中,通用计算引擎接收到安全计算任务之后,根据各预置计算引擎的已注册算子选择对应的目标算子实现。对于隐私加法计算pp.add,通用计算引擎可以选取
MPC计算引擎M执行此操作,并且可以直接调用 MPC计算引擎M的add算子。而对于隐私除法
计算pp.reciprocal,通用计算引擎可以选取SGX计算引擎S执行此操作,并且向SGX计算引
擎S发起远程认证挑战,在SGX计算引擎S通过远程认证后,与SGX计算引擎S建立加密信道,
利用加密信道完成数据传输,然后调用SGX计算引擎S的 reciprocal算子。
[0152] 进一步地,在通用计算引擎接收到预置计算引擎的算子注册信息之后,也可以根据待注册的预置计算引擎的协议类型判断是否需要对其进行远程认证。例如,对于TEE计算
引擎,可以向其发起远程认证挑战,在其通过远程认证的情况下才对其预置算子进行注册,
否则将注册失败。
[0153] 在本发明的一种可选实施例中,所述通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算,具体可以包括:
[0154] 通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标计算引擎通过执行所述目标算子对所
述数据进行隐私计算。
[0155] 在通用计算引擎调用目标计算引擎的目标算子之前,可以先利用加密信道完成数据传输,然后再调用目标计算引擎的目标算子。
[0156] 或者,还可以通过所述加密信道向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,在发送调用指令的同时就完成数据传输,以
触发所述目标计算引擎通过执行所述目标算子对所述数据进行隐私计算。其中,参与所述
隐私计算的数据可以包括参与所述隐私计算的操作数的数值。
[0157] 在本发明的一种可选实施例中,所述通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算之后,所述方法还可以包括:获取所述目标计算引擎返回的所述隐私
计算的计算结果。
[0158] 通用计算引擎接收到安全计算任务之后,可以根据各预置计算引擎已注册的预置算子自动选择目标算子执行安全计算任务中的隐私计算,以完成安全计算任务,并返回计
算结果。
[0159] 一个示例中,安全计算任务中包括隐私加法计算、隐私除法计算等一些列计算操作,通用计算引擎接收到该安全计算任务之后,执行该安全计算任务。在执行到隐私加法计
算时,调用MPC计算引擎M的add算子执行该隐私加法计算,并获取MPC计算引擎M返回的隐私
加法计算结果,基于该隐私加法计算结果,继续执行该安全计算任务,在执行到隐私除法计
算时,调用SGX计算引擎S的reciprocal算子执行该隐私除法计算,并获取SGX计算引擎S的
隐私除法计算结果,基于该隐私除法计算结果,继续执行该安全计算任务,直到该安全计算
任务执行结束,得到该安全计算任务的计算结果。
[0160] 参照图2,示出了本发明实施例的一种安全计算系统框架示意图。如图 2所示,用户端是数据的持有方或计算结果的需求方。通用计算引擎是整个运算过程的调度方,对外
提供统一的算子接口。各预置计算引擎(如MPC计算引擎和SGX计算引擎)分别提供了算子的
具体实现,是算力的最终提供方,可以运行在云端或集群中。
[0161] 需要说明的是,图2所示的安全计算系统可以配置有默认计算引擎,通用计算引擎可以为该默认计算引擎提供的接口层。本发明实施例对默认计算引擎的类型不做限制,如
默认计算引擎可以为一个MPC计算引擎。这样,在安全计算系统中缺少TEE运行环境的情况
下,图2所示的系统框架依然可以利用默认计算引擎保证整个安全计算任务的可执行性。在
默认计算引擎的基础上,可以增加预置计算引擎,以提供更高效率的算子实现。此外,对于
MPC安全计算,本发明实施例不限制MPC安全计算的参与方个数。即可以是具有普适性的四
方计算,也可以是常用于隐私求交的两方计算。此外,也无需每个预置计算引擎实现所有的
算子,而只需向通用引擎注册其实现的预置算子。由此,本发明实施例可以融合不同类型的
预置计算引擎提供的算子,使得安全计算系统兼备不同类型预置计算引擎的优点,避免使
用单一计算引擎的缺点。
[0162] 无论是采用MPC技术还是TEE技术,图2所示的系统框架都可以利用各技术的特性在追求更高计算效率的同时,保证数据传输与计算的安全性。
[0163] 综上,本发明实施例在安全计算系统中增加了通用计算引擎,所述通用计算引擎在安全计算系统中作为接口层,可用于提供各种算子接口。基于通用计算引擎提供的算子
接口,可以编写安全计算任务中隐私计算的相关代码。所述通用计算引擎可以获取安全计
算任务,并执行所述安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引
擎提供的算子接口实现。在执行到所述算子接口实现的隐私计算时,在已注册算子中确定
目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐
私计算。通过本发明实施例,可以在执行安全计算任务的过程中,对安全计算任务中的隐私
计算动态选择合适的目标算子。例如,可以根据实际需求,选择计算效率更高的目标计算引
擎的目标算子,或者,选择安全性更高的目标计算引擎的目标算子等,以满足不同场景的需
求。本发明实施例不仅可以提高安全计算系统的计算效率,还可以扩展安全计算系统的应
用范围。
[0164] 此外,本发明实施例的安全计算方法具有通用性,包括向前兼容性和向后兼容性。向后兼容性,指现有的计算引擎可以直接适用本发明实施例的安全计算系统。向前兼容性,
指用户端仅需要引用通用安全计算引擎的算子接口,算子的具体实现对用户透明,简化了
用户操作。例如,如果某个计算引擎提供了一种新的效率更高的算子,也可向通用计算引擎
注册该算子,下次计算时,通用计算引擎会自动选择该新的算子。至于系统中是否增加了新
的预置计算引擎,以及是否采用了新的算子,这些对用户代码都是透明的。
[0165] 再者,本发明实施例通过通用计算引擎提供的算子接口,为用户提供统一的API。方便用户将现有代码移植到被发明的安全计算系统框架中,可以降低隐私计算的使用成
本,扩大了安全计算系统的应用场景。
[0166] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依
据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该
知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施
例所必须的。
[0167] 装置实施例
[0168] 参照图3,示出了本发明的一种通用计算引擎实施例的结构框图,所述通用计算引擎具体可以包括:
[0169] 任务获取模块301,用于获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0170] 任务执行模块302,用于执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引
擎执行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算
子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引
擎。
[0171] 可选地,所述通用计算引擎还包括:
[0172] 协议确定子模块,用于确定所述目标计算引擎的协议类型;
[0173] 远程认证子模块,用于若所述协议类型为明文类型,则向所述目标计算引擎发起远程认证挑战;
[0174] 证明接收子模块,用于接收所述目标计算引擎对所述远程认证挑战返回的证明信息;
[0175] 信道建立子模块,用于若所述证明信息通过验证,则与所述目标计算引擎建立加密信道;
[0176] 所述任务执行模块,具体用于通过所述加密信道,调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
[0177] 可选地,所述任务执行模块,具体用于通过所述加密信道,向所述目标计算引擎发送调用所述目标算子的指令,所述指令中携带参与所述隐私计算的数据,以触发所述目标
计算引擎通过执行所述目标算子对所述数据进行隐私计算。
[0178] 可选地,所述通用计算引擎还包括:
[0179] 候选确定模块,用于在已注册算子中确定计算类型与所述隐私计算相匹配的候选算子;
[0180] 优先级确定模块,用于确定所述候选算子的算子优先级;
[0181] 目标确定模块,用于根据所述算子优先级,在所述候选算子中确定目标计算引擎注册的目标算子。
[0182] 可选地,所述目标确定模块,具体用于确定算子优先级最高的候选算子为目标算子,或者,若存在至少两个算子优先级相同的候选算子,则从所述至少两个算子优先级相同
的候选算子中随机选择一个作为目标算子,以及确定目标算子所属的预置计算引擎为目标
计算引擎。
[0183] 可选地,所述通用计算引擎还包括:
[0184] 执行信息获取模块,用于获取所述目标算子的执行信息,所述执行信息至少包括如下任意一项:所述目标算子的执行状态和计算效率;
[0185] 优先级更新模块,用于根据所述目标算子的执行信息,在已注册算子中更新所述目标算子的算子优先级。
[0186] 可选地,所述通用计算引擎还包括:
[0187] 注册信息接收模块,用于接收预置计算引擎发送的预置算子的算子注册信息,所述算子注册信息中包括预置计算引擎名称、算子名称、算子优先级;
[0188] 算子注册模块,用于根据所述算子注册信息在所述通用计算引擎中注册所述预置算子。
[0189] 可选地,所述通用计算引擎还包括:
[0190] 结果获取模块,用于获取所述目标计算引擎返回的所述隐私计算的计算结果。
[0191] 可选地,所述预置计算引擎部署在云端或者集群中。
[0192] 本发明实施例在安全计算系统中增加了通用计算引擎,所述通用计算引擎在安全计算系统中作为接口层,可用于提供各种算子接口。基于通用计算引擎提供的算子接口,可
以编写安全计算任务中隐私计算的相关代码。所述通用计算引擎可以获取安全计算任务,
并执行所述安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的
算子接口实现。在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算
引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算。
通过本发明实施例,可以在执行安全计算任务的过程中,对安全计算任务中的隐私计算动
态选择合适的目标算子。例如,可以根据实际需求,选择计算效率更高的目标计算引擎的目
标算子,或者,选择安全性更高的目标计算引擎的目标算子等,以满足不同场景的需求。本
发明实施例不仅可以提高安全计算系统的计算效率,还可以扩展安全计算系统的应用范
围。
[0193] 参照图4,示出了本发明的一种安全计算系统实施例的结构框图,所述安全计算系统中包括用户端401、通用计算引擎402、以及预置计算引擎403;
[0194] 所述用户端401,用于向所述通用计算引擎发送安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
[0195] 所述通用计算引擎402,用于获取所述用户端发送的安全计算任务,并执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定目标计算引
擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐私计算,所
述已注册算子包括预置计算引擎注册的预置算子;
[0196] 所述预置计算引擎403,用于向所述通用计算引擎注册所述预置计算引擎实现的预置算子,所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计
算引擎。
[0197] 用户端401是数据的持有方或计算结果的需求方。通用计算引擎402是整个运算过程的调度方,对外提供统一的算子接口。各预置计算引擎403(如 MPC计算引擎,SGX计算引
擎)分别提供了算子的具体实现,是算力的最终提供方,可以运行在云端或集群中。
[0198] 本发明实施例对预置计算引擎的类型以及数量均不做限制。
[0199] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0200] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0201] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0202] 本发明实施例提供了一种用于安全计算的装置,应用于通用计算引擎,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器
中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行
以下操作的指令:获取安全计算任务,所述安全计算任务中的隐私计算基于所述通用计算
引擎提供的算子接口实现;执行所述安全计算任务,在执行到所述算子接口实现的隐私计
算时,在已注册算子中确定目标计算引擎注册的目标算子,通过调用所述目标计算引擎执
行所述目标算子完成所述隐私计算,所述已注册算子包括预置计算引擎注册的预置算子,
所述预置计算引擎包括基于多方安全计算的计算引擎和基于可信执行环境的计算引擎。
[0203] 图5是根据一示例性实施例示出的一种用于安全计算的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗
设备,健身设备,个人数字助理等。
[0204] 参照图5,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O) 的接口812,传感器组件814,以及
通信组件816。
[0205] 处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指
令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便
于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多
媒体组件808 和处理组件802之间的交互。
[0206] 存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消
息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组
合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编
程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储
器,磁盘或光盘。
[0207] 电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0208] 多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏
幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感
器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作
的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒
体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或
视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和
后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0209] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风
被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通
信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0210] I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁
定按钮。
[0211] 传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述
组件为装置800的显示器和小键盘,传感器组件 814还可以检测装置800或装置800一个组
件的位置改变,用户与装置800 接触的存在或不存在,装置800方位或加速/减速和装置800
的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检
测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD 图像传感器,用于
在成像应用中使用。在一些实施例中,该传感器组件814 还可以包括加速度传感器,陀螺仪
传感器,磁传感器,压力传感器或温度传感器。
[0212] 通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施
例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。
在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例
如,在 NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)
技术,蓝牙(BT)技术和其他技术来实现。
[0213] 在示例性实施例中,装置800可以被一个或多个应用专用集成电路 (ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列
(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0214] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,
所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD‑ROM、磁带、软盘
和光数据存储设备等。
[0215] 图6是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing 
units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用
程序1942或数据1944的存储介质 1930(例如一个或一个以上海量存储设备)。其中,存储器
1932和存储介质 1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括
一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更
进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介
质1930中的一系列指令操作。
[0216] 服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或
一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM
等等。
[0217] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置 (服务器或者终端)的处理器执行时,使得装置能够执行图1所示的安全计算方法。
[0218] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置 (服务器或者终端)的处理器执行时,使得装置能够执行一种安全计算方法,所述方法包括:获取安全
计算任务,所述安全计算任务中的隐私计算基于所述通用计算引擎提供的算子接口实现;
执行所述安全计算任务,在执行到所述算子接口实现的隐私计算时,在已注册算子中确定
目标计算引擎注册的目标算子,通过调用所述目标计算引擎执行所述目标算子完成所述隐
私计算,所述已注册算子包括预置计算引擎注册的预置算子,所述预置计算引擎包括基于
多方安全计算的计算引擎和基于可信执行环境的计算引擎。
[0219] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或
者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识
或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的
权利要求指出。
[0220] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
[0221] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0222] 以上对本发明所提供的一种安全计算方法、一种通用计算引擎和一种用于安全计算的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐
述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的
一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所
述,本说明书内容不应理解为对本发明的限制。