一种隐私计算方法、装置、电子设备及机器可读存储介质与流程

未命名 08-26 阅读:106 评论:0


1.本说明书一个或多个实施例涉及隐私计算技术领域,尤其涉及一种隐私计算方法、装置、电子设备及机器可读存储介质。


背景技术:

2.同态加密(he,homomorphic encryption),是一种基于数学难题的计算复杂性理论的密码学技术。对原始数据进行同态加密得到对应的密文数据之后,可以对原始数据对应的密文数据进行特定的计算过程,得到密文形式的计算结果,再对密文形式的计算结果进行同态解密,得到明文形式的计算结果;并且,解密得到的计算结果与直接对原始数据进行相同的计算过程所得到的计算结果是等价的。也就是说,利用同态加密技术,隐私计算的各个参与方可以对加密后的数据进行处理,并且在处理过程中不会泄漏原始数据的内容。
3.基于同态加密算法进行隐私计算,可以在保证隐私数据安全性的同时,实现对密文数据进行运算;但是,基于同态加密算法的隐私计算过程存在计算复杂度高、计算耗时长的问题,可能会影响隐私计算的性能。


技术实现要素:

4.本技术提供一种隐私计算方法,所述方法应用于隐私计算设备;所述隐私计算设备上搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件;所述方法包括:
5.所述处理器将待执行的基于同态加密算法的隐私计算任务发送给所述目标加速硬件;
6.所述目标加速硬件将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向所述至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;
7.所述各个加速硬件基于与为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件;
8.所述目标加速硬件基于获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算结果返回给所述处理器。
9.本技术还提供一种隐私计算装置,所述装置应用于隐私计算设备;所述隐私计算设备上搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件;所述装置包括:
10.所述处理器上的收发单元,用于将待执行的基于同态加密算法的隐私计算任务发送给所述目标加速硬件;
11.所述目标加速硬件上的拆分单元,用于将所述隐私计算任务拆分为至少两个隐私
计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向所述至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;
12.所述各个加速硬件上的隐私计算单元,用于基于与所述拆分单元为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件;
13.所述目标加速硬件上的合并单元,用于基于获取到的由所述各个加速硬件上的隐私计算单元返回的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算结果返回给所述处理器。
14.本技术还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
15.所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述方法。
16.本技术还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
17.通过以上实施例,一方面,相较于由处理器执行整个隐私计算任务的实现方式,通过为隐私计算设备额外搭载多个加速硬件,并由隐私计算设备上搭载的多个加速硬件代替处理器执行隐私计算任务中的至少部分隐私计算流程,可以减轻处理器的性能压力。
18.另一方面,相较于仅基于单个加速硬件为处理器进行加速的实现方式,由于与处理器互联的目标加速硬件可以先将需要帮助处理器执行的隐私计算任务拆分为至少两个隐私计算子任务,并由各个加速硬件分别执行拆分得到的各个隐私计算子任务,目标加速硬件再基于各个加速硬件返回的与隐私计算子任务对应的执行结果,合并计算出与隐私计算任务对应的隐私计算结果,因此可以从整体上减少基于同态加密算法的隐私计算任务的计算耗时,提高基于同态加密算法的隐私计算任务的整体执行效率,进而可以提升隐私计算设备的性能。
附图说明
19.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
20.图1是一示例性的实施例示出的一种搭载有两个加速硬件的隐私计算设备的架构示意图;
21.图2是一示例性的实施例示出的一种搭载有四个加速硬件的隐私计算设备的架构示意图;
22.图3是一示例性的实施例示出的一种搭载有八个加速硬件的隐私计算设备的架构示意图;
23.图4是一示例性的实施例示出的一种隐私计算方法的流程图;
24.图5是一示例性的实施例示出的一种隐私计算装置所在电子设备的结构示意图;
25.图6是一示例性的实施例示出的一种隐私计算装置的框图。
具体实施方式
26.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
27.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
28.隐私计算,是指可以基于联邦学习(fl,federated learning)、多方安全计算(mpc,secure multi-party computation)、隐私求交(psi,private set intersection)、可信执行环境(tee,trusted execution environment)、同态加密(he,homomorphic encryption)、差分隐私(dp,differential privacy)等隐私数据保护技术,在保护隐私信息的前提下,实现数据价值分析与挖掘。
29.其中,同态加密是一种基于数学难题的计算复杂性理论的密码学技术。对原始数据进行同态加密得到对应的密文数据之后,可以对原始数据对应的密文数据进行特定的计算过程,得到密文形式的计算结果,再对密文形式的计算结果进行同态解密,得到明文形式的计算结果;并且,解密得到的计算结果与直接对原始数据进行相同的计算过程所得到的计算结果是等价的。也就是说,利用同态加密技术,隐私计算的各个参与方可以对加密后的数据进行处理,并且在处理过程中不会泄漏原始数据的内容。
30.例如,在云计算的应用场景中,如果用户直接将明文数据提交给云应用,所述明文数据可能存在泄露的风险;而如果用户将采用传统方式加密得到的密文数据提交给云应用,云应用在不被允许获知明文数据的情况下,也无法直接对密文数据进行处理;因此,用户可以基于同态加密算法和加密密钥对明文数据进行加密,并将经过同态加密的密文数据提交给云应用,使得云应用可以按照特定的计算流程,对经过同态加密的密文数据进行计算,并可以将密文形式的计算结果返回给用户,进而用户可以基于同态加密算法和解密密钥对密文形式的计算结果进行解密,得到明文形式的计算结果。
31.同态加密可以分为半同态加密(phe,partially homomorphic encryption)和全同态加密(fhe,fully homomorphic encryption)。半同态加密是指可以对密文数据进行指定计算,如仅支持加法同态加密、仅支持乘法同态加密等。全同态加密是指可以对密文数据进行任意运算,如加减乘除、幂函数、多种运算的组合等。
32.在以上示出的实施例中,基于同态加密算法进行隐私计算,可以在保证隐私数据安全性的同时,实现对密文数据进行运算;但是,基于同态加密算法的隐私计算过程存在计算复杂度高、计算耗时长的问题,可能会影响隐私计算的性能。
33.有鉴于此,本说明书旨在提出一种通过联合隐私计算设备上搭载的多个加速硬件,对基于同态加密算法的隐私计算任务的执行过程进行加速的技术方案。
34.为了提高隐私计算的性能,可以采用软件、硬件、或软硬件结合的方式,提高隐私计算任务的执行速度。其中,基于软件的加速方案,就是指可以对隐私计算任务所涉及到的计算流程进行算法优化。基于硬件的加速方案,就是指可以利用额外的硬件来执行隐私计算任务中的至少部分计算流程。本说明书中提出的是一种基于硬件或软硬件结合的加速方式。
35.在本说明书中,所述隐私计算设备上可以搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件。
36.其中,所述隐私计算设备可以为用于执行隐私计算流程的物理设备;所述隐私计算设备上不仅可以搭载有处理器,还可以额外搭载有用于帮助所述处理器执行隐私计算任务的至少两个加速硬件;所述目标加速硬件,可以为所述至少两个加速硬件中与所述处理器互联的任一加速硬件;所述其他加速硬件,可以为所述至少两个加速硬件中与所述目标加速硬件互联,而不与所述处理器直接互联的一个或多个加速硬件。
37.在一种可能的实施方式中,所述处理器具体可以包括cpu(central processing unit)或gpu(graphics processing unit,图形处理器);所述加速硬件具体可以包括gpu、fpga(field programmable gate array,现场可编程逻辑门阵列)、asic(application specific integrated circuit,专用集成电路)中的一种或多种。由于所述加速硬件通常可以为板卡或芯片的形态,因此所述加速硬件也可以被称作硬件加速卡、加速卡等,本说明书对此不做限制。
38.例如,请参见图1,图1是一示例性的实施例示出的一种搭载有两个加速硬件的隐私计算设备的架构示意图。如图1所示,隐私计算设备上可以搭载有处理器cpu、与处理器cpu互联的目标加速硬件board_0、以及与目标加速硬件board_0互联的其他加速硬件board_1。
39.又例如,请参见图2,图2是一示例性的实施例示出的一种搭载有四个加速硬件的隐私计算设备的架构示意图。如图2所示,隐私计算设备上可以搭载有处理器cpu,与处理器cpu互联的目标加速硬件board_0,以及与目标加速硬件board_0互联的其他加速硬件board_1、其他加速硬件board_2和其他加速硬件board_3。
40.又例如,请参见图3,图3是一示例性的实施例示出的一种搭载有八个加速硬件的隐私计算设备的架构示意图。如图3所示,隐私计算设备上可以搭载有处理器cpu,与处理器cpu互联的目标加速硬件board_0,以及与目标加速硬件board_0互联的其他加速硬件board_1、其他加速硬件board_2和其他加速硬件board_3,以及与其他加速硬件board_1互联的其他加速硬件board_4和其他加速硬件board_5,以及与其他加速硬件board_2互联的其他加速硬件board_6和其他加速硬件board_7。在如图3所示的树状连接中,其他加速硬件board_1、其他加速硬件board_2和其他加速硬件board_3是目标加速硬件board_0的0跳节点,其他加速硬件board_4、其他加速硬件board_5、其他加速硬件board_6和其他加速硬件board_7是目标加速硬件board_0的1跳节点。
41.在本说明书中,所述各个加速硬件之间可以采用任意拓扑连接方式,具体可以包括但不限于树状连接、星形连接、链形连接、全互联(mesh连接)等连接方式,还可以包括本
领域技术人员按需设定的自定义连接方式。
42.在示出的一种实施方式中,所述各个加速硬件可以采用将所述目标加速硬件作为根节点的树状连接方式。例如,如图1、图2或图3所示,多个加速硬件可以采用将目标加速硬件board_0作为根节点的树状连接方式。
43.需要说明的是,如图1、图2或图3所示,所述隐私计算设备上搭载的加速硬件的数量为2个、4个或8个,仅仅是一种示例性的实施例,并不对本说明书做出特别限定;在实际应用中,本领域技术人员基于以上记载可以进一步扩展,灵活增加用于帮助所述处理器执行隐私计算任务的加速硬件的数量。另外,在以上示出的实施方式中,所述多个加速硬件之间采用树状连接方式时,有利于后续将目标加速硬件拆分得到的隐私计算子任务快速分发给其他加速硬件,避免增加数据传输时延,并且易于扩展。
44.在示出的一种实施方式中,所述处理器与所述目标加速硬件可以通过pcie(peripheral component interconnect express,高速串行计算机扩展总线)互联;所述目标加速硬件与所述至少一个其他加速硬件可以通过数据传输协议互联。
45.例如,如图2所示,处理器cpu和目标加速硬件board_0可以通过pcie互联;目标加速硬件board_0与其他加速硬件board_1、其他加速硬件board_2、其他加速硬件board_3之间可以通过nvlink协议(一种高速数据传输协议)互联。
46.需要说明的是,以上示出的仅仅是一种可能的实施例,在实际应用中,所述多个加速硬件之间也可以通过pcie互联,或者,所述多个加速硬件之间也可以通过nvlink协议之外的其他数据传输协议互联,本说明书中不做特别限定。其中,相较于所述多个加速硬件之间通过pcie互联,当所述多个加速硬件之间采用nvlink协议进行互联时,可以提高加速硬件之间的数据传输带宽,还有利于每个加速硬件上可连接其他加速硬件的数量。
47.在额外搭载有多个加速硬件的所述隐私计算设备的基础上,请参见图4,图4是一示例性的实施例示出的一种隐私计算方法的流程图。所述方法可以应用于所述隐私计算设备;如图4所示,所述方法可以执行以下步骤:
48.步骤402:处理器将待执行的基于同态加密算法的隐私计算任务发送给目标加速硬件。
49.步骤404:所述目标加速硬件将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数。
50.例如,基于如图1所示的隐私计算设备的架构,处理器cpu可以将基于同态加密算法的隐私计算任务task1发送给目标加速硬件board_0;进一步地,目标加速硬件board_0可以将隐私计算任务task1拆分为2个隐私计算子任务task1_1和task1_2,并可以将隐私计算子任务task1_1分配给自身,以及可以将隐私计算子任务task1_2分配给其他加速硬件board_1,并可以将与隐私计算子任务task1_2对应的隐私计算参数发送给其他加速硬件board_1。
51.其中,所述隐私计算任务具体可以包括:基于半同态加密算法的隐私计算任务,或基于全同态加密算法的隐私计算任务。所述半同态加密算法具体可以包括但不限于:rsa算法、elgamal算法、paillier算法等。所述全同态加密算法具体可以包括但不限于:bfv算法、bgv算法、ckks算法、tfhe算法等。
52.需要说明的是,在以上示出的实施例中,相较于半同态加密算法,虽然全同态加密算法的计算复杂度更高、计算耗时更长,但是可以实现对密文数据进行任意运算,提高隐私计算的可用性。
53.另外,需要说明的是,在以上示出的实施例中,所述目标加速硬件为所述隐私计算设备所搭载的各个加速硬件均分配了1个隐私计算子任务,仅仅是一种示例性的实施例。在实际应用中,每个加速硬件可以被分配一个或多个隐私计算子任务;或者,所述多个加速硬件中的任一加速硬件也可以未被分配到隐私计算子任务。例如,所述目标加速硬件可以只负责数据拆分与结果合并,而所述目标加速硬件本身并不负责执行隐私计算子任务。又例如,如果隐私计算设备搭载了8个加速硬件,而目标加速硬件只将隐私计算任务拆分为4个隐私计算子任务,则会有部分加速硬件无需执行隐私计算子任务。
54.步骤406:所述各个加速硬件基于与为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件。
55.例如,目标加速硬件board_0可以基于与隐私计算子任务task1_1对应的隐私计算参数执行隐私计算,得到与隐私计算子任务task1_1对应的隐私计算结果;以及,其他加速硬件board_1可以基于与隐私计算子任务task1_2对应的隐私计算参数执行隐私计算,得到与隐私计算子任务task1_2对应的隐私计算结果,并可以将与隐私计算子任务task1_2对应的隐私计算结果返回给目标加速硬件board_0。
56.步骤408:所述目标加速硬件基于获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算结果返回给所述处理器。
57.例如,目标加速硬件board_0可以基于由自身计算得到的与隐私计算子任务task1_1对应的隐私计算结果、和获取到的由其他加速硬件board_1计算得到的与隐私计算子任务task1_2对应的隐私计算结果,合并计算出与隐私计算任务task1对应的隐私计算结果,并可以将合并计算出的与隐私计算任务task1对应的隐私计算结果返回给处理器cpu。
58.需要说明的是,在以上示出的实施例中,所述处理器获取到的与隐私计算任务对应的隐私计算结果,是密文形式的计算结果,所述处理器可以基于所述同态加密算法对其进行解密,以获得与隐私计算任务对应的明文形式的计算结果;所述处理器也可以将密文形式的计算结果直接转发给隐私计算流程的其他参与方,以使其他参与方对密文形式的计算结果进一步处理。
59.由此可见,在本说明书中的技术方案中,一方面,相较于由处理器执行整个隐私计算任务的实现方式,通过为隐私计算设备额外搭载多个加速硬件,并由隐私计算设备上搭载的多个加速硬件代替处理器执行隐私计算任务中的至少部分隐私计算流程,可以减轻处理器的性能压力。
60.另一方面,相较于仅基于单个加速硬件为处理器进行加速的实现方式,由于与处理器互联的目标加速硬件可以先将需要帮助处理器执行的隐私计算任务拆分为至少两个隐私计算子任务,并由各个加速硬件分别执行拆分得到的各个隐私计算子任务,目标加速硬件再基于各个加速硬件返回的与隐私计算子任务对应的执行结果,合并计算出与隐私计算任务对应的隐私计算结果,因此可以从整体上减少基于同态加密算法的隐私计算任务的
计算耗时,提高基于同态加密算法的隐私计算任务的整体执行效率,进而可以提升隐私计算设备的性能。
61.在一种可能的实施方式中,所述至少两个隐私计算子任务的数量,可以大于所述至少一个其他加速硬件的数量;所述各个加速硬件均被分配了至少一个隐私计算子任务。
62.例如,如图3所示,隐私计算设备上搭载有8个加速硬件,则目标加速硬件board_0可以将隐私计算任务task1拆分为8个及8个以上隐私计算子任务,并且可以为每个加速硬件分配至少一个隐私计算子任务,从而充分利用隐私计算设备上搭载的各个加速硬件,有利于进一步提高基于同态加密算法的隐私计算任务的整体执行效率,提升隐私计算设备的性能。
63.在一些可能的实施例中,所述目标加速硬件分配给所述各个加速硬件的隐私计算子任务的数量可以是相等的。
64.例如,如图3所示,隐私计算设备上搭载有8个加速硬件,在各个加速硬件的计算性能与负载情况相似的情况下,目标加速硬件board_0可以将隐私计算任务task1拆分为16个隐私计算子任务,并且可以为每个加速硬件分配2个隐私计算子任务,从而可以在充分利用隐私计算设备上搭载的各个加速硬件的同时,对各个加速硬件需要执行的隐私计算子任务的数量进行负载均衡,有利于进一步提高基于同态加密算法的隐私计算任务的整体执行效率,提升隐私计算设备的性能。
65.需要说明的是,以上示出的仅仅是一种可能的实施例,在另一些可能的实施例中,如果各个加速硬件的计算性能存在差异,或者各个加速硬件的当前负载情况不同,则所述目标加速硬件可以根据各个加速硬件的可用计算性能,为各个加速硬件分配隐私计算子任务,以实现整体的负载均衡,在此不再赘述。
66.为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面以基于全同态加密算法的矩阵向量乘法(matrix vector multiplication)为例,结合具体的应用场景对本技术进行描述。
67.矩阵向量乘法,可以表示为以下公式,
68.a
×
x=y
69.也就是一个矩阵a
col*row
乘以一个col维的列向量x,可以得到一个row维的列向量y。其中,矩阵a
col*row
的列数与列向量x的行数需要相等,并且矩阵a
col*row
需要在向量积符号之前,列向量x需要在向量积符号之后,不能随意交换顺序。
70.由于矩阵向量乘法是逻辑回归、深度机器学习、特征工程等领域的基础运算,也是主要计算部分,因此基于全同态加密算法的矩阵向量乘法目前在多方安全计算等隐私计算技术中开始被广泛应用。相较于基于秘密分享等技术实现的矩阵向量乘法,在多方安全计算的场景中,采用基于全同态加密算法的矩阵向量乘法可以大幅减少隐私计算过程中的通信数据量,但是计算性能往往会成为整个隐私计算任务的瓶颈。
71.有鉴于此,可以利用本说明书提供的技术方案,通过联合隐私计算设备上搭载的多个加速硬件,对基于全同态加密算法的矩阵向量乘法的隐私计算过程进行加速。
72.在实现时,所述隐私计算任务可以为基于全同态加密算法将目标系数矩阵与目标列向量相乘的计算任务。其中,所述目标系数矩阵可以是所述隐私计算任务的其他参与方提供的,也可以是为所述隐私计算设备预先配置的,本说明书中对此不作限定。所述目标列
向量可以为需要在隐私计算过程中保密的数据。
73.例如,请结合如图2所示的架构图,隐私计算设备上搭载的处理器cpu可以接收待执行的隐私计算任务task2,其中,隐私计算任务task2具体可以为:基于全同态加密算法将16384*8192的目标系数矩阵a与1*16384的目标列向量x相乘的计算任务。
74.在这种情况下,在所述步骤402中,所述处理器将待执行的隐私计算任务发送给所述目标加速硬件,具体可以包括:所述处理器将与所述隐私计算任务对应的隐私计算参数发送给所述目标加速硬件;其中,与所述隐私计算任务对应的隐私计算参数,包括基于所述全同态加密算法对所述目标系数矩阵进行转换得到的输入矩阵,基于所述全同态加密算法对所述目标列向量进行编码和加密而得到的密文数据,以及用于对所述目标列向量对应的密文数据进行旋转的旋转密钥。
75.例如,在获得隐私计算任务task2之后,处理器cpu可以先基于全同态加密算法将目标系数矩阵a转换为输入矩阵a

