CN113452649B - 一种安全多方计算方法、设备、系统及存储介质 - Google Patents
一种安全多方计算方法、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN113452649B CN113452649B CN202010214075.5A CN202010214075A CN113452649B CN 113452649 B CN113452649 B CN 113452649B CN 202010214075 A CN202010214075 A CN 202010214075A CN 113452649 B CN113452649 B CN 113452649B
- Authority
- CN
- China
- Prior art keywords
- participant
- party
- ciphertext
- target
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Abstract
本申请实施例提供一种安全多方计算方法、设备、系统及存储介质。其中,所述系统包括:服务器、第一参与方和第二参与方;服务器,用于将目标函数对应的混淆电路提供给第一参与方;生成第一参与方和第二参与方各自对应的密文集;将第一参与方和第二参与方各自对应的密文集,发送给第二参与方;第二参与方基于双方的密文集,第一参与方基于混淆电路,进行针对目标函数的安全多方计算。本申请实施例中,服务器无需获取任何参与方的实际输入,这保证了安全多方计算的安全性,而且,由服务器构建和传输混淆电路,各参与方在进行安全多方计算的过程中无需再针对混淆电路消耗网络资源,这可有效降低安全多方计算的网络传输成本。
Description
技术领域
本申请涉及数据安全技术领域,尤其涉及一种安全多方计算方法、设备、系统及存储介质。
背景技术
安全多方计算(Secure Multi-Party Computation,MPC),允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。换句话说,MPC技术可以获取数据使用价值,却不泄露原始数据内容。
MPC可基于混淆电路(Garbled Circuit,GC)而实现。在传统的GC方案中,安全多方计算的各参与方需要进行复杂的交互,这导致GC方案的网络传输代价过高,严重影响MPC的应用广度。
发明内容
本申请的多个方面提供一种安全多方计算方法、设备、系统及存储介质,用以在保证安全多方计算的安全性的情况下,降低网络传输成本。
本申请实施例提供一种安全多方计算系统,包括服务器、第一参与方和第二参与方;
所述服务器,用于构建目标函数对应的混淆电路,并将所述混淆电路提供给所述第一参与方,所述混淆电路中包含所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路;基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方;
所述第二参与方基于双方的密文集,所述第一参与方基于所述混淆电路,进行针对所述目标函数的安全多方计算。
本申请实施例还提供一种安全多方计算方法,包括:
构建目标函数对应的混淆电路,所述混淆电路中包含第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
将所述混淆电路发送给所述第一参与方;
基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;
将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方,以供所述第一参与方和所述第二参与方进行针对所述目标函数的安全多方计算。
本申请实施例还提供一种安全多方计算方法,适用于第二参与方,所述方法包括:
获取服务器提供的所述第二参与方自身以及第一参与方各自对应的密文集,其中,所述密文集为所述服务器基于目标函数的混淆电路中所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路的可能取值而生成的;
根据自身的密文集,确定自身的实际输入对应的密文串;
将所述密文串提供给所述第一参与方,并基于所述第一参与方对应的密文集,参与针对所述目标函数的安全多方计算。
本申请实施例还提供一种安全多方计算方法,适用于第一参与方,所述方法包括:
获取所述服务器提供的目标函数对应的混淆电路以及在所述混淆电路中所述第一参与方自身对应的第一输入线路下的随机数组;
根据所述随机数组,与第二参与方相互配合,以确定所述第一参与方自身的实际输入对应的密文串;
根据所述密文串,参与针对所述目标函数的安全多方计算。
本申请实施例还提供一种计算设备,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
构建目标函数对应的混淆电路,所述混淆电路中包含第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
通过所述通信组件将所述混淆电路发送给所述第一参与方;
基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;
通过所述通信组件将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方,以供所述第一参与方和所述第二参与方进行针对所述目标函数的安全多方计算。
本申请实施例还提供一种计算设备,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
通过所述通信组件获取服务器提供的所述第二参与方自身以及第一参与方各自对应的密文集,其中,所述密文集为所述服务器基于目标函数的混淆电路中所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路的可能取值而生成的;
根据自身的密文集,确定自身的实际输入对应的密文串;
通过所述通信组件将所述密文串提供给所述第一参与方,并基于所述第一参与方对应的密文集,参与针对所述目标函数的安全多方计算。
本申请实施例还提供一种计算设备,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
通过所述通信组件获取所述服务器提供的目标函数对应的混淆电路以及在所述混淆电路中所述第一参与方自身对应的第一输入线路下的随机数组;
根据所述随机数组,与第二参与方相互配合,以确定所述第一参与方自身的实际输入对应的密文串;
根据所述密文串,参与针对所述目标函数的安全多方计算。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的安全多方计算方法。
在本申请实施例中,提供一种创新的安全多方计算架构,通过服务器构建目标函数的混淆电路,并将所述混淆电路提供给所述第一参与方,所述混淆电路中包含所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路;基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方。所述第二参与方可基于双方的密文集,所述第一参与方可基于所述混淆电路,进行针对所述目标函数的安全多方计算。据此,本申请实施例中,服务器无需获取任何参与方的实际输入,这保证了安全多方计算的安全性,而且,由服务器构建和传输混淆电路,各参与方在进行安全多方计算的过程中无需再针对混淆电路消耗网络资源,这可有效降低安全多方计算的网络传输成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种安全多方计算系统的结构示意图;
图2为本申请一示例性实施例提供的一种安全多方计算方案的逻辑示意图;
图3为本申请另一示例性实施例提供的一种安全多方计算方法的流程示意图;
图4为本申请又一示例性实施例提供的另一种安全多方计算方法的流程示意图;
图5为本申请又一示例性实施例提供的又一种安全多方计算方法的流程示意图;
图6为本申请又一示例性实施例提供的一种计算设备的结构示意图;
图7为本申请又一示例性实施例提供的另一种计算设备的结构示意图;
图8为本申请又一示例性实施例提供的又一种计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统的GC方案中,安全多方计算的各参与方需要进行复杂的交互,这导致GC方案的网络传输代价过高,严重影响MPC的应用广度。为改善这些问题,本申请的一些实施例中:提供一种创新的安全多方计算架构,通过服务器构建目标函数的混淆电路,并将所述混淆电路提供给所述第一参与方,所述混淆电路中包含所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路;基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方。所述第二参与方可基于双方的密文集,所述第一参与方可基于所述混淆电路,进行针对所述目标函数的安全多方计算。据此,本申请实施例中,服务器无需获取任何参与方的实际输入,这保证了安全多方计算的安全性,而且,由服务器构建和传输混淆电路,各参与方在进行安全多方计算的过程中无需再针对混淆电路消耗网络资源,这可有效降低安全多方计算的网络传输成本。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一实施例提供的安全多方计算系统的结构示意图。如图1所示,该系统包括:服务器10、第一参与方20和第二参与方30,服务器10、第一参与方20和第二参与方30三者之间通信连接。
本实施例提供的安全多方计算系统可应用于各种需要进行安全计算的场景中,例如,电商场景、金融场景或医疗场景等等,本实施例对应用场景不作限定。本实施例中,多个参与方可参与同一安全多方计算过程,也即是,在单个安全多方计算过程中,第一参与方20和第二参与方30的数量可以是一个或多个,多个参与方之间可采用本实施例提供的安全多方计算方案进行安全多方计算。
另外,一个第一参与方20可分别与多个第二参与方30进行安全多方计算。而一个第二参与方30也可分别与多个第一参与方20进行安全多方计算。而且,单个参与方可参与不同的安全多方计算过程,且可在不同的安全多方计算中扮演不完全相同的角色(第一参与方或第二参与方)。
本实施例中,服务器10可构建目标函数对应的混淆电路。混淆电路中包含门(gate)和线路(wire),其中,混淆电路中至少包含两类线路:连接各参与方的线路和输出线路。本实施例中,将连接各参与方的线路描述为输入线路,在混淆电路中,第一参与方20和第二参与方30分别对应有输入线路。应当理解的是,在不同的安全多方计算过程中,混淆电路可能不完全相同。
为方便描述,在本文中,将第一参与方20对应的输入线路描述为第一输入线路,将第二参与方30对应的输入线路描述为第二输入线路。
本实施例中,服务器10可将混淆电路提供给第一参与方20。第一参与方20将作为混淆电路的运行者。
值得说明的是,本实施例中,服务器10向所述第一参与方20提供的混淆电路只涉及函数体,不包含任何与输入线路相关的内容。这可有效防止第一参与方20在运行混淆电路的过程中进行非正常操作。
其中,服务器10可在第一参与方20与第二参与方30进行关于安全多方计算的交互之前完成混淆电路的发送。例如,即使第一参与方20并未确定好是否存在与之交互的第二参与方30,第一参与方20也可在确定出目标函数后,将目标函数提供给服务器10,服务器10可就此构建目标函数对应的混淆电路,并将混淆电路发送给第一参与方20。从而,在后续确定出第二参与方30的情况下,第一参与方20可直接基于已经传送完成的混淆电路与第二参与方30进行安全多方计算。
这种将混淆电路的传输过程进行前置的方案可有效解决混淆电路在网络传输代价方面的瓶颈,从而降低安全多方计算过程中的网络传输成本,提高安全多方计算的效率。
本实施例中,服务器10还可基于第一输入线路和第二输入线路的可能取值,生成第一参与方20和第二参与方30各自对应的密文集。
对于服务器10来说,第一输入线路和第二输入线路的实际输入是未知的,服务器10可根据混淆电路中预置的第一输入线路和第二输入线路的输入属性,确定第一输入线路和第二输入线路的可能取值。其中,输入属性包括但不限于输入的数量、单个输入下的字节数量等。其中,不同输入线路的输入属性可能不完全相同。
本实施例中,单个字节上的可能取值可包括0和1,当然,这只是一种示例性的取值方案,实际应用中,可能取值还可采用其它的数值,本实施例并不限于此。
例如,在单个字节上的可能取值包括0和1的情况下,若第一输入线路包含2个字节,则第一输入线路的可能取值包括:00、01、10和11。也即,为每个字节取尽所有的可能取值。
服务器10可对第一输入线路和第二输入线路的可能取值进行加密,以获得第一参与方20和第二参与方30各自对应的密文集。
本实施例中,服务器10可基于第一输入线路核第二输入线路在混淆电路中的密钥,从字节维度,分别对第一输入线路和第二输入线路的可能取值进行加密,以生成第一输入线路和第二输入线路各自对应的密文集。
以第一输入线路中的目标字节为例,若目标字节上的可能取值包括0和1,则服务器10可按照混淆电路中预置的第一输入线路中的目标字节对应的密钥,分别生成0值和1值对应的密文。其中,目标字节可以是第一输入线路中的任意字节。这样,可获得第一输入线路的密文集。
还是以第一输入线路包含2个字节为例,服务器10可在每个字节上生成两个密文,从而获得第一输入线路对应的4个密文,4个密文可按前文中的可能取值00、01、10和11进行组合,从而构成第一输入线路的4个可能取值各自对应的密文串。
当然,这仅是示例性的,本实施例中,密文集的内部结构并不限于此。
服务器10可采用同样的处理方式,生成第二输入线路的密文集。
据此,单个输入线路的密文集中可包括该输入线路所包含字节上的可能取值对应的密文。
另外,本实施例中,不限定单个密文的密文属性。密文属性包括但不限于密文中的字段含义、字节数量等等。
本实施例中,服务器10可将第一参与方20和第二参与方30各自对应的密文集提供至第二参与方30。这样,第二参与方30将获得自身的密文集以及第一参与方20的密文集。服务器10不会将密文集提供给第一参与方20,这可有效防止第一参与方20利用密文集在运行混淆电路的过程中进行非正常操作。
对第二参与方30来说,可基于双方的密文集参与针对目标函数的安全多方计算;而对于第一参与方20来说,可基于混淆电路参与针对目标函数的安全多方计算。
其中,第二参与方30可基于自身的密文集,确定自身实际输入对应的密文串;并可基于第一参与方20的密文集,与第一参与方20进行协商交互,以确定出第一参与方20的实际输入的密文串,从而,可实现安全多方计算。其中,确定双方的实际输入对应的密文串的过程将在后文中详述。
最终,第一参与方20可获得第二参与方30和第一参与方20各自的实际输入对应的密文串,在此基础上,第一参与方20可将双方的实际输入对应的密文串作为混淆电路的输入,通过运行混淆电路,可输出安全多方计算的计算结果。
对第一参与方20来说,双方实际输入对应的密文串均是处于加密状态的数据,第一参与方20不仅无法获知第二参与方30的实际输入,而且即使在获取到自身的实际输入对应的密钥串的情况下,第一参与方20也无法推敲出混淆电路中的加密规则。这样,在一次计算过程中,若第一参与方20期望通过多次改变其实际输入而推测出第二参与方30的输入是行不通的,这是因为在加密规则未知的情况下第一参与方20无法自主为改变后的实际输入生成密文串。
可知,本实施例中,提供一种创新的安全多方计算架构,通过服务器10构建目标函数的混淆电路,并将混淆电路提供给第一参与方20,混淆电路中包含第一参与方20对应的第一输入线路和第二参与方30对应的第二输入线路;基于第一输入线路和第二输入线路的可能取值,生成第一参与方20和第二参与方30各自对应的密文集;将第一参与方20和第二参与方30各自对应的密文集,发送给第二参与方30。第二参与方20可基于双方的密文集,第一参与方30可基于混淆电路,进行针对目标函数的安全多方计算。据此,本申请实施例中,服务器10无需获取任何参与方的实际输入,这保证了安全多方计算的安全性,而且,由服务器10构建和传输混淆电路,各参与方在进行安全多方计算的过程中无需再针对混淆电路消耗网络资源,这可有效降低安全多方计算的网络传输成本。
图2为本申请一示例性实施例提供的一种安全多方计算方案的逻辑示意图。
在上述或下述实施例中,参考图2,第二参与方30可根据其自身的密文集,确定其实际输入对应的密文串。
对第二参与方30来说,针对其实际输入中的目标字节,可根据目标字节上的实际取值,从其密钥集中,在目标字节上选择与实际取值对应的密文,以生成第二参与方30的实际输入对应的密文串。
第二参与方30的密文集中,包含目标字节上的可能取值的密文,第二参与方30可从中选出其在目标字节上的实际取值对应的密文。这样,可确定出第二参与方30的实际输入中各字节上的实际取值对应的密文,从而构成第二参与方30的实际输入对应的密文串。
为了辅助第二参与方30确定出其实际输入对应的密文串,本实施例中,服务器10可将可能取值的标识关联至对应的密文,并将标识配置到密文集中。这样,第二参与方30获得的密文集中各密文将关联其对应的可能取值的标识。
本实施例中,对标识的形式不作限定,标识可以是数字或字母等,标识的长度可以是单字节或者多字节。
值得说明的是,第二参与方30在将其实际输入对应的密文串提供给第一参与方20的过程中,密文串中各密文关联的标识将不被提供给第一参与方20,以防止第一参与方20推测出第二参与方30的实际输入。
据此,对第二参与方30来说,可基于密文集中目标字节上的各可能取值对应的密文关联的标识,获得密文与可能取值的关联关系,从而确定出目标字节上的实际取值对应的密文。
本实施例中,第二参与方30可基于其密文集自主确定自身的实际输入对应的密文串,并可将确定出的密文串提供给第一参与方20,作为第一参与方20后续运行混淆电路时的一项输入。在密文串的确定过程以及传输过程中均处于加密状态,这保证了第二参与方30的实际输入的安全性。
在上述或下述实施例中,至少可采用以下实现方式确定出第一参与方20的实际输入对应的密文串。
参考图2,服务器10可从字节维度,为第一输入线路生成第一随机数组和第二随机数组;将第一随机数组发送给第一参与方20,将第二随机数组发送给第二参与方30。
本实施例中,第一参与方20和第二参与方30可基于各自获取到的随机数组,进行相互配合,以确定第一参与方20的实际输入对应的密文串,也即第一参与方20的实际输入中各字节对应的密文。
其中,在确定第二参与方30的单个字节上的实际取值对应的密文的过程中,可消耗一组随机数组,也即是消耗第一输入线路在该字节上的第一随机数组和第二随机数组。
对于服务器10来说,产生随机数组的过程中并未获取任何参与方的实际输入,第一参与方20及第二参与方30无需向服务器10提供实际输入,无论是加密形式还是明文形式,这保证了双方实际输入的安全性,可防止由于服务器10不够中立而导致的信息泄露。
本实施例中,服务器10可针对第一输入线路中的目标字节,生成对应0值的随机数和对应1值的随机数,并配置到目标字节上的第二随机数组中;生成目标取值,并将目标取值以及目标字节上的第二随机数组中对应目标取值的随机数,配置到目标字节上的第一随机数组中。其中,目标取值为0或1。
为了便于描述,后文中,将第一输入线路中的目标字节上的第一随机数组表征为【r,Rr】,第二随机数组表征为【R0,R1】。
本实施例中,为便于后续计算,目标字节上涉及到的随机数包含的字节数可与目标字节上的可能取值对应的密文包含的字节数一致。当然,这不是必须的,两者的字节数也可不一致。
据此,针对第一输入线路的目标字节,第一参与方20将收到服务器10提供的第一随机数组,第二参与方30可收到服务器10提供的第二随机数组。在实际应用中,服务器10可能将针对第一输入线路的各字节的随机数组打包发送给相应的参与方,当然,服务器10也可按字节发送,本实施例对此不作限定。
在此基础上,第一参与方20可在其实际输入的目标字节上,对目标字节上的实际取值与目标字节对应的目标取值进行异或计算,以获得目标字节对应的第一参数;将第一参数提供给第二参与方30,以供双方配合确定出第一参与方20的实际输入对应的密文串。
第一参与方20的该处理过程可表征为:其中,z表示第一参数,y表示第一参与方20的实际输入在目标字节上的实际取值,r表示目标字节上的第一随机数组中包含的目标取值。可知,z的取值将为0或1。
对第二参与方30来说,在获取到第一参数的基础上,可从第一参与方20对应的密文集中,查找目标字节上目标可能取值对应的目标密文;从目标字节上的第二随机数组中,选择对应第一参数的目标随机数;对目标密文和目标随机数进行异或计算,以获得目标字节在目标可能取值下对应的第二参数,并提供给第一参与方20,以供双方配合确定出第一参与方20的实际输入对应的密文串。其中,目标可能取值为第一输入线路中目标字节上可能取值中的任意一个。
第二参与方30的该处理过程可表征为:其中,C0和C1分别表示可能取值0和1下的第二参数,b0和b1分别表示第一参与方20在目标字节上的可能取值0和1各自对应的密文,Rz和R(1-z)为随机数。另外,第二参与方30还可将其实际输入在目标字节上对应的密文ax提供给第一参与方20,其中,x取第二参与方30的实际输入在目标字节上的实际取值。
对第一参与方20来说,可确定与其实际输入中目标字节上的实际取值对应的目标第二参数;对目标第二参数以及目标字节上的第一随机数组中的随机数进行异或计算,以获得计算结果;将计算结果,作为第一参与方20实际输入中目标字节对应的密文。
第一参与方20的该处理过程可表征为:其中,by表示第一参与方20在目标字节上的实际取值对应的密文,Cy表示与第一参与方20在目标字节上的实际取值对应的第二参数,Rr表示随机数。
据此,第一参与方20可获得其在目标字节上的实际取值对应的密文,进而获取其实际输入对应的密文串。
这样,第一参与方20已拥有了混淆电路、第二参与方30的实际输入对应的密文串以及第一参与方20自身的实际输入对应的密文串,第一参与方20可将第一参与方20和第二参与方30各自的实际输入对应的密文串,输入混淆电路,以获得安全多方计算的计算结果。
当然,本实施例中,服务器10辅助确定第一参与方20的实际输入对应的密文串的方案并不限于此,还可采用其它方案确定出第一参与方20的实际输入对应的密文串。例如,第一参与方20和第二参与方30之间可采用传统的不经意传输(Oblivious Transfer,OT)方案,确定出第一参与方20的实际输入对应的密文串,这种方案下,服务器10可将混淆电路中与OT过程相关的密钥提供给第二参与方30。
本实施例中,提供一种创新的确定第一参与方的实际输入对应的密文串的方案,通过服务器的辅助,不再第一参与方和第二参与方之间可通过简洁的几轮异或运算,即可确定出第一参与方的实际输入对应的密文串,这与传统的OT方案相比,有效降低了计算成本、协商成本及学习成本等。而且,在整个过程中并未暴露任何参与方的实际输入,而且,单个参与方也无法基于能够获取到的信息而推测出其它参与方的实际输入,这保证了安全多方计算过程的安全性。
图3为本申请另一示例性实施例提供的一种安全多方计算方法的流程示意图,本实施例提供的安全多方计算方法可以由一安全多方计算装置来执行,该安全多方计算装置可以实现为软件或实现为软件和硬件的组合,该安全多方计算装置可集成设置在安全多方计算系统中的服务器中。如图3所示,该安全多方计算方法包括:
步骤300、构建目标函数对应的混淆电路,混淆电路中包含第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
步骤301、将混淆电路发送给第一参与方;
步骤302、基于第一输入线路和第二输入线路的可能取值,生成第一参与方和第二参与方各自对应的密文集;
步骤303、将第一参与方和第二参与方各自对应的密文集,发送给第二参与方,以供第一参与方和第二参与方进行针对目标函数的安全多方计算。
在一可选实施例中,每个字节上的可能取值包括0和1。
在一可选实施例中,步骤基于第一输入线路和第二输入线路的可能取值,生成第一参与方和第二参与方各自对应的密文集,包括:
基于第一输入线路核第二输入线路在混淆电路中的密钥,从字节维度,分别对第一输入线路和第二输入线路的可能取值进行加密,以生成第一输入线路和第二输入线路各自对应的密文集。
在一可选实施例中,该方法还包括:
将可能取值的标识关联至对应的密文,并将标识配置到密文集中,以供第二参与方根据标识从其密文集中选择密文。
在一可选实施例中,该方法还包括:
从字节维度,为第一输入线路生成第一随机数组和第二随机数组;
将第一随机数组发送给第一参与方,将第二随机数组发送给第二参与方,以供第一参与方和第二参与方根据各自收到的随机数组进行配合,以确定第一参与方的实际输入对应的密文串。
在一可选实施例中,步骤从字节维度,为第一输入线路生成第一随机数组和第二随机数组,包括:
针对第一输入线路中的目标字节,生成对应0值的随机数和对应1值的随机数,并配置到所述目标字节上的所述第二随机数组中;
生成目标取值,并将目标取值以及目标字节上的第二随机数组中对应目标取值的随机数,配置到目标字节上的第一随机数组中;
其中,目标取值为0或1,目标字节为输入线路中的任一字节。
在一可选实施例中,随机数的字节数与密文集中包含的密文的字节数一致。
在一可选实施例中,步骤将混淆电路发送给参与安全多方计算的第一参与方,包括:
在第一参与方和第二参与方进行安全多方计算之前,将混淆电路发送给第一参与方。
值得说明的是,上述关于安全多方计算方法的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对服务器的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
图4为本申请又一示例性实施例提供的另一种安全多方计算方法的流程示意图。本实施例提供的安全多方计算方法可以由一安全多方计算装置来执行,该安全多方计算装置可以实现为软件或实现为软件和硬件的组合,该安全多方计算装置可集成设置在安全多方计算系统中的第二参与方中。如图4所示,该安全多方计算方法包括:
步骤400、获取服务器提供的第二参与方自身以及第一参与方各自对应的密文集,其中,密文集为服务器基于目标函数的混淆电路中第一参与方对应的第一输入线路和第二参与方对应的第二输入线路的可能取值而生成的;
步骤401、根据自身的密文集,确定自身的实际输入对应的密文串;
步骤402、将密文串提供给第一参与方,并基于第一参与方对应的密文集,参与针对目标函数的安全多方计算。
在一可选实施例中,可能取值包括0和1。
在一可选实施例中,步骤根据自身的密文集,确定自身的实际输入对应的密文串,包括:
针对其实际输入中的目标字节,根据目标字节上的实际取值,从其密钥集中,在目标字节上选择与实际取值对应的密文,以生成第二参与方的实际输入对应的密文串;
其中,目标字节为第二参与方的实际输入中的任意字节
在一可选实施例中,步骤基于第一参与方对应的密文集,参与针对目标函数的安全多方计算,包括:
获取服务器提供的第一输入线路下的第二随机数组;
基于第二随机数组,与第一参与方进行配合,以确定第一参与方的实际输入对应的密文串。
在一可选实施例中,第一输入线路的单个字节下的第二随机数组中包含对应0值的随机数和对应1值的随机数。
在一可选实施例中,步骤基于第二随机数组,与第一参与方进行配合,以确定第一参与方的实际输入对应的密文串,包括:
针对第一输入线路下的目标字节,接收第一参与方提供的目标字节对应的第一参数,第一参数为第一参与方在其实际输入的目标字节上,对目标字节上的实际取值与目标字节对应的第一随机数组中的目标取值进行异或计算而产生的;
从第一参与方对应的密文集中,查找目标字节上目标可能取值对应的目标密文;
从目标字节上的第二随机数组中,选择对应第一参数的目标随机数;
对目标密文和目标随机数进行异或计算,以获得目标字节在目标可能取值下对应的第二参数,并提供给第一参与方,以供第一参与方计算其实际输入中目标字节对应的密文;
其中,目标可能取值为第一输入线路中目标字节上所有可能取值中的任意一个,目标字节为第一输入线路中的任意字节,目标字节上的第一随机数组中包含所述目标取值以及所述目标字节上的第二随机数组中与所述目标取值对应的随机数。
值得说明的是,上述关于安全多方计算方法的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对第二参与方的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
图5为本申请又一示例性实施例提供的又一种安全多方计算方法的流程示意图。本实施例提供的安全多方计算方法可以由一安全多方计算装置来执行,该安全多方计算装置可以实现为软件或实现为软件和硬件的组合,该安全多方计算装置可集成设置在安全多方计算系统中的第一参与方中。如图5所示,该安全多方计算方法包括:
步骤500、获取服务器提供的目标函数对应的混淆电路以及在混淆电路中第一参与方自身对应的第一输入线路下的第一随机数组;
步骤501、根据第一随机数组,与第二参与方相互配合,以确定第一参与方自身的实际输入对应的密文串;
步骤502、根据密文串,参与针对目标函数的安全多方计算。
在一可选实施例中,步骤根据密文串,参与针对目标函数的安全多方计算,包括:
获取第二参与方提供的第二参与方的实际输入对应的密文串;
将第一参与方和第二参与方各自的实际输入对应的密文串,输入混淆电路,以获得安全多方计算的计算结果。
在一可选实施例中,第一输入线路的目标字节上的第一随机数组包含目标取值以及目标字节上的第二随机数组中对应于目标取值的随机数;
其中,目标字节上的第二随机数组中包含对应0值的随机数和对应1值的随机数;目标取值为0或1;目标字节为第一输入线路中的任意字节。
在一可选实施例中,随机数的字节数与密文的字节数一致。
在一可选实施例中,步骤根据第一随机数组,与第二参与方相互配合,以确定第一参与方自身的实际输入对应的密文串,包括:
在自身实际输入的目标字节上,对目标字节上的实际取值与目标字节对应的目标取值进行异或计算,以获得目标字节对应的第一参数;
将第一参数提供给第二参与方,以与第二参与方相互配合而确定第一参与方自身的实际输入对应的密文串。
在一可选实施例中,步骤将第一参数提供给第二参与方,以与第二参与方相互配合而确定第一参与方自身的实际输入对应的密文串,包括:
将第一参数提供给第二参与方,以供第二参与方根据第一参数,生成目标字节在各种可能取值下对应的第二参数;
确定与其实际输入的目标字节上的实际取值对应的目标第二参数;
对目标第二参数以及目标字节上的第一随机数进行异或计算,以获得计算结果;
将计算结果,作为第一参与方实际输入中目标字节对应的密文,以获得第一参与方自身的实际输入对应的密文串。
值得说明的是,上述关于安全多方计算方法的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对第一参与方的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤301至步骤303的执行主体可以为设备A;又比如,步骤301和302的执行主体可以为设备A,步骤303的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的数组、模块、信息等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图6为本申请又一示例性实施例提供的一种计算设备的结构示意图。如图6所示,该计算设备包括:存储器60、处理器61以及通信组件62。
处理器61,与存储器60及通信组件62耦合,用于执行存储器60中的计算机程序,以用于:
构建目标函数对应的混淆电路,混淆电路中包含第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
通过通信组件62将混淆电路发送给第一参与方;
基于第一输入线路和第二输入线路的可能取值,生成第一参与方和第二参与方各自对应的密文集;
通过通信组件62将第一参与方和第二参与方各自对应的密文集,发送给第二参与方,以供第一参与方和第二参与方进行针对目标函数的安全多方计算。
在一可选实施例中,每个字节上的可能取值包括0和1。
在一可选实施例中,处理器61在基于第一输入线路和第二输入线路的可能取值,生成第一参与方和第二参与方各自对应的密文集时,用于:
基于第一输入线路核第二输入线路在混淆电路中的密钥,从字节维度,分别对第一输入线路和第二输入线路的可能取值进行加密,以生成第一输入线路和第二输入线路各自对应的密文集。
在一可选实施例中,处理器61还用于:
将可能取值的标识关联至对应的密文,并将标识配置到密文集中,以供第二参与方根据标识从其密文集中选择密文。
在一可选实施例中,处理器61还用于:
从字节维度,为第一输入线路生成第一随机数组和第二随机数组;
将第一随机数组发送给第一参与方,将第二随机数组发送给第二参与方,以供第一参与方和第二参与方根据各自收到的随机数组进行配合,以确定第一参与方的实际输入对应的密文串。
在一可选实施例中,处理器61在从字节维度,为第一输入线路生成第一随机数组和第二随机数组时,用于:
针对第一输入线路中的目标字节,生成对应0值的随机数和对应1值的随机数,并配置到所述目标字节上的所述第二随机数组中;
生成目标取值,并将目标取值以及目标字节上的第二随机数组中对应目标取值的随机数,配置到目标字节上的第一随机数组中;
其中,目标取值为0或1,目标字节为输入线路中的任一字节。
在一可选实施例中,随机数的字节数与密文集中包含的密文的字节数一致。
在一可选实施例中,处理器61在将混淆电路发送给参与安全多方计算的第一参与方时,用于:
在第一参与方和第二参与方进行安全多方计算之前,将混淆电路发送给第一参与方。
值得说明的是,上述关于计算设备的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对服务器的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
进一步,如图6所示,该计算设备还包括:电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着计算设备只包括图6所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
图7为本申请又一示例性实施例提供的另一种计算设备的结构示意图。如图7所示,该计算设备包括:存储器70、处理器71以及通信组件72。
处理器71,与存储器70及通信组件72耦合,用于执行存储器70中的计算机程序,以用于:
通过通信组件72获取服务器提供的第二参与方自身以及第一参与方各自对应的密文集,其中,密文集为服务器基于目标函数的混淆电路中第一参与方对应的第一输入线路和第二参与方对应的第二输入线路的可能取值而生成的;
根据自身的密文集,确定自身的实际输入对应的密文串;
通过通信组件72将密文串提供给第一参与方,并基于第一参与方对应的密文集,参与针对目标函数的安全多方计算。
在一可选实施例中,可能取值包括0和1。
在一可选实施例中,处理器71在根据自身的密文集,确定自身的实际输入对应的密文串时,用于:
针对其实际输入中的目标字节,根据目标字节上的实际取值,从其密钥集中,在目标字节上选择与实际取值对应的密文,以生成第二参与方的实际输入对应的密文串;
其中,目标字节为第二参与方的实际输入中的任意字节
在一可选实施例中,处理器71在基于第一参与方对应的密文集,参与针对目标函数的安全多方计算时,用于:
获取服务器提供的第一输入线路下的第二随机数组;
基于第二随机数组,与第一参与方进行配合,以确定第一参与方的实际输入对应的密文串。
在一可选实施例中,第一输入线路的单个字节下的第二随机数组中包含对应0值的随机数和对应1值的随机数。
在一可选实施例中,处理器71在基于第二随机数组,与第一参与方进行配合,以确定第一参与方的实际输入对应的密文串时,用于:
针对第一输入线路下的目标字节,接收第一参与方提供的目标字节对应的第一参数,第一参数为第一参与方在其实际输入的目标字节上,对目标字节上的实际取值与目标字节对应的第一随机数组中的目标取值进行异或计算而产生的;
从第一参与方对应的密文集中,查找目标字节上目标可能取值对应的目标密文;
从目标字节上的第二随机数组中,选择对应第一参数的目标随机数;
对目标密文和目标随机数进行异或计算,以获得目标字节在目标可能取值下对应的第二参数,并提供给第一参与方,以供第一参与方计算其实际输入中目标字节对应的密文;
其中,目标可能取值为第一输入线路中目标字节上所有可能取值中的任意一个,目标字节为第一输入线路中的任意字节,目标字节上的第一随机数组中包含所述目标取值以及所述目标字节上的第二随机数组中与所述目标取值对应的随机数。
值得说明的是,上述关于计算设备的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对第二参与方的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
进一步,如图7所示,该计算设备还包括:电源组件73等其它组件。图7中仅示意性给出部分组件,并不意味着计算设备只包括图7所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
图8为本申请又一示例性实施例提供的又一种计算设备的结构示意图。如图8所示,该计算设备包括:存储器80、处理器81以及通信组件82。
处理器81,与存储器80及通信组件82耦合,用于执行存储器80中的计算机程序,以用于:
通过通信组件82获取服务器提供的目标函数对应的混淆电路以及在混淆电路中第一参与方自身对应的第一输入线路下的第一随机数组;
根据第一随机数组,与第二参与方相互配合,以确定第一参与方自身的实际输入对应的密文串;
根据密文串,参与针对目标函数的安全多方计算。
在一可选实施例中,处理器81根据密文串,参与针对目标函数的安全多方计算,包括:
获取第二参与方提供的第二参与方的实际输入对应的密文串;
将第一参与方和第二参与方各自的实际输入对应的密文串,输入混淆电路,以获得安全多方计算的计算结果。
在一可选实施例中,第一输入线路的目标字节上的第一随机数组包含目标取值以及目标字节上的第二随机数组中对应于目标取值的随机数;
其中,目标字节上的第二随机数组中包含对应0值的随机数和对应1值的随机数;目标取值为0或1;目标字节为第一输入线路中的任意字节。
在一可选实施例中,随机数的字节数与密文的字节数一致。
在一可选实施例中,处理器81在根据第一随机数组,与第二参与方相互配合,以确定第一参与方自身的实际输入对应的密文串时,用于:
在自身实际输入的目标字节上,对目标字节上的实际取值与目标字节对应的目标取值进行异或计算,以获得目标字节对应的第一参数;
将第一参数提供给第二参与方,以与第二参与方相互配合而确定第一参与方自身的实际输入对应的密文串。
在一可选实施例中,处理器81在将第一参数提供给第二参与方,以与第二参与方相互配合而确定第一参与方自身的实际输入对应的密文串时,用于:
将第一参数提供给第二参与方,以供第二参与方根据第一参数,生成目标字节在各种可能取值下对应的第二参数;
确定与其实际输入的目标字节上的实际取值对应的目标第二参数;
对目标第二参数以及目标字节上的第一随机数进行异或计算,以获得计算结果;
将计算结果,作为第一参与方实际输入中目标字节对应的密文,以获得第一参与方自身的实际输入对应的密文串。
值得说明的是,上述关于计算设备的各实施例中的技术细节,可参考前述的安全多方计算系统相关实施例中针对第一参与方的描述,为节省篇幅,在此不再赘述,但这不应造成对本申请保护范围的损失。
进一步,如图8所示,该计算设备还包括:电源组件83等其它组件。图8中仅示意性给出部分组件,并不意味着计算设备只包括图8所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
其中,图6-8中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
其中,图6-8中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
其中,图6-8中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (38)
1.一种安全多方计算系统,其特征在于,包括服务器、第一参与方和第二参与方;
所述服务器,用于构建目标函数对应的混淆电路,并将所述混淆电路提供给所述第一参与方,所述混淆电路中包含函数体、所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路;基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方;所述服务器提供给所述第一参与方的混淆电路中只包含所述函数体;
所述第二参与方,用于基于自身对应的密文集,确定自身的实际输入对应的密文串,发送给所述第一参与方;基于所述第一参与方的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串;所述第一参与方,用于基于所述第一参与方和所述第二参与方各自的实际输入对应的密文串,以及所述服务器提供给所述第一参与方的混淆电路,进行针对所述目标函数的安全多方计算。
2.根据权利要求1所述的系统,其特征在于,所述可能取值包括0和1。
3.根据权利要求1所述的系统,其特征在于,所述服务器具体用于:
基于所述第一输入线路和所述第二输入线路在所述混淆电路中的密钥,从字节维度,分别对所述第一输入线路和所述第二输入线路的可能取值进行加密,以生成所述第一输入线路和所述第二输入线路各自对应的密文集。
4.根据权利要求3所述的系统,其特征在于,所述第二参与方具体用于:
针对其实际输入中的目标字节,根据所述目标字节上的实际取值,从其密钥集中,在所述目标字节上选择与实际取值对应的密文,以生成所述第二参与方的实际输入对应的密文串;
将所述密文串发送给所述第一参与方,以供双方进行所述安全多方计算;
其中,所述目标字节为所述第二参与方的实际输入中的任意字节。
5.根据权利要求4所述的系统,其特征在于,所述服务器在生成所述密文集过程中,还用于:
将可能取值的标识关联至对应的密文,并将所述标识配置到所述密文集中,以供所述第二参与方根据所述标识从其密文集中选择密文。
6.根据权利要求1所述的系统,其特征在于,所述服务器还用于:
从字节维度,为所述第一输入线路生成第一随机数组和第二随机数组;将所述第一随机数组发送给所述第一参与方,将所述第二随机数组发送给所述第二参与方;
所述第一参与方和所述第二参与方基于各自收到的随机数组进行配合,以确定所述第一参与方的实际输入对应的密文串,以供双方进行所述安全多方计算。
7.根据权利要求6所述的系统,其特征在于,所述服务器在生成随机数组的过程中,具体用于:
针对所述第一输入线路中的目标字节,生成对应0值的随机数和对应1值的随机数,并配置到所述目标字节上的所述第二随机数组中;
生成目标取值,并将所述目标取值以及所述第二随机数组中对应所述目标取值的随机数,配置到所述目标字节上的所述第一随机数组中;
其中,所述目标取值为0或1,所述目标字节为所述第一输入线路中的任一字节。
8.根据权利要求7所述的系统,其特征在于,所述随机数的字节数与密文的字节数一致。
9.根据权利要求7所述的系统,其特征在于,所述第一参与方具体用于:
在其实际输入的所述目标字节上,对所述目标字节上的实际取值与所述目标字节对应的所述目标取值进行异或计算,以获得所述目标字节对应的第一参数;
将所述第一参数提供给所述第二参与方,以供双方确定所述第一参与方的实际输入中所述目标字节对应的密文。
10.根据权利要求9所述的系统,其特征在于,所述第二参与方具体用于:
从所述第一参与方对应的密文集中,查找所述目标字节上目标可能取值对应的目标密文;
从所述目标字节上的所述第二随机数组中,选择对应所述第一参数的目标随机数;
对所述目标密文和所述目标随机数进行异或计算,以获得所述目标字节在所述目标可能取值下对应的第二参数,并提供给所述第一参与方,以供所述第一参与方计算其实际输入中所述目标字节对应的密文;
其中,所述目标可能取值为所述第一输入线路中所述目标字节上所有可能取值中的任意一个。
11.根据权利要求10所述的系统,其特征在于,所述第一参与方具体用于:
确定与其实际输入中所述目标字节上的实际取值对应的目标第二参数;
对所述目标第二参数以及所述目标字节上的所述第一随机数组中的随机数进行异或计算,以获得计算结果;
将所述计算结果,作为所述第一参与方在所述目标字节上的实际取值对应的密文,以生成所述第一参与方的实际输入对应的密文串。
12.根据权利要求6~11任一项所述的系统,其特征在于,所述第一参与方具体用于,将所述第一参与方和所述第二参与方各自的实际输入对应的密文串,输入所述服务器提供给所述第一参与方的混淆电路,以获得所述安全多方计算的计算结果。
13.根据权利要求1所述的系统,其特征在于,所述服务器具体用于,在所述第一参与方和所述第二参与方进行所述安全多方计算之前,将所述混淆电路发送给所述第一参与方。
14.根据权利要求1所述的系统,其特征在于,所述第二参与方为一个或多个。
15.一种安全多方计算方法,其特征在于,包括:
构建目标函数对应的混淆电路,所述混淆电路中包含函数体、第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
将所述混淆电路发送给所述第一参与方,所述发送给所述第一参与方的混淆电路中只包含所述函数体;
基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;
将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方;
其中,所述第二参与方基于自身对应的密文集,确定自身的实际输入对应的密文串,发送给所述第一参与方;基于所述第一参与方对应的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串并基于所述第一参与方和所述第二参与方各自的实际输入对应的密文串以及所述发送给所述第一参与方的混淆电路,进行针对所述目标函数的安全多方计算。
16.根据权利要求15所述的方法,其特征在于,所述可能取值包括0和1。
17.根据权利要求15所述的方法,其特征在于,所述基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集,包括:
基于所述第一输入线路和所述第二输入线路在所述混淆电路中的密钥,从字节维度,分别对所述第一输入线路和所述第二输入线路的可能取值进行加密,以生成所述第一输入线路和所述第二输入线路各自对应的密文集。
18.根据权利要求15所述的方法,其特征在于,还包括:
将可能取值的标识关联至对应的密文,并将所述标识配置到所述密文集中,以供所述第二参与方根据所述标识从其密文集中选择密文。
19.根据权利要求15所述的方法,其特征在于,还包括:
从字节维度,为所述第一输入线路生成第一随机数组和第二随机数组;
将所述第一随机数组发送给所述第一参与方,将所述第二随机数组发送给所述第二参与方,以供所述第一参与方和所述第二参与方根据各自收到的随机数组进行配合,以确定所述第一参与方的实际输入对应的密文串。
20.根据权利要求19所述的方法,其特征在于,所述从字节维度,为所述第一输入线路生成第一随机数组和第二随机数组,包括:
针对所述第一输入线路中的目标字节,生成对应0值的随机数和对应1值的随机数,并配置到所述目标字节上的所述第二随机数组中;
生成目标取值,并将所述目标取值以及所述目标字节上的所述第二随机数组中对应所述目标取值的随机数,配置到所述目标字节上的所述第一随机数组中;
其中,所述目标取值为0或1,所述目标字节为输入线路中的任一字节。
21.根据权利要求20所述的方法,其特征在于,所述随机数的字节数与密文集中包含的密文的字节数一致。
22.根据权利要求15所述的方法,其特征在于,所述将所述混淆电路发送给参与安全多方计算的第一参与方,包括:
在所述第一参与方和所述第二参与方进行所述安全多方计算之前,将所述混淆电路发送给所述第一参与方。
23.一种安全多方计算方法,适用于第二参与方,其特征在于,所述方法包括:
获取服务器提供的所述第二参与方自身以及第一参与方各自对应的密文集,其中,所述密文集为所述服务器基于目标函数的混淆电路中所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路的可能取值而生成的;
根据自身的密文集,确定自身的实际输入对应的密文串;
将所述密文串提供给所述第一参与方;
基于所述第一参与方对应的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串并基于所述第一参与方和所述第二参与方各自的实际输入对应的密文串以及服务器提供给所述第一参与方的混淆电路,参与针对所述目标函数的安全多方计算,所述服务器提供给所述第一参与方的混淆电路中只包含函数体。
24.根据权利要求23所述的方法,其特征在于,所述可能取值包括0和1。
25.根据权利要求23所述的方法,其特征在于,所述根据自身的密文集,确定自身的实际输入对应的密文串,包括:
针对其实际输入中的目标字节,根据所述目标字节上的实际取值,从其密钥集中,在所述目标字节上选择与实际取值对应的密文,以生成所述第二参与方的实际输入对应的密文串;
其中,所述目标字节为所述第二参与方的实际输入中的任意字节。
26.根据权利要求23所述的方法,其特征在于,所述基于所述第一参与方对应的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串,包括:
获取所述服务器提供的所述第一输入线路下的第二随机数组;
基于所述第二随机数组,与所述第一参与方进行配合,以确定所述第一参与方的实际输入对应的密文串。
27.根据权利要求26所述的方法,其特征在于,所述第一输入线路的单个字节下的第二随机数组中包含对应0值的随机数和对应1值的随机数。
28.根据权利要求26所述的方法,其特征在于,所述基于所述第二随机数组,与所述第一参与方进行配合,以确定所述第一参与方的实际输入对应的密文串,包括:
针对所述第一输入线路下的目标字节,接收所述第一参与方提供的所述目标字节对应的第一参数,所述第一参数为所述第一参与方在其实际输入的目标字节上,对所述目标字节上的实际取值与所述目标字节对应的第一随机数组中的目标取值进行异或计算而产生的;
从所述第一参与方对应的密文集中,查找所述目标字节上目标可能取值对应的目标密文;
从所述目标字节上的第二随机数组中,选择对应所述第一参数的目标随机数;
对所述目标密文和所述目标随机数进行异或计算,以获得所述目标字节在所述目标可能取值下对应的第二参数,并提供给所述第一参与方,以供所述第一参与方计算其实际输入中所述目标字节对应的密文;
其中,所述目标可能取值为所述第一输入线路中目标字节上所有可能取值中的任意一个,所述目标字节为所述第一输入线路中的任意字节;所述目标字节上的第一随机数组中包含所述目标取值以及所述目标字节上的第二随机数组中与所述目标取值对应的随机数。
29.一种安全多方计算方法,适用于第一参与方,其特征在于,所述方法包括:
获取服务器提供的目标函数对应的混淆电路,所述服务器提供给所述第一参与方的混淆电路中只包含函数体,所述混淆电路是所述服务器基于所述目标函数构建的,所述混淆电路中包含所述函数体、所述第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
获取所述第二参与方提供的所述第二参与方的实际输入对应的密文串;
基于所述第二参与方所保存的所述第一参与方对应的密文集,与自身进行协商交互,以确定所述第一参与方自身的实际输入对应的密文串;
根据所述第一参与方和所述第二参与方各自的实际输入对应的密文串,以及所述服务器提供给所述第一参与方的混淆电路,参与针对所述目标函数的安全多方计算。
30.根据权利要求29所述的方法,其特征在于,还包括:
将所述第一参与方和所述第二参与方各自的实际输入对应的密文串,输入所述服务器提供给所述第一参与方的混淆电路,以获得所述安全多方计算的计算结果。
31.根据权利要求29所述的方法,其特征在于,所述第一输入线路的目标字节上的第一随机数组包含目标取值以及所述目标字节上的第二随机数组中对应于所述目标取值的随机数;
其中,所述目标字节上的第二随机数组中包含对应0值的随机数和对应1值的随机数;所述目标取值为0或1;所述目标字节为所述第一输入线路中的任意字节。
32.根据权利要求31所述的方法,其特征在于,所述随机数的字节数与密文的字节数一致。
33.根据权利要求31所述的方法,其特征在于,所述基于所述第二参与方所保存的所述第一参与方对应的密文集,与自身进行协商交互,以确定所述第一参与方自身的实际输入对应的密文串,包括:
在自身实际输入的所述目标字节上,对所述目标字节上的实际取值与所述目标字节对应的所述目标取值进行异或计算,以获得所述目标字节对应的第一参数;
将所述第一参数提供给所述第二参与方,以与第二参与方相互配合而确定所述第一参与方自身的实际输入对应的密文串。
34.根据权利要求33所述的方法,其特征在于,所述将所述第一参数提供给所述第二参与方,以与第二参与方相互配合而确定所述第一参与方自身的实际输入对应的密文串,包括:
将所述第一参数提供给所述第二参与方,以供所述第二参与方根据所述第一参数,生成所述目标字节在各种可能取值下对应的第二参数;
确定与其实际输入的目标字节上的实际取值对应的目标第二参数;
对所述目标第二参数以及所述目标字节上的第一随机数组中的随机数进行异或计算,以获得计算结果;
将所述计算结果,作为所述第一参与方实际输入中所述目标字节对应的密文,以获得所述第一参与方自身的实际输入对应的密文串。
35.一种计算设备,其特征在于,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
构建目标函数对应的混淆电路,所述混淆电路中包含函数体、第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
通过所述通信组件将所述混淆电路发送给所述第一参与方,所述发送给所述第一参与方的混淆电路中只包含所述函数体;
基于所述第一输入线路和所述第二输入线路的可能取值,生成所述第一参与方和所述第二参与方各自对应的密文集;
通过所述通信组件将所述第一参与方和所述第二参与方各自对应的密文集,发送给所述第二参与方;
其中,所述第二参与方基于自身对应的密文集,确定自身的实际输入对应的密文串,发送给所述第一参与方;基于所述第一参与方对应的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串并基于所述第一参与方和所述第二参与方各自的实际输入对应的密文串以及所述发送给所述第一参与方的混淆电路,进行针对所述目标函数的安全多方计算。
36.一种计算设备,其特征在于,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
通过所述通信组件获取服务器提供的第二参与方自身以及第一参与方各自对应的密文集,其中,所述密文集为所述服务器基于目标函数的混淆电路中所述第一参与方对应的第一输入线路和所述第二参与方对应的第二输入线路的可能取值而生成的;
根据自身的密文集,确定自身的实际输入对应的密文串;
通过所述通信组件将所述密文串提供给所述第一参与方,基于所述第一参与方对应的密文集,与所述第一参与方进行协商交互,以供所述第一参与方确定出其自身的实际输入对应的密文串并基于所述第一参与方和所述第二参与方各自的实际输入对应的密文串以及服务器提供给所述第一参与方的混淆电路,参与针对所述目标函数的安全多方计算,所述服务器提供给所述第一参与方的混淆电路中只包含函数体。
37.一种计算设备,其特征在于,包括存储器、处理器和通信组件;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述通信组件耦合,用于执行所述一条或多条计算机指令,以用于:
通过所述通信组件获取服务器提供的目标函数对应的混淆电路,所述服务器提供给第一参与方的混淆电路中只包含函数体,所述混淆电路是所述服务器基于所述目标函数构建的,所述混淆电路中包含所述函数体、所述第一参与方对应的第一输入线路和第二参与方对应的第二输入线路;
获取所述第二参与方提供的所述第二参与方的实际输入对应的密文串;
基于所述第二参与方所保存的所述第一参与方对应的密文集,与自身进行协商交互,以确定所述第一参与方自身的实际输入对应的密文串;根据所述第一参与方和所述第二参与方各自的实际输入对应的密文串,以及所述服务器提供给所述第一参与方的混淆电路,参与针对所述目标函数的安全多方计算。
38.一种存储计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求15-34任一项所述的安全多方计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214075.5A CN113452649B (zh) | 2020-03-24 | 2020-03-24 | 一种安全多方计算方法、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214075.5A CN113452649B (zh) | 2020-03-24 | 2020-03-24 | 一种安全多方计算方法、设备、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113452649A CN113452649A (zh) | 2021-09-28 |
CN113452649B true CN113452649B (zh) | 2023-09-12 |
Family
ID=77807477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010214075.5A Active CN113452649B (zh) | 2020-03-24 | 2020-03-24 | 一种安全多方计算方法、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113452649B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024674A (zh) * | 2021-11-23 | 2022-02-08 | 支付宝(杭州)信息技术有限公司 | 两方安全比较的方法及系统 |
CN114499845B (zh) * | 2022-01-13 | 2024-04-30 | 蚂蚁区块链科技(上海)有限公司 | 多方安全计算的方法、系统、装置、存储介质及设备 |
CN117114059A (zh) * | 2023-05-16 | 2023-11-24 | 华为云计算技术有限公司 | 神经网络中激活函数的计算方法、装置以及计算设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734043B1 (en) * | 2005-01-25 | 2010-06-08 | Altera Corporation | Encryption key obfuscation and storage |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
JP2019049641A (ja) * | 2017-09-11 | 2019-03-28 | 日本電信電話株式会社 | 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム |
CN110086615A (zh) * | 2019-05-06 | 2019-08-02 | 福建师范大学 | 一种媒介混淆的分布式多授权方密文策略属性基加密方法 |
CN110166446A (zh) * | 2019-05-13 | 2019-08-23 | 矩阵元技术(深圳)有限公司 | 一种基于安全多方计算的地理加权平均中心的实现方法 |
CN110580410A (zh) * | 2019-08-09 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 模型参数确定方法、装置和电子设备 |
CN110781502A (zh) * | 2019-11-06 | 2020-02-11 | 广州信安数据有限公司 | 一种多方可信计算平台及计算方法 |
-
2020
- 2020-03-24 CN CN202010214075.5A patent/CN113452649B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734043B1 (en) * | 2005-01-25 | 2010-06-08 | Altera Corporation | Encryption key obfuscation and storage |
JP2019049641A (ja) * | 2017-09-11 | 2019-03-28 | 日本電信電話株式会社 | 難読化回路生成装置、難読化回路計算装置、難読化回路生成方法、難読化回路計算方法、プログラム |
CN109241016A (zh) * | 2018-08-14 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN110086615A (zh) * | 2019-05-06 | 2019-08-02 | 福建师范大学 | 一种媒介混淆的分布式多授权方密文策略属性基加密方法 |
CN110166446A (zh) * | 2019-05-13 | 2019-08-23 | 矩阵元技术(深圳)有限公司 | 一种基于安全多方计算的地理加权平均中心的实现方法 |
CN110580410A (zh) * | 2019-08-09 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 模型参数确定方法、装置和电子设备 |
CN110781502A (zh) * | 2019-11-06 | 2020-02-11 | 广州信安数据有限公司 | 一种多方可信计算平台及计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113452649A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113452649B (zh) | 一种安全多方计算方法、设备、系统及存储介质 | |
US11341269B2 (en) | Providing security against user collusion in data analytics using random group selection | |
Atiewi et al. | Scalable and secure big data IoT system based on multifactor authentication and lightweight cryptography | |
US11063755B2 (en) | Generating a key at a device based on a memory of the device | |
CN111049650B (zh) | 一种基于sm2算法的协同解密方法及装置、系统、介质 | |
CN110061840B (zh) | 数据加密方法、装置、计算机设备及存储介质 | |
US11882102B2 (en) | Generating a device identification key from a base key for authentication with a network | |
CN106797314B (zh) | 密码系统、网络设备、共享方法以及计算机可读存储介质 | |
CN106487503B (zh) | 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法 | |
RU2636109C2 (ru) | Использующее общий ключ сетевое устройство и его конфигурирование | |
Narayan et al. | Multiterminal secrecy by public discussion | |
US10791124B2 (en) | Method and terminal device for encrypting message | |
WO2021239008A1 (zh) | 一种基于隐私保护的加密方法和系统 | |
CN112003696B (zh) | Sm9密钥生成方法、系统、电子设备、装置及存储介质 | |
CN107196919B (zh) | 一种匹配数据的方法和装置 | |
CN111723384B (zh) | 数据处理方法、系统及设备 | |
CN111177739A (zh) | 一种数据处理方法、信息交互系统及计算机存储介质 | |
CN113239403A (zh) | 一种数据共享方法及装置 | |
KR101697868B1 (ko) | 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치 | |
CN111767411A (zh) | 知识图谱表示学习优化方法、设备及可读存储介质 | |
Zickau et al. | Applied attribute-based encryption schemes | |
CN114244524A (zh) | 一种基于区块链的数据共享方法及系统 | |
CN117319086B (zh) | 不经意传输系统、方法、电子设备及存储介质 | |
US11539535B2 (en) | Generating an authentication result by using a secure base key | |
CN114760602B (zh) | 全息通信方法、装置、系统及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |