掌桥专利:专业的专利平台
掌桥专利
首页

基于多方同态加密的数据处理方法、装置、设备和介质

文献发布时间:2024-04-18 19:58:53


基于多方同态加密的数据处理方法、装置、设备和介质

技术领域

本公开涉及数据安全技术,尤其是一种基于多方同态加密的数据处理方法、装置、设备和介质。

背景技术

在数据安全技术领域,Threshold-FHE(Threshold-Fully HomomorphicEncryption,门限全同态加密)是一种将FHE(FullyHomomorphicEncryption,全同态加密)与SS(Secret Sharing,秘密分享)相结合得到的一种多方同态加密方法。相关技术中,Threshold-FHE可以通过多个参与方协同生成一个公共的公私钥对,每个参与方仅持有私钥的秘密分享,解密过程是一个分布式解密协议,并且需要添加“污染(smudge)”来隐藏各自的私钥信息。相比于其他的多方FHE,Threshold-FHE具有显著的优点,即密文大小较小,所需存储空间较小,效率较高。但是,Threshold-FHE需要预先固定参与方数量,可拓展性较差。

发明内容

为了解决上述Threshold-FHE可拓展性较差等技术问题,本公开的实施例提供了一种基于多方同态加密的数据处理方法、装置、设备和介质,以在Threshold-FHE的基础上,实现参与方的拓展,提高Threshold-FHE的可拓展性。

本公开的一个方面,提供了一种方基于多方同态加密的数据处理法,包括:

获取各原参与方分别对应的第一密文信息;

响应于有至少一个新参与方加入,获取各所述新参与方分别对应的第二密文信息;

获取各所述原参与方分别对应的第一辅助密钥及各所述新参与方分别对应的第二辅助密钥;

基于各所述原参与方分别对应的所述第一密文信息和第一辅助密钥、各所述新参与方分别对应的所述第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文。

本公开的另一个方面,提供了一种基于多方同态加密的数据处理方法,包括:

在作为原参与方的情况下,将加密获得的第一密文信息发送至服务器,并在有新参与方加入的情况下,生成第一辅助密钥,将所述第一辅助密钥发送至所述服务器;

在作为新参与方的情况下,将加密获得的第二密文信息发送至所述服务器,并生成第二辅助密钥,将所述第二辅助密钥发送至所述服务器;

所述第一密文信息和所述第一辅助密钥、所述第二密文信息和所述第二辅助密钥,用于所述服务器确定预设运算对应的运算结果密文。

本公开的再一个方面,提供了一种基于多方同态加密的数据处理装置,包括:

第一获取模块,用于获取各原参与方分别对应的第一密文信息;

第二获取模块,用于响应于有至少一个新参与方加入,获取各所述新参与方分别对应的第二密文信息;

第三获取模块,用于获取各所述原参与方分别对应的第一辅助密钥及各所述新参与方分别对应的第二辅助密钥;

处理模块,用于基于各所述原参与方分别对应的所述第一密文信息和第一辅助密钥、各所述新参与方分别对应的所述第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文。

本公开的又一个方面,提供了一种基于多方同态加密的数据处理装置,包括:

第一处理模块,用于在作为原参与方的情况下,将加密获得的第一密文信息发送至服务器,并在有新参与方加入的情况下,生成第一辅助密钥,将所述第一辅助密钥发送至所述服务器;

第二处理模块,用于在作为新参与方的情况下,将加密获得的第二密文信息发送至所述服务器,并生成第二辅助密钥,将所述第二辅助密钥发送至所述服务器;

所述第一密文信息和所述第一辅助密钥、所述第二密文信息和所述第二辅助密钥,用于所述服务器确定预设运算对应的运算结果密文。

本公开的再一个方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述任一实施例所述的基于多方同态加密的数据处理方法。

本公开的又一个方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述任一实施例所述的基于多方同态加密的数据处理方法。

本公开的再一个方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令被处理器执行时,执行本公开上述任一实施例提供的基于多方同态加密的数据处理方法。

基于本公开上述实施例提供的基于多方同态加密的数据处理方法、装置、设备和介质,在获取到各原参与方分别对应的第一密文信息的情况下,若有新参与方加入,可以获取各新参与方分别对应的第二密文信息,并可以获取各原参与方分别对应的第一辅助密钥及各新参与方分别对应的第二辅助密钥,基于各原参与方分别对应的第一密文信息和第一辅助密钥、各新参与方分别对应的第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文,通过辅助密钥,实现了在对原参与方的密文进行运算的过程中的参与方拓展,有效提高可拓展性,解决相关技术中Threshold-FHE参与方数量需要预先固定导致可拓展性较差等问题。