;以及,处理器cpu可以先基于全同态加密算法对目标列向量x进行编码,得到目标列向量x对应的明文数据plaintext(x)=plaintext([x1,

,x
16384
]),再基于全同态加密算法对明文数据plaintext(x)进行加密,得到目标列向量x对应的密文数据ciphertext(x)=ciphertext([x1,

,x
16384
]);以及,处理器cpu可以确定用于针对密文数据ciphertext(x)进行旋转的旋转密钥evk;进一步地,处理器cpu可以将输入矩阵a

、密文数据ciphertext(x)和旋转密钥evk作为与隐私计算任务task2对应的隐私计算参数,发送给如图2所示的隐私计算设备上搭载的目标加速硬件board_0。
[0076]
其中,关于基于全同态加密算法将所述目标系数矩阵转换为所述输入矩阵的具体实现方式,可以参见全同态加密算法的相关技术,本说明书中不做赘述。为了便于本领域技术人员更好地理解本说明书中的技术方案,这里对以上转换过程做出简单的举例说明。
[0077]
例如,如果目标系数矩阵a是一个p阶方阵,则可以通过以下公式进行转换,
[0078][0079]
通过以上转换过程,可以得到目标系数矩阵a对应的输入矩阵a


[0080]
又例如,如果目标系数矩阵a不是方阵,则可以先通过以下公式进行横向扩展,
[0081][0082]
通过以上扩展过程,可以得到一个p阶方阵,进而可以基于类似方法将其转换为目标系数矩阵a对应的输入矩阵a


