一种安全多方计算方法、装置、系统、设备及存储介质与流程

文档序号:33551453发布日期:2023-03-22 10:44阅读:41来源:国知局
一种安全多方计算方法、装置、系统、设备及存储介质与流程

1.本发明涉及数据隐私保护技术领域,特别是涉及一种安全多方计算方法、装置、系统、设备及存储介质。


背景技术:

2.安全多方计算(secure multi-party computation,smpc)架构是用于解决数据共享过程中的隐私保护问题而提出的一种架构。由于传统smpc架构易产生单点故障从而引发数据泄露的风险,因此,现有技术主要通过将区块链技术与smpc结构进行整合,从而利用区块链一致性、不动行和可追溯性的特点,避免单点故障的发生。
3.但是,由于在现有基于区块链的smpc架构下,密钥和密文是由各用户端或组件进行存储和管理的,这就导致在进行安全多方计算时,需要用户端间、用户端与组件间频繁交互安全多方计算所需的密钥和密文,使得smpc架构的交互方案复杂度提高,进而导致数据共享效率降低。因此,如何在保证数据隐私保护安全性的同时提高数据共享效率,已成为亟待解决的问题。


技术实现要素:

4.本发明实施例的目的在于提供一种安全多方计算方法、装置、系统、设备及存储介质,以实现在提高数据隐私保护安全性的同时提高数据共享效率的发明目的。具体技术方案如下:一种安全多方计算方法,应用于安全多方计算系统包括的聚合器组中的目标聚合器,所述安全多方计算系统还包括计算服务器和多个用户端,所述方法包括:所述目标聚合器基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各所述初始盲数据发送至计算服务器,以使所述计算服务器基于主密钥和聚合公钥对各所述初始盲数据进行密文转换,其中,所述用户端的公钥与所述密文数据具有对应关系,所述用户端的公钥是所述用户端基于所述计算服务器生成的公共参数组计算获得的,所述目标聚合器是所述聚合器组中的任意一个聚合器,所述主密钥是所述计算服务器基于所述公共参数组计算获得的,所述聚合公钥为所述计算服务器对各所述用户端的公钥进行聚合后获得的密钥;所述目标聚合器获得所述计算服务器经所述密文转换生成的多个加密盲数据,并对各所述加密盲数据进行去盲值处理,获得多个加密数据;所述目标聚合器将各所述加密数据发送至所述计算服务器,以使所述计算服务器基于随机数和各所述用户端的公钥对各所述加密数据进行安全多方计算,获得多个计算结果,其中,所述用户端的公钥与所述加密数据具有对应关系。
5.可选的,所述目标聚合器基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,包括:通过公式blind(mi)=f(mi,en
pki
(v)),获得与第i个用户端生成的所述密文数据对
应的所述初始盲数据blind(mi),其中,所述mi为所述第i个用户端生成的所述密文数据,所述v为所述随机盲值,所述en
pki
(v)为利用所述第i个用户端的公钥对所述随机盲值v加密后的数值,所述f为同态密码系统中的逻辑门。
6.可选的,所述密文数据的获得过程包括:所述目标聚合器根据数据获得请求中的数据类型标识,从目标区块链节点下载多个与所述数据类型标识对应的所述密文数据,其中,所述密文数据是由所述用户端生成,并通过所述聚合器组中的任意一个聚合器上传至区块链节点中的数据。
7.一种安全多方计算装置,应用于安全多方计算系统包括的聚合器组中的目标聚合器,所述安全多方计算系统还包括计算服务器和多个用户端,所述装置包括:盲处理模块,用于基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各所述初始盲数据发送至计算服务器,以使所述计算服务器基于主密钥和聚合公钥对各所述初始盲数据进行密文转换,其中,所述用户端的公钥与所述密文数据具有对应关系,所述用户端的公钥是所述用户端基于所述计算服务器生成的公共参数组计算获得的,所述目标聚合器是所述聚合器组中的任意一个聚合器,所述主密钥是所述计算服务器基于所述公共参数组计算获得的,所述聚合公钥为所述计算服务器对各所述用户端的公钥进行聚合后获得的密钥;转换模块,用于获得所述计算服务器经所述密文转换生成的多个加密盲数据,并对各所述加密盲数据进行去盲值处理,获得多个加密数据;发送模块,用于将各所述加密数据发送至所述计算服务器,以使所述计算服务器基于随机数和各所述用户端的公钥对各所述加密数据进行安全多方计算,获得多个计算结果,其中,所述用户端的公钥与所述加密数据具有对应关系。
8.可选的,所述盲处理模块在基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据时被设置为:通过公式blind(mi)=f(mi,en
pki
(v)),获得与第i个用户端生成的所述密文数据对应的所述初始盲数据blind(mi),其中,所述mi为所述第i个用户端生成的所述密文数据,所述v为所述随机盲值,所述en
pki
(v)为利用所述第i个用户端的公钥对所述随机盲值v加密后的数值,所述f为同态密码系统中的逻辑门。
9.可选的,所述盲处理模块在获得所述密文数据时被设置为:所述盲处理模块根据数据获得请求中的数据类型标识,从目标区块链节点下载多个与所述数据类型标识对应的所述密文数据,其中,所述密文数据是由所述用户端生成,并通过所述聚合器组中的任意一个聚合器上传至区块链节点中的数据。
10.一种安全多方计算方法,应用于安全多方计算系统包括的计算服务器,所述安全多方计算系统还包括聚合器组和多个用户端,所述方法包括:所述计算服务器基于主密钥和聚合公钥,对所述聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,其中,所述初始盲数据是所述目标聚合器基于随机盲值和各用户端的公钥,对获得的密文数据进行盲处理后获得的,所述用户端的公钥与所述密文数据具有对应关系,所述用户端的公钥是所述用户端基于所述计算服务器生成的公共参数组计算获得的,所述目标聚合器是所述聚合器组中的任意一个聚合器,所述主密钥是所述计算服务器基于所述公共参数组计算获得的,所述聚合公钥为所述计算
服务器对各所述用户端的公钥进行聚合后获得的密钥;所述计算服务器将各所述加密盲数据发送至所述目标聚合器中,以使所述目标聚合器对各所述加密盲数据进行去盲值处理,生成多个加密数据;所述计算服务器获得所述目标聚合器发送的所述多个加密数据,基于随机数和各所述用户端的公钥,分别对各所述加密数据进行安全多方计算,获得多个计算结果,其中,所述用户端的公钥与所述加密数据具有对应关系。
11.可选的,所述计算服务器基于主密钥和聚合公钥,对所述聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,包括:所述计算服务器利用所述主密钥对各所述初始盲数据分别进行解密,获得多个解密后的盲数据;所述计算服务器利用所述聚合公钥,分别对各所述解密后的盲数据进行加密,获得多个所述加密盲数据。
12.一种安全多方计算装置,应用于安全多方计算系统包括的计算服务器,所述安全多方计算系统还包括聚合器组和多个用户端,所述装置包括:转换模块,用于基于主密钥和聚合公钥,对所述聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,其中,所述初始盲数据是所述目标聚合器基于随机盲值和各用户端的公钥,对获得的密文数据进行盲处理后获得的,所述用户端的公钥与所述密文数据具有对应关系,所述用户端的公钥是所述用户端基于所述计算服务器生成的公共参数组计算获得的,所述目标聚合器是所述聚合器组中的任意一个聚合器,所述主密钥是所述计算服务器基于所述公共参数组计算获得的,所述聚合公钥为所述计算服务器对各所述用户端的公钥进行聚合后获得的密钥;发送模块,用于将各所述加密盲数据发送至所述目标聚合器中,以使所述目标聚合器对各所述加密盲数据进行去盲值处理,生成多个加密数据;计算模块,用于获得所述目标聚合器发送的所述多个加密数据,基于随机数和各所述用户端的公钥,分别对各所述加密数据进行安全多方计算,获得多个计算结果,其中,所述用户端的公钥与所述加密数据具有对应关系。
13.可选的,所述转换模块在基于主密钥和聚合公钥,对所述聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据时被设置为:所述转换模块利用所述主密钥对各所述初始盲数据分别进行解密,获得多个解密后的盲数据;所述转换模块利用所述聚合公钥,分别对各所述解密后的盲数据进行加密,获得多个所述加密盲数据。
14.一种安全多方计算系统,所述系统包括:聚合器组、计算服务器和多个用户端,目标聚合器基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各所述初始盲数据发送至计算服务器,其中,所述用户端的公钥与所述密文数据具有对应关系,所述用户端的公钥是所述用户端基于所述计算服务器生成的公共参数组计算获得的,所述目标聚合器是所述聚合器组中的任意一个聚合器;所述计算服务器基于主密钥和聚合公钥,对各所述初始盲数据进行密文转换,获得多个加密盲数据,其中,所述主密钥是所述计算服务器基于所述公共参数组计算获得的,
所述聚合公钥为所述计算服务器对各所述用户端的公钥进行聚合后获得的密钥;所述目标聚合器对各所述加密盲数据进行去盲值处理,获得多个加密数据,并将各所述加密数据发送至所述计算服务器;所述计算服务器基于随机数和各所述用户端的公钥,分别对各所述加密数据进行安全多方计算,获得多个计算结果,其中,所述用户端的公钥与所述加密数据具有对应关系;所述目标聚合器获得所述计算服务器发送的各所述计算结果,并将各所述计算结果进行结果公布。
15.一种安全多方计算设备,所述设备包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述任一种所述的安全多方计算方法。
16.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由安全多方计算设备的处理器执行时,使得所述安全多方计算设备能够执行如上述任一种所述的安全多方计算方法。
17.本发明实施例提供的一种安全多方计算方法、装置、系统、设备及存储介质,可以通过配置目标聚合器进行区块链的数据同步及协助安全多方计算,使得本方案相较于现有技术省略了多方的数据交互,而是由目标聚合器和计算服务器之间的交互完成安全多方计算,简化了交互方案。同时,通过设置目标聚合器对密文数据进行盲处理,可以避免计算服务器由于受到网络攻击,导致数据被泄露和破解的风险。并且,通过配置计算服务器基于公共参数组生成主密钥,从而在无需获得用户端公钥的情况下,对初始盲数据进行解密,在提高数据隐私保护安全性的同时,简化了交互方案。最后,通过设置计算服务器对各初始盲数据进行密文转换,使得各加密数据经过后续安全多方计算后的计算结果,可以被任一用户端的公钥进行解密的同时,不会暴露密文数据的具体内容。可见,本发明实现了在提高数据隐私保护安全性的同时,提高数据共享效率。
18.当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种安全多方计算方法的流程图;图2为本发明实施例提供的另一种安全多方计算方法的流程图;图3为本发明的一个可选实施例提供的一种安全多方计算系统的框图;图4为本发明的另一个可选实施例提供的一种安全多方计算设备的框图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明实施例提供了一种安全多方计算方法,如图1所示,应用于安全多方计算系统包括的聚合器组中的目标聚合器,上述安全多方计算系统还包括计算服务器和多个用户端,该安全多方计算方法包括:s101、目标聚合器基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各初始盲数据发送至计算服务器,以使计算服务器基于主密钥和聚合公钥对各初始盲数据进行密文转换,其中,用户端的公钥与密文数据具有对应关系,用户端的公钥是用户端基于计算服务器生成的公共参数组计算获得的,目标聚合器是聚合器组中的任意一个聚合器,主密钥是计算服务器基于公共参数组计算获得的,聚合公钥为计算服务器对各用户端的公钥进行聚合后获得的密钥。
23.需要说明的是,在实际应用场景下,本发明中提供的安全多方计算系统,是应用于基于区块链的smpc架构下的方法。即由包括多个聚合器的聚合器组及多个用户端组成区块链,并由计算服务器与聚合器组构成smpc架构。
24.可选的,在本发明的一个可选实施例中,上述目标聚合器可以是用于进行数据同步、区块链维护及协助计算服务器进行安全多方计算的服务器。由于现有技术中,用于安全多方计算的密钥及密文是由用户端进行管理的,在进行安全多方计算时,不同用户端间、用户端与其他组件间需要进行频繁的密钥及密文交互,这就导致现有的smpc架构下的交互方案复杂度增高。而本方案通过配置目标聚合器进行区块链的数据同步及协助安全多方计算,使得本方案相较于现有技术省略了多方的数据交互,而是由目标聚合器和计算服务器之间的交互完成安全多方计算,简化了交互方案,提高了安全多方计算的效率。
25.可选的,在本发明的另一个可选实施例中,上述盲处理可以是目标聚合器基于盲签名(blind signature)技术,利用随机盲值和各用户端的公钥对密文数据进行二次加密的操作。由于盲处理可以在签名方无法识别数据内容的情况下,实现二次加密。因此,本发明通过设置目标聚合器对密文数据进行盲处理,可以避免计算服务器由于受到网络攻击,导致数据被泄露和破解的风险,从而提高数据隐私保护安全性。
26.需要说明的是,在实际应用场景下,上述随机盲值可以是由部署于聚合器中的盲签名算法自动生成的参数。
27.本领域技术人员可以理解的是,在实际应用场景下,上述目标聚合器的确定可以通过配置选举机制来实现,例如分布式应用程序协调服务软件(zookeeper)、kafka集群、redis集群等。本发明对上述选举机制的具体实施方式不作过多限定和赘述。
28.需要说明的是,在实际应用场景下,由于上述目标聚合器是由选举机制从聚合器组中随机选取的,具有不确定性。因而避免了恶意聚合器对密钥进行推断破解,导致数据泄密的风险。
29.本领域技术人员可以理解的是,在实际应用场景下,上述计算服务器生成公共参数组,并基于公共参数组计算主密钥的过程,可以基于elgamal加密算法来实现。本发明对
具体计算过程不作过多限定和赘述。
30.需要说明的是,在实际应用场景下,由于现有smpc架构中,用于数据加密的密钥对均是由用户端自己生成的,这就导致现有smpc架构在进行安全多方计算时,需要由用户端发送自己的公钥发送至相应组件,不仅增加了数据被盗取的风险,也提高了交互方案复杂度。因此,本发明通过配置上述计算服务器基于公共参数组生成主密钥,从而在无需获得用户端公钥的情况下,对初始盲数据进行解密,在提高数据隐私保护安全性的同时,简化了交互方案,提高了后续安全多方计算的效率。
31.需要说明的是,在实际应用场景下,由于上述用户端上传的密文数据都是基于各自的公钥进行加密,这就使得上述初始盲数据只可以由基于公共参数组生成的主密钥,以及上传该初始盲数据对应密文数据的用户端的公钥进行解密。而其他用户端无法利用自身公钥对其进行解密。且由于同态机制规定,待加密数据需要由统一密钥进行加密。因此,本发明通过上述密文转换,使得各加密数据经过后续安全多方计算后的计算结果,可以被任一用户端的公钥进行解密的同时,不会暴露密文数据的具体内容。提高了数据隐私保护的安全性。
32.本领域技术人员可以理解的是,上述聚合公钥的获得过程,可以通过签名聚合(boneh-lynn-shacham,bls)算法实现。本发明对上述签名聚合算法的具体构建和使用过程不作过多限定和赘述。
33.需要说明的是,在实际应用场景下,上述计算服务器是部署有基于同态加密机制的安全多方计算算法的服务器。
34.s102、目标聚合器获得计算服务器经密文转换生成的多个加密盲数据,并对各加密盲数据进行去盲值处理,获得多个加密数据。
35.需要说明的是,在实际应用场景下,由于各初始盲数据经过了盲处理,因此,计算服务器再利用主密钥对初始盲数据进行解密后,获得的也只是解密后的盲数据,无法明确密文数据的具体内容。
36.需要说明的是,在实际应用场景下,上述去盲值处理可以通过逆向盲签名(blind signature)技术来实现随机盲值的去除。本发明对上述去盲值处理的逆向实施过程不做过多限定和赘述。
37.本发明通过上述盲处理和上述去盲值处理,可以在实现数据正常流转的同时,避免由于计算服务器收到网络攻击,导致数据泄露的风险,同时避免了计算服务器自身窃取隐私数据的风险。提高了数据隐私保护安全性。
38.s103、目标聚合器将各加密数据发送至计算服务器,以使计算服务器基于随机数和各用户端的公钥对各加密数据进行安全多方计算,获得多个计算结果,其中,用户端的公钥与加密数据具有对应关系。
39.本领域技术人员可以理解的是,上述计算服务器基于随机数和各用户端的公钥对各加密数据进行安全多方计算,获得多个计算结果的过程,,可以基于现有安全多方计算(secure multi-party computation,smpc)的计算过程来实现,本发明对该步骤的具体实施方式不作过多限定和赘述。
40.可选的,在本发明的一个可选实施例中,在计算服务器获得计算结果后,可以将通过加密共享处理,将处理后的计算结果通过目标聚合器上传至区块链,以便用户端进行下
载和读取。其中,上述解析加密的具体过程可以是:计算服务器针对每个用户端,选取多个随机数di,并使用各用户端公钥pk1对计算结果c进行加密共享,其中加密过程可以通过公式c’=en
pk1
(d1+

+ dn+c)= en
pk1
(d1)
×…×
en
pk1
(dn)
×
en
pk1
(c),求得加密后的数据c’,其中,由于上述计算结果c的内容是由聚合公钥加密的,根据同态加密特性,可以通过上述公式直接对聚合公钥加密的密文进行上述加密过程。
41.需要说明的是,在实际应用场景下,在获得上述多个计算结果后,上述目标聚合器可以将上述计算结果上传至区块链,以便各用户端进行下载和使用。
42.本发明通过配置目标聚合器进行区块链的数据同步及协助安全多方计算,使得本方案相较于现有技术省略了多方的数据交互,而是由目标聚合器和计算服务器之间的交互完成安全多方计算,简化了交互方案。同时,通过设置目标聚合器对密文数据进行盲处理,可以避免计算服务器由于受到网络攻击,导致数据被泄露和破解的风险。并且,通过配置计算服务器基于公共参数组生成主密钥,从而在无需获得用户端公钥的情况下,对初始盲数据进行解密,在提高数据隐私保护安全性的同时,简化了交互方案。最后,通过设置计算服务器对各初始盲数据进行密文转换,使得各加密数据经过后续安全多方计算后的计算结果,可以被任一用户端的公钥进行解密的同时,不会暴露密文数据的具体内容。可见,本发明实现了在提高数据隐私保护安全性的同时,提高数据共享效率。
43.可选的,上述目标聚合器基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,包括:通过公式blind(mi)=f(mi,en
pki
(v)),获得与第i个用户端生成的密文数据对应的初始盲数据blind(mi),其中,mi为第i个用户端生成的密文数据,v为随机盲值,en
pki
(v)为利用第i个用户端的公钥对随机盲值v加密后的数值,f为同态密码系统中的逻辑门。
44.可选的,上述密文数据的获得过程包括:目标聚合器根据数据获得请求中的数据类型标识,从目标区块链节点下载多个与数据类型标识对应的密文数据,其中,密文数据是由用户端生成,并通过聚合器组中的任意一个聚合器上传至区块链节点中的数据。
45.可选的,在本发明的一个可选实施例中,上述数据获得请求可以是由用户端发送的请求。
46.可选的,在本发明的另一个可选实施例中,上述密文数据的生成过程,可以是:用户端获取公共参数组,并通过公式pk=gamodn2,求得用户端的公钥pk,其中,g和n是公共参数组中的参数,a是用户端的私钥;用户端利用公钥pk对数据进行加密,获得密文数据。
47.与上述如图1所示的方法实施例相对应地,本发明还提供了一种安全多方计算装置,应用于安全多方计算系统包括的聚合器组中的目标聚合器,上述安全多方计算系统还包括计算服务器和多个用户端,该装置包括:盲处理模块,用于基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各初始盲数据发送至计算服务器,以使计算服务器基于主密钥和聚合公钥对各初始盲数据进行密文转换,其中,用户端的公钥与密文数据具有对应关系,用户端的公钥是用户端基于计算服务器生成的公共参数组计算获得的,目标聚
合器是聚合器组中的任意一个聚合器,主密钥是计算服务器基于公共参数组计算获得的,聚合公钥为计算服务器对各用户端的公钥进行聚合后获得的密钥;转换模块,用于获得计算服务器经密文转换生成的多个加密盲数据,并对各加密盲数据进行去盲值处理,获得多个加密数据;发送模块,用于将各加密数据发送至计算服务器,以使计算服务器基于随机数和各用户端的公钥对各加密数据进行安全多方计算,获得多个计算结果,其中,用户端的公钥与加密数据具有对应关系。
48.可选的,盲处理模块在基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据时被设置为:通过公式blind(mi)=f(mi,en
pki
(v)),获得与第i个用户端生成的密文数据对应的初始盲数据blind(mi),其中,mi为第i个用户端生成的密文数据,v为随机盲值,en
pki
(v)为利用第i个用户端的公钥对随机盲值v加密后的数值,f为同态密码系统中的逻辑门。
49.可选的,盲处理模块在获得密文数据时被设置为:根据数据获得请求中的数据类型标识,从目标区块链节点下载多个与数据类型标识对应的密文数据,其中,密文数据是由用户端生成,并通过聚合器组中的任意一个聚合器上传至区块链节点中的数据。
50.本发明实施例还提供了一种安全多方计算方法,如图2所示,应用于安全多方计算系统包括的计算服务器,上述安全多方计算系统还包括聚合器组和多个用户端,该安全多方计算方法包括:s201、计算服务器基于主密钥和聚合公钥,对聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,其中,初始盲数据是目标聚合器基于随机盲值和各用户端的公钥,对获得的密文数据进行盲处理后获得的,用户端的公钥与密文数据具有对应关系,用户端的公钥是用户端基于计算服务器生成的公共参数组计算获得的,目标聚合器是聚合器组中的任意一个聚合器,主密钥是计算服务器基于公共参数组计算获得的,聚合公钥为计算服务器对各用户端的公钥进行聚合后获得的密钥。
51.s202、计算服务器将各加密盲数据发送至目标聚合器中,以使目标聚合器对各加密盲数据进行去盲值处理,生成多个加密数据。
52.s203、计算服务器获得目标聚合器发送的多个加密数据,基于随机数和各用户端的公钥,分别对各加密数据进行安全多方计算,获得多个计算结果,其中,用户端的公钥与加密数据具有对应关系。
53.需要说明的是,在实际应用场景下,上述计算服务器是部署有基于同态加密机制的安全多方计算算法的服务器。
54.可选的,上述计算服务器基于主密钥和聚合公钥,对聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,包括:计算服务器利用主密钥对各初始盲数据分别进行解密,获得多个解密后的盲数据;计算服务器利用聚合公钥,分别对各解密后的盲数据进行加密,获得多个加密盲数据。
55.需要说明的是,在实际应用场景下,计算服务器利用主密钥对各初始盲数据分别
进行解密的过程,可以是基于现有elgamal的解密过程实现的。本领域技术人员可以理解的是,下述解密过程中的公式,均为elgamal的解密过程所需公式。则上述解密过程可以是:设定第i个初始盲数据为blind(mi),设定消息空间zn。随机选择r∈z
n2
,并用(ai,bi)定义初始盲数据。
56.ai可以通过公式ai=grmodn2,进行表示;bi可以通过公式bi=hr(1+ blind(mi)n)mod n2,进行表示,其中,上述g和h均是elgamal密码体制生成的生成元,均为二次剩余模的循环组合,n是计算服务器基于elgamal密码体制生成的比特长度k的安全素数模。
57.则上述解密过程可以通过公式a mod n=(h
p’q
’-1 mod n2)/n
·
k-1
mod n,求得a mod n,其中,p’和q’是elgamal密码体制下随机选取的素数。
58.同理,通过公式r mod n=(a
ip’q
’-1 mod n2)/n
·
k-1
mod n,求得r mod n。
59.最后,通过公式deblind(mi)={[(bi/gr)
p’q’]-1 mod n2}/ n
·
∈mod n,求得解密后的盲数据deblind(mi)。
[0060]
与上述如图2所示的方法实施例相对应地,本发明还提供了一种安全多方计算装置,应用于安全多方计算系统包括的计算服务器,上述安全多方计算系统还包括聚合器组和多个用户端,该安全多方计算装置包括:转换模块,用于基于主密钥和聚合公钥,对聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据,其中,初始盲数据是目标聚合器基于随机盲值和各用户端的公钥,对获得的密文数据进行盲处理后获得的,用户端的公钥与密文数据具有对应关系,用户端的公钥是用户端基于计算服务器生成的公共参数组计算获得的,目标聚合器是聚合器组中的任意一个聚合器,主密钥是计算服务器基于公共参数组计算获得的,聚合公钥为计算服务器对各用户端的公钥进行聚合后获得的密钥;发送模块,用于将各加密盲数据发送至目标聚合器中,以使目标聚合器对各加密盲数据进行去盲值处理,生成多个加密数据;计算模块,用于获得目标聚合器发送的多个加密数据,基于随机数和各用户端的公钥,分别对各加密数据进行安全多方计算,获得多个计算结果,其中,用户端的公钥与加密数据具有对应关系。
[0061]
可选的,上述转换模块在基于主密钥和聚合公钥,对聚合器组中的目标聚合器发送的各初始盲数据进行密文转换,获得多个加密盲数据时被设置为:转换模块利用主密钥对各初始盲数据分别进行解密,获得多个解密后的盲数据;转换模块利用聚合公钥,分别对各解密后的盲数据进行加密,获得多个加密盲数据。
[0062]
本发明实施例还提供了一种安全多方计算系统,如图3,该安全多方计算系统包括:聚合器组301、计算服务器302和多个用户端303,目标聚合器304基于随机盲值和各用户端的公钥,对获得的各密文数据分别进行盲处理,获得多个初始盲数据,并将各初始盲数据发送至计算服务器302,其中,用户端的公钥与密文数据具有对应关系,用户端的公钥是用户端303基于计算服务器302生成的公共参数组计算获得的,目标聚合器304是聚合器组301中的任意一个聚合器;计算服务器302基于主密钥和聚合公钥,对各初始盲数据进行密文转换,获得多个加密盲数据,其中,主密钥是计算服务器302基于公共参数组计算获得的,聚合公钥为计算
服务器302对各用户端的公钥进行聚合后获得的密钥;目标聚合器304对各加密盲数据进行去盲值处理,获得多个加密数据,并将各加密数据发送至计算服务器302;计算服务器302基于随机数和各用户端的公钥,分别对各加密数据进行安全多方计算,获得多个计算结果,其中,用户端的公钥与加密数据具有对应关系;目标聚合器304获得计算服务器302发送的各计算结果,并将各计算结果进行结果公布。
[0063]
本发明实施例还提供了一种安全多方计算设备,如图4所示,该安全多方计算设备包括:处理器401;用于存储处理器401可执行指令的存储器402;其中,处理器401被配置为执行指令,以实现如上述任一种安全多方计算方法。
[0064]
本发明实施例还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由安全多方计算设备的处理器执行时,使得安全多方计算设备能够执行如上述任一种的安全多方计算方法。
[0065]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0066]
在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
[0067]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
[0068]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
[0069]
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形
式。
[0070]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0071]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0072]
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1