附图说明

图1是本公开提供的基于多方同态加密的数据处理方法的一个示例性的应用场景;

图2是本公开一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图3是本公开另一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图4是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图5是本公开又一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图6是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图7是本公开又一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图8是本公开一示例性实施例提供的步骤401的解密流程示意图;

图9是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图;

图10是本公开一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图11是本公开另一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图12是本公开再一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图13是本公开又一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图14是本公开再一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图15是本公开又一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图;

图16是本公开实施例提供的一种电子设备的结构图。

具体实施方式

为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分实施例,而不是全部实施例,应理解,本公开不受示例性实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本公开概述

在实现本公开的过程中,发明人发现,在数据安全技术领域,Threshold-FHE是一种将FHE与SS相结合得到的一种多方同态加密方法。相关技术中,Threshold-FHE可以通过多个参与方协同生成一个公共的公私钥对,每个参与方仅持有私钥的秘密分享,解密过程是一个分布式解密协议,并且需要添加“污染(smudge)”来隐藏各自的私钥信息。相比于其他的多方FHE,Threshold-FHE具有显著的优点,即密文大小较小,所需存储空间较小,效率较高。但是,Threshold-FHE需要预先固定参与方数量,可拓展性较差。

示例性概述

图1是本公开提供的基于多方同态加密的数据处理方法的一个示例性的应用场景。如图1所示,原参与方为预先确定的参与加解密的参与方,原参与方的数量可以根据实际需求设置。各原参与方可以通过加密算法获得各自的第一密文信息,各原参与方分别将其第一密文信息发送至服务器,服务器可以获取到各原参与方分别对应的第一密文信息。服务器可以为物理服务器、云服务器等,具体不作限定。服务器获取到各原参与方分别对应的第一密文信息后,可以对各第一密文信息进行预设运算,预设运算例如可以包括加法运算、乘法运算、求均值的运算、求方差的运算等。在服务器进行预设运算的任一运算阶段(例如刚开始进行运算阶段、已完成部分运算的阶段、完成预设运算的阶段等),响应于有至少一个新参与方加入,服务器可以获取各新参与方分别对应的第二密文信息,并可以获取各原参与方分别对应的第一辅助密钥及各新参与方分别对应的第二辅助密钥。进而可以基于各原参与方分别对应的第一密文信息和第一辅助密钥、各新参与方分别对应的第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文。预设运算对应的该运算结果密文为新参与方加入后,所有参与方待进行的运算的运算结果密文。该待进行的运算与预设运算可能不同,例如预设运算为加法运算,即因需要对各原参与方的明文数据进行求和而对各原参与方的第一密文信息进行求和的运算。新参与方加入后,可以与各原参与方协商新参与方待参与的运算,例如,新参与方与某一原参与方进行乘法运算后再与其他原参与方及其他新参与方求和。新参与方待参与的运算可以根据实际需求设置,本公开不作限定。在获得运算结果密文后,若需要进行解密,服务器可以将运算结果密文发送至各参与方(包括各原参与方及各新参与方),在各参与方的参与下完成对运算结果密文的解密,获得解密结果。

本公开的基于多方同态加密的数据处理方法,可以应用于外包计算、隐私保护机器学习、安全多方计算、联合学习、数据交换和共享等任意需要进行多方同态加密的场景。

本公开方案可以用于隐私计算应用场景,隐私计算(Privacy compute或Privacycomputing)是指在保护数据本身不对外泄露的前提下实现数据分析计算的技术集合,达到对数据“可用、不可见”的目的;在充分保护数据和隐私安全的前提下,实现数据价值的转化和释放。

示例性方法

图2是本公开一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。本实施例可应用在电子设备上,具体比如服务器上,如图2所示,包括如下步骤:

步骤201,获取各原参与方分别对应的第一密文信息。

其中,原参与方是预先确定的参与进行预设运算的参与方。每个原参与方对应的第一密文信息可以是该原参与方对自已持有的明文数据进行加密获得的密文。

在一些可选的实施例中,各原参与方所采用的加密算法可以为Threshold-FHE中任意可实施的算法,例如,CKKS算法、BFV算法、BGV算法等。其中,CKKS算法是一种近似计算同态加密算法,其具体构造基于BGV算法,但也可以依赖于其他现有的同态算法。CKKS为提出该算法的四位作者的姓氏首字母。BGV算法最重要的贡献是提出了模数转换(ModulusSwitching)技术,有效地控制了同态运算带来的密文噪声增加。BFV算法是基于RLWE(Ring-Learning With Errors,环上误差学习)难题的全同态加密算法。