[0083]
其中,所述旋转密钥可以为伽罗瓦密钥(galois keys),应用在全同态加密算法中,用于与密文数据一起进行运算来实现对明文数据的旋转操作。关于基于所述旋转密钥对所述目标列向量对应的密文数据进行旋转的具体实现方式,可以参见旋转密钥的相关技术,本说明书中不做赘述。为了便于本领域技术人员更好地理解本说明书中的技术方案,这里对以上旋转过程做出简单的举例说明。
[0084]
例如,利用旋转密钥evk,对目标列向量x对应的密文数据ciphertext(x)进行旋
转,可以表示为以下公式,
[0085][0086]
得到旋转后的目标列向量x对应的密文数据ciphertext([x2,

,x
16384
,x1])。
[0087]
在这种情况下,在所述步骤404中,所述隐私计算子任务可以为基于所述全同态加密算法将从所述输入矩阵中拆分出的部分行向量与所述目标列向量相乘的计算任务;其中,与所述隐私计算子任务对应的隐私计算参数,具体可以包括从所述输入矩阵中拆分出的部分行向量,所述目标列向量对应的密文数据,以及所述旋转密钥。
[0088]
例如,如图2所示,在获得处理器cpu发送的与隐私计算任务task2对应的隐私计算参数之后,目标加速硬件board_0可以根据隐私计算设备所搭载的加速硬件的总数量为4,将输入矩阵a

