CN114499845B - 多方安全计算的方法、系统、装置、存储介质及设备 - Google Patents

多方安全计算的方法、系统、装置、存储介质及设备 Download PDF

Info

Publication number
CN114499845B
CN114499845B CN202210036346.1A CN202210036346A CN114499845B CN 114499845 B CN114499845 B CN 114499845B CN 202210036346 A CN202210036346 A CN 202210036346A CN 114499845 B CN114499845 B CN 114499845B
Authority
CN
China
Prior art keywords
party
target
true value
confusion
true
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
Application number
CN202210036346.1A
Other languages
English (en)
Other versions
CN114499845A (zh
Inventor
李漓春
尹栋
赵原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210036346.1A priority Critical patent/CN114499845B/zh
Publication of CN114499845A publication Critical patent/CN114499845A/zh
Application granted granted Critical
Publication of CN114499845B publication Critical patent/CN114499845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书实施例提供一种多方安全计算的方法、装置及系统,在多方安全计算的方法中,第一方生成第一随机数作为目标计算结果的第一方分片,该目标计算结果为混淆电路中目标导线的实际真值与第一方拥有的第一数据进行第一运算的结果。之后第一方还基于目标导线的两个真值分别与第一数据进行第一运算的两个结果,以及第一随机数,确定两个目标数据,并将其加密后提供给第二方,从而第二方通过解密得到目标计算结果的第二方分片。

Description

多方安全计算的方法、系统、装置、存储介质及设备
技术领域
本说明书一个或多个实施例涉及安全技术领域,尤其涉及一种多方安全计算的方法、装置及系统。
背景技术
多方安全计算(Secure Multi-Party Computation,MPC)又称为安全多方计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。
混淆电路和秘密分享(secret sharing)都可实现多方安全计算,两者各有优缺点,可以配合一起使用(也称混合使用)。比如,混合使用混淆电路和秘密分享来进行安全的乘法运算等等。
传统技术中,为了混合使用混淆电路和秘密分享,需要将混淆电路的密态转换为秘密分享的密态。然而该转换过程通常需要在混淆电路中引入额外的运算,比如减法,这极大地影响了多方安全计算效率。
发明内容
本说明书一个或多个实施例描述了一种多方安全计算的方法、装置及系统,可以提高多方安全计算效率。
第一方面,提供了一种多方安全计算的方法,包括:
第一方生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;
所述第一方基于所述目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
所述第一方利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,并将两个加密结果提供给第二方;
所述第二方利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果,得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得。
第二方面,提供了一种多方安全计算的方法,包括:
生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;
基于目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,得到两个加密结果;
将所述两个加密结果提供给第二方,以供所述第二方通过解密所述两个加密结果得到所述目标计算结果的第二方分片。
第三方面,提供了一种多方安全计算的系统,包括:
第一方,用于生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;
所述第一方,还用于基于所述目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
所述第一方,还用于利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,并将两个加密结果提供给第二方;
所述第二方,用于利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果,得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得。
第四方面,提供了一种多方安全计算的装置,包括:
生成单元,用于生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;
确定单元,用于基于目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
加密单元,用于利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,得到两个加密结果;
发送单元,用于将所述两个加密结果提供给第二方,以供所述第二方通过解密所述两个加密结果得到所述目标计算结果的第二方分片。
第五方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
本说明书一个或多个实施例提供的多方安全计算的方法、装置及系统,第一方生成第一随机数作为目标计算结果的第一方分片,该目标计算结果为混淆电路中目标导线的实际真值与第一方拥有的第一数据进行第一运算的结果。之后第一方还基于目标导线的两个真值分别与第一数据进行第一运算的两个结果,以及第一随机数,确定两个目标数据,并将其加密后提供给第二方,从而第二方通过解密两个加密结果,得到目标计算结果的第二方分片。可见,在本说明书实施例中,无需在混淆电路中引入额外的运算,即可混合使用混淆电路和秘密分享来进行安全运算,由此可以大大提升多方安全计算效率。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的门电路示意图;
图2为本说明书一个实施例披露的实施场景示意图;
图3示出根据一个实施例的多方安全计算的方法交互图;
图4示出根据一个实施例的多方安全计算的系统示意图;
图5示出根据一个实施例的多方安全计算的装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书实施例提供的方案之前,先对混淆电路和秘密分享两种多方安全计算方法作以下说明。
秘密分享也称为秘密分割、秘密共享,这一密码学技术最初是用于秘密信息的管理。它的基本原理是将秘密拆分成多个分片(share),分别交给不同人保管。只有超过门限数量的人将它们的分片合并,才能恢复秘密,少于门限数量的人则无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同。
秘密分享用于多方安全计算时,采用了分片转换(share conversion)技术。首先,各方的输入数据分别拆分成分片,并互相交换分片。然后各方分别对本地的多个分片进行转换运算,各自得到一个新分片。最后,各方合并所有新分片,得到运算结果。
需要说明,基于秘密分享的多方安全计算,可以包括安全乘法和加减法,但不支持其它运算。
混淆电路(Garbled Circuit,GC)通过用计算机模拟专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)来实现多方安全计算。任何给定的计算任务都可以用为其设计的ASIC来实现,即按照运算逻辑将多个运算门(与门、异或门等)连接起来构成门电路,使用门电路来进行运算。例如s=a AND b AND d这一运算可以用如图1示出的门电路来计算。
图1中,该电路由2个与门组成。与门1的输入导线(wire)为a、b,输出导线为c(也称中间输出线)。与门2的输入导线为c、d,输出导线为s(也称最终输出线)。混淆电路将运算任务表示为门电路,并对门的每根导线进行加密(也称标注),加密后的门电路称为混淆电路。最终通过用计算机来执行混淆电路的运算,实现多方安全计算。
具体而言,基于混淆电路实现的多方安全计算主要包括混淆表生成和运算两个阶段。参与多方安全计算的两方中的一方作为混淆电路生成方(以下称电路生成方),在混淆表生成阶段生成混淆电路;另一方作为混淆电路执行方(以下称电路执行方),在运算阶段执行混淆电路。
以下先对电路生成方生成混淆表的过程进行说明。
每个运算门的运算逻辑可以用真值表来表示和执行。例如,图1中与门1的真值表可以如表1所示。
表1
一个运算门的真值表表明了该门的两根输入导线(如,a和b)取任何值时,输出导线(如,c)的对应真值。真值表的每一行对应两根输入导线的一种输入值组合。
为了在电路的运算过程中,隐藏各根导线的实际真值,每根导线的真值0和1分别用两个随机比特串(以下称混淆串)进行标注,每根导线所标注的混淆串不同。在一个例子中,在对图1中的各根导线进行标注之后,表1示出的真值表可以如下。表2中,不同上下标的X表示不同的混淆串。
表2
a b c
X0 a X0 b X0 c
X0 a X1 b X0 c
X1 a X0 b X0 c
X1 a X1 b X1 c
接着,对上表的每一行,使用两根输入导线的混淆串作为秘钥,加密输出导线的混淆串,就得到了表3示出的混淆表。
表3
最后,打乱每行的顺序,与门1的混淆表就准备好了。
从表3可以得出,如果获得输入导线a的一个混淆串和输入导线b的一个混淆串,只能解密出一行,得到输出导线c的一个混淆串。在此过程中,从混淆串得不到原始的真值。
混淆表准备好后,电路生成方将所有门的混淆表发送给电路执行方。
以上是对混淆表生成过程的说明,以下再对电路执行方的运算过程进行说明。
首先,电路执行方获取门电路每根输入导线的实际真值的实际混淆串。如,图1中的a,b和d。
具体地,对于对应于电路生成方输入数据的各根输入导线,电路生成方将各根输入导线的实际真值的实际混淆串发送给电路执行方。
对于对应于电路执行方输入数据的每根输入导线,双方执行一次1-out-of-2OT协议。在执行该协议的过程中,电路生成方作为OT协议发送方,准备真值0的混淆串和真值1的混淆串作为OT协议的两个输入。电路执行方作为OT协议的接收方,将其拥有的实际真值作为OT选项。OT协议的执行结果是:电路执行方获得其拥有的实际真值的实际混淆串。
其次,电路执行方根据其获取的输入导线的实际真值的实际混淆串,解密电路的每个门的混淆表中的一行,获得输出导线的一个混淆串。比如,获得图1中输出导线s的一个混淆串。
比如,在图1示出的例子中,可以先利用输入导线a和b的混淆串,解密与门1的混淆表的一行,得到输出导线c的一个混淆串。然后利用输出导线c和输入导线d的混淆串,解密与门2的混淆表的一行,得到s的一个混淆串。
最后,电路执行方将电路的最终输出线的混淆串发送给电路生成方,电路生成方将混淆串翻译回对应的真值,即为运算结果。
通常情况下,基于混淆电路的多方安全计算可以为任意计算,但是通信量非常大。
由于混淆电路和秘密分享各有优缺点,因此可以将该两者混合使用。当前最流行的混合方式是ABY这一多方安全计算框架,以下结合例子对该混合方式进行说明。
假设第一方和第二方需要安全计算C=a×B,其中,a是一个二进制比特值,其对应于混淆电路中目标导线的实际真值;B为电路生成方拥有的私有数据,其可以为比特值也可以为整数。该安全计算要求C处于秘密分享的密态。
传统技术中,实现上述安全计算的方法是:将a从混淆电路的密态转换为秘密分享的密态,然后基于秘密分享的方法进行安全计算C=a×B。而将a从混淆电路的密态转换为秘密分享的密态性能较差,因为为实现该转换,需要基于混淆电路执行减法运算,而一个减法需要t个AND门,t为秘密分片的比特数,由此会影响多方安全计算的计算效率。
为此,本申请的发明人提出一种更高效地安全计算方案,该方案无需在混淆电路中引入额外的运算,即可实现混合使用混淆电路和秘密分享进行安全运算。以下进行详细说明。
图2为本说明书一个实施例披露的实施场景示意图。图2中,第一方为电路生成方,第二方为电路执行方。该第一方和第二方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。
具体地,第一方生成第一随机数r,并将其作为目标计算结果C的第一方分片C1。也即C1=r。这里的目标计算结果C=a×B,其中,a为混淆电路中目标导线的实际真值,其取值为0或者1。应理解,这里的a处于混淆电路的密态(即第一方拥有针对a的两种取值分别标注的两个混淆串,第二方拥有a的实际取值的实际混淆串)。B为第一方的隐私数据(以下称第一数据)。之后,第一方基于目标导线的两个真值0和1分别与第一数据B进行乘法运算的两个结果,以及第一随机数r,确定两个目标数据:0×B-r和1×B-r。之后可以对该两个目标数据进行加密,并将两个加密结果Enc(L(0),-r)和Enc(L(1),B-r)提供给第二方。从而第二方通过解密两个加密结果,得到目标计算结果的第二方分片C2
应理解,上述是以目标计算结果为a与B的乘积为例来说的,当然在实际应用中,上述目标计算结果也可以为a与B的和或者差等等,本说明书对此不作限定。
此外,在第一方和第二方分别确定出各自的本方分片C1和C2后,第一方和第二方可以基于各自确定的本方分片C1和C2,联合执行基于秘密分享的目标运算。这里的目标运算可以包括乘法以及加减法等等。
需要说明,由于在上述计算方法中,可以直接对处于混淆电路密态的a和第一数据B进行第一运算,且运算结果为秘密分享的密态,即第一方和第二方各自拥有运算结果的一个分片,也就是说,本方案无需在混淆电路中引入额外的运算,即可实现混合使用混淆电路和秘密分享进行安全运算,由此可以大大提升多方安全计算效率。
图3示出根据一个实施例的多方安全计算的方法交互图。如图3所示,该方至少可以包括如下步骤。
步骤302,第一方生成第一随机数,并将其作为目标计算结果的第一方分片。
其中,所述目标计算结果为混淆电路中目标导线的实际真值与第一方拥有的第一数据进行第一运算的结果。
上述混淆电路可以是由第一方生成,其可以用于对第一方的第一隐私数据和第二方的第二隐私数据进行任意的安全计算,比如,安全乘法、安全比较以及安全加减法等等。上述目标导线可以为混淆电路的最终输出线,也可以为混淆电路的中间输出线。
在一个示例中,在上述混淆电路用于进行安全比较,且目标导线为混淆电路的最终输出线时,上述目标导线的实际真值指示第一方的第一隐私数据和第二方的第二隐私数据通过混淆电路进行比较的结果。
此外,上述第一运算可以包括但不限于乘法运算或者加减法运算等等。以及上述第一数据可以为二进制比特值或者整数等。
步骤304,第一方基于目标导线的两个真值分别与第一数据进行第一运算的两个结果,以及第一随机数,确定分别对应于两个真值的两个目标数据。
如前所述,目标导线的两个真值可以包括真值0和真值1,上述确定分别对应于两个真值的两个目标数据具体可以包括:对真值0与第一数据进行第一运算,得到第一结果。将第一结果与第一随机数的差值,作为对应于真值0的目标数据。对真值1与第一数据进行第一运算,得到第二结果。将第二结果与第一随机数的差值,作为对应于真值1的目标数据。
假设将第一随机数表示为r,将第一数据表示为B,那么在上述第一运算为乘法运算时,对应于真值0的目标数据可以表示为:0×B-r=-r,以及对应于真值1的目标数据可以表示为:1×B-r=B-r。
应理解,在上述第一运算为加减法运算时,对应的两个目标数据的确定方类似,本说明书在此不复赘述。
步骤306,第一方利用混淆电路中针对目标导线的两个真值分别标注的两个混淆串,对应加密两个目标数据,并将两个加密结果提供给第二方。
在一个示例中,上述两个混淆串可以表示为L(0)和L(1),该两个混淆串各自所包含的比特数基于安全参数的大小而确定。比如,如果安全参数的大小为128比特,那么该混淆串所包含的比特数为128。
上述对应加密两个目标数据可以包括:利用针对目标导线的真值0标注的第一混淆串,加密对应于真值0的目标数据。利用针对目标导线的真值1标注的第二混淆串,加密对应于真值1的目标数据。
如前述例子,利用L(0)加密-r,以及利用L(1)加密:B-r,得到的两个加密结果分别表示为:Enc(L(0),-r),Enc(L(1),B-r)。
在一个示例中,可以将第一混淆串截短成预定长度后再与对应于真值0的目标数据进行异或运算,并将异或运算的结果作为对应的加密结果。另一个目标数据的加密方法类似。
在另一个示例中,也可以对第一混淆串进行哈希运算,之后对获得的哈希值与对应于真值0的目标数据进行异或运算,以及将异或运算的结果作为对应的加密结果。另一个目标数据的加密方法类似。
最后,第一方在获得两个加密结果之后,还可以打乱该两个加密结果的顺序,然后将乱序后的两个加密结果提供给第二方。
步骤308,第二方利用目标导线的实际真值对应的实际混淆串,解密两个加密结果,得到目标计算结果的第二方分片。
其中,上述实际混淆串可以是由第二方通过与第一方联合执行混淆电路而获得。其中,第二方与第一方联合执行混淆电路的步骤可以与步骤302-步骤306同时执行,也可以在步骤302之前执行,本说明书对此不作限定。
第二方和第一方联合执行混淆电路具体可以包括:第一方对混淆电路中的每根导线(包括输入导线和输出导线)进行标注,然后针对每个需要生成混淆表的门(比如,与门),先生成对应的真值表,然后用每根导线的混淆串替换真值表中的真值,并通过两次对称加密和乱序混淆之后得到对应的混淆表。之后,第一方可以将各混淆表发送给第二方。
之后,第二方先获取输入导线(对应于双方输入数据的各根导线)的实际真值的实际混淆串,然后利用其解密电路的每个门的混淆表中的一行,获得每根输出导线(包括中间输出线和最终输出线)的实际真值对应的实际混淆串。
在一个示例中,第二方可以先根据实际混淆串,从两个加密结果中选取其中一个,然后,利用该实际混淆串解密选取的其中一个加密结果,得到目标计算结果的第二方分片。
在另一个示例中,第二方针对两个加密结果都进行解密,之后再结合预定规则,比如,解密结果的格式是否符合预定规范,从中选取一个解密结果作为目标计算结果的第二方分片。
以下结合上述另一个示例,对第二方的解密过程作如下说明:
如果上述两个加密结果是通过将两个混淆串截短成预定长度后再与两个目标数据进行异或运算得到,那么第二方可以通过将实际混淆串截短成预定长度后再与两个加密结果进行异或运算来进行解密。而如果上述两个加密结果是通过将两个混淆串先进行哈希运算,然后将得到的两个哈希值与两个目标数据进行异或运算得到,那么第二方可以先对实际混淆串进行哈希运算,然后将得到的哈希值与两个加密结果进行异或运算进行解密。
应理解,由于第二方获得的实际混淆串,为第一方针对目标导线的两个真值分别标注的两个混淆串中的一个,从而第二方只能解密出加密结果中的一个。
如前述例子,若第二方获得的实际混淆串与真值0相对应,则第二方解密得到的第二方分片C2=-r,而若第二方获得的实际混淆串与真值1相对应,则第二方解密得到的第二方分片为C2=B-r。而如前所述C1=r,从而C1+C2=r-r=0,或者C1+C2=r+B-r=B。由此可以看出,第一方分片C1与第二方分片C2之和与目标计算结果C=a×B相符,其中a为0或者1,从而本方案的拆分结果正确。
至此就实现了混合使用混淆电路和秘密分享进行安全的乘法运算,类似地,还可以进行安全的加减法运算等等。
之后,第一方和第二方,还可以基于各自确定的本方分片,联合执行基于秘密分享的目标运算。
综上,本说明书实施例提供的多方安全计算的方法,无需在混淆电路中引入额外的运算,即可混合使用混淆电路和秘密分享来进行安全运算,由此可以大大提升多方安全计算效率。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的系统,如图4所示,该系统可以包括:第一方402和第二方404。
第一方402,用于生成第一随机数,并将其作为目标计算结果的第一方分片,其中,该目标计算结果为混淆电路中目标导线的实际真值与第一方402拥有的第一数据进行第一运算的结果。
其中,第一运算为乘法运算。
上述目标导线的实际真值,指示第一方402的第一隐私数据和第二方404的第二隐私数据通过混淆电路进行比较的结果。
第一方402,还用于基于目标导线的两个真值分别与第一数据进行第一运算的两个结果,以及第一随机数,确定分别对应于两个真值的两个目标数据。
其中,上述目标导线的两个真值包括真值0和真值1,第一方402具体用于:
对真值0与第一数据进行第一运算,得到第一结果,将第一结果与第一随机数的差值,作为对应于真值0的目标数据;
对真值1与第一数据进行第一运算,得到第二结果,将第二结果与第一随机数的差值,作为对应于真值1的目标数据。
第一方402,还用于利用混淆电路中针对目标导线的两个真值分别标注的两个混淆串,对应加密两个目标数据,并将两个加密结果提供给第二方404。
其中,第一方402还具体用于:
利用针对目标导线的真值0标注的第一混淆串,加密对应于真值0的目标数据;
利用针对目标导线的真值1标注的第二混淆串,加密对应于真值1的目标数据。
第一方402还具体用于:
将两个加密结果乱序后提供给第二方404。
第二方404,用于利用目标导线的实际真值对应的实际混淆串,解密两个加密结果,得到目标计算结果的第二方分片,其中,该实际混淆串通过与第一方402联合执行混淆电路而获得。
第二方404具体用于:利用目标导线的实际真值对应的实际混淆串,解密乱序后的两个加密结果。
第一方402和第二方404,还用于基于各自确定的本方分片,联合执行基于秘密分享的目标运算。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的系统,可以大大提升多方安全计算效率。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的装置,该装置设置于第一方。如图5所示,该装置可以包括:
生成单元502,用于生成第一随机数,并将其作为目标计算结果的第一方分片,其中,该目标计算结果为混淆电路中目标导线的实际真值与第一方拥有的第一数据进行第一运算的结果。
确定单元504,用于基于目标导线的两个真值分别与第一数据进行第一运算的两个结果,以及第一随机数,确定分别对应于两个真值的两个目标数据。
加密单元506,用于利用混淆电路中针对目标导线的两个真值分别标注的两个混淆串,对应加密两个目标数据,得到两个加密结果。
发送单元508,用于将两个加密结果提供给第二方,以供第二方通过解密所述两个加密结果得到目标计算结果的第二方分片。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的装置,可以大大提升多方安全计算效率。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (16)