在一些可选的示例中,以CKKS为例,对于各原参与方,获得第一密文信息可以包括以下阶段:

1、初始化阶段(Setup):各原参与方协商确定公共参数,每个原参与方可以表示为P

2、私钥生成阶段(SecKeyGen):每个原参与方P

3、公钥生成阶段(PubKeyGen(s

a、每个原参与方P

p

其中,q为上述的第一模数,mod q表示对q取余。p

b、每个原参与方P

4、加密阶段(Encrypt(pk,m

ct

每个原参与方P

在一些可选的实施例中,不同的算法加密过程的各阶段的具体计算方式可能不同,例如BFV算法和BGV算法在上述各阶段的计算与上述的CKKS存在不同之处,在此不再一一赘述。

步骤202,响应于有至少一个新参与方加入,获取各新参与方分别对应的第二密文信息。

在一些可选的实施例中,服务器在获取到各原参与方分别对应的第一密文信息之后,可以开始对各第一密文信息进行预设运算,例如求和运算、求积运算等。并可以在获取到各原参与方分别对应的第一密文信息之后,实时或定时检测是否有新参与方加入。对于新参与方加入的检测可以通过参与方与服务器之间的通信实现。例如,可以在服务器和新参与方的终端设备配置参与方加入协议,基于配置的相关协议实现新参与方与服务器之间的通信,以使新参与方能够加入到多方同态加密的数据处理中。具体检测方式不作限定。

在一些可选的实施例中,各新参与方加入后,每个新参与方可以按照上述原参与方的加密过程实现对自已的待加密明文数据的加密,获得该新参与方对应的第二密文信息。

在一些可选的示例中,仍以CKKS算法为例,该新参与方P

ct

步骤203,获取各原参与方分别对应的第一辅助密钥及各新参与方分别对应的第二辅助密钥。

其中,每个原参与方对应的第一辅助密钥可以是该原参与方按照一定的转变规则生成并发送至服务器。每个新参与方对应的第二辅助密钥可以是该新参与方按照一定的转变规则生成并发送至服务器。原参与方与新参与方的转变规则不同。

在一些可选的实施例中,各原参与方分别对应的第一辅助密钥可以在需要使用时实时从各原参与方获取得到。也可以是各原参与方生成第一辅助密钥后发送至服务器,服务器将各原参与方分别对应的第一辅助密钥存储到预设存储区域,在需要使用时,从预设存储区域获取各原参与方分别对应的第一辅助密钥。各新参与方分别对应的第二辅助密钥的获取原理与第一辅助密钥类似,可以是实时从各新参与方获取,也可以接收到各第二辅助密钥后进行存储,在需要使用时从存储区域获取。

在一些可选的实施例中,第一辅助密钥和第二辅助密钥可以是在一个较大模数的多项式环上的多项式,该较大模数的多项式环例如可以表示为R

在一些可选的实施例中,第一辅助密钥和第二辅助密钥可以用于对密文(可以称为原来密文,例如第一密文信息、第二密文信息、预设运算的已完成运算的中间运算结果等)进行密钥转变,获得转变后的密文,以使转变后的密文在新的实际密钥下的明文和原来密文在原来实际密钥下对应的明文是相近的。从而保证参与方拓展的有效性和可靠性。

步骤204,基于各原参与方分别对应的第一密文信息和第一辅助密钥、各新参与方分别对应的第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文。

其中,预设运算是各原参与方进行的运算,由于新参与方的加入,可能会改变预设运算,基于第一辅助密钥和第二辅助密钥确定的预设运算对应的运算结果密文是新参与方加入后要完成的运算的运算结果密文。例如原参与方包括3个参与方,预设运算为计算a+b+c。新参与方加入,需要完成的运算比如可以为a+b+c+d,也可以为ad+b+c,则运算结果密文为a+b+c+d运算或ad+b+c运算对应的运算结果密文。具体运算可以根据实际需求设置。不限于上述运算。

在一些可选的实施例中,可以基于各第一辅助密钥和各第二辅助密钥确定出用于进行密钥转变的目标辅助密钥,该目标辅助密钥为目标模数的多项式环上的多项式。将该目标辅助密钥用于对待进行密钥转变的密文进行密钥转变,获得转变后的密文,进而基于转变后的密文,确定运算结果密文,以使该运算结果密文能够被解密,获得各参与方(包括各原参与方和各新参与方)的明文数据经运算后的目标明文或近似结果。例如各参与方的明文数据的求和结果,从而可以在不透漏各参与方的明文数据的基础上,实现各参与方明文数据之间的运算,获得运算结果。

本实施例提供的基于多方同态加密的数据处理方法,在服务器获取到各原参与方分别对应的第一密文信息的情况下,若有新参与方加入,可以获取各新参与方分别对应的第二密文信息,并可以获取各原参与方分别对应的第一辅助密钥及各新参与方分别对应的第二辅助密钥,基于各原参与方分别对应的第一密文信息和第一辅助密钥、各新参与方分别对应的第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文,通过辅助密钥,实现了在对原参与方的密文进行运算的过程中的参与方拓展,有效提高可拓展性,解决相关技术中Threshold-FHE参与方数量需要预先固定导致可拓展性较差等问题。

图3是本公开另一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。

在一些可选的实施例中,如图3所示,步骤203的获取各原参与方分别对应的第一辅助密钥及各新参与方分别对应的第二辅助密钥,包括:

步骤2031,接收各原参与方分别发送的第一辅助密钥。

在一些可选的实施例中,对于任一原参与方,该原参与方对应的第一辅助密钥基于该原参与方对应的第一私钥、目标公共多项式、第一模数、第二模数及第一转变规则确定。

其中,第一私钥、第一模数、第二模数可以参见前述内容。目标公共多项式可以是由任一参与方生成并公开给其他参与方。目标公共多项式为目标模数的多项式环上的多项式,可以表示为a∈R

在一些可选的实施例中,目标公共多项式可以为公共随机多项式。

在一些可选的实施例中,第一转变规则可以表示为:

b

其中,b

步骤2032,接收各新参与方分别发送的第二辅助密钥。

在一些可选的实施例中,对于任一新参与方,该新参与方对应的第二辅助密钥基于该新参与方对应的第二私钥、目标公共多项式、第一模数、第二模数及第二转变规则确定。

其中,第二私钥、目标公共多项式、第一模数和第二模数可以参见前述内容,在此不作赘述。

在一些可选的实施例中,第二转变规则可以表示为:

b

其中,b

需要说明的是,上述步骤2031和步骤2032没有执行顺序的依赖关系,可以同时执行或先后执行,没有执行顺序上的限制。

本实施例通过原参与方基于第一转变规则生成第一辅助密钥,新参与方基于第二转变规则生成第二辅助密钥,使得生成的第一辅助密钥和第二辅助密钥能够用于对密文进行密钥转变,以支持新参与方加入后运算及解密的有效性和可靠性。

图4是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。

在一些可选的实施例中,步骤204的基于各原参与方分别对应的第一密文信息和第一辅助密钥、各新参与方分别对应的第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文,包括:

步骤2041,基于各原参与方分别对应的第一辅助密钥和各新参与方分别对应的第二辅助密钥,确定目标辅助密钥。

在一些可选的实施例中,服务器获取到各原参与方分别对应的第一辅助密钥和各新参与方分别对应的第二辅助密钥后,可以基于各第一辅助密钥和各第二辅助密钥,按照预设确定规则,确定目标辅助密钥。

在一些可选的实施例中,预设确定规则可以表示为:

elk=(b,a)

其中,elk表示目标辅助密钥。

步骤2042,基于各原参与方分别对应的第一密文信息、各新参与方分别对应的第二密文信息和目标辅助密钥,确定运算结果密文。

在一些可选的实施例中,可以根据服务器对各第一密文信息进行预设运算的当前运算阶段的具体情况,确定待进行密钥转变的密文(可以称为目标密文),目标密文可以包括当前已完成运算的中间运算结果、各第一密文信息、各第二密文信息中的至少一者。具体来说,目标密文可以基于新参与方加入后的运算需要涉及到的中间运算结果、第一密文信息和第二密文信息确定。例如预设运算为a+b+c,a、b、c分别对应原参与方A、B、C,当前已完成a+b的运算,这时有新参与方D加入,该新参与方D加入后要完成的运算为a+b+c+d,由于a+b已完成运算,当前已完成运算的中间运算结果包括a+b对应的结果密文(比如可以表示为f),直接基于中间运算结果和c、d进行后续运算即可,则可以确定目标密文包括a+b对应的结果密文f、原参与方C对应的第一密文信息、新参与方D对应的第二密文信息。再例如,若新参与方D加入后,需要完成的运算为ad+b+c,这时已完成运算a+b在这里不起作用,需要基于a、d、b、c重新进行运算,则确定目标密文包括原参与方A、B、C分别对应的第一密文信息和新参与方对应的第二密文信息。

在一些可选的实施例中,可以基于目标辅助密钥对待进行密钥转变的目标密文进行密钥转变,获得转变后的密文(即转变后密文),基于转变后密文进行后续运算。例如上述的f对应的转变后密文f’,c对应的转变后密文c’,d对应的转变后密文d’,继续进行运算f’+c’+d’,获得运算结果密文。则通过对运算结果密文进行解密可以得到参与方A、B、C、D的明文数据的求和结果。

本实施例通过基于各第一辅助密钥和各第二辅助密钥生成目标辅助密钥,有助于通过密钥转变,获得新参与方加入后的新实际密钥下的运算结果密文,使得运算结果密文经解密后可以得到拓展参与方后的各参与方明文数据的运算结果,保证参与方拓展的有效性和可靠性。

图5是本公开又一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。如图5所示,步骤203包括上述步骤2031和步骤2032,步骤204包括上述步骤2041和步骤2042。各步骤的具体操作参见前述实施例,在此不作赘述。

图6是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。

在一些可选的实施例中,如图6所示,在步骤201的获取各原参与方分别对应的第一密文信息之后,本公开实施例的方法还包括:

步骤301,在对各第一密文信息进行预设运算的任一运算阶段,确定是否有新参与方加入。

其中,运算阶段可以包括运算刚开始、运算过程中、运算已完成等阶段。其中,运算过程中可以细分为多个阶段,比如每完成一次运算作为一个阶段。一次运算例如可以为一次加法运算、一次乘法运算等。例如预设运算为a+b+c,在刚开始运算时,确定是否有新参与方加入,若没有,则进行a+b的运算,在完成a+b的运算后,再确定是否有新参与方加入,若没有,则继续在a+b的结果密文的基础上继续进行与c的加法运算。若有新参与方加入,则按照上述有新参与方加入的处理流程进行处理,实现参与方的拓展。

本实施例通过在预设运算的每个运算阶段,确定是否有新参与方加入,便于及时进行参与方的拓展。

在一些可选的实施例中,步骤2042的基于各原参与方分别对应的第一密文信息、各新参与方分别对应的第二密文信息和目标辅助密钥,确定运算结果密文,包括:

步骤20421,基于预设运算、当前已完成运算及各新参与方待参与的运算,确定待进行密钥转变的目标密文。

在一些可选的实施例中,目标密文包括当前已完成运算的中间运算结果、各第一密文信息和各第二密文信息中的至少一者。

在一些可选的实施例中,当前已完成运算的中间运算结果可以包括一个或多个运算结果,也可以不包括运算结果(例如刚开始进行运算还未获得中间运算结果),或者中间运算结果为初始化的结果,比如0。具体根据当前的运算阶段确定。对于中间运算结果包括多个运算结果的情况,例如预设运算包括先进行多组乘法运算,再将各组乘法运算的结果相加,则中间运算结果可能包括已完成的一组或多组乘法运算的运算结果,或者包括已完成的部分加法运算的运算结果和剩余未完成加法运算的一组或多组乘法运算结果。示例性的,预设运算包括ab+cd+ef+gh,需要先计算a与b、c与d、e与f、g与h的乘法运算,再计算三次加法运算。则根据当前的运算阶段的不同,若在刚开始阶段,则中间运算结果为空或者为初始化结果。若当前已完成运算ab和cd两组乘法运算,则中间运算结果包括这两组乘法运算的运算结果。若当前已完成乘法运算,并完成了ab+cd的加法运算,则中间运算结果包括ab+cd的运算结果和ef、gh分别对应的运算结果。若当前完成了预设运算的所有运算,则中间运算结果包括预设运算的最终运算结果,即ab+cd+ef+gh的运算结果。

在一些可选的实施例中,对于目标密文的确定,可以基于预设运算、当前已完成运算及各新参与方待参与的运算的具体情况确定。具体可以参见前述内容,在此不作赘述。

步骤20422,基于目标辅助密钥,对目标密文进行密钥转变,获得目标密文对应的转变后密文。

在一些可选的实施例中,对目标密文进行转变可以基于预设转变规则实现。预设转变规则可以根据实际需求设置。

在一些可选的实施例中,目标密文可以包括一个或多个待进行密钥转变的密文,在包括多个待进行密钥转变的密文(例如包括一个或多个中间运算结果、一个或多个第一密钥信息、一个或多个第二密钥信息)的情况下,需要对每个待进行密钥转变的密文进行密钥转变,获得多个转变后密文。例如,目标密文中任一待进行密钥转变的密文可以表示为ct=(c

其中,

由于引入了大模数p,因此,c′

步骤20423,基于转变后密文,确定运算结果密文。

在获得目标密文对应的转变后密文后,可以基于转变后密文进行后续需要进行的运算,获得运算结果密文。例如上述示例中继续进行运算f’+c’+d’。

本实施例通过基于预设运算、当前已完成运算及各新参与方待参与的运算,确定待进行密钥转变的目标密文,基于目标辅助密钥对目标密文进行密钥转变,获得转变后密文,用于后续运算,在已完成运算不被新参与方待参与运算影响的情况下,可以基于已完成运算的中间运算结果对应的转变后密文,及其他未完成运算的密文对应的转变后密文,继续进行后续运算,例如前述示例已完成运算a+b的结果密文f对应的f’与未完成的运算的密文c、d分别对应的转变后密文c’、d’,继续运算,f’+c’+d’,而不必重新对a和b进行密钥转变,也不必进行转变后密文的加法运算a’+b’,有助于在参与方拓展的情况下,减少计算量,提高计算效率。

图7是本公开又一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。

在一些可选的实施例中,本公开实施例的方法还包括:

步骤401,对运算结果密文进行解密,获得解密结果。

其中,在进行解密时,可以通过各原参与方和各新参与方参与解密,获得解密结果。例如,通过各原参与方和各新参与方协同提供解密密钥(解密多项式),实现对运算结果密文的解密。

本实施例通过对运算结果密文进行解密,可以获得包括各原参与方和各新参与方的明文数据的运算后的明文或近似结果,实现参与方拓展情况下的有效解密。

图8是本公开一示例性实施例提供的步骤401的解密流程示意图。

在一些可选的实施例中,如图8所示,步骤401的对运算结果密文进行解密,获得解密结果,包括:

步骤4011,将运算结果密文发送至各原参与方和各新参与方,以使各原参与方和各新参与方中的每个参与方基于运算结果密文及该参与方的私钥确定该参与方对应的目标解密多项式。

其中,在解密时,各原参与方和各新参与方均作为参与方参与解密。服务器将运算结果密文发送至每个参与方,每个参与方基于运算结果密文及该参与方的私钥,确定该参与方对应的目标解密多项式。若该参与方为原参与方,则该参与方的私钥为该原参与方的第一私钥。若该参与方为新参与方,则该参与方的私钥为该新参与方的第二私钥。

在一些可选的实施例中,运算结果密文表示为

各参与方获得其对应的目标解密多项式后,将目标解密多项式发送至服务器。

步骤4012,获取各原参与方和各新参与方分别对应的目标解密多项式。

在一些可读的实施例中,服务器可以实时从各参与方获取各参与方分别对应的目标解密多项式。

在一些可选的实施例中,各参与方在获得目标解密多项式后发送至服务器,服务器将各参与方的目标解密多项式进行存储,在进行解密时,从存储区域获取各参与方分别对应的目标解密多项式。

步骤4013,基于运算结果密文、各原参与方和各新参与方分别对应的目标解密多项式,确定解密结果。

其中,服务器获取到各参与方的目标解密多项式后,可以基于各参与方的目标解密多项式,根据与前述加密一致的算法(例如CKKS算法、BGV算法、BFV算法等)的解密规则,实现解密,获得解密结果。

在一些可选的实施例中,以CKKS为例,通过近似计算获得各参与方的明文数据的运算结果明文的近似值,表示如下:

其中,

在一些可选的实施例中,BFV算法和BGV算法按照其解密阶段,在各原参与方和各新参与方的参与下实现对运算结果密文的解密。

本实施例通过各原参与方和各新参与方基于运算结果密文和私钥提供目标解密多项式,用于对运算结果密文进行解密,获得解密结果,实现了参与方拓展情况下的有效解密。

本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。

本公开实施例提供的任一种基于多方同态加密的数据处理方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种基于多方同态加密的数据处理方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种基于多方同态加密的数据处理方法。下文不再赘述。

图9是本公开再一示例性实施例提供的基于多方同态加密的数据处理方法的流程示意图。本实施例可应用在电子设备上,具体比如参与方的终端设备上,如图9所示,该方法包括如下步骤:

步骤501,在作为原参与方的情况下,将加密获得的第一密文信息发送至服务器,并在有新参与方加入的情况下,生成第一辅助密钥,将第一辅助密钥发送至服务器。

其中,终端设备(或参与方)可以为多方同态加密的原参与方,也可以为新参与方,具体可以根据实际情况确定。在作为原参与方的情况下,将加密获得的第一密文信息发送至服务器,并在有新参与方加入的情况下,生成第一辅助密钥,将第一辅助密钥发送至服务器。终端设备作为原参与方进行加密获得第一密文信息及生成第一辅助密钥的具体操作可以参见前述实施例,在此不作赘述。

步骤502,在作为新参与方的情况下,将加密获得的第二密文信息发送至服务器,并生成第二辅助密钥,将第二辅助密钥发送至服务器。

其中,第一密文信息和第一辅助密钥、第二密文信息和第二辅助密钥,用于服务器确定预设运算对应的运算结果密文。

终端设备在作为新参与情况下,其加密获得第二密文信息和生成第二辅助密钥的具体操作可以参见前述实施例,在此不作赘述。

需要说明的是,上述步骤501和步骤502没有执行顺序的依赖关系,两者属于两种并列的情况,没有执行顺序上的限制。

在一些可选的实施例中,步骤501中的生成第一辅助密钥,包括:

生成第一私钥;基于第一私钥、目标公共多项式、第一模数、第二模数及第一转变规则,生成第一辅助密钥。

该步骤的具体操作可以参见前述实施例,在此不作赘述。

在一些可选的实施例中,步骤502中的生成第二辅助密钥,包括:

生成第二私钥;基于第二私钥、目标公共多项式、第一模数、第二模数及第二转变规则,生成第二辅助密钥。

该步骤的具体操作可以参见前述实施例,在此不作赘述。

在一些可选的实施例中,本公开实施例的方法还包括:生成误差多项式。

其中,误差多项式为在目标模数pq上生成的误差多项式,可以表示为:e←Err(R

在一些可选的实施例中,基于第一私钥、目标公共多项式、第一模数、第二模数及第一转变规则,生成第一辅助密钥,包括:

基于第一私钥、目标公共多项式、第一模数、第二模数、误差多项式及第一转变规则,生成第一辅助密钥。

在一些可选的实施例中,基于第二私钥、目标公共多项式、第一模数、第二模数及第二转变规则,生成第二辅助密钥,包括:

基于第二私钥、目标公共多项式、误差多项式、第一模数、第二模数及第二转变规则,生成第二辅助密钥。

上述第一辅助密钥和第二辅助密钥的生成具体可以参见前述实施例,在此不作赘述。

本公开参与方的方法实施例是与前述的服务器侧方法实施例的交互方的方法实施例,具有与前述实施例相同或相似的效果,在此不再一一赘述。

本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。

本公开实施例提供的任一种基于多方同态加密的数据处理方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种基于多方同态加密的数据处理方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种基于多方同态加密的数据处理方法。下文不再赘述。

示例性装置

图10是本公开一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。该实施例的装置可用于实现本公开相应的服务器侧的基于多方同态加密的数据处理方法实施例,如图10所示的装置包括:第一获取模块601、第二获取模块602、第三获取模块603和处理模块604。

第一获取模块601,用于获取各原参与方分别对应的第一密文信息。

第二获取模块602,用于响应于有至少一个新参与方加入,获取各所述新参与方分别对应的第二密文信息。

第三获取模块603,用于获取各所述原参与方分别对应的第一辅助密钥及各所述新参与方分别对应的第二辅助密钥。

处理模块604,用于基于各所述原参与方分别对应的所述第一密文信息和第一辅助密钥、各所述新参与方分别对应的所述第二密文信息和第二辅助密钥,确定预设运算对应的运算结果密文。

在一些可选的实施例中,第三获取模块603具体用于:接收各原参与方分别发送的第一辅助密钥。

在一些可选的实施例中,对于任一原参与方,该原参与方对应的第一辅助密钥基于该原参与方对应的第一私钥、目标公共多项式、第一模数、第二模数及第一转变规则确定。

在一些可选的实施例中,第三获取模块603具体用于:接收各新参与方分别发送的第二辅助密钥。

在一些可选的实施例中,对于任一新参与方,该新参与方对应的第二辅助密钥基于该新参与方对应的第二私钥、目标公共多项式、第一模数、第二模数及第二转变规则确定。

在一些可选的实施例中,处理模块604具体用于:

基于各原参与方分别对应的第一辅助密钥和各新参与方分别对应的第二辅助密钥,确定目标辅助密钥。基于各原参与方分别对应的第一密文信息、各新参与方分别对应的第二密文信息和目标辅助密钥,确定运算结果密文。

在一些可选的实施例中,图11是本公开另一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。如图11所示,本公开实施例的装置还包括:确定模块605,用于在对各第一密文信息进行预设运算的任一运算阶段,确定是否有新参与方加入。

在一些可选的实施例中,处理模块604具体用于:

基于预设运算、当前已完成运算及各新参与方待参与的运算,确定待进行密钥转变的目标密文。目标密文包括当前已完成运算的中间运算结果、各第一密文信息和各第二密文信息中的至少一者。基于目标辅助密钥,对目标密文进行密钥转变,获得目标密文对应的转变后密文。基于转变后密文,确定运算结果密文。

在一些可选的实施例中,图12是本公开再一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。如图12所示,本公开实施例的装置还包括:解密模块606,用于对运算结果密文进行解密,获得解密结果。

在一些可选的实施例中,解密模块606具体用于:

将运算结果密文发送至各原参与方和各新参与方,以使各原参与方和各新参与方中的每个参与方基于运算结果密文及该参与方的私钥确定该参与方对应的目标解密多项式。获取各原参与方和各新参与方分别对应的目标解密多项式。基于运算结果密文、各原参与方和各新参与方分别对应的目标解密多项式,确定解密结果。

在一些可选的实施例中,图13是本公开又一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。如图13所示,在图10所示的装置的基础上,本公开实施例的装置还包括上述的确定模块605和解密模块606。各模块的具体工作原理可以参见前述实施例,在此不作赘述。

本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。

本装置示例性实施例对应的有益技术效果可以参见上述示例性方法部分的相应有益技术效果,在此不再赘述。

图14是本公开再一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。该实施例的装置可用于实现本公开相应的参与方的基于多方同态加密的数据处理方法实施例,如图14所示的装置包括:第一处理模块701和第二处理模块702。

第一处理模块701,用于在作为原参与方的情况下,将加密获得的第一密文信息发送至服务器,并在有新参与方加入的情况下,生成第一辅助密钥,将第一辅助密钥发送至服务器。

第二处理模块702,用于在作为新参与方的情况下,将加密获得的第二密文信息发送至服务器,并生成第二辅助密钥,将第二辅助密钥发送至服务器。

在一些可选的实施例中,第一密文信息和第一辅助密钥、第二密文信息和第二辅助密钥,用于服务器确定预设运算对应的运算结果密文。

在一些可选的实施例中,第一处理模块701具体用于:

生成第一私钥;基于第一私钥、目标公共多项式、第一模数、第二模数及第一转变规则,生成第一辅助密钥。

在一些可选的实施例中,第二处理模块702具体用于:

生成第二私钥;基于第二私钥、目标公共多项式、第一模数、第二模数及第二转变规则,生成第二辅助密钥。

图15是本公开又一示例性实施例提供的基于多方同态加密的数据处理装置的结构示意图。

在一些可选的实施例中,本公开实施例的装置还包括:

生成模块703,用于生成误差多项式。

在一些可选的实施例中,第一处理模块701具体用于:

基于第一私钥、目标公共多项式、第一模数、第二模数、误差多项式及第一转变规则,生成第一辅助密钥。

在一些可选的实施例中,第二处理模块702具体用于:

基于第二私钥、目标公共多项式、误差多项式、第一模数、第二模数及第二转变规则,生成第二辅助密钥。

本公开上述各实施例可以单独实施也可以在不冲突的情况下以任意组合方式结合实施,具体可以根据实际需求设置,本公开不做限定。

本装置示例性实施例对应的有益技术效果可以参见上述示例性方法部分的相应有益技术效果,在此不再赘述。

示例性电子设备

图16是本公开实施例提供的一种电子设备的结构图,包括至少一个处理器11和存储器12。

处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。

存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行一个或多个计算机程序指令,以实现上文中本公开的各个实施例的方法和/或其他期望的功能。

在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

该输入装置13还可以包括例如键盘、鼠标等等。

该输出装置14可以向外部输出各种信息,其可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图16中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本公开的实施例还可以提供一种计算机程序产品,包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的方法中的步骤。

计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述“示例性方法”部分中描述的本公开各种实施例的方法中的步骤。

计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如但不限于包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本公开的基本原理,但是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为其是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本领域的技术人员可以对本公开进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

相关技术
  • 基于大数据平台的数据处理方法、装置、设备及介质
  • 基于集群计算的数据批处理方法、装置、电子设备及介质
  • 基于队列的数据处理方法、装置、设备和介质
  • 基于数据分析的资金处理方法、装置、存储介质和设备
  • 一种基于同态加密的数据处理方法、装置、设备以及介质
  • 基于加密机的数据处理方法、装置、电子设备及存储介质
技术分类

06120116513701