中的8192个行向量拆分为4个部分,并可以将每一个部分的行向量分配给一个加速硬件,作为与为各个加速硬件分配的隐私计算子任务对应的隐私计算参数;进一步地,目标加速硬件board_0可以将从输入矩阵a

中拆分出并分配给其他加速硬件board_i(i=1,2,3)的部分行向量、密文数据ciphertext(x)和旋转密钥evk,作为与隐私计算子任务task2_(i+1)对应的隐私计算参数,发送给对应的其他加速硬件board_i。
[0089]
其中,从所述输入矩阵中拆分出并分配给各个加速硬件的部分行向量的数量可以是相等的,也可以是不相等的,与负载均衡策略有关,本说明书中对此不做特别限定。分配给某一加速硬件的多个行向量,在所述输入矩阵中的位置可以是相邻的,也可以是不相邻的,本说明书中也不做特别限定。
[0090]
在一种可能的实施例中,为了实现负载均衡,在所述步骤404中,所述目标加速硬件将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,具体可以包括:所述目标加速硬件将所述输入矩阵中的各个行向量逐个拆分出来,并逐个分配给包含所述目标加速硬件在内的各个加速硬件,作为与为所述各个加速硬件分配的隐私计算子任务对应的计算参数。
[0091]
例如,如图2所示,目标加速硬件board_0可以将输入矩阵a

中的第0个行向量a
′0拆分出来并分配给目标加速硬件board_0,将输入矩阵a

中的第1个行向量a
′1拆分出来并分配给其他加速硬件board_1,将输入矩阵a

中的第2个行向量a
′2拆分出来并分配给其他加速硬件board_2,将输入矩阵a

中的第3个行向量a
′3拆分出来并分配给其他加速硬件board_3,将输入矩阵a

中的第4个行向量a
′4拆分出来并分配给目标加速硬件board_0
……
以此类推,直至将输入矩阵a

中的全部行向量均分配给各个加速硬件。
[0092]
在这种情况下,目标加速硬件board 0从输入矩阵a

中逐个拆分出来并逐个分配给各个加速硬件的部分行向量,可以被表示为a

j+n*j
;其中,i+n*.j可以表示输入矩阵a

中的第i+n*j个行向量;n可以表示隐私计算设备上搭载有n个加速硬件,n可以为大于等于2的整数;i可以表示隐私计算设备上搭载的n个加速硬件中的第i个加速硬件,i可以为大于等于0且小于等于(n-1)的整数;k可以用于表示分配给每个加速硬件的行向量的数量,j可以表示分配给每个加速硬件的k个行向量中的第j个行向量,j可以为大于等于0且小于等于(k-1)的整数。也即,与为加速硬件board_i分配的隐私计算子任务对应的计算参数task2_(i+1)对应的隐私计算参数,可以包括从输入矩阵a