1.一种多方安全计算的方法,包括:
第一方生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;所述目标导线为所述混淆电路的最终输出线或者中间输出线;
所述第一方基于所述目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
所述第一方利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,并将两个加密结果提供给第二方;
所述第二方利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果,得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得;
所述目标导线的两个真值包括真值0和真值1;所述确定分别对应于所述两个真值的两个目标数据,包括:
对真值0与所述第一数据进行所述第一运算,得到第一结果;将所述第一结果与所述第一随机数的差值,作为对应于真值0的目标数据;
对真值1与所述第一数据进行所述第一运算,得到第二结果;将所述第二结果与所述第一随机数的差值,作为对应于真值1的目标数据。
2.根据权利要求1所述的方法,其中,所述对应加密所述两个目标数据,包括:
利用针对所述目标导线的真值0标注的第一混淆串,加密对应于真值0的目标数据;
利用针对所述目标导线的真值1标注的第二混淆串,加密对应于真值1的目标数据。
3.根据权利要求1所述的方法,其中,所述将两个加密结果提供给第二方,包括:
将所述两个加密结果乱序后提供给第二方;
所述第二方利用所述目标导线的实际真值对应的实际混淆串,解密乱序后的所述两个加密结果。
4.根据权利要求1所述的方法,其中,所述第一运算为乘法运算。
5.根据权利要求1所述的方法,其中,所述目标导线的实际真值,指示所述第一方的第一隐私数据和所述第二方的第二隐私数据通过所述混淆电路进行比较的结果。
6.根据权利要求1所述的方法,还包括:
所述第一方和第二方,基于各自确定的本方分片,联合执行基于秘密分享的目标运算。
7.一种多方安全计算的方法,通过第一方执行,包括:
生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;所述目标导线为所述混淆电路的最终输出线或者中间输出线;
基于目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,得到两个加密结果;
将所述两个加密结果提供给第二方,以供所述第二方利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果,得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得;
所述目标导线的两个真值包括真值0和真值1;所述确定分别对应于所述两个真值的两个目标数据,包括:
对真值0与所述第一数据进行所述第一运算,得到第一结果;将所述第一结果与所述第一随机数的差值,作为对应于真值0的目标数据;
对真值1与所述第一数据进行所述第一运算,得到第二结果;将所述第二结果与所述第一随机数的差值,作为对应于真值1的目标数据。
8.一种多方安全计算的系统,包括第一方和第二方;
所述第一方,用于生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;所述目标导线为所述混淆电路的最终输出线或者中间输出线;
所述第一方,还用于基于所述目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
所述第一方,还用于利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,并将两个加密结果提供给所述第二方;
所述第二方,用于利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果,得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得;
所述目标导线的两个真值包括真值0和真值1;所述第一方具体用于:
对真值0与所述第一数据进行所述第一运算,得到第一结果;将所述第一结果与所述第一随机数的差值,作为对应于真值0的目标数据;
对真值1与所述第一数据进行所述第一运算,得到第二结果;将所述第二结果与所述第一随机数的差值,作为对应于真值1的目标数据。
9.根据权利要求8所述的系统,其中,所述第一方还具体用于:
利用针对所述目标导线的真值0标注的第一混淆串,加密对应于真值0的目标数据;
利用针对所述目标导线的真值1标注的第二混淆串,加密对应于真值1的目标数据。
10.根据权利要求8所述的系统,其中,所述第一方还具体用于:
将所述两个加密结果乱序后提供给所述第二方;
所述第二方具体用于:利用所述目标导线的实际真值对应的实际混淆串,解密乱序后的所述两个加密结果。
11.根据权利要求8所述的系统,其中,所述第一运算为乘法运算。
12.根据权利要求8所述的系统,其中,所述目标导线的实际真值,指示所述第一方的第一隐私数据和所述第二方的第二隐私数据通过所述混淆电路进行比较的结果。
13.根据权利要求8所述的系统,
所述第一方和第二方,还用于基于各自确定的本方分片,联合执行基于秘密分享的目标运算。
14.一种多方安全计算的装置,设置于第一方,包括:
生成单元,用于生成第一随机数,并将其作为目标计算结果的第一方分片;其中,所述目标计算结果为混淆电路中目标导线的实际真值与所述第一方拥有的第一数据进行第一运算的结果;所述目标导线为所述混淆电路的最终输出线或者中间输出线;
确定单元,用于基于目标导线的两个真值分别与所述第一数据进行所述第一运算的两个结果,以及所述第一随机数,确定分别对应于所述两个真值的两个目标数据;
加密单元,用于利用所述混淆电路中针对所述目标导线的两个真值分别标注的两个混淆串,对应加密所述两个目标数据,得到两个加密结果;
发送单元,用于将所述两个加密结果提供给第二方,以供所述第二方利用所述目标导线的实际真值对应的实际混淆串,解密所述两个加密结果得到所述目标计算结果的第二方分片;其中,所述实际混淆串通过与所述第一方联合执行所述混淆电路而获得;
所述目标导线的两个真值包括真值0和真值1;所述确定单元具体用于:
对真值0与所述第一数据进行所述第一运算,得到第一结果;将所述第一结果与所述第一随机数的差值,作为对应于真值0的目标数据;
对真值1与所述第一数据进行所述第一运算,得到第二结果;将所述第二结果与所述第一随机数的差值,作为对应于真值1的目标数据。
15.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
CN202210036346.1A 2022-01-13 2022-01-13 多方安全计算的方法、系统、装置、存储介质及设备 Active CN114499845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210036346.1A CN114499845B (zh) 2022-01-13 2022-01-13 多方安全计算的方法、系统、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210036346.1A CN114499845B (zh) 2022-01-13 2022-01-13 多方安全计算的方法、系统、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
CN114499845A CN114499845A (zh) 2022-05-13
CN114499845B true CN114499845B (zh) 2024-04-30

