一种基于硬件加速卡的多方隐私计算方法、装置及系统与流程

文档序号:30613914发布日期:2022-07-02 00:25阅读:295来源:国知局
一种基于硬件加速卡的多方隐私计算方法、装置及系统与流程

1.本技术涉及安全计算领域,尤其涉及一种基于硬件加速卡的多方隐私计算方法、装置、系统及计算机可读存储介质。


背景技术:

2.隐私计算是指在保证数据提供方不泄漏原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过程中的“可用不可见”。目前,实现隐私计算常用的技术包括:1)多方安全计算(secure multi-party computation,mpc);2)联邦学习(federated learning,fl);和3)可信执行环境(tee,trusted execution environment)等。
3.但上述方案存在计算和通信开销较大、性能不佳的问题。若使用可信执行环境,还需要使用特定厂商的硬件并信任相应的供应商。


技术实现要素:

4.本技术实施例为了解决上述问题,创造性地提供一种基于硬件加速卡的多方隐私计算方法、装置及计算机可读存储介质。
5.根据本技术实施例第一方面,提供了一种基于硬件加速卡的多方隐私计算方法,应用于数据提供方服务器,数据提供方服务器连接有第一硬件加速卡,该方法包括:将隐私数据和加密指令,传递给第一硬件加速卡;接收第一硬件加速卡返回的加密后的隐私数据;将加密后的隐私数据和隐私计算请求,发送至隐私计算方服务器,以进行多方隐私计算。
6.根据本技术一实施例,该方法还包括:接收隐私计算方服务器返回的与隐私计算请求对应的加密后的隐私计算结果。
7.根据本技术一实施例,该方法还包括:将加密后的隐私计算结果和解密指令,传递给第一硬件加速卡;接收第一硬件加速卡返回的解密后的隐私计算结果。
8.根据本技术一实施例,该方法还包括:将获取根证书的指令传递给第一硬件加速卡;接收第一硬件加速卡返回的加密后的第三根证书;将加密后的第三根证书发送给隐私计算方服务器。
9.根据本技术一实施例,该方法还包括:接收隐私计算方服务器发送的加密后的第四根证书;将加密后的第四根证书和证书认证指令,传递给第一硬件加速卡;接收第一硬件加速卡返回的证书认证结果。
10.根据本技术一实施例,该方法还包括:将隐私计算方服务器,传递给第一硬件加速卡,以便第一硬件加速卡与隐私计算方服务器进行密钥协商。
11.根据本技术实施例第二方面,还提供一种基于硬件加速卡的多方隐私计算方法,该方法应用于隐私计算方服务器,隐私计算方服务器连接有第二硬件加速卡,该方法包括:接收数据提供方服务器发送的加密后的隐私数据和隐私计算请求;根据隐私计算请求,确定隐私计算指令;将加密后的隐私数据和隐私计算指令,传递给第二硬件加速卡;接收第二
硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果;将加密后的隐私计算结果,返回给数据提供方服务器。
12.根据本技术一实施例,该方法还包括:将获取根证书的指令传递给第二硬件加速卡;接收第二硬件加速卡返回的加密后的第五根证书;将加密后的第五根证书发送给数据提供方服务器。
13.根据本技术一实施例,该方法还包括:接收数据提供方服务器发送的加密后的第六根证书;将加密后的第六根证书和证书认证指令,传递给第二硬件加速卡;接收第二硬件加速卡返回的证书认证结果。
14.根据本技术一实施例,该方法还包括:将数据提供方服务器,传递给第二硬件加速卡,以便第二硬件加速卡与数据提供方服务器进行密钥协商。
15.根据本技术实施例第三方面,还提供一种基于硬件加速卡的多方隐私计算方法,该方法应用于至少两个数据提供方服务器和至少一个隐私计算方服务器,其中,数据提供方服务器连接有第一硬件加速卡,隐私计算方服务器连接有第二硬件加速卡,方法包括:至少两个数据提供方服务器中的第一数据提供方服务器将第一隐私数据和加密指令,传递给第一数据提供方服务器上的第一硬件加速卡,接收第一数据提供方服务器上的第一硬件加速卡返回的加密后的第一隐私数据,将加密后的第一隐私数据和隐私计算请求,发送至隐私计算方服务器;隐私计算方服务器接收加密后的第一隐私数据和隐私计算请求,根据隐私计算请求,确定隐私计算指令,将加密后的第一隐私数据和隐私计算指令,传递给第二硬件加速卡,接收第二硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果,将加密后的隐私计算结果,返回给第一数据提供方服务器。
16.根据本技术一实施例,隐私计算请求还需要使用到至少两个数据提供方服务器中的第二数据提供方服务器所提供的第二隐私数据,方法还包括:第二数据提供方服务器将第二隐私数据和加密指令,传递给第二数据提供方服务器上的第一硬件加速卡,接收第二数据提供方服务器上的第一硬件加速卡返回的加密后的隐私数据,将加密后的第二隐私数据发送至隐私计算方服务器;隐私计算方服务器接收第二数据提供方服务器发送的加密后的第二隐私数据,将加密后的第二隐私数据传递给第二硬件加速卡。
17.根据本技术实施例第四方面,还提供一种基于硬件加速卡的多方隐私计算装置,该装置应用于数据提供方服务器,数据提供方服务器连接有第一硬件加速卡,该装置包括:第一硬件加速卡数据传递模块,用于将隐私数据和加密指令,传递给第一硬件加速卡;第一硬件加速卡数据接收模块,用于接收第一硬件加速卡返回的加密后的隐私数据;隐私计算请求发送模块,用于将加密后的隐私数据和隐私计算请求,发送至隐私计算方服务器,以进行多方隐私计算。
18.根据本技术实施例第五方面,还提供一种基于硬件加速卡的多方隐私计算装置,该装置应用于隐私计算方服务器,隐私计算方服务器连接有第二硬件加速卡,该装置包括:隐私计算请求接收模块,用于接收数据提供方服务器发送的加密后的隐私数据和隐私计算请求;隐私计算指令确定模块,用于根据隐私计算请求,确定隐私计算指令;第二硬件加速卡数据传递模块,用于将加密后的隐私数据和隐私计算指令,传递给第二硬件加速卡;第二硬件加速卡数据接收模块,用于接收第二硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果;隐私计算结果返回模块,用于将加密后的隐私计算结果,返回给数据提供
方服务器。
19.根据本技术实施例第六方面,还提供一种基于硬件加速卡的多方隐私计算系统,该系统包括至少两个数据提供方服务器和至少一个隐私计算方服务器,其中,数据提供方服务器连接有第一硬件加速卡,用于执行上述任一项应用于数据提供方服务器的多方隐私计算方法;隐私计算方服务器连接有第二硬件加速卡,用于执行上述任一项应用于隐私计算方服务器的多方隐私计算方法。
20.根据本技术实施例第七方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项多方隐私计算方法。
21.本技术实施例提供一种基于硬件加速卡的多方隐私计算方法、装置、系统、设备及计算机可读存储介质,该方法以硬件加速卡(例如,fpga计算卡)为载体实现隐私计算平台,可在数据提供方服务器的硬件加速卡内实现数据加/解密,并将加密后的数据发送至隐私计算方服务器,由隐私计算方服务器在隐私计算方服务器上的硬件加速卡上进行解密、执行相应计算并返回加密后的隐私计算结果。
22.由于硬件加速卡与数据提供方服务器或隐私计算方服务器在硬件上是隔离的,无法通过数据提供方服务器或隐私计算方服务器访问到硬件加速卡的内存,从而通过硬件上的隔离就能确保数据的私密性和安全性。
23.此外,通过硬件加速卡来实现数据加/解密和安全计算,还比多方安全计算和联邦学习可有效降低数据通信成本,并利用硬件加速卡的高速运算进一步提高计算性能。
24.需要理解的是,本技术的教导并不需要实现上面的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本技术的其他实施方式还能够实现上面未提到的有益效果。
附图说明
25.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,其中:
26.在附图中,相同或对应的标号表示相同或对应的部分。
27.图1示出了本技术一实施例与服务器连接的硬件加速卡的结构示意图;
28.图2示出了本技术一实施例应用在与服务器连接的硬件加速卡上的多方隐私计算方法的实现流程示意图;
29.图3示出了本技术一实施例多方隐私计算系统的结构示意图;
30.图4示出了本技术一实施例应用在数据提供方服务器上的多方隐私计算方法的实现流程示意图;
31.图5示出了本技术一实施例应用在隐私计算方服务器上的多方隐私计算方法的实现流程示意图;
32.图6示出了本技术另一实施例与服务器连接的硬件加速卡的结构示意图;
33.图7示出了本技术另一实施例多方隐私计算系统的结构示意图;
34.图8示出了本技术一实施例应用在与服务器连接的硬件加速卡上的多方隐私计算装置的组成结构示意图;
35.图9示出了本技术一实施例应用在数据提供方服务器上的多方隐私计算装置的组成结构示意图;
36.图10示出了本技术一实施例应用在隐私计算方方服务器上的多方隐私计算装置的组成结构示意图。
具体实施方式
37.下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为使本技术更加透彻和完整,并能够将本技术的范围完整地传达给本领域的技术人员。
38.下面结合附图和具体实施例对本技术的技术方案进一步详细阐述。
39.图1示出了本技术一实施例中所使用的与服务器连接的硬件加速卡的组成结构。
40.如图1所示,服务器11可通过总线接口1102,例如,外设部件互连(peripheral component interconnect,pci)接口、高速串行计算机扩展总线(peripheral component interconnect express,pcie)接口,连接硬件加速卡12,并通过主机驱动1101驱动和访问硬件加速卡12。
41.硬件加速卡12,例如,现场可编程门阵列(fpga)卡和alveo加速卡等,包括输入输出单元1201、至少一个逻辑运算单元1202和存储单元1203。其中,输入输出单元1201用于与服务器11进行数据交换,即接收服务器11输入的输入数据,并向服务器11返回输出数据;逻辑运算单元1202,可以进行简单的逻辑运算,用于执行一个或多个程序,以实现本技术多方隐私计算方法;存储单元1203,用于存储一个或多个程序。
42.由于硬件加速卡12往往具有软件无法比拟的硬件定时的速度、稳定性和并发能力,可提供超出纯软件优化方案的加速能力,常常用于取代服务器11上的软件程序,以获取更高的性能。为提供软件程序所提供的各种功能,可通过在硬件加速卡上12的存储单元1203中预置可实现相应功能的程序(例如,可控制硬件设备的嵌入式程序),并通过逻辑运算单元1202执行来实现。本技术实施例,正是通过在硬件加速卡上12的存储单元1203中预置可实现本技术多方隐私计算方法的相应程序,并来通过逻辑运算单元1202执行相应程序来实现本技术多方隐私计算方法的。
43.如图1所示,硬件加速卡12是通过总线接口1102与服务器11相连的电子设备,并通过总线接口1102与服务器11进行数据交换和通信的。服务器11并不能直接访问到硬件加速卡12的逻辑运算单元1202和存储单元1203。因此,在逻辑运算单元1202中运行程序及在存储单元1203中存储的程序代码和数据都不容易泄露,可以得到硬件级别的安全保障。而申请多方隐私计算方法的正式利用了硬件加速卡12的上述特性,将与隐私数据相关的处理均放置在硬件加速卡12上进行,从而确保隐私数据不会被泄露,使得隐私计算更为安全可靠。
44.在本技术实施例中,硬件加速卡12的存储单元1203还存储有可定制的安全认证信息,例如,本地服务器硬件信息及系统密钥,以用于对服务器11进行认证。如此,可避免硬件加速卡12被挪用到非法服务器,造成安全隐患。从而,可进一步确保本技术多方隐私计算方法的安全性。
45.上述安全认证信息可根据服务器11的信息预置(例如,烧制)到硬件加速卡上的,
也就是可定制的。因此,服务器11可以是任何类型的服务器,而无须是支持特定架构或由特定厂商提供的服务器。如此,可使得硬件加速卡12的适用范围更大,更易于实施。由于,硬件加速卡12可与更多类型和型号的服务器相连,就可以最大程度地利用已有服务器进行隐私计算,从而大大减少了添置新服务器的成本。
46.图2示出了在本技术一实施例通过图1所示的与服务器相连的硬件加速卡所实现的多方隐私计算方法的主要流程,如图2所示,该方法包括:
47.操作s210,根据安全认证信息,对第一服务器进行认证;
48.其中,安全认证信息主要包括硬件信息和/或系统密钥等,是根据确定的服务器信息预置在硬件加速卡中的。其中,硬件信息包括设备标识和型号等;系统密钥,则是用于确定第一服务器安装的操作系统是否是安全的凭证。
49.在对第一服务器进行认证时,主要通过总线接口获取第一服务器的硬件信息并与硬件加速卡上预置的硬件信息进行比对;和/或通过系统密钥确认第一服务器所安装的操作系统是否是安全合法的。
50.如此,一旦确定了硬件加速卡要连接的服务器,就可以将该硬件加速卡与该服务器进行安全绑定,确保该硬件加速卡不会被随意连接到其他未认证的非法服务器上,避免安全隐患。
51.操作s220,接收第一服务器传递的数据和指令;
52.其中,第一服务器是与硬件加速卡连接的并通过操作s210认证过的服务器。
53.第一服务器通过主机驱动和总线接口将数据和指令发送给硬件加速卡,而硬件加速卡则通过输入输出单元,从总线接口接收相应的数据和指令。
54.第一服务器传递的指令是硬件加速卡上预置的程序可处理指令,也是根据实现本技术实施例多方隐私计算方法的需要所实现的指令。该指令可任意命名,能代表其所实现的功能,并通过说明书或帮助文件加以公示即可。第一服务器在传递指令时,要确保第一服务器传递的指令与说明书或帮助文件中公示的指令一致,以确保硬件加速卡可在存储单元中找到对应的程序,并通过逻辑运行单元进行执行。
55.第一服务器传递的数据是指令要处理的数据。不同的指令所处理的数据也有所不同,例如,若第一服务器传递的指令为加密指令,则所传递的数据为待加密的数据;若第一服务器传递的指令为隐私计算指令,则所传递的数据为待计算的数据;若第一服务器传递的指令为解密指令,则所传递的数据为待解密的数据;若第一服务器传递的指令为获取根证书指令,则可以不传递数据等。
56.操作s230,若指令为加密指令,则对数据进行加密,得到加密后的数据;
57.其中,加密指令并非指令名称,而是代表指令所实现的功能为加密,实施时,实施者可采用任何代表该功能的指令名称。后续相应指令也类似,因此不再重复说明。
58.在本技术实施例中,并不限定对数据进行加密的具体方法,实施者可根据实施需求和实施条件,使用任何适用的加密算法和加密方式。
59.由于上述加密操作是在硬件加速卡上进行的,其加密程序及加密算法均存储在硬件加速卡的存储单元,并运行在硬件加速卡的逻辑运算单元,因此即使是与硬件加速卡连接的第一服务器也无法访问到。如此,从硬件级别确保了加密算法和程序的安全,也使得加密后的数据难以被破解。
60.操作s240,将加密后的数据,返回给第一服务器。
61.硬件加速卡则可以通过输入输出单元,输出加密后的数据,并通过总线接口和主机驱动,将加密后的数据返回给第一服务器,第一服务器就可以使用该加密后的数据进行隐私计算了,从而确保隐私数据对外界是的不可见的,也确保了隐私计算的安全性。
62.在本技术实施例中,加密指令实际上只是硬件加速卡在本技术多方隐私计算方法中所执行的基本指令之一。除此之外,还可以根据在本技术多方隐私计算方法,实现更多指令以完成相应的操作。示例性地:
63.在本技术的另一实施例中,硬件加速卡还可实现隐私计算指令,相应地,该方法还包括:若指令为隐私计算指令,则对数据进行解密得到解密后的数据;根据所述解密后的数据和所述隐私计算指令,进行多方隐私计算,得到隐私计算结果;对所述隐私计算结果进行加密得到加密后的隐私计算结果;将所述加密后的隐私计算结果,返回给所述第一服务器。
64.其中,用于隐私计算的数据,往往是隐私数据,该数据经过加密后发送给硬件加速卡,由硬件加速卡进行解密。解密后的隐私数据,仅对硬件加速卡可见,甚至对与硬件加速卡连接的第一服务器来说都是不可见的,从而从硬件级别上,确保了相应的隐私数据不会被泄露。
65.在本技术的另一实施例中,硬件加速卡还实现了解密指令。该方法还包括:若第一服务器传递的指令为隐私计算指令,则对第一服务器传递的数据进行解密得到解密后的数据。这一指令通常用于对隐私计算后得到的加密结果进行解密,以进行后续相关处理。
66.在本技术的另一实施例中,硬件加速卡还预置有可定制的第一根证书,并实现了获取根证书指令,该方法还包括:若所述指令为获取根证书指令,则对第一根证书进行加密,将加密后的根证书返回给所述第一服务器。第一服务器获取了加密后的第一根证书,即可使用该第一根证书和其他服务器进行信任关系的确认。
67.其中,第一证书是可以根据用户需要将用户指定的根证书预置(烧制)到硬件加速卡的,而不是固定的,是可定制地。如此,可通过使用用户指定的证书,灵活满足用户需求,而无须使用特定的第三方机构提供的证书。
68.由于该第一根证书可用于确保多方隐私计算是基于互信的各个服务器进行的,而将该第一根证书存储在硬件加密卡中,使得与硬件加密卡连接的第一服务器也只能获取到加密后的第一根证书。如此,可进一步确保参与隐私计算的各方都是经过安全认证的可信任的服务器,也就进一步提升了多方隐私计算的安全性。
69.在本技术的另一实施例中,第一服务器传递的数据包括加密后的第二根证书,该方法还包括:若所述指令为证书认证指令,则对所述加密后的第二根证书进行解密得到第二根证书;对第二根证书进行认证,得到证书认证结果,以确定所述加密后的第二根证书与所述第一根证书是互信的;将所述证书认证结果返回给所述第一服务器。
70.其中,对第二根证书进行认证时,主要是对第二根证书和硬件加速卡上预置的第一根证书进行信任计算,以确定第二根证书和第一根证书是互相信任的。
71.在本技术的另一实施例中,硬件加速卡还预置有可定制的初始密钥,数据包括第二服务器,该方法还包括:根据初始密钥和第二服务器,确定工作密钥;相应地,对数据进行加密,包括:使用工作密钥,对数据进行加密。
72.其中,初始密码指用于生成工作密钥的种子密钥。初始密钥是固定不变的,但初始
密钥可作为种子密钥,依据一定算法在不同时间随机生成的工作密钥。工作密钥是加密数据真正使用的密钥,由于其随机性因此不易被破解,从而使得加密后的数据更为安全。
73.在本技术的另一实施例中,上述工作密钥设置有有效期,该方法还包括:确定工作密钥在有效期内;若工作密钥已过期,则根据初始密钥和第二服务器更新工作密钥。
74.在本技术实施例中,通过时效性进一步提高加密数据的安全性。
75.需要说明的是,图1所示的硬件加速卡以及图2所示的在硬件加速卡上所执行的各种操作是实现本技术多方隐私计算的基础和核心部分。但要实现一个完整的多方隐私计算过程,还需要将上述硬件加速卡连接到服务器上,并使得服务器作为数据提供方服务器,或隐私计算服务器组成多方隐私计算系统,参与到隐私计算过程种,才可以实现一个完成的多方隐私计算流程。
76.图3就示出了一个由多个连接有上述硬件加速卡的服务器所组成的多方隐私计算系统。在图3所示的多方隐私计算系统中,包括至少两个数据提供方服务器:数据提供方服务器31和数据提供方服务器32;和至少一个隐私计算方服务器30。
77.其中,数据提供方服务器31连接有第一硬件加速卡311,第一硬件加速卡311与上述硬件加速卡12功能相同,用于在数据提供方服务器端执行相应的多方隐私计算方法;隐私计算方服务器30连接有第二硬件加速卡301,第二硬件加速卡301与上述硬件加速卡12功能相同,用于在隐私计算方服务器30端执行相应的多方隐私计算方法。
78.具体地,在数据提供方服务器端,例如,数据提供方服务器31,执行如图4所示的方法,包括:
79.操作s410,将第一隐私数据和加密指令,传递给第一硬件加速卡311;
80.操作s420,接收第一硬件加速卡311返回的加密后的第一隐私数据;
81.操作s430,将加密后的第一隐私数据和隐私计算请求,发送至隐私计算方服务器,例如,隐私计算方服务器30,以进行多方隐私计算。
82.隐私计算方服务器30,执行图5所示的方法,包括:
83.操作s510,接收数据提供方服务器31发送的加密后的第一隐私数据和隐私计算请求;
84.操作s520,根据隐私计算请求,确定隐私计算指令;
85.操作s530,将加密后的第一隐私数据和隐私计算指令,传递给第二硬件加速卡301;
86.操作s540,接收第二硬件加速卡301返回的与隐私计算请求对应的加密后的隐私计算结果;
87.操作s550,将加密后的隐私计算结果,返回给数据提供方服务器31。
88.如此,数据提供方服务器31即可通过上述多方隐私计算过程,完成对隐私数据的隐私计算,并得到加密后的隐私计算结果。
89.在上述过程中,数据提供方服务器31所提供的隐私数据是经过第一硬件加速卡311加密后的隐私数据。在网路传输中,该隐私数据也是以密文形式进行传输的。从而,可确保数据提供方服务器31提供的隐私数据不会被泄露。
90.如果数据提供方服务器31所请求的隐私计算还需要使用到数据提供方服务器32的第二隐私数据,则可以在数据提供方服务器32上执行操作s410至操作s430,通过第一硬
件加速卡321对数据提供方服务器32上的第二隐私数据进行加密,并将加密后的第二隐私数据发送至隐私计算方服务器30。
91.而隐私计算方服务器30上的硬件加速卡301,则根据隐私计算请求,将同一隐私计算请求所涉及的所有隐私数据进行解密,将解密后的明文数据放置到第二硬件加速卡301用于计算的内存或存储单元,并在第二硬件加速卡301上进行相应的隐私计算,从而确保所有解密后的隐私数据仅对第二硬件加速卡301可见,即使是与之连接的隐私计算方服务器30,都无法获取这些解密后的隐私数据。从而在硬件级别上确保了隐私数据的安全性。
92.在上述过程中,虽然多方隐私计算需要用到多个数据提供方服务器(例如,数据提供方服务器31和数据提供方服务器32)提供的隐私数据,但各个数据提供方服务器仅需向隐私计算方服务器(例如,隐私计算方服务器30)提供加密后的隐私数据,而无须向其他数据提供方提供任何形式的隐私数据(包括加密形式的隐私数据),也无须与其他数据提供方进行通信。从而进一步缩小了隐私数据的传播范围、减少隐私数据泄露的可能性并大幅减少了数据提供方之间的通信成本。
93.此外,由于隐私计算方服务器和数据提供方服务器所连接的硬件加速卡是功能等同的,这就意味着,当隐私计算方服务器不可用时,还可从各数据提供方服务器中进行选举,从各数据提供方服务器中重新确定一个服务器,作为新的隐私计算方服务器,用于进行多方隐私计算。
94.如此,可大大提高多方隐私计算系统的高可用性,从而不必担心因为隐私计算方服务器的意外宕机,而导致整个多方隐私计算系统不可用。
95.需要说明的是,图1至图5所示的实施例,仅为本技术多方隐私计算方法的一个基本技术实施例,实施者还可根据实施需要,进一步扩展硬件加速卡的功能,提供更多可调用的指令,进一步细化和扩展本技术多方隐私计算方法的实施方式。
96.图6至图7示出了本技术多方隐私计算方法的另一实施例。
97.在本技术实施例中,使用fpga卡作为与服务器相连的硬件加速卡,并使用pcie接口接入fpga卡,使服务器和fpga卡之间的数据传输和通信更块。
98.图6示出了本技术实施例所使用的fpga卡的主要组成结构。
99.如图6所示,在本技术实施例所使用的fpga卡62使用外部芯片6203作为存储单元,以增加数据存储容量,满足大数据隐私计算的需求。外部芯片6203还可以是大容量的双倍速率同步动态随机存储器(ddr sdram)。
100.在本技术实施例中,在fpga卡62的外部芯片6203中,处理服务器的安全认证信息之外,还存储有用于与多方隐私计算服务器进行认证的根证书,和用于生成工作密钥的初始密钥,并增设了以下处理单元,以更为高效地实现隐私计算指令、解密指令、获取根证书指令、证书认证指令等:
101.加解密单元6204,用于协助内部逻辑单元6202执行加密指令和解密指令;
102.密钥协商单元6205,用于与第二服务器进行密钥协商,根据预置的初始密钥生成工作密钥;
103.认证单元6206,用于与第二服务器进行认证,即确认信任关系;
104.其中,密钥协商单元6205所生成的工作密钥可以用于加解密单元6204的加解密数据的过程中;认证单元6206会使用密钥协商单元6205提供的初始密钥进行服务器认证;密
钥协商单元6205在进行密钥协商的过程中也会使用到认证单元6206所提供的认证结果,以确定用于协商密钥的第二服务器是可信的。
105.内部总线6207,用于在内部逻辑单元6202与加解密单元6204之间传输数据。
106.关于隐私计算指令、解密指令、获取根证书指令、证书认证指令所执行的具体操作,请参见前文所述实施例,此处不再赘述。
107.在图6所示的fpga卡中,通过增设专用的处理单元,例如,加解密单元6204、密钥协商单元6205和认证单元6206等,来完成密钥协商、服务器认证和加解密等操作,可以简化内部逻辑单元6202的处理逻辑,使其更专注于多方隐私计算部分,从而可进一步提高fpga进行多方隐私计算的性能,并使得密钥协商、服务器认证和加解密等操作可与隐私计算过程并行处理,也大大提高了多方隐私计算的效率。
108.在图6所示的fpga卡中,以斜纹作为背景部分的为可信单元,例如,加解密单元6204、密钥协商单元6205、认证单元6206、内部总线6207、内部逻辑单元6202和外部芯片6203等。空白背景部分为非可信单元,隐私数据在非可信模块中以密文形式存在,从而可确保隐私数据的安全。
109.fpga卡内部单元主要为可信单元,由于fpga的物理特性实现了内部逻辑的高安全性,即使服务器的底层操作系统被破解攻破也无法透过fpga获取fpga内部未开放的数据(如根证书、初始秘钥和解密后的明文数据等)。
110.此外,在该实施例中,还将fpga计算卡的固件源代码开源给用户,使得用户可以修改固件源代码以集成其自定义的安全功能,并使得用户可自行配置前文所提到的可定制服务器安全认证信息、第一根证书和初始密钥等信任基,以降低多方隐私计算系统,对硬件厂商的信任依赖。进一步提高了本技术多方隐私计算方法的可扩展性,只要加装了上述fpga卡和对应的主机驱动程序,大部分已有的通用服务器即可作为隐私计算的数据提供方服务器或隐私计算方服务器。
111.图7示出了使用连接有图6所示的fpga卡的服务器作为数据提供方服务器和隐私计算方服务器的一个多方隐私计算系统,以及完成依次多方隐私计算在各个服务器上(例如,数据提供方服务器71、数据提供方服务器72和隐私计算方服务器73)所进行的操作。
112.在图7所示的多方隐私计算系统中,数据提供方服务器(例如,数据提供方服务器71和数据提供方服务器72)主要进行数据预处理、任务发起和结果获取等操作;隐私计算方服务器(例如,隐私计算方服务器73)主要进行任务同步、数据计算和结果发送等操作。其中,在参与多方隐私计算的数据提供方服务器与隐私计算方服务器之间所进行的各种数据通信中,各个数据特别是隐私数据都是以密文形式进行传输的。
113.在部署图7所示的多方隐私计算系统之前,会预先在各个服务器的fpga卡中预置与之相连的服务器的安全认证信息、使得各个服务器彼此互信的根证书,以及各个服务器协商确定的初始密钥等。
114.而在进行多方隐私计算之前,各个参与隐私计算的服务器会对进行交互的服务器进行认证。
115.例如,在数据提供方服务器71上执行操作s7110,与隐私计算方服务器进行认证。
116.具体包括:将获取根证书的指令传递给第一硬件加速卡;接收第一硬件加速卡返回的加密后的根证书;将加密后的根证书发送给隐私计算方服务器。
117.之后,接收隐私计算方服务器发送的加密后的根证书;将加密后的根证书和证书认证指令,传递给第一硬件加速卡;接收第一硬件加速卡返回的证书认证结果。
118.若确认隐私计算方服务器是可信任的,则可继续后续的多方隐私计算过程,否则,报错。
119.类似的,在数据提供方服务器72也会通过操作s7210执行上述过程,对隐私计算方服务器进行认证。
120.与之对应地,在隐私计算方服务器73会执行操作s7310对与之交互的数据提供方服务器进行认证。
121.具体包括:将获取根证书的指令传递给第二硬件加速卡;接收第二硬件加速卡返回的加密后的根证书;将加密后的根证书发送给数据提供方服务器。
122.之后,接收数据提供方服务器发送的加密后的根证书;将加密后的根证书和证书认证指令,传递给第二硬件加速卡;接收第二硬件加速卡返回的证书认证结果。
123.若确认数据提供方服务器是可信任的,则可继续后续的多方隐私计算过程,否则,报错。
124.在进行完上述服务器之间的认证过程,即可开始多方隐私计算过程。假设此次隐私计算任务是由数据提供方服务器72发起的,该多方隐私计算任务需要使用到数据提供方服务器71所提供的数据。
125.则在数据提供方服务器72端,执行以下操作:
126.操作s7220,进行数据预处理;
127.具体包括对待计算的数据进行去噪、验证和修正等。
128.此外,还包括在第一硬件加速卡上,根据安全认证信息对数据提供方服务器进行认证,以确保数据提供方服务器72是合法的服务器。
129.操作s7230,与隐私计算方服务器协商密钥;
130.具体包括:将隐私计算方服务器(例如,隐私计算服务器的标识和网络地址)传递给第一硬件加速卡,以便第一硬件加速卡与隐私计算方服务器进行密钥协商。
131.操作s7240,使用密钥,对隐私数据进行加密;
132.具体包括:将隐私数据和加密指令,传递给第一硬件加速卡;接收第一硬件加速卡返回的加密后的隐私数据。
133.操作s7250,将加密后的隐私数据和多方计算请求,上传至隐私计算方服务器73。
134.在数据提供方服务器71端,通过操作s7120至操作s7150完成上述类似的操作,将数据提供方服务器71上加密后的隐私数据也上传至隐私计算方服务器73。
135.在隐私计算方服务器端,执行如下操作:
136.操作s7320,接收待计算的数据(数据提供方服务器71和数据提供方服务器72上传的隐私数据);
137.具体包括:接收数据提供方服务器发送的加密后的隐私数据和隐私计算请求。
138.操作s7330,与数据提供方服务器协商密钥;
139.具体包括:将数据提供方服务器(例如,数据提供方服务器的标识和网络地址)传递给第二硬件加速卡,以便第二硬件加速卡与数据提供方服务器进行密钥协商。
140.操作s7340,对接收到的加密后的隐私数据,进行解密;
141.具体包括:将加密后的隐私数据和隐私计算指令,传递给第二硬件加速卡;接收第二硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果。
142.操作s7350,对解密后的数据进行多方隐私计算;
143.具体包括:根据隐私计算请求,确定隐私计算指令;将加密后的隐私数据和隐私计算指令,传递给第二硬件加速卡,在第二硬件加速卡上执行以下操作s7360和操作s7370:
144.操作s7360,与数据提供方服务器协商密钥;
145.操作s7370,对多方隐私计算结果,进行加密传输;
146.之后,接收第二硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果,然后继续以下操作:
147.操作s7380,将加密后的多方隐私计算结果返回值数据提供方服务器72。
148.之后,数据提供方服务器7执行以下操作获取多方隐私结果,并进行后续计算:
149.操作s7260,接收加密后的多方隐私计算的结果;
150.操作s7270,与隐私计算方服务器协商密钥;
151.操作s7280,对接收到的加密后的多方隐私计算的结果,进行解密,得到明文的多方隐私计算结果;
152.操作s7290,使用明文的多方隐私计算结果进行后续计算。
153.如果需要,在数据提供方服务器71端,也可以执行类似操作s7260至操作s7280的过程获取多方隐私计算的结果。
154.至此,就完成了一次多方隐私计算过程。
155.在图7所示的各个操作中,以斜纹为背景的部分是在图6所示的fpga卡的可信单元中完成的;而其他部分则可由服务器或fpga卡的非可信单元完成。
156.同理,基于上述多方隐私计算方法,本技术实施例还提供一种多方隐私计算装置,如图8所示,该装置80应用于与第一服务器连接的硬件加速卡上,硬件加速卡上预置有可定制的安全认证信息,该装置80包括:服务器认证模块801,用于根据安全认证信息,对第一服务器进行认证,以确保第一服务器是合法的;数据接收模块802,用于接收第一服务器传递的数据和指令;数据加密模块803,用于若指令为加密指令,则对数据进行加密,得到加密后的数据;数据返回模块804,用于将加密后的数据返回给第一服务器。
157.根据本技术一实施例,该装置80还包括:数据解密模块,用于若指令为隐私计算指令,则对数据进行解密得到解密后的数据;隐私计算模块,用于根据解密后的数据和隐私计算指令,进行多方隐私计算,得到隐私计算结果;数据加密模块,用于对隐私计算结果进行加密得到加密后的隐私计算结果;数据返回模块,用于将加密后的隐私计算结果,返回给第一服务器。
158.根据本技术一实施例,数据解密模块还用于若指令为解密指令,则对数据进行解密得到解密后的数据;数据返回模块还用于将解密后的数据,返回给第一服务器。
159.根据本技术一实施例,硬件加速卡还预置有可定制的第一根证书,该装置80还包括:根证书返回模块,用于若指令为获取根证书指令,则对所示第一证书进行加密,并将加密后的第一根证书返回给第一服务器。
160.根据本技术一实施例,数据包括加密后的第二根证书,数据解密模块还用于若指令为证书认证指令,则对加密后的第二根证书进行解密得到第二证书;该装置80还包括证
书认证模块,用于对第二证书进行认证,得到证书认证结果,以确定加密后的第二根证书与第一根证书是互信的;数据返回模块还用于将证书认证结果返回给第一服务器。
161.根据本技术一实施例,硬件加速卡还预置有可定制的初始密钥,数据包括第二服务器,该装置80还包括:工作密钥确定模块,用于根据初始密钥和第二服务器,确定工作密钥;相应地,数据加密模块803具体用于使用工作密钥,对数据进行加密。
162.根据本技术一实施例,工作密钥设置有有效期,该装置80还包括:有效期确认模块,用于确定工作密钥在有效期内;工作密钥更新模块,用于若工作密钥已过期,则根据初始密钥和第二服务器更新工作密钥。
163.同理,基于上述多方隐私计算方法,本技术实施例还提供一种多方隐私计算装置,该装置应用于数据提供方服务器,数据提供方服务器连接有第一硬件加速卡,第一硬件加速卡为上述硬件加速卡,如图9所示,该装置90包括:第一硬件加速卡数据传递模块901,用于将隐私数据和加密指令,传递给第一硬件加速卡;第一硬件加速卡数据接收模块902,用于接收第一硬件加速卡返回的加密后的隐私数据;隐私计算请求发送模块903,用于将加密后的隐私数据和隐私计算请求,发送至隐私计算方服务器,以进行多方隐私计算。
164.根据本技术一实施例,该装置90还包括:数据接收模块,用于接收隐私计算方服务器返回的与隐私计算请求对应的加密后的隐私计算结果。
165.根据本技术一实施例,第一硬件加速卡数据传递模块901,还用于将加密后的隐私计算结果和解密指令,传递给第一硬件加速卡;第一硬件加速卡数据接收模块902,还用于接收第一硬件加速卡返回的解密后的隐私计算结果。
166.根据本技术一实施例,第一硬件加速卡数据传递模块901,还用于将获取根证书的指令传递给第一硬件加速卡;第一硬件加速卡数据接收模块902,还用于接收第一硬件加速卡返回的加密后的第三根证书;该装置还90包括根证书发送模块,用于将加密后的第三根证书发送给隐私计算方服务器。
167.根据本技术一实施例,第一硬件加速卡数据接收模块902,还用于接收隐私计算方服务器发送的加密后的第四根证书;第一硬件加速卡数据传递模块901,还用于将加密后的第四根证书和证书认证指令,传递给第一硬件加速卡;第一硬件加速卡数据接收模块902,还用于接收第一硬件加速卡返回的证书认证结果。
168.根据本技术一实施例,第一硬件加速卡数据传递模块901,还用于将隐私计算方服务器,传递给第一硬件加速卡,以便第一硬件加速卡与隐私计算方服务器进行密钥协商。
169.同理,基于上述多方隐私计算方法,本技术实施例还提供一种多方隐私计算装置,该装置应用于隐私计算方服务器,隐私计算方服务器连接有第二硬件加速卡,第二硬件加速卡为上述硬件加速卡,该装置100包括:隐私计算请求接收模块1001,用于接收数据提供方服务器发送的加密后的隐私数据和隐私计算请求;隐私计算指令确定模块1002,用于根据隐私计算请求,确定隐私计算指令;第二硬件加速卡数据传递模块1003,用于将加密后的隐私数据和隐私计算指令,传递给第二硬件加速卡;第二硬件加速卡数据接收模块1004,用于接收第二硬件加速卡返回的与隐私计算请求对应的加密后的隐私计算结果;隐私计算结果返回模块1005,用于将加密后的隐私计算结果,返回给数据提供方服务器。
170.根据本技术一实施例,第二硬件加速卡数据传递模块1003,还用于将获取根证书的指令传递给第二硬件加速卡;第二硬件加速卡数据接收模块1004,还用于接收第二硬件
加速卡返回的加密后的第五根证书;隐私计算结果返回模块1005,还用于将加密后的第五根证书发送给数据提供方服务器。
171.根据本技术一实施例,第二硬件加速卡数据接收模块1004,还用于接收数据提供方服务器发送的加密后的第六根证书;第二硬件加速卡数据传递模块1003,还用于将加密后的第六根证书和证书认证指令,传递给第二硬件加速卡;第二硬件加速卡数据接收模块1004,还用于接收第二硬件加速卡返回的证书认证结果。
172.根据本技术一实施例第二硬件加速卡数据接收模块1004,还用于将数据提供方服务器,传递给第二硬件加速卡,以便第二硬件加速卡与数据提供方服务器进行密钥协商。
173.进一步,基于上述多方隐私计算方法,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器至少执行上述应用在数据提供方服务器和隐私计算方服务器的多方隐私计算方法。
174.这里需要指出的是:以上对针多方隐私计算方法装置实施例和对计算机可读存储介质实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于多方隐私计算方法装置实施例和对计算机可读存储介质实施例中未披露的技术细节,请参照本技术前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
175.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
176.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
177.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本技术实施例方案的目的。
178.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
179.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
180.或者,本技术上述集成的单元若以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例
的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例该方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
181.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1