中拆分出的部分行向量a

j+n*j
、密文数据ciphertext(x)和旋转密钥evk。
[0093]
在这种情况下,在所述步骤406中,所述各个加速硬件基于与为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,具体可以包括:所述各个加速硬件基于所述全同态加密算法对获取到的部分行向量进行编码,得到各个行向量对应的明文数据;以及,所述各个加速硬件利用获取到的所述旋转密钥,基于所述全同态加密算法对获取到的所述目标列向量对应的密文数据进行旋转,得到旋转后的所述目标列向量对应的密文数据;所述各个加速硬件将所述各个行向量对应的明文数据与旋转后的所述目标列向量对应的密文数据相乘,得到与所述各个隐私计算子任务分别对应的隐私计算结果。
[0094]
例如,如果隐私计算任务task2具体为:基于全同态加密算法将16384*8192的目标系数矩阵a与1*16384的目标列向量x相乘的计算任务,在目标加速硬件board_0将其拆分为8192个隐私计算子任务之后,并将与各个隐私计算子任务对应的隐私计算参数分发给各个加速硬件之后,如图2所示,n=4,k=8192/4=2048,也即,为每个加速硬件分配了输入矩阵a

中的2048个行向量。其中,对于加速硬件board_0来说,i=0,j=0,目标加速硬件board_0可以先基于全同态加密算法对输入矩阵a

中的行向量a
′0进行编码,得到行向量a
′0对应的明文数据plaintext(a
′0),再利用获取到的旋转密钥evk对密文数据ciphertext(x)进行步长为i+n*j=0的旋转(步长为0也即不旋转),得到旋转后的密文数据,进一步地,加速硬件board_0将行向量a
′0对应的明文数据plaintext(a
′0)与旋转后的密文数据相乘,得到与隐私计算子任务task2_0对应的隐私计算结果;进一步地,j=1,加速硬件board_0可以先基于全同态加密算法对输入矩阵a

中的行向量a
′4进行编码,得到行向量a
′0对应的明文数据plaintext(a
′4),再利用获取到的旋转密钥evk对密文数据ciphertext(x)进行步长为i+n*j=4的旋转,得到旋转后的密文数据,进一步地,加速硬件board_0将行向量a
′4对应的明文数据plaintext(a
′4)与旋转后的密文数据相乘,得到与隐私计算子任务task2_4对应的隐私计算结果;基于类似的步骤,加速硬件board_0可以计算出为其分配的2048个隐私计算子任务的隐私计算结果。以及,基于类似的步骤,其他加速硬件board_1、board_2、board_3也可以分别计算出为其分配的2048个隐私计算子任务的隐私计算结果,并可以将其计算出的与各个隐私计算子任务对应的隐私计算结果返回给目标加速硬件board_0。
[0095]
需要说明的是,在以上示出的实施例中,当所述目标加速硬件分配给任一其他加速硬件的隐私计算子任务的数量大于1个的时候,该其他加速硬件可以在计算出为其分配的任一隐私计算子任务对应的隐私计算结果之后,直接将该隐私计算子任务对应的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件,也可以先将该隐私计算子任务对应的隐私计算结果存储在本加速硬件对应的内存空间中,直至为本加速硬件分配的全部隐私计算子任务均已执行完成之后,再将存储在本加速硬件对应的内存空间中的隐私计算结果一起返回给所述目标加速硬件。
[0096]
在这种情况下,在所述步骤408中,所述目标加速硬件基于获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,具体可以包括:所述目标加速硬件将获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果相加,得到与所述隐私计算任务对应的隐私计算结果。
[0097]
例如,在获得与8192个隐私计算子任务分别对应的隐私计算结果之后,目标加速硬件board_0可以将获取到的与8192个隐私计算子任务分别对应的隐私计算结果相加,得到与隐私计算任务task2对应的隐私计算结果。进一步地,目标加速硬件board 0还可以将
计算得到的与隐私计算任务task2对应的隐私计算结果返回给处理器cpu。
[0098]
从整体上看,在所述目标加速硬件将目标系数矩阵a转换为输入矩阵a

,并基于全同态加密算法对目标列向量x进行编码和加密得到密文数据ciphertext(x)之后,在各个加速硬件上分别执行的隐私计算过程可以通过以下公式表示:
[0099]
(1)对输入矩阵a