Family

ID=81512353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210036346.1A Active CN114499845B (zh) 2022-01-13 2022-01-13 多方安全计算的方法、系统、装置、存储介质及设备

Country Status (1)

Country Link
CN (1) CN114499845B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452649A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 一种安全多方计算方法、设备、系统及存储介质
CN113591146A (zh) * 2021-07-29 2021-11-02 北京航空航天大学 基于合作的高效安全两方计算系统及计算方法
CN113821826A (zh) * 2021-09-30 2021-12-21 支付宝(杭州)信息技术有限公司 实现异或分片输入输出的布尔电路、方法和系统
CN113836595A (zh) * 2021-09-26 2021-12-24 支付宝(杭州)信息技术有限公司 两方安全比较的方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210359837A1 (en) * 2020-05-12 2021-11-18 Honeywell International Inc. Systems and methods for secure data computing and algorithm sharing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452649A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 一种安全多方计算方法、设备、系统及存储介质
CN113591146A (zh) * 2021-07-29 2021-11-02 北京航空航天大学 基于合作的高效安全两方计算系统及计算方法
CN113836595A (zh) * 2021-09-26 2021-12-24 支付宝(杭州)信息技术有限公司 两方安全比较的方法、装置和系统
CN113821826A (zh) * 2021-09-30 2021-12-21 支付宝(杭州)信息技术有限公司 实现异或分片输入输出的布尔电路、方法和系统

Also Published As

Publication number Publication date
CN114499845A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN111510281B (zh) 一种同态加密方法及装置
US20140233727A1 (en) Method for secure substring search
US20210243005A1 (en) Fully homomorphic encryption method and device and computer readable storage medium
US20230327856A1 (en) Secure multi-party computation methods, apparatuses, and systems
KR102520502B1 (ko) 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
CN108933650B (zh) 数据加解密的方法及装置
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
US9893880B2 (en) Method for secure symbol comparison
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
US20230299947A1 (en) Computer implemented system and method for sharing a common secret
US9300469B2 (en) Secure computing system, secure computing method, secure computing apparatus, and program therefor
CN114175572A (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
CN111030801A (zh) 一种多方分布式的sm9密钥生成、密文解密方法与介质
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
US20190215148A1 (en) Method of establishing anti-attack public key cryptogram
CN114499845B (zh) 多方安全计算的方法、系统、装置、存储介质及设备
CN114465708B (zh) 隐私数据处理方法及装置、系统、电子设备、存储介质
WO2019111319A1 (ja) 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
CN114239090A (zh) 多方安全计算的方法、装置及系统
Jambhekar et al. Bit level key agreement & exchange protocol for digital image steganography
CN112822026B (zh) 数字签名方法、装置及系统
Verma et al. Strong threshold secret image sharing based on boolean operation
CN117978388B (zh) 密钥生成的方法、装置、设备、介质及程序产品
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process

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