CN109067538B - 安全协议方法、计算机设备及存储介质 - Google Patents
安全协议方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109067538B CN109067538B CN201810738486.7A CN201810738486A CN109067538B CN 109067538 B CN109067538 B CN 109067538B CN 201810738486 A CN201810738486 A CN 201810738486A CN 109067538 B CN109067538 B CN 109067538B
- Authority
- CN
- China
- Prior art keywords
- participant
- component
- sharing
- polynomial
- result
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种安全协议方法、计算机设备和存储介质,一实施例的方法包括:基于待定素数的当前参与方加性共享分量确定当前参与方中间分量后,与对端参与方共享待定素数的幂指近似整数,获得当前参与方幂指近似整数共享分量;与对端参与方共享模指运算结果,并获得当前参与方模指运算共享分量后,与对端参与方依次进行多项式乘法共享和模数运算,获得当前参与方共享秘密分量;与对端参与方交换当前参与方共享秘密分量后,复原出的第一共享秘密与对端参与方复原出的第二共享秘密一致时,返回共享模指运算结果的步骤,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,第一共享秘密与第二共享秘密均一致时,判定待定素数为素数。
Description
技术领域
本发明涉及密码学技术领域,特别是涉及一种安全协议方法、计算机设备和计算机存储介质。
背景技术
RSA分布式密钥,通过在各参与方分别存储RSA私钥的分量,在进行RSA签名时,要求各参与方协同执行RSA签名生成操作。以RSA分布式密钥托管为例,通过在托管平台和客户端分别存储RSA私钥的分量,要求客户端与托管平台协同执行RSA签名生成操作,从而可以防止密钥托管机构滥用权力。为了确保分布式密钥的私钥安全,在生成私钥的阶段就要求两个或多个参与方通过执行安全多方计算协议来产生私钥分量,而不能有任何一个参与方获得完整的RSA私钥。在生成RSA私钥的过程中,需要获得一个模数N,该模数N必须是两个素数P和Q的乘积。如何通过安全计算协议来获得满足条件的N成为分布式生成RSA私钥的关键技术。
目前出现了一种BiPrimlaity素性检测方案,其是一种分布式检测素数的协议,通过两个参与方分别进行一个模幂运算,然后判断两方计算结果是否满足预先设定的条件,若满足则表明双方共同计算出的模数N一定是两个素数P和Q的乘积。另外出现了一种将安全计算协议具体化为基于半同态算法或者茫然传输(OT)协议的技术方案,但这些方案使用了消耗大量运算资源的安全两方计算协议,导致效率非常低。根据实际测试,对于1024比特的RSA模数平均需要1小时才能计算出一组RSA私钥。而对于2048比特的RSA模数,大约需要1~2天才能够计算出一组RSA私钥,显然不具有工程实用价值。
另外出现了一种改进方案,两个参与方Alice和Bob分别选择一个素数pa和pb,然后随机产生素数分量a和b,并执行两方安全计算协议获得N1=(a+b)papb,然后执行一个类似于BiPrimality的分布式素性检测协议,来判断N是不是3个素数的乘积。由于pa和pb均为素数,则N成为素数的概率等同于(a+b)成为素数的概率,这样产生的效率大大提高。但由于最终需要计算出的RSA模数N与被公开的中间结果N1之间,计算最大公约数就可以获得它们的公因子(a+b),因此并不安全,不具有实用价值。
发明内容
基于此,本申请实施例的目的在于提供一种安全协议方法、一种计算机设备和一种计算机存储介质。
一种安全协议方法,包括步骤:
当前参与方基于待定素数的当前参与方加性共享分量确定当前参与方中间分量;
基于所述当前参与方中间分量,当前参与方与对端参与方共享所述待定素数的幂指近似整数,当前参与方获得当前参与方幂指近似整数共享分量;
当前参与方与对端参与方共享模指运算结果,当前参与方获得当前参与方模指运算共享分量,所述模指运算结果基于所述当前参与方幂指近似整数共享分量以及对端参与方获得的对端参与方幂指近似整数共享分量确定;
基于所述当前参与方模指运算共享分量,当前参与方与对端参与方依次进行多项式乘法共享和模数运算,当前参与方获得当前参与方共享秘密分量;
当前参与方与对端参与方交换所述当前参与方共享秘密分量和对端参与方持有的对端参与方共享秘密分量后,当前参与方复原出第一共享秘密;
在所述第一共享秘密与对端参与方复原出的第二共享秘密一致时,返回当前参与方与对端参与方共享模指运算结果的步骤,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,所述第一共享秘密与所述第二共享秘密均一致时,判定所述待定素数为素数。
一种安全协议方法,包括步骤:
第一参与方基于待定素数的第一加性共享分量确定第一中间分量,第二参与方基于所述待定素数的第二加性共享分量确定第二中间分量;
基于所述第一中间分量、所述第二中间分量,第一参与方与第二参与方共享所述待定素数的幂指近似整数,第一参与方获得第一幂指近似整数共享分量,第二参与方获得第二幂指近似整数共享分量;
第一参与方与第二参与方共享模指运算结果,第一参与方获得第一模指运算共享分量,第二参与方获得第二模指运算共享分量,所述模指运算结果基于所述第一幂指近似整数共享分量、所述第二幂指近似整数共享分量确定;
基于所述第一模指运算共享分量、所述第二模指运算共享分量,第一参与方与第二参与方依次进行多项式乘法共享和模数运算,第一参与方获得第一共享秘密分量,第二参与方获得第二共享秘密分量;
第一参与方与第二参与方交换第一共享秘密分量和第二共享秘密分量后,第一参与方复原出第一共享秘密,第二参与方复原出第二共享秘密;
在所述第一共享秘密与所述第二共享秘密一致时,返回第一参与方与第二参与方共享模指运算结果的步骤,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,所述第一共享秘密与所述第二共享秘密均一致时,判定所述待定素数为素数。
一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
基于如上所述的实施例的方案,其在安全协议的执行处理过程中,对共享的待定素数进行素性检测,在素性检测的过程中可获得RSA模数N,在此情况下,一个随机大整数成为素数的概率是较高的,从而提高了RSA模数生成的效率,进而提高了安全协议的执行效率。
附图说明
图1为一个实施例中的安全协议方法的流程示意图;
图2为另一个实施例中的安全协议方法的流程示意图;
图3是一个实施例中的计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
一个实施例中的本申请的安全协议方法的应用环境涉及两个设备,即设备一和设备二,在一些实施例中,该设备一可以是终端,设备二可以是服务器,从而实现终端与服务器之间的安全协议处理过程。设备一和设备二具体可以是台式终端、移动终端以及其他的可以或者用以协同进行安全协议处理的设备,在设备二为服务器时,其可以是独立的服务器或者是多个服务器组成的服务器集群。
参考图1所示,一个实施例中的安全协议方法包括下述步骤S11至步骤S16,其是以一个设备(如上述设备一或设备二)的处理过程为例进行说明。
步骤S11:当前参与方基于待定素数的当前参与方加性共享分量确定当前参与方中间分量。
在其中一个实施例中,该当前参与方加性共享分量可以是随机生成的随机数。该待定素数基于该随机数以及对端参与方的随机数确定。
在其中一个实施例中,在确定当前参与方中间分量之后,当前参与方还可以将当前参与方中间分量表示为比特形式的当前参与方中间分量。此时,在下述各步骤的执行过程中,均可基于该比特形式的当前参与方中间分量进行。
步骤S12:基于当前参与方中间分量,当前参与方与对端参与方共享待定素数的幂指近似整数,当前参与方获得当前参与方幂指近似整数共享分量。
在一个实施例中,基于当前参与方中间分量,当前参与方与对端参与方共享待定素数的幂指近似整数,当前参与方获得当前参与方幂指近似整数共享分量,可以包括下述步骤S121至步骤S124。
步骤S121:当前参与方获取幂指整数的当前参与方多项式共享分量。
其中,该当前参与方多项式共享分量,可以基于放大倍数确定,以放大倍数为2t为例,该当前参与方多项式共享分量可以是2t。
步骤S122:基于当前参与方多项式共享分量、当前参与方中间分量,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果。
在一个实施例中,在上述当前参与方多项式共享分量是基于放大倍数确定的情况下,在基于当前参与方多项式共享分量、当前参与方中间分量,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果时,可以包括下述步骤S1221、步骤S1222。
步骤S1221:基于当前参与方多项式共享分量、当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果。
步骤S1222:当前参与方缩小当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果。
在一个实施例中,上述步骤S1221的基于当前参与方多项式共享分量、当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果的过程,可以包括下述步骤一至步骤四。
步骤一:当前参与方基于当前参与方中间分量和当前参与方多项式共享分量确定当前参与方乘积分量;其中,该当前参与方乘积分量可以是当前参与方中间分量和当前参与方多项式共享分量的乘积。
步骤二:当前参与方基于当前参与方中间分量和选择的第一随机数确定第一分量参数,基于当前参与方多项式共享分量和选择的第二随机数确定第二分量参数,并将第一分量参数和所述第二分量参数发送给第二参与方。在一个实施例中,该第一分量参数可以是当前参与方中间分量与选择的第一随机数之和,该第二分量参数可以是当前参与方多项式共享分量与选择的第二随机数之和。
步骤三:当前参与方基于第一随机数、第二随机数,与对端参与方计算出第一共享数。
在一个实施例中,当前参与方可以基于第一随机数、第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得该第一共享数。
一个实施例中,可以是由当前参与方最终计算出该第一共享数,此时,执行两个加性秘密转秘密之积协议的过程可以是如下所述:
当前参与方确定第一随机数和对端参与方的第二随机数的第一中间乘积,并获得当前参与方加密结果,将当前参与方加密结果发送给对端参与方。其中,当前参与方加密结果包括对第一随机数加密获得的第一随机数加密结果、对第二随机数加密获得的第二随机数加密结果和对第一中间乘积加密获得的第一中间乘积加密结果。
当前参与方接收对端参与方基于当前参与方加密结果和对端参与方确定的共享加密结果进行解密获得的第一共享数,该第一共享数由对端参与方基于当前参与方加密结果和对端参与方确定的对端参与方加密结果进行运算获得。
另一个实施例中,也可以是由对端参与方最终计算出该第一共享数,此时,执行两个加性秘密转秘密之积协议的过程可以是如下所述:
当前参与方确定第一随机数和对端参与方的第二随机数的第一中间乘积,并获得当前参与方加密结果;当前参与方加密结果包括对第一随机数加密获得的第一随机数加密结果、对第二随机数加密获得的第二随机数加密结果和对第一中间乘积加密获得的第一中间乘积加密结果;
当前参与方接收对端参与方发送的对端参与方加密结果,并根据当前参与方加密结果和对端参与方加密结果进行运算,获得共享加密结果,并将共享加密结果发送给对端参与方,由对端参与方对共享加密结果进行解密,获得第一共享数。
在另一个实施例中,当前参与方基于第一随机数、第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得第一共享数的过程,可以包括下述步骤(1)至步骤(5)。
步骤(1):当前参与方基于第一随机数,与对端参与方执行乘法转加法协议,获得第一加法分量,第一加法分量与对端参与方获得的第二加法分量之和为第一随机数与对端参与方持有的第四随机数的乘积。
步骤(2):当前参与方基于第二随机数,与对端参与方执行乘法转加法协议,当前参与方获得第三加法分量,第三加法分量与对端参与方获得的第四加法分量之和为第二随机数与对端参与方持有的第三随机数的乘积。
步骤(3):当前参与方根据第一随机数、第二随机数、第一加法分量和第三加法分量确定第一共享数当前参与方分量。在一个实施例中,该第一共享数当前参与方分量为第一随机数与第二随机数的乘积、第一加法分量以及第三加法分量的和值。
步骤(4):第一参与方获得第二参与方发送的第一共享数对端参与方分量后,根据第一共享数当前参与方分量与第一共享数对端参与方分量确定第一共享数。在一个实施例中,该第一共享数为第一共享数当前参与方分量与第一共享数对端参与方分量之和。
步骤四:当前参与方根据当前参与方乘积分量和第一共享数计算出当前参与方第一多项式乘法初始共享结果。
在一个实施例中,上述步骤S1221的基于当前参与方多项式共享分量、当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果的过程,可以包括下述步骤1至步骤4。
步骤1:当前参与方基于当前参与方中间分量和当前参与方多项式共享分量确定当前参与方乘积分量;其中,该当前参与方乘积分量可以是当前参与方中间分量和当前参与方多项式共享分量的乘积。
步骤2:当前参与方接收对端参与方发送的第一分量参数和第二分量参数,根据当前参与方中间分量和第一分量参数确定第三随机数,根据当前参与方多项式共享分量和第二分量参数确定第四随机数。在一个实施例中,该第三随机数可以是当前参与方中间分量减去第一分量参数的差值,第四随机数为当前参与方多项式共享分量减去第二分量参数的差值。
步骤3:当前参与方基于所述第三随机数、第四随机数,与对端参与方计算出第一共享数。在一个实施例中,当前参与方可以基于第三随机数、第四随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得该第一共享数。具体的执行两个加性秘密转秘密之积协议的过程可以与上述步骤三中的原理类似,在此不再赘述。
步骤4:当前参与方根据当前参与方乘积分量和第一共享数计算出当前参与方第一多项式乘法初始共享结果。
在另一个实施例中,在步骤S1222中当前参与方缩小当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果,可以采用下述各实施例中的任意一种方式进行。
在一个实施例中,当前参与方将当前参与方第一多项式乘法初始共享结果除以当前参与方多项式共享分量,获得当前参与方第一多项式乘法共享结果。
在另一个实施例中,当前参与方基于当前参与方第一多项式乘法初始共享结果、当前参与方多项式共享分量以及大于或者等于0的第一常数,获得缩小位数后的当前参与方第一多项式乘法共享结果。其中,该缩小位数后的当前参与方第一多项式乘法共享结果,可以是当前参与方第一多项式乘法初始共享结果与第一常数之差与当前参与方多项式共享分量的比值。
在另一个实施例中,当前参与方基于当前参与方第一多项式乘法初始共享结果、当前参与方多项式共享分量以及小于0的第二常数,获得缩小位数后的当前参与方第一多项式乘法共享结果。其中,缩小位数后的当前参与方第一多项式乘法共享结果,可以是当前参与方第一多项式乘法初始共享结果与第二常数之差与当前参与方多项式共享分量的比值。
在另一个实施例中:
当前参与方基于当前参与方第一多项式乘法初始共享结果、当前参与方多项式共享分量以及小于0的第二常数,获得缩小位数后的当前参与方第一多项式乘法共享结果;
当前参与方与对端参与方进行加性共享大小判断,基于第二常数与对端参与方持有的常数之间满足的大小关系,更新缩小位数后的当前参与方第一多项式乘法共享结果。
其中,更新缩小位数后的当前参与方第一多项式乘法共享结果的方式可以是:
可以在两倍对端参与方持有的常数减去第二常数之差大于或者等于两倍当前参与方多项式共享分量时,将当前参与方第一多项式乘法共享结果减去2之后的值作为更新后的当前参与方第一多项式乘法共享结果;
在两倍对端参与方持有的常数减去第二常数之差大于或者等于当前参与方多项式共享分量、且小于两倍当前参与方多项式共享分量时,将当前参与方第一多项式乘法共享结果减去1之后的值作为更新后的当前参与方第一多项式乘法共享结果。
步骤S123:基于当前参与方第一多项式乘法共享结果、当前参与方多项式共享分量以及幂指整数,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第二多项式乘法共享结果。具体的多项式乘法共享的方式可以采用任何可能的方式进行。
步骤S124:基于当前参与方第二多项式乘法共享结果更新当前参与方多项式共享分量,返回当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果的步骤S122,直至达到预设次数,并基于最终获得的当前参与方第二多项式乘法共享结果确定当前参与方幂指近似整数共享分量。
步骤S13:当前参与方与对端参与方共享模指运算结果,当前参与方获得当前参与方模指运算共享分量,其中,该模指运算结果基于当前参与方幂指近似整数共享分量以及对端参与方获得的对端参与方幂指近似整数共享分量确定。具体的共享模指运算结果的方式可以采用任何可能的方式进行。
步骤S14:基于当前参与方模指运算共享分量,当前参与方与对端参与方依次进行多项式乘法共享和模数运算,当前参与方获得当前参与方共享秘密分量。
步骤S15:当前参与方与对端参与方交换当前参与方共享秘密分量和对端参与方持有的对端参与方共享秘密分量后,当前参与方复原出第一共享秘密。
步骤S16:在第一共享秘密与对端参与方复原出的第二共享秘密一致时,返回当前参与方与对端参与方共享模指运算结果的步骤S13,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,第一共享秘密与第二共享秘密均一致时,判定待定素数为素数。判定待定素数为素数,则说明该待定素数为满足要求的素数,在此过程中获得的共享数则可以作为最终确定的RSA模数。
基于如上所述的实施例,以下结合一个两个参与方进行交互的实施例进行举例说明。在下述实施例中,以其中一个参与方(第一参与方)为Alice,另一个参与方(第二参与方)为Bob为例进行说明。该实施例中的涉及双方交互的安全协议方法包括下述步骤S21至步骤S26。
步骤S21:第一参与方Alice基于待定素数的第一加性共享分量确定第一中间分量,第二参与方Bob基于待定素数的第二加性共享分量确定第二中间分量。
在一个实施例中,该第一加性共享分量可以是一个随机生成的随机数p1,如p1=3mod4,第二加性共享分量也可以是随机生成的随机数p2,如p2=0mod4。
在一个实施例中,第一中间分量可以是第一加性共享分量p1减1后的一半,将第一中间分量记为[b]1,则有随后还可将该第一中间分量[b]1表示为bit形式(二进制形式),从而获得bit形式(二进制形式)的第一中间分量[b]1。
该第二中间分量可以是第二加性共享分量p2的一半。将第二中间分量记为[b]2,则有随后还可将该第二中间分量[b]2表示为bit形式(二进制形式),从而获得bit形式(二进制形式)的第二中间分量[b]2。
步骤S22:基于第一中间分量[b]1、第二中间分量[b]2,第一参与方Alice与第二参与方Bob共享上述待定素数的幂指近似整数,第一参与方Alice获得第一幂指近似整数共享分量,第二参与方Bob获得第二幂指近似整数共享分量。
将待定素数记为p,假设p为n bit的数,则可以近似为一个整数,因此,第一参与方Alice与第二参与方Bob可以共享该待定素数的幂指近似整数(本实施例中也称为的近似计算(P_1_Approximate))。设有函数从而可以利用牛顿迭代法求其零点(起始点为x0=1)。
一个实施例中的共享上述待定素数的幂指近似整数的过程可以包括下述步骤S221至步骤S224。
步骤S221:第一参与方Alice获取幂指整数的第一多项式共享分量,第二参与方Bob获取所述幂指整数的第二多项式共享分量。
考虑到在后续执行多项式乘法共享(如可记为MulSecret方法)的过程中,输入必须为整数,因此均需要放大2t倍来进行迭代逼近。据此,在一个实施例中,将幂指指数记为u0=2t,第一参与方Alice的第一多项式共享分量[u0]1与第二参与方Bob的第二多项式共享分量[u0]2可以相同,如[u0]1=2t,[u0]2=2t。
随后,在自i=0 to lg(t)的任何一个循环过程过程中,执行下述步骤S222至步骤S224的处理过程。
步骤S222:基于第一多项式共享分量[u0]1、第二多项式共享分量[u0]2、第一中间分量[b]1以及第二中间分量[b]2,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第一多项式乘法共享结果。
在进行多项式乘法共享,获得第一多项式乘法共享结果时,可以采用任何可能的方式进行。在一个示例中,基于所述第一多项式共享分量、所述第二多项式共享分量、所述第一中间分量以及所述第二中间分量,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第一多项式乘法共享结果,可以包括下述步骤S2221、步骤S2222。
步骤S2221:基于第一多项式共享分量[u0]1、第二多项式共享分量[u0]2、第一中间分量[b]1以及第二中间分量[b]2,第一参与方Alice与第二参与方Bob进行第一多项式乘法共享,获得第一多项式乘法初始共享结果,共享结果zi+1=MulSecret(ui,p)。
步骤S2222:第一参与方Alice与第二参与方Bob缩小第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果。从而,在确定第一、第二多项式共享分量时进行了放大的情况下,通过步骤S2222的缩小位数的处理,可以确保最终获得的第一多项式乘法共享结果的准确性。
在一个实施例中,上述步骤S2221进行第一多项式乘法共享,具体的多项式乘法共享的原理可以是任何可能的方式。以下针对其中一个可实施的多项式乘法共享的原理进行说明。
设有两个多项式f(x)=a+a1x,g(x)=b+b1x,Alice拥有f(1)和g(1),Bob拥有f(2)和g(2),双方希望共享一个多项式秘密使之常数项为a·b。
从而,在进行多项式乘法共享时,Alice基于f(1)和g(1)计算出h(1)=f(1)·g(1),Bob基于f(2)和g(2)计算出h(2)=f(2)·g(2)。随后,Alice选择随机数rA1、rA2,计算出f(1)+rA1、g(1)+rA2,并将f(1)+rA1和g(1)+rA2发送给Bob。Bob接收到f(1)+rA1和g(1)+rA2,计算出rB1=f(2)-f(1)-rA1,rB2=g(2)-g(1)-rA2。
随后,Alice与Bob执行两个加性秘密共享到乘法秘密共享转换协议(本实施例中可称为TwoSumToMul方法),Alice与Bob双方计算出乘法共享秘密xrA1+rB1)(rA2+rB2),即a1·b1。
Alice计算k(1)=h(1)-x,Bob计算k(2)=h(2)-4x,可以验证k(1)、k(2)为多项式k(x)=ab+(a1b+b1a)x的秘密共享。
据此,在一个实施例中,上述步骤S2221的基于第一多项式共享分量[u0]1、第二多项式共享分量[u0]2、第一中间分量[b]1以及第二中间分量[b]2,第一参与方Alice与第二参与方Bob进行第一多项式乘法共享,获得第一多项式乘法初始共享结果时,可以包括下述步骤A1至步骤A5。
步骤A1:第一参与方Alice基于第一中间分量[b]1和第一多项式共享分量[u0]1确定第一乘积分量mul1,第二参与方Bob基于第二中间分量[b]2和第二多项式共享分量[u0]2确定第二乘积分量mul2。
其中,在一个实施例中,第一乘积分量mul1为第一中间分量[b]1和第一多项式共享分量[u0]1的乘积,即mul1=[b]1*u0]1;第二乘积分量mul2为第二中间分量[b]2和第二多项式共享分量[u0]1的乘积,即mul2=[b]2*u0]2。
步骤A2:第一参与方Alice基于第一中间分量[b]1和选择的第一随机数r1确定第一分量参数sum1,基于第一多项式共享分量[u0]1和选择的第二随机数r2确定第二分量参数sum2,并将第一分量参数sum1和第二分量参数sum2发送给第二参与方Bob。
在一个实施例中,该第一分量参数sum1是第一中间分量[b]1和第一随机数r1之和,即sum1=[b]1+r1,该第二分量参数sum2可以是第一多项式共享分量[u0]1和第二随机数r2之和,即sum2=[u0]1+r2。
步骤A3:第二参与方Bob接收第一分量参数sum1和第二分量参数sum2,根据第二中间分量[b]2和第一分量参数sum1确定第三随机数r3,根据第二多项式共享分量[u0]2和第二分量参数sum2确定第四随机数r4。
其中,该第三随机数r3为第二中间分量[b]2减去第一分量参数sum1的差值,即r3=[b]2-sum1=[b]2-[b]1-r1,第四随机数r4为第二多项式共享分量[u0]2减去第二分量参数sum2的差值,即r4=[u0]2-sum2=[u0]2-[u0]1-r2。
步骤A4:第一参与方Alice与第二参与方Bob基于第一随机数r1、第二随机数r2、第三随机数r3、第四随机数r4计算出第一共享数N1。
在一个实施例中,第一参与方Alice与第二参与方Bob可以通过执行两个加性秘密转秘密之积协议,获得该第一共享数N1。
两个加性秘密共享到乘法秘密共享转换协议(TwoSumToMul)的目标是在Alice拥有p1、q1,Bob拥有p2、q2时,双方共同计算得到N=(p1+p2)(q1+q2)。为了实现该目标,可以采用不同的方式进行处理。
在其中一种方式中,可以基于同态加密(HomEnc_Sum)的方式进行转换,此时,Alice拥有公钥同态加密算法ΓA,Alice采用上述公钥同态加密算法ΓA分别对p1、q1、p1q1加密,获得ΓA(p1)、ΓA(q1)和ΓA(p1q1),并将ΓA(p1)、ΓA(q1)和ΓA(p1q1)发送给Bob。
Bob也拥有公钥同态加密算法ΓA,并采用上述公钥同态加密算法ΓA分别对p2、q2、p2q2加密,获得ΓA(p2)、ΓA(q2)和ΓA(p2q2),并基于ΓA(p1)、ΓA(q1)、ΓA(p1q1)、ΓA(p2)、ΓA(q2)和ΓA(p2q2),Bob通过同态密文计算得到Γ(N),并将Γ(N)发送给Alice。
Alice接收到Γ(N)后进行解密得到N并公开。可以理解,在该过程中,Alice和Bob的角色可以互换。
据此,具体在本实施例中,第一参与方Alice与第二参与方Bob可以通过执行两个加性秘密转秘密之积协议,获得该第一共享数N1,可以包括下述步骤A411至步骤A414。
步骤A411:第一参与方Alice确定第一随机数r1和第二随机数r2的第一中间乘积pro1=r1*r2,并获得第一加密结果,将第一加密结果发送给第二参与方Bob;第一加密结果包括对第一随机数r1加密获得的第一随机数加密结果ΓA(r1)、对第二随机数r2加密获得的第二随机数加密结果ΓA(r2)和对第一中间乘积pro1加密获得的第一中间乘积加密结果ΓA(r1*r2)。
步骤A412:第二参与方Bob确定第三随机数r3和第四随机数r4的第二中间乘积pro2=r3*r4,并获得第二加密结果。第二加密结果包括对第三随机数r3加密获得的第三随机数加密结果ΓB(r3)、对第四随机数r4加密获得的第四随机数加密结果ΓB(r4)和对第二中间乘积pro2加密获得的第二中间乘积加密结果ΓB(r3*r4)。
步骤A413:第二参与方Bob根据所述第一加密结果和第二加密结果进行运算,获得共享加密结果,并将共享加密结果发送给第一参与方Alice。具体的基于第一加密结果和第二加密结果进行运算,获得共享加密结果的过程,可以采用任何可能的运算方式进行,本实施例不做具体限定。
步骤A414:第一参与方Alice对共享加密结果进行解密,获得第一共享数。具体的对共享加密结果进行解密的过程,可以采用任何可能的运算方式进行,本实施例不做具体限定。第一参与方Alice获得的第一共享数N1,可以发送给第二参与方Bob,从而实现该第一共享数N1的公开。
在另一种方式中,可以基于不经意传输的加-乘互换进行转换,此时,在Alice拥有p1、q1,Bob拥有p2、q2的情况下:首先,Alice和Bob执行一次乘法转加法协议(MulToSum),Alice得到x1,Bob得到x2,其中x1+x2=p1·q2。Alice和Bob再执行一次乘法转加法协议(MulToSum),Alice得到y1,Bob得到y2,其中y1+y2=p2·q1。随后,Alice计算x1+y1+p1·q1,Bob计算x2+y2+p2·q2,然后Alice与Bob共享x1+y1+p1·q1与x2+y2+p2·q2,共享x1+y1+p1·q1与x2+y2+p2·q2之后,Alice和Bob均可以计算出N=p1·q1+x1+x2+y1+y2+p2·q2,从而完成基于不经意传输的加-乘互换。
据此,具体在本实施例中,第一参与方Alice与第二参与方Bob可以通过执行两个加性秘密转秘密之积协议,获得该第一共享数N1,可以包括下述步骤A421至步骤A425。
步骤A421:第一参与方Alice基于第一随机数r1,第二参与方Bob基于第四随机数r4,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第一加法分量add1,第二参与方Bob获得第二加法分量add2,其中,第一加法分量add1与第二加法分量之和add2为第一随机数r1与第四随机数r4的乘积,即add1+add2=r1*r4。
其中,乘法转加法协议的执行过程,可以采用任何可能的方式进行。一个实施例中的乘法转加法协议(MulToSum)的过程可是如下所述。
假设Alice拥有a,Bob拥有b,并假设a、b均为nbit。Bob随机选择循环群(若在群G存在一个元素a,使得群G的任意元素都由a的幂组成,则称该群G为循环群)中的n个元素c0,c1,...,cn-1,并定义n对数据元其中Alice将a表示为bit形式an-1,...,a0,利用n次不经意传输Alice根据ai是0或者1选择或者
据此,在该示例中,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第一加法分量,第二参与方Bob获得第二加法分量,包括步骤A4211至步骤A4213。
步骤A4211:第二参与方Bob在循环群(若在群G存在一个元素a,使得群G的任意元素都由a的幂组成,则称该群G为循环群)中选择数量为第四随机数的位数r4的元素,即选择r4个元素,并根据各元素定义分别与各元素对应的数据元对,数据元对中的第一子元素为对应的该元素,数据元对中的第二子元素根据对应的该元素以及第四随机数r4确定。一个实施例中,该第二子元素为第四随机数r4与幂指参数的乘积跟对应的该元素的和值,如该幂指参数可以是以2为底、该数据元对的排序序号为幂指指数的幂指乘积。
步骤A4212:第一参与方Alice将第一随机数r1表示为二进制形式后,与第二参与方Bob进行不经意传输,根据对应位数的二进制数值,从对应位数的数据元对中选择第一子元素或者第二子元素作为所述对应位数的元素值。
步骤A4213:第一参与方Alice根据确定的各对应位数的元素值确定第一加法分量add1,第二参与方Bob根据在循环群中选择的各元素确定第二加法分量add2。一个实施例中,第一加法分量add1为各对应位数的元素值的和值,第二加法分量add2为在循环群中选择的各元素的和值取反。
可以理解,在该执行过程中,第一参与方Alice与第二参与方Bob的角色可以互换,如将第一参与方Alice选择r1个元素,第二参与方Bob将r4表示为二进制形式,并分别执行对应的后续的处理过程,在此不再展开赘述。
步骤A422:第一参与方Alice基于第二随机数r2,第二参与方Bob基于第三随机数r3,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第三加法分量add3,第二参与方Bob获得第四加法分量add4,其中,第三加法分量add3与第四加法分量add4之和为第二随机数r2与第三随机数r3的乘积,即add3+add4=r2*r3。可以理解,第一参与方Alice获得第三加法分量add3,第二参与方Bob获得第四加法分量add4的过程,可与上述步骤A421中第一参与方Alice获得第一加法分量add1,第二参与方Bob获得第二加法分量add2的原理类似,在此不再展开赘述。
可以理解,Alice和Bob执行MulToSum,第一参与方Alice获得第一加法分量add1,第二参与方Bob获得第二加法分量add2的过程,与Alice和Bob执行MulToSum,第一参与方Alice获得第三加法分量add3,第二参与方Bob获得第四加法分量add4的过程,可以不分先后顺序。
步骤A423:第一参与方Alice根据第一随机数r1、第二随机数r2、第一加法分量add1和第三加法分量add3确定第一共享数第一分量m1w1。在一个实施例中,该第一共享数第一分量m1w1为第一随机数r1与第二随机数r2的乘积、第一加法分量add1以及第三加法分量add3的和值,即m1w1=r1*r2+add1+add3。
步骤A424:第二参与方Bob根据第三随机数r3、第四随机数r4、第二加法分量add2和第四加法分量add4确定第一共享数第二分量m1w2。在一个实施例中,该第一共享数第二分量m1w2为第三随机数r3与第四随机数r4的乘积、第二加法分量add2以及第四加法分量add4的和值,即m1w2=r3*r4+add2+add4。可以理解的是,步骤A423、A424的执行过程可以不分先后顺序。
步骤A425:第一参与方Alice与第二参与方Bob交换第一共享数第一分量m1w1与第一共享数第二分量m1w2后,根据第一共享数第一分量m1w1与第一共享数第二分量m1w2确定第一共享数N1。在一个实施例中,该第一共享数N1为第一共享数第一分量m1w1与第一共享数第二分量m1w2的和值,即:N1=m1w1+m1w2。
在另一个实施例中,第一参与方Alice与第二参与方Bob可以通过点积下一来获得该第一共享数N1=(r1+r2)(r3+r4)。
在点积计算的过程中,作如下取值设定:
随后,Alice根据系数矩阵C、第一交互结果分量XA、可逆矩阵P,确定第一初始矩阵分量U,具体可以采用下式进行计算:
U=(P-1)T+C×XA。
Alice获得第一初始矩阵分量U后,将获得的第一初始矩阵分量U发送给Bob。在一个具体示例中,Alice也可以是将U的最右边一列全部置零后,发送给Bob。本实施例以Alice将U的最右边一列全部置零后发送给Bob为例进行说明。
而Bob则根据系数矩阵C、第二交互结果分量XB、可逆矩阵Q,确定第二初始矩阵分量V,具体可以采用下式进行计算:
V=(Q-1)T-CT×XB。
Bob获得第二初始矩阵分量V后,将获得的第二初始矩阵分量V发送给Alice。在一个具体示例中,Bob也可以是将V最右边一列全部置零后,发送给Alice。本实施例以Bob将V最右边一列全部置零后发送给Alice为例进行说明。可以理解,Alice与Bob交换第一初始矩阵分量U和第二初始矩阵分量V的过程可以同时进行,以减少交互次数,提高处理效率。
Alice接收到Bob发送的第二初始矩阵分量V后,根据第一交互结果分量XA、第二初始矩阵分量V和随机矩阵D1,确定Alice的共享矩阵分量Sa,具体可以采用下式进行计算:
Bob接收到第一初始矩阵分量U后,根据第二交互结果分量XB、第一初始矩阵分量U和随机矩阵D2,确定Bob的共享矩阵分量Sb,具体可以采用下述方式进行计算:
基于Alice确定的共享矩阵分量Sa和Bob确定的共享矩阵分量Sb,可以确定,Alice与Bob共享了矩阵:
因此,Alice和Bob只需选取自己持有的共享矩阵分量的主对角线的3个元素,就分别是32组输入向量的点积运算结果的加法共享:
Sa[i]+Sb[i]=xiPb+yiQa+xiyi。
该示例中示出的点积计算协议,基于矩阵乘法运算进行构造,可以实现高效计算点积结果。而且其通过将固定的输入变量Pb和Qa进行随机数分解,使得输入矩阵拥有一定数量的独立变量,整个方案可以满足独立变量个数多于公开方程数的安全条件。
步骤A5:第一参与方Alice根据第一乘积分量mul1和第一共享数N1计算出参与方一第一多项式乘法初始共享结果k(1),第二参与方Bob根据第二乘积分量mul2和第一共享数N1计算出参与方二第一多项式乘法初始共享结果k(2)。其中,上述第一多项式乘法初始共享结果包括参与方一第一多项式乘法初始共享结果k(1)和参与方二第一多项式乘法初始共享结果k(2)。
在一个实施例中,该参与方一第一多项式乘法初始共享结果k(1)可以是第一乘积分量mul1与第一共享数N1之差,即k(1)=mul1-N1,而参与方二第一多项式乘法初始共享结果k(2)可以是第二乘积分量mul2与4倍第一共享数N1之差,即k(2)=mul2-4N1。将N1记为x,可以验证k(1)、k(2)为多项式k(x)=ab+(a1b+b1a)x的秘密共享。
在一个实施例中,上述步骤S2222中,第一参与方Alice与第二参与方Bob缩小第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果时,可以采用任何可能的缩小原理进行缩小。
在一个实施例中,可以采用下述原理来缩小位数。假设Alice和Bob多项式共享秘密了p,Alice拥有p1,Bob拥有p2,则Alice计算p1/2s,Bob计算p2/2s,以缩小s位(Approx)。
具体在本示例中,第一参与方Alice与第二参与方Bob缩小第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果,包括步骤B11和步骤B12。
步骤B11:第一参与方Alice将参与方一第一多项式乘法初始共享结果除以第一多项式共享分量[u0]1,获得参与方一第一多项式乘法共享结果。
步骤B12:第二参与方Bob将参与方二第一多项式乘法初始共享结果除以第二多项式共享分量[u0]1,获得参与方二第一多项式乘法共享结果。
可以理解,第一多项式乘法共享结果包括参与方一第一多项式乘法共享结果和参与方二第一多项式乘法共享结果,步骤B11与步骤B12的执行过程可以不分先后顺序。
在另一个实施例中,可以采用下述原理来缩小位数。假设Alice和Bob多项式共享了秘密p,Alice拥有p1,Bob拥有p2。则Alice计算p1=x·2s+c1,Bob计算p2=y·2s+c2(c1≥0,c2<0),随后双方分别保留结果x和y,完成缩小位数的过程,该方式可以确保证缩小后的秘密还原后只可能比标准小1或2或相等。
具体在本示例中,第一参与方Alice与第二参与方Bob缩小第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果,包括步骤B21和步骤B22。
步骤B21:第一参与方Alice基于参与方一第一多项式乘法初始共享结果、第一多项式共享分量[u0]1以及大于或者等于0的第一常数C1,获得参与方一第一多项式乘法共享结果。在一个实施例中,参与方一第一多项式乘法共享结果,为参与方一第一多项式乘法初始共享结果与第一常数之差C1与第一多项式共享分量[u0]1的比值。
步骤B22:第二参与方Bob基于参与方二第一多项式乘法初始共享结果、第二多项式共享分量[u0]2以及小于0的第二常数C2,获得参与方二第一多项式乘法共享结果。在一个实施例中,参与方二第一多项式乘法共享结果,为参与方二第一多项式乘法初始共享结果与第二常数C2之差与第二多项式共享分量[u0]2的比值。
可以理解,步骤B21与步骤B22的执行过程可以不分先后顺序。第一多项式乘法共享结果包括参与方一第一多项式乘法共享结果和参与方二第一多项式乘法共享结果。
在另一个实施例中,可以在上述实施例的方案的基础上,进一步对缩小位数后的分量进行更新,以进一步提高缩小位数的精确度。假设Alice和Bob多项式共享了秘密p,Alice拥有p1,Bob拥有p2,则Alice计算p1=x·2s+c1,Bob计算p2=y·2s+c2(其中c1≥0,c2<0),然后通过调用两次加性共享大小的判断,判断是判断是否(2c1-c2)≥2·2s?和(2c1-c2)≥2s?。如果是第一种情况,则y=y-2,如果是第二种情况,则y=y-1。然后双方分别保留结果x和y即可。
一个示例中的加性共享大小判断的原理可以是如下所述,假设Alice拥有a,Bob拥有b,另有公开常数c,双方希望在不公开秘密的前提下得知是否(a+b)≥c?Alice拥有公钥同态加密算法ΓA,Bob计算bb=c-b,从而将问题转化为比较a和bb谁大。随后,Alice采用公钥同态加密算法ΓA加密a,得到ΓA(a),将ΓA(a)发送给Bob。Bob选择随机大数u和v,利用同态加密的性质计算出ΓA(au+w)和ΓA(bb·u+w)并发送给Alice,由Alice解密并比较两者大小,并公开。
具体在本实施例中,第一参与方Alice与第二参与方Bob缩小第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果,包括步骤B31至步骤B33。
步骤B31:第一参与方Alice基于参与方一第一多项式乘法初始共享结果、第一多项式共享分量[u0]1以及大于或者等于0的第一常数C1,获得参与方一第一多项式乘法共享结果。在一个实施例中,参与方一第一多项式乘法共享结果,为参与方一第一多项式乘法初始共享结果与第一常数之差C1与第一多项式共享分量[u0]1的比值。
步骤B32:第二参与方Bob基于参与方二第一多项式乘法初始共享结果、第二多项式共享分量[u0]2及小于0的第二常数C2,获得参与方二第一多项式乘法共享结果。一个实施例中,参与方二第一多项式乘法共享结果,为参与方二第一多项式乘法初始共享结果与第二常数C2之差与第二多项式共享分量[u0]2的比值。
步骤B33:第一参与方Alice基于第一常数C1,第二参与方Bob基于第二常数C2,第一参与方Alice与第二参与方Bob进行加性共享大小判断,并基于第一常数与第二常数之间满足的大小关系,更新缩小位数后的参与方二第一多项式乘法共享结果。此时,上述第一多项式乘法共享结果包括参与方一第一多项式乘法共享结果和更新后的参与方二第一多项式乘法共享结果。
在一个实施例中,基于第一常数C1与第二常数C2之间满足的大小关系,更新缩小位数后的参与方二第一多项式乘法共享结果,包括:
在两倍第一常数C1减去第二常数C2之差大于或者等于两倍第二多项式共享分量[u0]2时,将参与方二第一多项式乘法共享结果减去2之后的值作为更新后的参与方二第一多项式乘法共享结果;
在两倍第一常数C1减去第二常数C2之差大于或者等于第二多项式共享分量[u0]2、且小于两倍第二多项式共享分量[u0]2时,将参与方二第一多项式乘法共享结果减去1之后的值作为更新后的参与方二第一多项式乘法共享结果。
步骤S223:基于第一多项式乘法共享结果、第一多项式共享分量[u0]1和第二多项式共享分量[u0]2以及幂指整数,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第二多项式乘法共享结果。
在进行多项式乘法共享,获得第二多项式乘法共享结果时,可以采用任何可能的方式进行,如采用上述步骤S222中相同的原理进行。具体在该示例中,基于第一多项式乘法共享结果、第一多项式共享分量[u0]1和第二多项式共享分量[u0]2以及幂指整数,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第二多项式乘法共享结果,可以包括下述步骤S2231、步骤S2232。
步骤S2231:基于第一多项式乘法共享结果、第一多项式共享分量[u0]1和第二多项式共享分量[u0]2以及幂指整数,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第二多项式乘法初始共享结果;
步骤S2232:第一参与方Alice与第二参与方Bob缩小第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果。
在一个示例中,在步骤S2231中获得第二多项式乘法初始共享结果之后,在步骤S2232的第一参与方Alice与第二参与方Bob缩小所述第二多项式乘法初始共享结果的位数之前,还可以包括步骤:将第二多项式乘法初始共享结果乘以预设常数。
在一个实施例中,上述步骤S2231进行的多项式乘法共享的原理可以是任何可能的方式,如采用上述步骤S2221中相同的多项式乘法共享的原理。具体在本实施例中,步骤S2231的基于第一多项式乘法共享结果、第一多项式共享分量[u0]1和第二多项式共享分量[u0]2以及幂指整数,第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第二多项式乘法初始共享结果,包括下述步骤C1至步骤C5。
步骤C1:第一参与方Alice基于参与方一第一多项式乘法共享结果和第一多项式共享分量[u0]1确定第三乘积分量mul3,第二参与方Bob基于参与方二第一多项式乘法共享结果和第二多项式共享分量[u0]2确定第四乘积分量mul4。其中,第三乘积分量mul3为参与方一第一多项式乘法共享结果和第一多项式共享分量[u0]1的乘积;第四乘积分量[u0]1为参与方二第一多项式乘法共享结果和第二多项式共享分量[u0]2的乘积。
步骤C2:第一参与方Alice基于参与方一第一多项式乘法共享结果和选择的第五随机数r5确定第三分量参数sum3,基于第一多项式共享分量[u0]1和选择的第六随机数r6确定第四分量参数sum4,并将第三分量参数sum3和第四分量参数sum4发送给第二参与方Bob。
步骤C3:第二参与方Bob接收第三分量参数sum3和第四分量参数sum4,根据参与方二第一多项式乘法共享结果和第三分量参数sum3确定第七随机数r7,根据第二多项式共享分量[u0]2和第四分量参数sum4确定第八随机数r8。其中,第七随机数r7为参与方二第一多项式乘法共享结果减去第三分量参数sum3的差值,第八随机数r8为第二多项式共享分量[u0]2减去第四分量参数sum4的差值。
步骤C4:第一参与方Alice与第二参与方Bob基于第五随机数r5、第六随机数r6、第七随机数r7、第八随机数r8计算出第二共享数。
在一个实施例中,第一参与方Alice与第二参与方Bob可以通过执行两个加性秘密转秘密之积协议,获得该第二共享数N2。
在执行两个加性秘密转秘密之积协议时,以基于同态加密的方式进行转换为例,第一参与方Alice与第二参与方Bob基于第五随机数r5、第六随机数r6、第七随机数r7、第八随机数r8计算出第二共享数,可以包括步骤D411至步骤D414。
步骤D411:第一参与方Alice确定第五随机数r5和第六随机数r6的第三中间乘积pro3=r5*r6,并获得第三加密结果,将第三加密结果发送给第二参与方Bob。其中,第三加密结果包括对第五随机数r5加密获得的第五随机数加密结果、对第六随机数r6加密获得的第六随机数加密结果和对第三中间乘积pro3加密获得的第三中间乘积加密结果。
步骤D412:第二参与方Bob确定第七随机数r7和第八随机数r8的第四中间乘积pro4=r7*r8,并获得第四加密结果。其中,第四加密结果包括对第七随机数r7加密获得的第七随机数加密结果、对第八随机数r8加密获得的第八随机数加密结果和对第四中间乘积pro4加密获得的第四中间乘积加密结果。
步骤D413:第二参与方Bob根据第三加密结果和第四加密结果进行运算,获得共享加密结果,并将共享加密结果发送给第一参与方Alice。具体的基于第三加密结果和第四加密结果进行运算,获得共享加密结果的过程,可以采用任何可能的运算方式进行,本实施例不做具体限定。
步骤D414:第一参与方Alice对共享加密结果进行解密,获得第二共享数N2。具体的对共享加密结果进行解密的过程,可以采用任何可能的运算方式进行,本实施例不做具体限定。第一参与方Alice获得的第二共享数N2,可以发送给第二参与方Bob,从而实现该第二共享数N2的公开。
在执行两个加性秘密转秘密之积协议时,以基于不经意传输的加-乘互换进行转换为例,第一参与方Alice与第二参与方Bob基于第五随机数r5、第六随机数r6、第七随机数r7、第八随机数r8计算出第二共享数,可以包括步骤D421至步骤D425。
步骤D421:第一参与方Alice基于第五随机数r5,第二参与方Bob基于第八随机数r8,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第五加法分量add5,第二参与方Bob获得第六加法分量add6,其中,第五加法分量add5与第六加法分量add6之和为第五随机数r5与第八随机数r5的乘积,即add5+add6=r5*r8。
一个具体示例中,第一参与方Alice基于第五随机数r5,第二参与方Bob基于第八随机数r8,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第五加法分量add5,第二参与方Bob获得第六加法分量add6,包括步骤D4221至步骤D4223。
步骤D4221:第二参与方Bob在循环群中选择数量为第八随机数r8的位数的元素,即选择r8个元素,并根据各元素定义分别与各元素对应的数据元对,数据元对中的第一子元素为对应的该元素,数据元对中的第二子元素根据对应的所述元素以及第八随机数r8确定。一个实施例中,该第二子元素为第八随机数r8与幂指参数的乘积跟对应的该元素的和值,如该幂指参数可以是以2为底、该数据元对的排序序号为幂指指数的幂指乘积。
步骤D4222:第一参与方Alice将第五随机数r5表示为二进制形式后,与第二参与方Bob进行不经意传输,根据对应位数的二进制数值,从对应位数的数据元对中选择第一子元素或者第二子元素作为所述对应位数的元素值。
步骤D4223:第一参与方Alice根据确定的各对应位数的元素值确定第五加法分量add5,第二参与方Bob根据在循环群中选择的各元素确定第六加法分量add6。一个实施例中,第五加法分量add5为各对应位数的元素值的和值,第六加法分量add6为在循环群中选择的各元素的和值取反。
可以理解,在该执行过程中,第一参与方Alice与第二参与方Bob的角色可以互换,如将第一参与方Alice选择r5个元素,第二参与方Bob将r8表示为二进制形式,并分别执行对应的后续的处理过程,在此不再展开赘述。
步骤D422:第一参与方Alice基于第六随机数r6,第二参与方Bob基于第七随机数r7,第一参与方Alice与第二参与方Bob执行乘法转加法协议,第一参与方Alice获得第七加法分量add7,第二参与方Bob获得第八加法分量add8。其中,第七加法分量add7与第八加法分量add8之和为第六随机数r6与第七随机数r7的乘积,即add7+add8=r6*r7。可以理解,第一参与方Alice获得第七加法分量add7,第二参与方Bob获得第八加法分量add8的过程,可与上述步骤D421中第一参与方Alice获得第五加法分量add5,第二参与方Bob获得第六加法分量add6的原理类似,在此不再展开赘述。
步骤D423:第一参与方Alice根据第五随机数r5、第六随机数r6、第五加法分量add5和第七加法分量add7确定第二共享数第一分量m2w1。其中,第二共享数第一分量m2w1为第五随机数r5与第六随机数r6的乘积、第五加法分量add5以及第七加法分量add7的和值,即m2w1=r5*r6+add5+add7。
步骤D424:第二参与方Bob根据第七随机数r7、第八随机数r8、第六加法分量add6和第八加法分量add8确定第二共享数第二分量m2w2。其中,第二共享数第二分量m2w2为第七随机数r7与第八随机数r8的乘积、第六加法分量add6以及第八加法分量add8的和值,即m2w2=r7*r8+add6+add8。可以理解的是,步骤D423、D424的执行过程可以不分先后顺序。
步骤D425:第一参与方Alice与第二参与方Bob交换第二共享数第一分量m2w1与第二共享数第二分量m2w2后,根据第二共享数第一分量m2w1与第二共享数第二分量m2w2确定第二共享数N2。其中,在一个实施例中,第二共享数N2为第二共享数第一分量m2w1与第二共享数第二分量m2w2的和值,即N2=m2w1+m2w2。
步骤C5:第一参与方Alice根据第三乘积分量mul3和第二共享数N2计算出参与方一第二多项式乘法初始共享结果,第二参与方Bob根据第四乘积分量mul4和第二共享数N2计算出参与方二第二多项式乘法初始共享结果。其中,第二多项式乘法初始共享结果包括参与方一第二多项式乘法初始共享结果和参与方二第二多项式乘法初始共享结果。
上述步骤S2232中,第一参与方Alice与第二参与方Bob缩小第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果时,可以采用任何可能的缩小原理进行缩小。
在一个实施例中,第一参与方Alice与第二参与方Bob缩小第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果,包括步骤E11和步骤E12。
步骤E11:第一参与方Alice将参与方一第二多项式乘法初始共享结果除以所述第一多项式共享分量[u0]1,获得参与方一第二多项式乘法共享结果。
步骤E12:第二参与方Bob将参与方二第二多项式乘法初始共享结果除以所述第二多项式共享分量[u0]2,获得参与方二第二多项式乘法共享结果。
可以理解,第二多项式乘法共享结果包括参与方一第二多项式乘法共享结果和参与方二第二多项式乘法共享结果,步骤E11与步骤E12的执行过程可以不分先后顺序。
在另一个实施例中,第一参与方Alice与第二参与方Bob缩小第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果,包括步骤E21和步骤E22。
步骤E21:第一参与方Alice基于参与方一第二多项式乘法初始共享结果、所述第一多项式共享分量[u0]1以及大于或者等于0的第三常数C3,获得缩小位数后的参与方一第二多项式乘法共享结果。其中,缩小位数后的参与方一第二多项式乘法共享结果,为参与方一第二多项式乘法初始共享结果与第三常数C3之差与第一多项式共享分量[u0]1的比值。
步骤E22:第二参与方Bob基于参与方二第二多项式乘法初始共享结果、第二多项式共享分量[u0]2以及小于0的第四常数C4,获得缩小位数后的参与方二第二多项式乘法共享结果。其中,缩小位数后的参与方二第二多项式乘法共享结果,为参与方二第二多项式乘法初始共享结果与第四常数C4之差与第二多项式共享分量[u0]2的比值。
可以理解,步骤E21与步骤E22的执行过程可以不分先后顺序。第二多项式乘法共享结果包括参与方一第二多项式乘法共享结果和参与方二第二多项式乘法共享结果。
在另一个实施例中,可以在上述实施例的方案的基础上,进一步对缩小位数后的分量进行更新,以进一步提高缩小位数的精确度。在本实施例中,第一参与方Alice与第二参与方Bob缩小第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果,包括步骤E31至步骤E33。
步骤E31:第一参与方Alice基于参与方一第二多项式乘法初始共享结果、所述第一多项式共享分量[u0]1以及大于或者等于0的第三常数C3,获得缩小位数后的参与方一第二多项式乘法共享结果。其中,缩小位数后的参与方一第二多项式乘法共享结果,为参与方一第二多项式乘法初始共享结果与第三常数C3之差与第一多项式共享分量[u0]1的比值。
步骤E32:第二参与方Bob基于参与方二第二多项式乘法初始共享结果、第二多项式共享分量[u0]2以及小于0的第四常数C4,获得缩小位数后的参与方二第二多项式乘法共享结果。其中,缩小位数后的参与方二第二多项式乘法共享结果,为参与方二第二多项式乘法初始共享结果与第四常数C4之差与第二多项式共享分量[u0]2的比值。
步骤E33:第一参与方Alice基于第三常数C3,第二参与方Bob基于第四常数C4,第一参与方Alice与第二参与方Bob进行加性共享大小判断,并基于第三常数C3与第四常数C4之间满足的大小关系,更新缩小位数后的参与方二第二多项式乘法共享结果。此时,第二多项式乘法共享结果包括参与方一第二多项式乘法共享结果和更新后的参与方二第二多项式乘法共享结果。
在一个实施例中,基于第三常数C3与第四常数C4之间满足的大小关系,更新缩小位数后的参与方二第二多项式乘法共享结果,包括:
在两倍第三常数C3减去第四常数C4之差大于或者等于两倍第二多项式共享分量时,将参与方二第二多项式乘法共享结果减去2之后的值作为更新后的参与方二第二多项式乘法共享结果;
在两倍第三常数C3减去第四常数C4之差大于或者等于第二多项式共享分量、且小于两倍第二多项式共享分量时,将参与方二第二多项式乘法共享结果减去1之后的值作为更新后的参与方二第二多项式乘法共享结果。
步骤S224:基于第二多项式乘法共享结果更新第一多项式共享分量和第二多项式共享分量,并返回第一参与方Alice与第二参与方Bob进行多项式乘法共享,获得第一多项式乘法共享结果的步骤S222,直至达到预设次数,并基于最终获得的第二多项式乘法共享结果确定第一幂指近似整数共享分量和第二幂指近似整数共享分量。其中,该预设次数可以做任何的设定,如设置为上述lg(t)。
步骤S23:第一参与方Alice与第二参与方Bob共享模指运算结果,第一参与方Alice获得第一模指运算共享分量,第二参与方Bob获得第二模指运算共享分量,所述模指运算结果基于所述第一幂指近似整数共享分量、所述第二幂指近似整数共享分量确定。具体的共享模指运算结果的方式可以采用任何可能的方式进行。
步骤S24:基于第一模指运算共享分量、第二模指运算共享分量,第一参与方Alice与第二参与方Bob依次进行多项式乘法共享和模数运算,第一参与方Alice获得第一共享秘密分量,第二参与方Bob获得第二共享秘密分量。
一个实施例中,基于第一模指运算共享分量、第二模指运算共享分量,第一参与方Alice与第二参与方Bob依次进行多项式乘法共享和模数运算,第一参与方Alice获得第一共享秘密分量,第二参与方Bob获得第二共享秘密分量,可包括下述步骤S241与步骤S242。
步骤S241:基于第一模指运算共享分量、第二模指运算共享分量,第一参与方Alice与第二参与方Bob进行模数运算(本实施例中称为第一模数运算或者粗略模数运算),第一参与方Alice与第二参与方Bob共享第一模数运算结果。
一个实施例中,在该步骤S241中,第一参与方Alice与第二参与方Bob共同选择Q内的随机数g,调用第一模数运算方法(本实施例中记为Mod_P_Rough方法),输入g,b,p,pp的秘密共享,计算出结果mod p,结果由双方多项式共享。
一个具体示例中的Mod_P_Rough方法的原理如下所述:假设需要计算d=c mod p(+p,+2p),即在标准的模运算上允许误差,省略了精确缩小Approx_Pol步骤,则具体的执行步骤如下:
调用MulSecret(多项式乘法共享)方法,双方多项式共享了c·pp;
调用MulSecret(多项式乘法共享)方法,计算出q·p,获得的结果q·p比标准的结果可能会小1个或两个p单位;
进行秘密共享的减法运算,得到d=c-q·p,其,该第一模数运算果由双方多项式共享,从而获得的第一模数运算结果由第一参与方Alice与第二参与方Bob共享。
步骤S242:基于第一模数运算结果,第一参与方Alice与第二参与方Bob执行多项式秘密越算和第二模数运算,第一参与方Alice获得第一共享秘密分量,第二参与方Bob获得第二共享秘密分量。
其中,在该步骤S242中,基于第一模数运算结果,第一参与方Alice与第二参与方Bob执行多项式秘密越算和第二模数运算,第一参与方Alice获得第一共享秘密分量,第二参与方Bob获得第二共享秘密分量,具体的步骤可以是:
第一参与方Alice与第二参与方Bob调用MulSecret和Mod_P方法,计算出gp-1modp,从而使得第一参与方Alice获得第一共享秘密分量,第二参与方Bob获得第二共享秘密分量。
其中,这里进行的多项式乘法共享的过程可以与上述步骤S22中的多项式乘法共享的原理相同。
其中,在进行模数运算时,可以采用任何可能的方式进行。
在其中一个实施例中,在进行模数运算时,可以基于下述原理进行,本实施例中可将其记为模p运算(Mod_P)。Mod_P的基本原理为:为了计算d=c mod p,即计算p,假设Alice和Bob分别多项式共享了c和p,并通过调用上述P_1_Approximate方法,双方多项式共享了幂指近似整数(本实施例中可记为pp)。
据此,具体在进行模数运算时,首先执行多项式乘法共享(上述MulSecret),双方多项式共享了c·pp;随后采用上述任何一个实施例中的缩小位数的方式缩小位数,双方实现对 的多项式共享,然后再执行一次多项式乘法共享,计算出q·p,然后再进行秘密共享的减法运算,得到d=c-q·p,该结果由双方多项式共享。
在其中一个实施例中,在进行模数运算时,可以基于下述原理进行,本实施例中可将其记为粗略模p运算(Mod_P_Rough)。Mod_P_Rough的基本原理为:为了计算d=c mod p(+p,+2p),即在标准的模运算上允许误差,省略了精确缩小Approx_Pol步骤,假设Alice和Bob分别多项式共享了c和p,通过调用上述P_1_Approximate方法,双方多项式共享了(本实施例中记为pp)的近似。
据此,具体在进行模数运算时,首先执行多项式乘法共享,双方多项式共享了c·pp;随后采用上述任何一个实施例中的缩小位数的方式缩小位数,双方实现对的多项式共享,然后再执行一次多项式乘法共享,计算出q·p,然后再进行秘密共享的减法运算,得到d=c-q·p,该结果由双方多项式共享。
在其中一个实施例中,在进行模数运算时,可以基于下述原理进行,本实施例中可将其记为模指运算(Mod_Exp_P)。Mod_Exp_P的运算是在大素数Q的循环群内进行,且lnQ≥2t+n。Mod_Exp_P的基本原理为:假设Alice和Bob多项式共享了p,通过调用上述P_1_Approximate方法,双方多项式共享了(本实施例中记为pp)的近似,同时以二进制的形式来表示指数b的加性共享,Alice拥有[b0]1,[b1]1,...[bn-1]1,Bob拥有[b0]2,[b1]2,...[bn-1]2,底数a公开。
对于秘密指数的第1bit进行秘密共享的1bit指数运算(本实施例中可记为aEb),双方多项式共享计算结果,可表示为res。
秘密共享的1bit指数运算(本实施例中可记为aEb)的基本原理如下。
首先,Alice计算Bob计算随后,Alice选择随机数a1,构造出多项式并计算f(2)发送给Bob。Bob选择随机数a2,构造出多项式并计算g(1)发送给Alice,现在双方分别多项式共享了秘密和然后执行多项式乘法共享,双方多项式共享了
据此,在进行模数运算时,对i=1to n-1的每次循环过程中,都执行下述过程:
调用上述秘密共享的1bit指数运算,获得的计算结果可表示为di;
执行多项式乘法共享,计算res=MulSecret(res,res);
执行上述任意一个实施例中的模数运算,计算res=Mod_P(res,p,pp);
再执行多项式乘法共享,计算res=MulSecret(res,di);
再执行上述任意一个实施例中的模数运算,计算res=Mod_P(res,p,pp)。
在上述i至n-1的各循环过程结束之后,可获得最终计算结果res。
此外,在该实施例中,可以将pa和pb的二进制表示分为m bit一组,这样只需要进行次的秘密共享的1bit指数运算方法调用,后续的模指运算中,每次循环的结果进行m次平方操作后再与下一个秘密共享的1bit指数运算的结果相乘,从而可以进一步提高协议执行的效率。
步骤S25:第一参与方Alice与第二参与方Bob交换第一共享秘密分量和第二共享秘密分量后,第一参与方Alice复原出第一共享秘密,第二参与方Bob复原出第二共享秘密。
具体的基于第一共享秘密分量和第二共享秘密分量复原出共享秘密(第一共享秘密或第二共享秘密),可以采用任何可能的方式进行。
步骤S26:在第一共享秘密与所述第二共享秘密一致时,返回第一参与方Alice与第二参与方Bob共享模指运算结果的步骤S23,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,第一共享秘密与第二共享秘密均一致时,判定待定素数为素数。判定待定素数为素数,则说明该待定素数为满足要求的素数。
如果上述条件不满足,即任意一次得出的第一共享秘密与第二共享秘密不相同,则返回步骤S21,重新执行上述过程。
基于如上所述的示例,在一个实施例中还提供一种计算机设备,该计算机设备包括存储器和处理器,在存储器上存储有计算机程序,其中,存储的计算机程序被处理器执行实现如上述各实施例中的任意一个实施例的方法。
图3示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是如上所述的设备一或设备二。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现安全协议方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行安全协议方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性的计算机可读取存储介质中,如本申请实施例中,可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
据此,在一个实施例中还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述各实施例中的任意一个实施例的方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (34)
1.一种安全协议方法,其特征在于,包括步骤:
当前参与方基于待定素数的当前参与方加性共享分量确定当前参与方中间分量;
基于所述当前参与方中间分量,当前参与方与对端参与方共享所述待定素数的幂指近似整数,当前参与方获得当前参与方幂指近似整数共享分量;
当前参与方与对端参与方共享模指运算结果,当前参与方获得当前参与方模指运算共享分量,所述模指运算结果基于所述当前参与方幂指近似整数共享分量以及对端参与方获得的对端参与方幂指近似整数共享分量确定;
基于所述当前参与方模指运算共享分量,当前参与方与对端参与方依次进行多项式乘法共享和模数运算,当前参与方获得当前参与方共享秘密分量;
当前参与方与对端参与方交换所述当前参与方共享秘密分量和对端参与方持有的对端参与方共享秘密分量后,当前参与方复原出第一共享秘密;
在所述第一共享秘密与对端参与方复原出的第二共享秘密一致时,返回当前参与方与对端参与方共享模指运算结果的步骤,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,所述第一共享秘密与所述第二共享秘密均一致时,判定所述待定素数为素数;
基于所述当前参与方中间分量,当前参与方与对端参与方共享所述待定素数的幂指近似整数,当前参与方获得当前参与方幂指近似整数共享分量,包括:
当前参与方获取幂指整数的当前参与方多项式共享分量;
基于所述当前参与方多项式共享分量和所述当前参与方中间分量,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果;
基于所述当前参与方第一多项式乘法共享结果、所述当前参与方多项式共享分量以及所述幂指整数,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第二多项式乘法共享结果;
基于所述当前参与方第二多项式乘法共享结果更新所述当前参与方多项式共享分量,返回当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果的步骤,直至达到预设次数,并基于最终获得的当前参与方第二多项式乘法共享结果确定当前参与方幂指近似整数共享分量;
所述多项式乘法共享的原理包括:两个多项式f(x)=a+a1x,g(x)=b+b1x,当前参与方拥有f(1)和g(1),对端参与方拥有f(2)和g(2),双方共享一个多项式秘密使之常数项为a·b,在进行多项式乘法共享时,当前参与方基于f(1)和g(1)计算出h(1)=f(1)·g(1),对端参与方基于f(2)和g(2)计算出h(2)=f(2)·g(2);随后,当前参与方选择随机数rA1、rA2,计算出f(1)+rA1、g(1)+rA2,并将f(1)+rA1和g(1)+rA2发送给对端参与方,对端参与方接收到f(1)+rA1和g(1)+rA2,计算出rB1=f(2)-f(1)-rA1,rB2=g(2)-g(1)-rA2。
2.根据权利要求1所述的方法,其特征在于,基于所述当前参与方多项式共享分量、所述当前参与方中间分量,当前参与方与对端参与方进行多项式乘法共享,获得当前参与方第一多项式乘法共享结果,包括:
基于所述当前参与方多项式共享分量和所述当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果;
当前参与方缩小所述当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果。
3.根据权利要求2所述的方法,其特征在于,基于所述当前参与方多项式共享分量和所述当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果,包括:
当前参与方基于所述当前参与方中间分量和所述当前参与方多项式共享分量确定当前参与方乘积分量;
当前参与方基于所述当前参与方中间分量和选择的第一随机数确定第一分量参数,基于所述当前参与方多项式共享分量和选择的第二随机数确定第二分量参数,并将所述第一分量参数和所述第二分量参数发送给对端参与方;
当前参与方基于所述第一随机数和第二随机数,与对端参与方计算出第一共享数;
当前参与方根据所述当前参与方乘积分量和所述第一共享数计算出当前参与方第一多项式乘法初始共享结果。
4.根据权利要求2所述的方法,其特征在于,基于所述当前参与方多项式共享分量和所述当前参与方中间分量,当前参与方与对端参与方进行第一多项式乘法共享,获得当前参与方第一多项式乘法初始共享结果,包括:
当前参与方基于所述当前参与方中间分量和所述当前参与方多项式共享分量确定当前参与方乘积分量;
当前参与方接收对端参与方发送的第一分量参数和第二分量参数,根据所述当前参与方中间分量和所述第一分量参数确定第三随机数,根据所述当前参与方多项式共享分量和所述第二分量参数确定第四随机数;
当前参与方基于所述第三随机数和第四随机数,与对端参与方计算出第一共享数;
当前参与方根据所述当前参与方乘积分量和所述第一共享数计算出当前参与方第一多项式乘法初始共享结果。
5.根据权利要求3所述的方法,其特征在于,当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数;
其中,所述当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数,包括:
当前参与方确定所述第一随机数和对端参与方的第二随机数的第一中间乘积,并获得当前参与方加密结果,将所述当前参与方加密结果发送给对端参与方;所述当前参与方加密结果包括对所述第一随机数加密获得的第一随机数加密结果、对所述第二随机数加密获得的第二随机数加密结果和对所述第一中间乘积加密获得的第一中间乘积加密结果;
当前参与方接收对端参与方基于所述当前参与方加密结果和对端参与方确定的共享加密结果进行解密,获得所述第一共享数,所述第一共享数由所述对端参与方基于所述当前参与方加密结果和对端参与方确定的对端参与方加密结果进行运算获得。
6.根据权利要求3所述的方法,其特征在于,当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数;
其中,所述当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数,包括:
当前参与方确定所述第一随机数和对端参与方的第二随机数的第一中间乘积,并获得当前参与方加密结果;所述当前参与方加密结果包括对所述第一随机数加密获得的第一随机数加密结果、对所述第二随机数加密获得的第二随机数加密结果和对所述第一中间乘积加密获得的第一中间乘积加密结果;
当前参与方接收对端参与方发送的对端参与方加密结果,并根据所述当前参与方加密结果和所述对端参与方加密结果进行运算,获得共享加密结果,并将所述共享加密结果发送给对端参与方,由所述对端参与方对所述共享加密结果进行解密,获得所述第一共享数。
7.根据权利要求3所述的方法,其特征在于,当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数;
其中,所述当前参与方基于所述第一随机数和第二随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数,包括:
当前参与方基于第一随机数,与对端参与方执行乘法转加法协议,获得第一加法分量,所述第一加法分量与对端参与方获得的第二加法分量之和为所述第一随机数与对端参与方持有的第四随机数的乘积;
当前参与方基于第二随机数,与对端参与方执行乘法转加法协议,当前参与方获得第三加法分量,所述第三加法分量与对端参与方获得的第四加法分量之和为所述第二随机数与对端参与方持有的第三随机数的乘积;
当前参与方根据所述第一随机数、所述第二随机数、所述第一加法分量和所述第三加法分量确定第一共享数当前参与方分量;
当前参与方获得对端参与方发送的第一共享数对端参与方分量后,根据所述第一共享数当前参与方分量与所述第一共享数对端参与方分量确定所述第一共享数。
8.根据权利要求4所述的方法,其特征在于,当前参与方基于所述第三随机数、第四随机数,与对端参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数。
9.根据权利要求2至8任意一项所述的方法,其特征在于,当前参与方缩小所述当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果,包括:
当前参与方将所述当前参与方第一多项式乘法初始共享结果除以所述当前参与方多项式共享分量,获得当前参与方第一多项式乘法共享结果。
10.根据权利要求2至8任意一项所述的方法,其特征在于,当前参与方缩小所述当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果,包括:
当前参与方基于所述当前参与方第一多项式乘法初始共享结果、所述当前参与方多项式共享分量以及大于或者等于0的第一常数,获得缩小位数后的当前参与方第一多项式乘法共享结果。
11.根据权利要求2至8任意一项所述的方法,其特征在于,当前参与方缩小所述当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果,包括:
当前参与方基于所述当前参与方第一多项式乘法初始共享结果、所述当前参与方多项式共享分量以及小于0的第二常数,获得缩小位数后的当前参与方第一多项式乘法共享结果。
12.根据权利要求2至8任意一项所述的方法,其特征在于,当前参与方缩小所述当前参与方第一多项式乘法初始共享结果的位数,获得当前参与方第一多项式乘法共享结果,包括:
当前参与方基于所述当前参与方第一多项式乘法初始共享结果、所述当前参与方多项式共享分量以及小于0的第二常数,获得缩小位数后的当前参与方第一多项式乘法共享结果;
当前参与方与所述对端参与方进行加性共享大小判断,基于第二常数与对端参与方持有的常数之间满足的大小关系,更新所述缩小位数后的当前参与方第一多项式乘法共享结果。
13.根据权利要求12所述的方法,其特征在于,当前参与方与所述对端参与方进行加性共享大小判断,基于第二常数与对端参与方持有的常数之间满足的大小关系,更新所述缩小位数后的当前参与方第一多项式乘法共享结果,包括:
在两倍对端参与方持有的常数减去第二常数之差大于或者等于两倍所述当前参与方多项式共享分量时,将所述当前参与方第一多项式乘法共享结果减去2之后的值作为更新后的所述当前参与方第一多项式乘法共享结果;
在两倍对端参与方持有的常数减去第二常数之差大于或者等于所述当前参与方多项式共享分量且小于两倍所述当前参与方多项式共享分量时,将所述当前参与方第一多项式乘法共享结果减去1之后的值作为更新后的所述当前参与方第一多项式乘法共享结果。
14.一种安全协议方法,其特征在于,包括步骤:
第一参与方基于待定素数的第一加性共享分量确定第一中间分量,第二参与方基于所述待定素数的第二加性共享分量确定第二中间分量;
基于所述第一中间分量和所述第二中间分量,第一参与方与第二参与方共享所述待定素数的幂指近似整数,第一参与方获得第一幂指近似整数共享分量,第二参与方获得第二幂指近似整数共享分量;
第一参与方与第二参与方共享模指运算结果,第一参与方获得第一模指运算共享分量,第二参与方获得第二模指运算共享分量,所述模指运算结果基于所述第一幂指近似整数共享分量和所述第二幂指近似整数共享分量确定;
基于所述第一模指运算共享分量和所述第二模指运算共享分量,第一参与方与第二参与方依次进行多项式乘法共享和模数运算,第一参与方获得第一共享秘密分量,第二参与方获得第二共享秘密分量;
第一参与方与第二参与方交换第一共享秘密分量和第二共享秘密分量后,第一参与方复原出第一共享秘密,第二参与方复原出第二共享秘密;
在所述第一共享秘密与所述第二共享秘密一致时,返回第一参与方与第二参与方共享模指运算结果的步骤,直至循环次数达到预设安全次数,并在预设安全次数的各循环过程中,所述第一共享秘密与所述第二共享秘密均一致时,判定所述待定素数为素数;
基于所述第一中间分量和所述第二中间分量,第一参与方与第二参与方共享所述待定素数的幂指近似整数,第一参与方获得第一幂指近似整数共享分量,第二参与方获得第二幂指近似整数共享分量,包括:
第一参与方获取幂指整数的第一多项式共享分量,第二参与方获取所述幂指整数的第二多项式共享分量;
基于所述第一多项式共享分量、所述第二多项式共享分量、所述第一中间分量以及所述第二中间分量,第一参与方与第二参与方进行多项式乘法共享,获得第一多项式乘法共享结果;
基于所述第一多项式乘法共享结果、所述第一多项式共享分量和所述第二多项式共享分量以及所述幂指整数,第一参与方与第二参与方进行多项式乘法共享,获得第二多项式乘法共享结果;
基于所述第二多项式乘法共享结果更新所述第一多项式共享分量和所述第二多项式共享分量,第一参与方与第二参与方进行多项式乘法共享,获得第一多项式乘法共享结果的步骤,直至达到预设次数,并基于最终获得的第二多项式乘法共享结果确定第一幂指近似整数共享分量和第二幂指近似整数共享分量;
所述多项式乘法共享的原理包括:两个多项式f(x)=a+a1x,g(x)=b+b1x,第一参与方拥有f(1)和g(1),第二参与方拥有f(2)和g(2),双方共享一个多项式秘密使之常数项为a·b,在进行多项式乘法共享时,第一参与方基于f(1)和g(1)计算出h(1)=f(1)·g(1),第二参与方基于f(2)和g(2)计算出h(2)=f(2)·g(2);随后,第一参与方选择随机数rA1、rA2,计算出f(1)+rA1、g(1)+rA2,并将f(1)+rA1和g(1)+rA2发送给第二参与方,第二参与方接收到f(1)+rA1和g(1)+rA2,计算出rB1=f(2)-f(1)-rA1,rB2=g(2)-g(1)-rA2。
15.根据权利要求14所述的方法,其特征在于,基于所述第一多项式共享分量、所述第二多项式共享分量、所述第一中间分量以及所述第二中间分量,第一参与方与第二参与方进行多项式乘法共享,获得第一多项式乘法共享结果,包括:
基于所述第一多项式共享分量、所述第二多项式共享分量、所述第一中间分量以及所述第二中间分量,第一参与方与第二参与方进行第一多项式乘法共享,获得第一多项式乘法初始共享结果;
第一参与方与第二参与方缩小所述第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果。
16.根据权利要求14所述的方法,其特征在于:基于所述第一多项式乘法共享结果、所述第一多项式共享分量和所述第二多项式共享分量以及所述幂指整数,第一参与方与第二参与方进行多项式乘法共享,获得第二多项式乘法共享结果,包括:
基于所述第一多项式乘法共享结果、所述第一多项式共享分量和所述第二多项式共享分量以及所述幂指整数,第一参与方与第二参与方进行多项式乘法共享,获得第二多项式乘法初始共享结果;
第一参与方与第二参与方缩小所述第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果。
17.根据权利要求15所述的方法,其特征在于,基于所述第一多项式共享分量、所述第二多项式共享分量、所述第一中间分量以及所述第二中间分量,第一参与方与第二参与方进行第一多项式乘法共享,获得第一多项式乘法初始共享结果,包括:
第一参与方基于所述第一中间分量和所述第一多项式共享分量确定第一乘积分量,第二参与方基于所述第二中间分量和所述第二多项式共享分量确定第二乘积分量;
第一参与方基于所述第一中间分量和选择的第一随机数确定第一分量参数,基于所述第一多项式共享分量和选择的第二随机数确定第二分量参数,并将所述第一分量参数和所述第二分量参数发送给第二参与方;
第二参与方接收所述第一分量参数和所述第二分量参数,根据所述第二中间分量和所述第一分量参数确定第三随机数,根据所述第二多项式共享分量和所述第二分量参数确定第四随机数;
第一参与方与第二参与方基于所述第一随机数、第二随机数、第三随机数和第四随机数计算出第一共享数;
第一参与方根据所述第一乘积分量和所述第一共享数计算出第一参与方第一多项式乘法初始共享结果,第二参与方根据所述第二乘积分量和所述第一共享数计算出第二参与方第一多项式乘法初始共享结果,所述第一多项式乘法初始共享结果包括所述第一参与方第一多项式乘法初始共享结果和所述第二参与方第一多项式乘法初始共享结果。
18.根据权利要求16所述的方法,其特征在于,基于所述第一多项式乘法共享结果、第一多项式共享分量和第二多项式共享分量以及所述幂指整数,第一参与方与第二参与方进行多项式乘法共享,获得第二多项式乘法初始共享结果,包括:
第一参与方基于所述第一参与方第一多项式乘法共享结果和所述第一多项式共享分量确定第三乘积分量,第二参与方基于所述第二参与方第一多项式乘法共享结果和所述第二多项式共享分量确定第四乘积分量;
第一参与方基于所述第一参与方第一多项式乘法共享结果和选择的第五随机数确定第三分量参数,基于所述第一多项式共享分量和选择的第六随机数确定第四分量参数,并将所述第三分量参数和所述第四分量参数发送给第二参与方;
第二参与方接收所述第三分量参数和所述第四分量参数,根据所述第二参与方第一多项式乘法共享结果和所述第三分量参数确定第七随机数,根据所述第二多项式共享分量和所述第四分量参数确定第八随机数;
第一参与方与第二参与方基于所述第五随机数、第六随机数、第七随机数和第八随机数计算出第二共享数;
第一参与方根据所述第三乘积分量和所述第二共享数计算出第一参与方第二多项式乘法初始共享结果,第二参与方根据所述第四乘积分量和所述第二共享数计算出第二参与方第二多项式乘法初始共享结果,所述第二多项式乘法初始共享结果包括所述第一参与方第二多项式乘法初始共享结果和所述第二参与方第二多项式乘法初始共享结果。
19.根据权利要求17所述的方法,其特征在于,第一参与方与第二参与方基于所述第一随机数、第二随机数、第三随机数和第四随机数计算出第一共享数,包括:
第一参与方基于第一随机数和第二随机数,第二参与方基于第三随机数和第四随机数,第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数。
20.根据权利要求18所述的方法,其特征在于:第一参与方与第二参与方基于所述第五随机数、第六随机数、第七随机数和第八随机数计算出第二共享数,包括:
第一参与方基于第五随机数和第六随机数,第二参与方基于第七随机数和第八随机数,第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第二共享数。
21.根据权利要求19所述的方法,其特征在于,第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数,包括:
第一参与方确定所述第一随机数和第二随机数的第一中间乘积,并获得第一加密结果,将所述第一加密结果发送给第二参与方;所述第一加密结果包括对所述第一随机数加密获得的第一随机数加密结果、对所述第二随机数加密获得的第二随机数加密结果和对所述第一中间乘积加密获得的第一中间乘积加密结果;
第二参与方确定所述第三随机数和第四随机数的第二中间乘积,并获得第二加密结果;所述第二加密结果包括对所述第三随机数加密获得的第三随机数加密结果、对所述第四随机数加密获得的第四随机数加密结果和对所述第二中间乘积加密获得的第二中间乘积加密结果;
第二参与方根据所述第一加密结果和所述第二加密结果进行运算,获得共享加密结果,并将所述共享加密结果发送给第一参与方;
第一参与方对所述共享加密结果进行解密,获得所述第一共享数。
22.根据权利要求20所述的方法,其特征在于,第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第二共享数,包括:
第一参与方确定所述第五随机数和第六随机数的第三中间乘积,并获得第三加密结果,将所述第三加密结果发送给第二参与方;所述第三加密结果包括对所述第五随机数加密获得的第五随机数加密结果、对所述第六随机数加密获得的第六随机数加密结果和对所述第三中间乘积加密获得的第三中间乘积加密结果;
第二参与方确定所述第七随机数和第八随机数的第四中间乘积,并获得第四加密结果;所述第四加密结果包括对所述第七随机数加密获得的第七随机数加密结果、对所述第八随机数加密获得的第八随机数加密结果和对所述第四中间乘积加密获得的第四中间乘积加密结果;
第二参与方根据所述第三加密结果和所述第四加密结果进行运算,获得共享加密结果,并将所述共享加密结果发送给第一参与方;
第一参与方对所述共享加密结果进行解密,获得所述第二共享数。
23.根据权利要求19所述的方法,其特征在于,第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第一共享数,包括:
第一参与方基于第一随机数,第二参与方基于第四随机数,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第一加法分量,第二参与方获得第二加法分量,所述第一加法分量与所述第二加法分量之和为所述第一随机数与所述第四随机数的乘积;
第一参与方基于第二随机数,第二参与方基于第三随机数,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第三加法分量,第二参与方获得第四加法分量,所述第三加法分量与所述第四加法分量之和为所述第二随机数与所述第三随机数的乘积;
第一参与方根据所述第一随机数、所述第二随机数、所述第一加法分量和所述第三加法分量确定第一共享数第一分量;
第二参与方根据所述第三随机数、所述第四随机数、所述第二加法分量和所述第四加法分量确定第一共享数第二分量;
第一参与方与第二参与方交换所述第一共享数第一分量与所述第一共享数第二分量后,根据所述第一共享数第一分量与所述第一共享数第二分量确定所述第一共享数。
24.根据权利要求20所述的方法,其特征在于:第一参与方与第二参与方执行两个加性秘密转秘密之积协议,获得所述第二共享数,包括:
第一参与方基于第五随机数,第二参与方基于第八随机数,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第五加法分量,第二参与方获得第六加法分量,所述第五加法分量与所述第六加法分量之和为所述第五随机数与所述第八随机数的乘积;
第一参与方基于第六随机数,第二参与方基于第七随机数,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第七加法分量,第二参与方获得第八加法分量,所述第七加法分量与所述第八加法分量之和为所述第六随机数与所述第七随机数的乘积;
第一参与方根据所述第五随机数、所述第六随机数、所述第五加法分量和所述第七加法分量确定第二共享数第一分量;
第二参与方根据所述第七随机数、所述第八随机数、所述第六加法分量和所述第八加法分量确定第二共享数第二分量;
第一参与方与第二参与方交换第二共享数第一分量与第二共享数第二分量后,根据第二共享数第一分量与第二共享数第二分量确定所述第二共享数。
25.根据权利要求23所述的方法,其特征在于,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第一加法分量,第二参与方获得第二加法分量,包括:
第二参与方在循环群中选择数量为所述第四随机数的位数的元素,并根据各元素定义分别与各元素对应的数据元对,数据元对中的第一子元素为对应的所述元素,数据元对中的第二子元素根据对应的所述元素以及所述第四随机数确定;
第一参与方将所述第一随机数表示为二进制形式后,与第二参与方进行不经意传输,根据对应位数的二进制数值,从对应位数的数据元对中选择第一子元素或者第二子元素作为所述对应位数的元素值;
第一参与方根据确定的各所述对应位数的元素值确定所述第一加法分量,第二参与方根据在循环群中选择的各所述元素确定所述第二加法分量。
26.根据权利要求24所述的方法,其特征在于,第一参与方与第二参与方执行乘法转加法协议,第一参与方获得第五加法分量,第二参与方获得第六加法分量,包括:
第二参与方在循环群中选择数量为所述第八随机数的位数的元素,并根据各元素定义分别与各元素对应的数据元对,数据元对中的第一子元素为对应的所述元素,数据元对中的第二子元素根据对应的所述元素以及所述第八随机数确定;
第一参与方将所述第五随机数表示为二进制形式后,与第二参与方进行不经意传输,根据对应位数的二进制数值,从对应位数的数据元对中选择第一子元素或者第二子元素作为所述对应位数的元素值;
第一参与方根据确定的各所述对应位数的元素值确定所述第五加法分量,第二参与方根据在循环群中选择的各所述元素确定所述第六加法分量。
27.根据权利要求15所述的方法,其特征在于,所述第一多项式乘法初始共享结果包括第一参与方第一多项式乘法初始共享结果和第二参与方第一多项式乘法初始共享结果,第一参与方与第二参与方缩小所述第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果,包括:
第一参与方将所述第一参与方第一多项式乘法初始共享结果除以所述第一多项式共享分量,获得第一参与方第一多项式乘法共享结果;
第二参与方将所述第二参与方第一多项式乘法初始共享结果除以所述第二多项式共享分量,获得第二参与方第一多项式乘法共享结果。
28.根据权利要求15所述的方法,其特征在于,所述第二多项式乘法初始共享结果包括第一参与方第二多项式乘法初始共享结果和第二参与方第二多项式乘法初始共享结果,第一参与方与第二参与方缩小所述第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果,包括:
第一参与方将所述第一参与方第二多项式乘法初始共享结果除以所述第一多项式共享分量,获得第一参与方第二多项式乘法共享结果;
第二参与方将所述第二参与方第二多项式乘法初始共享结果除以所述第二多项式共享分量,获得第二参与方第二多项式乘法共享结果。
29.根据权利要求15所述的方法,其特征在于,所述第一多项式乘法初始共享结果包括第一参与方第一多项式乘法初始共享结果和第二参与方第一多项式乘法初始共享结果,第一参与方与第二参与方缩小所述第一多项式乘法初始共享结果的位数,获得第一多项式乘法共享结果,包括:
第一参与方基于所述第一参与方第一多项式乘法初始共享结果、所述第一多项式共享分量以及大于或者等于0的第一常数,获得缩小位数后的第一参与方第一多项式乘法共享结果;
第二参与方基于所述第二参与方第一多项式乘法初始共享结果、所述第二多项式共享分量以及小于0的第二常数,获得缩小位数后的第二参与方第一多项式乘法共享结果;
所述第一多项式乘法共享结果包括所述第一参与方第一多项式乘法共享结果和所述第二参与方第一多项式乘法共享结果。
30.根据权利要求16所述的方法,其特征在于,所述第二多项式乘法初始共享结果包括第一参与方第二多项式乘法初始共享结果和第二参与方第二多项式乘法初始共享结果,第一参与方与第二参与方缩小所述第二多项式乘法初始共享结果的位数,获得第二多项式乘法共享结果,包括:
第一参与方基于所述第一参与方第二多项式乘法初始共享结果、所述第一多项式共享分量以及大于或者等于0的第三常数,获得缩小位数后的第一参与方第二多项式乘法共享结果;
第二参与方基于所述第二参与方第二多项式乘法初始共享结果、所述第二多项式共享分量以及小于0的第四常数,获得缩小位数后的第二参与方第二多项式乘法共享结果;
所述第二多项式乘法共享结果包括所述第一参与方第二多项式乘法共享结果和所述第二参与方第二多项式乘法共享结果。
31.根据权利要求29所述的方法,其特征在于,所述方法还包括:
第一参与方基于所述第一常数,第二参与方基于所述第二常数,第一参与方与第二参与方进行加性共享大小判断,并基于第一常数与第二常数之间满足的大小关系,更新所述缩小位数后的第二参与方第一多项式乘法共享结果;
所述第一多项式乘法共享结果包括所述第一参与方第一多项式乘法共享结果和更新后的所述第二参与方第一多项式乘法共享结果。
32.根据权利要求30所述的方法,其特征在于,所述方法还包括:
第一参与方基于所述第三常数,第二参与方基于所述第四常数,第一参与方与第二参与方进行加性共享大小判断,并基于第三常数与第四常数之间满足的大小关系,更新所述缩小位数后的第二参与方第二多项式乘法共享结果;
所述第二多项式乘法共享结果包括所述第一参与方第二多项式乘法共享结果和更新后的所述第二参与方第二多项式乘法共享结果。
33.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至32任一项所述方法的步骤。
34.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至32任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810738486.7A CN109067538B (zh) | 2018-07-06 | 2018-07-06 | 安全协议方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810738486.7A CN109067538B (zh) | 2018-07-06 | 2018-07-06 | 安全协议方法、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109067538A CN109067538A (zh) | 2018-12-21 |
CN109067538B true CN109067538B (zh) | 2021-12-24 |
Family
ID=64819066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810738486.7A Active CN109067538B (zh) | 2018-07-06 | 2018-07-06 | 安全协议方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109067538B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523674B (zh) * | 2019-02-01 | 2023-08-08 | 创新先进技术有限公司 | 模型训练方法、装置及系统 |
CN111523556B (zh) * | 2019-02-01 | 2023-07-11 | 创新先进技术有限公司 | 模型训练方法、装置及系统 |
CN110650119B (zh) * | 2019-08-20 | 2022-01-21 | 创新先进技术有限公司 | 数据传输方法、装置和电子设备 |
CN110943828B (zh) * | 2019-11-05 | 2021-01-08 | 武汉理工大学 | 秘密数运算转换方法及系统 |
CN110971405B (zh) * | 2019-12-06 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 多方协同的sm2签名、解密方法及其系统 |
CN111049847B (zh) * | 2019-12-20 | 2021-09-14 | 支付宝(杭州)信息技术有限公司 | 基于隐私数据的区间判定进行业务处理的方法及装置 |
CN111783130B (zh) * | 2020-09-04 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 隐私保护的数据处理方法、装置及服务器 |
CN112380495B (zh) * | 2020-12-04 | 2023-06-16 | 贵州师范学院 | 安全多方乘法运算方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888385A (zh) * | 2017-12-27 | 2018-04-06 | 数安时代科技股份有限公司 | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2946207A1 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
-
2018
- 2018-07-06 CN CN201810738486.7A patent/CN109067538B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888385A (zh) * | 2017-12-27 | 2018-04-06 | 数安时代科技股份有限公司 | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109067538A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067538B (zh) | 安全协议方法、计算机设备及存储介质 | |
US8520854B2 (en) | Sharing a secret using polynomials over polynomials | |
Das et al. | An efficient multi-use multi-secret sharing scheme based on hash function | |
KR20070046778A (ko) | 멀티파티 곱셈을 효율적으로 수행하기 위한 방법 및 장치 | |
US20130329886A1 (en) | Public Key Cryptography with Reduced Computational Load | |
US20100046739A1 (en) | Sharing a secret using polynomial division over gf(q) | |
Applebaum et al. | Conditional disclosure of secrets: Amplification, closure, amortization, lower-bounds, and separations | |
US7995764B2 (en) | Sharing a secret using hyperplanes over GF(2m) | |
JP4783382B2 (ja) | モンゴメリ法用乗算剰余計算装置 | |
CN110826089A (zh) | 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统 | |
CN107888385B (zh) | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
Schlor et al. | Multi-party computation enables secure polynomial control based solely on secret-sharing | |
US7050579B1 (en) | Cryptographic methods and apparatus using word-wise montgomery multiplication | |
Nissim et al. | Communication efficient secure linear algebra | |
CN110071796B (zh) | 一种基于共享秘密的计算方法 | |
Escudero et al. | Degree-d reverse multiplication-friendly embeddings: constructions and applications | |
US20040258240A1 (en) | Cryptosystems | |
Kaya et al. | Sharing DSS by the Chinese remainder theorem | |
Catrina | Towards practical secure computation with floating-point numbers | |
Huang et al. | Fast scalar multiplication for elliptic curve cryptography in sensor networks with hidden generator point | |
CN115001675A (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
KR20230003954A (ko) | 영지식 증명을 위한 암호문 처리 방법 및 장치 | |
Zhang et al. | Two provably secure k-out-of-n oblivious transfer schemes | |
Youssef | A Comment on “Cryptographic Applications of Brahmagupta–Bhãskara Equation” |
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 |