中的各个行向量进行编码,得到各个行向量对应的明文数据
[0100][0101]
(2)对目标列向量x对应的密文数据ciphertext(x)进行旋转后,将各个行向量对应的明文数据与旋转后的密文数据相乘
[0102][0103]
(3)将各个行向量对应的隐私计算结果相加
[0104][0105][0106]
(4)处理器还可以对隐私计算结果进行解码、解密,得到明文形式的计算结果
[0107][0108]
需要说明的是,本说明书中仅仅示例性的示出了一种针对基于全同态加密算法的矩阵向量乘法的隐私计算任务进行拆分、以及对各个隐私计算子任务对应的隐私计算结果进行合并的实施例,基于本说明书记载的技术构思,本领域技术人员也可以得到针对基于
全同态加密算法的其他运算的隐私计算任务进行数据拆分与结果合并的实现方式,在此无法进行穷举。
[0109]
通过以上技术方案可知,一方面,相较于由处理器执行整个隐私计算任务的实现方式,通过为隐私计算设备额外搭载多个加速硬件,并由隐私计算设备上搭载的多个加速硬件代替处理器执行隐私计算任务中的至少部分隐私计算流程,可以减轻处理器的性能压力。
[0110]
另一方面,相较于仅基于单个加速硬件为处理器进行加速的实现方式,由于与处理器互联的目标加速硬件可以先将需要帮助处理器执行的隐私计算任务拆分为至少两个隐私计算子任务,并由各个加速硬件分别执行拆分得到的各个隐私计算子任务,目标加速硬件再基于各个加速硬件返回的与隐私计算子任务对应的执行结果,合并计算出与隐私计算任务对应的隐私计算结果,因此可以从整体上减少基于全同态加密算法的隐私计算任务的计算耗时,提高基于全同态加密算法的隐私计算任务的整体执行效率,进而可以提升隐私计算设备的性能。
[0111]
与上述隐私计算方法的实施例对应的,本说明书还提供了一种隐私计算装置的实施例。
[0112]
请参见图5,图5是一示例性的实施例示出的一种隐私计算装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0113]
请参见图6,图6是一示例性的实施例示出的一种隐私计算装置的框图。该隐私计算装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。所述隐私计算装置可以应用于隐私计算设备;所述隐私计算设备上搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件;其中,所述隐私计算装置可以包括:
[0114]
所述处理器上的收发单元602,用于将待执行的基于同态加密算法的隐私计算任务发送给所述目标加速硬件;
[0115]
所述目标加速硬件上的拆分单元604,用于将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向所述至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;
[0116]
所述各个加速硬件上的隐私计算单元606,用于基于与所述拆分单元604为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件;
[0117]
所述目标加速硬件上的合并单元608,用于基于获取到的由所述各个加速硬件上的隐私计算单元606返回的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算
结果返回给所述处理器。
[0118]
在本实施例中,所述各个加速硬件采用将所述目标加速硬件作为根节点的树状连接方式。
[0119]
在本实施例中,所述处理器包括cpu或gpu;所述加速硬件包括gpu、fpga、asic中的一种或多种。
[0120]
在本实施例中,所述处理器与所述目标加速硬件通过pcie互联;所述目标加速硬件与所述至少一个其他加速硬件通过数据传输协议互联。
[0121]
在本实施例中,所述至少两个隐私计算子任务的数量大于所述至少一个其他加速硬件的数量;所述各个加速硬件均被分配了至少一个隐私计算子任务。
[0122]
在本实施例中,分配给所述各个加速硬件的隐私计算子任务的数量是相等的。
[0123]
在本实施例中,所述隐私计算任务为基于全同态加密算法将目标系数矩阵与目标列向量相乘的计算任务;
[0124]
所述收发单元602,具体用于:
[0125]
所述处理器将与所述隐私计算任务对应的隐私计算参数发送给所述目标加速硬件;其中,与所述隐私计算任务对应的隐私计算参数,包括基于所述全同态加密算法对所述目标系数矩阵进行转换得到的输入矩阵,基于所述全同态加密算法对所述目标列向量进行编码和加密而得到的密文数据,以及用于对所述目标列向量对应的密文数据进行旋转的旋转密钥;
[0126]
所述隐私计算子任务为基于所述全同态加密算法将从所述输入矩阵中拆分出的部分行向量与所述目标列向量相乘的计算任务;其中,与所述隐私计算子任务对应的隐私计算参数,包括从所述输入矩阵中拆分出的部分行向量,所述目标列向量对应的密文数据,以及所述旋转密钥;
[0127]
所述隐私计算单元606,具体用于:
[0128]
所述各个加速硬件基于所述全同态加密算法对获取到的部分行向量进行编码,得到各个行向量对应的明文数据;以及,所述各个加速硬件利用获取到的所述旋转密钥,基于所述全同态加密算法对获取到的所述目标列向量对应的密文数据进行旋转,得到旋转后的所述目标列向量对应的密文数据;
[0129]
所述各个加速硬件将所述各个行向量对应的明文数据与旋转后的所述目标列向量对应的密文数据相乘,得到与所述各个隐私计算子任务分别对应的隐私计算结果;
[0130]
所述合并单元608,具体用于:
[0131]
所述目标加速硬件将获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果相加,得到与所述隐私计算任务对应的隐私计算结果。
[0132]
在本实施例中,所述拆分单元604,具体用于:
[0133]
所述目标加速硬件将所述输入矩阵中的各个行向量逐个拆分出来,并逐个分配给包含所述目标加速硬件在内的各个加速硬件,作为与为所述各个加速硬件分配的隐私计算子任务对应的计算参数。
[0134]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0135]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实
施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0136]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0137]
在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0138]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0139]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0140]
本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0141]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0142]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0143]
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,
而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0144]
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0145]
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

技术特征:
1.一种隐私计算方法,所述方法应用于隐私计算设备;所述隐私计算设备上搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件;所述方法包括:所述处理器将待执行的基于同态加密算法的隐私计算任务发送给所述目标加速硬件;所述目标加速硬件将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向所述至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;所述各个加速硬件基于与为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件;所述目标加速硬件基于获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算结果返回给所述处理器。2.根据权利要求1所述的方法,所述各个加速硬件采用将所述目标加速硬件作为根节点的树状连接方式。3.根据权利要求1所述的方法,所述处理器包括cpu或gpu;所述加速硬件包括gpu、fpga、asic中的一种或多种。4.根据权利要求1所述的方法,所述处理器与所述目标加速硬件通过pcie互联;所述目标加速硬件与所述至少一个其他加速硬件通过数据传输协议互联。5.根据权利要求1所述的方法,所述至少两个隐私计算子任务的数量大于所述至少一个其他加速硬件的数量;所述各个加速硬件均被分配了至少一个隐私计算子任务。6.根据权利要求5所述的方法,分配给所述各个加速硬件的隐私计算子任务的数量是相等的。7.根据权利要求1所述的方法,所述隐私计算任务为基于全同态加密算法将目标系数矩阵与目标列向量相乘的计算任务;所述处理器将待执行的隐私计算任务发送给所述目标加速硬件,包括:所述处理器将与所述隐私计算任务对应的隐私计算参数发送给所述目标加速硬件;其中,与所述隐私计算任务对应的隐私计算参数,包括基于所述全同态加密算法对所述目标系数矩阵进行转换得到的输入矩阵,基于所述全同态加密算法对所述目标列向量进行编码和加密而得到的密文数据,以及用于对所述目标列向量对应的密文数据进行旋转的旋转密钥;所述隐私计算子任务为基于所述全同态加密算法将从所述输入矩阵中拆分出的部分行向量与所述目标列向量相乘的计算任务;其中,与所述隐私计算子任务对应的隐私计算参数,包括从所述输入矩阵中拆分出的部分行向量,所述目标列向量对应的密文数据,以及所述旋转密钥;所述各个加速硬件基于与为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,包括:所述各个加速硬件基于所述全同态加密算法对获取到的部分行向量进行编码,得到各个行向量对应的明文数据;以及,所述各个加速硬件利用获取到的所述旋转密钥,基于所述
全同态加密算法对获取到的所述目标列向量对应的密文数据进行旋转,得到旋转后的所述目标列向量对应的密文数据;所述各个加速硬件将所述各个行向量对应的明文数据与旋转后的所述目标列向量对应的密文数据相乘,得到与所述各个隐私计算子任务分别对应的隐私计算结果;所述目标加速硬件基于获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,包括:所述目标加速硬件将获取到的与所述至少两个隐私计算子任务分别对应的隐私计算结果相加,得到与所述隐私计算任务对应的隐私计算结果。8.根据权利要求7所述的方法,所述目标加速硬件将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,包括:所述目标加速硬件将所述输入矩阵中的各个行向量逐个拆分出来,并逐个分配给包含所述目标加速硬件在内的各个加速硬件,作为与为所述各个加速硬件分配的隐私计算子任务对应的计算参数。9.一种隐私计算装置,所述装置应用于隐私计算设备;所述隐私计算设备上搭载有处理器,与所述处理器互联的目标加速硬件,以及与所述目标加速硬件互联的至少一个其他加速硬件;所述装置包括:所述处理器上的收发单元,用于将待执行的基于同态加密算法的隐私计算任务发送给所述目标加速硬件;所述目标加速硬件上的拆分单元,用于将所述隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给包含所述目标加速硬件在内的各个加速硬件,并向所述至少一个其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;所述各个加速硬件上的隐私计算单元,用于基于与所述拆分单元为其分配的隐私计算子任务对应的隐私计算参数分别执行隐私计算,并将与为其分配的隐私计算子任务对应的隐私计算结果返回给所述目标加速硬件;所述目标加速硬件上的合并单元,用于基于获取到的由所述各个加速硬件上的隐私计算单元返回的与所述至少两个隐私计算子任务分别对应的隐私计算结果,计算出与所述隐私计算任务对应的隐私计算结果,并将与所述隐私计算任务对应的隐私计算结果返回给所述处理器。10.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至8任一项所述的方法。11.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至8任一项所述的方法。

技术总结
本说明书一个或多个实施例提供一种隐私计算方法、装置、电子设备及机器可读存储介质。所述方法应用于隐私计算设备;隐私计算设备上搭载有处理器和多个加速硬件;所述方法包括:处理器将隐私计算任务发送给目标加速硬件;目标加速硬件将隐私计算任务拆分为至少两个隐私计算子任务,将拆分得到的各个隐私计算子任务分配给各个加速硬件,并向其他加速硬件发送与为其分配的隐私计算子任务对应的隐私计算参数;各个加速硬件基于获取到的隐私计算参数分别执行隐私计算,并将隐私计算结果返回给目标加速硬件;目标加速硬件基于获取到的与各个隐私计算子任务分别对应的隐私计算结果,计算出与隐私计算任务对应的隐私计算结果,并返回给处理器。给处理器。给处理器。


技术研发人员:宋宜轩 邹银超 赵原
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2023.05.15
技术公布日:2023/8/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