CN116055049A - 多方安全计算方法、装置、系统、电子设备和存储介质 - Google Patents
多方安全计算方法、装置、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116055049A CN116055049A CN202310339886.1A CN202310339886A CN116055049A CN 116055049 A CN116055049 A CN 116055049A CN 202310339886 A CN202310339886 A CN 202310339886A CN 116055049 A CN116055049 A CN 116055049A
- Authority
- CN
- China
- Prior art keywords
- participant
- party
- data
- slice
- transformation
- 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.)
- Granted
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/46—Secure multiparty computation, e.g. millionaire problem
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
本公开为一种多方安全计算方法、装置、系统、电子设备和存储介质,所述多方安全计算方法包括:第一参与方根据第一变换结果分片和第二变换结果分片确定变换结果;所述第一参与方根据第一符号位和所述变换结果确定第一比较结果分片;所述第二参与方根据所述第二符号位确定第二比较结果分片;所述第一比较结果分片和所述第二比较结果分片用于确定比较结果。本公开通过参与方之间共享随机数种子后,在不发生通信的条件下互相获取对方原始数据的数据分片,各自在本地进行计算,仅在执行多方安全计算乘法计算以及发送变换结果分片的时候发生通信。实现了整个计算过程中通信次数较少,运算量较少,且没有敏感信息在节点之间交互的效果。
Description
技术领域
本公开涉及数据安全技术领域,尤其涉及一种多方安全计算方法、装置、系统、电子设备和存储介质。
背景技术
多方安全计算主要是针对无可信第三方的情况下,如何安全地实现信息在多计算节点之间交互的过程中“可用,不可见”。
相关技术中,安全多方计算在进行比较算子运算时,通常采用基于电路的技术、不经意传输技术或同态加密技术。
然而,基于不经意传输的大小比较和相等测试方法,各个参与方之间的通信交互次数较多,通信开销大。基于同态加密技术的方法则计算复杂度较高,运算量巨大。上述方法除了运算及时间成本巨大,在节点交互过程中也会涉及敏感信息对信息安全构成威胁。
发明内容
本公开要解决的问题是为了克服现有技术中运算及时间成本巨大,计算过程中涉及敏感信息的缺陷,提供一种多方安全计算方法、装置、系统、电子设备和存储介质。
本公开是通过下述技术方案来解决上述技术问题:
本公开提供一种多方安全计算方法,所述多方安全计算方法应用于第一参与方,所述多方安全计算方法包括:
与第二参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
接收所述第二参与方的第二变换结果分片,与所述第一变换结果分片进行分片恢复,以获得变换结果;其中,所述第二变换结果分片由所述第二参与方根据所述第一随机数种子和所述第二参与方的原始数据生成;
根据所述第一符号位和所述变换结果确定第一比较结果分片,所述第一比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
较佳地,所述将所述第一无符号数值位进行变换处理以获得第一变换结果分片,包括:
根据第二随机数种子生成所述第一参与方的第一无符号数值位所对应的第三数据分片和所述第二参与方的第二无符号数值位所对应的第四数据分片;
将所述第三数据分片和所述第四数据分片进行减法计算以获得第二分片差值;
将所述第二分片差值进行函数变换,以获得第一变换结果分片。
较佳地,所述将所述第二分片差值进行函数变换,包括:
与所述第二参与方协同生成变换函数参数,以生成第一变换函数参数分片;
将所述第一变换函数参数分片和第二分片差值代入变换函数进行求解。
较佳地,所述变换函数为单调递增函数或单调递减函数。
本公开还提供一种多方安全计算方法,所述多方安全计算方法应用于第二参与方,所述多方安全计算方法包括:
与第一参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
将所述第二变换结果分片发送给所述第一参与方,以由所述第一参与方根据所述第二变换结果分片和第一变换结果分片确定变换结果;所述第一变换结果分片由所述第一参与方根据所述第一随机数种子和所述第一参与方的原始数据生成;
根据所述第二符号位确定第二比较结果分片,所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
较佳地,所述将所述第二无符号数值位进行变换处理以获得第二变换结果分片,包括:
根据第二随机数种子生成所述第一参与方的第一无符号数值位所对应的第七数据分片和所述第二参与方的第二无符号数值位所对应的第八数据分片;
将所述第七数据分片和所述第八数据分片进行减法计算以获得第四分片差值;
将所述第四分片差值进行函数变换,以获得第二变换结果分片。
较佳地,所述将所述第四分片差值进行函数变换,包括:
与所述第二参与方协同生成变换函数参数,以生成第二变换函数参数分片;
将所述第二变换函数参数分片和第四分片差值代入变换函数进行求解。
较佳地,所述变换函数为单调递增函数或单调递减函数。
本公开还提供一种多方安全计算方法,所述多方安全计算方法包括:
根据所述第二符号位确定第二比较结果分片第一参与方与第二参与方共享第一随机数种子;
所述第一参与方根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
所述第一参与方将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
所述第一参与方提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
所述第二参与方根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
所述第二参与方将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
所述第二参与方提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
所述第二参与方将所述第二变换结果分片发送给所述第一参与方;
所述第一参与方对所述第二变换结果分片与所述第一变换结果分片进行分片恢复,以获得变换结果;
所述第一参与方根据所述第一符号位和所述变换结果确定第一比较结果分片;
所述第二参与方根据所述第二符号位确定第二比较结果分片;
所述第一比较结果分片和所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
本公开还提供一种多方安全计算装置,所述多方安全计算装置应用于第一参与方,所述多方安全计算装置包括:
第一分片模块,用于与第二参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
第一差值模块,用于将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
第一变换模块,用于提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
分片接收模块,用于接收所述第二参与方的第二变换结果分片,与所述第一变换结果分片进行分片恢复,以获得变换结果;其中,所述第二变换结果分片由所述第二参与方根据所述第一随机数种子和所述第二参与方的原始数据生成;
第一结果确定模块,用于根据所述第一符号位和所述变换结果确定第一比较结果分片,所述第一比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
较佳地,所述第一变换模块,包括:
第一分片单元,用于根据第二随机数种子生成所述第一参与方的第一无符号数值位所对应的第三数据分片和所述第二参与方的第二无符号数值位所对应的第四数据分片;
第一差值单元,用于将所述第三数据分片和所述第四数据分片进行减法计算以获得第二分片差值;
第一变换单元,用于将所述第二分片差值进行函数变换,以获得第一变换结果分片。
较佳地,所述第一变换单元,还用于与所述第二参与方协同生成变换函数参数,以生成第一变换函数参数分片;将所述第一变换函数参数分片和第二分片差值代入变换函数进行求解。
较佳地,所述变换函数为单调递增函数或单调递减函数。
本公开还提供一种多方安全计算装置,所述多方安全计算装置应用于第二参与方,所述多方安全计算装置包括:
第二分片模块,用于与第一参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
第二差值模块,用于将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
第二变换模块,用于提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
分片发送模块,用于将所述第二变换结果分片发送给所述第一参与方,以由所述第一参与方根据所述第二变换结果分片和第一变换结果分片确定变换结果;所述第一变换结果分片由所述第一参与方根据所述第一随机数种子和所述第一参与方的原始数据生成;
第二结果确定模块,用于根据所述第二符号位确定第二比较结果分片,所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
较佳地,所述第二变换模块,包括:
第二分片单元,用于根据第二随机数种子生成所述第一参与方的第一无符号数值位所对应的第七数据分片和所述第二参与方的第二无符号数值位所对应的第八数据分片;
第二差值单元,用于将所述第七数据分片和所述第八数据分片进行减法计算以获得第四分片差值;
第二变换单元,用于将所述第四分片差值进行函数变换,以获得第二变换结果分片。
较佳地,所述第二变换单元,还用于与所述第二参与方协同生成变换函数参数,以生成第二变换函数参数分片;将所述第二变换函数参数分片和第四分片差值代入变换函数进行求解。
较佳地,所述变换函数为单调递增函数或单调递减函数。
本公开还提供一种多方安全计算系统,所述多方安全计算系统包括:第一参与方与第二参与方;
所述第一参与方,用于与第二参与方共享第一随机数种子;
所述第一参与方,还用于根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
所述第一参与方,还用于将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
所述第一参与方,还用于提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
所述第二参与方,用于根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
所述第二参与方,还用于将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
所述第二参与方,还用于提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
所述第二参与方,还用于将所述第二变换结果分片发送给所述第一参与方;
所述第一参与方,还用于对所述第二变换结果分片与所述第一变换结果分片进行分片恢复,以获得变换结果;
所述第一参与方,还用于根据所述第一符号位和所述变换结果确定第一比较结果分片;
所述第二参与方,还用于根据所述第二符号位确定第二比较结果分片;
所述第一比较结果分片和所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的多方安全计算方法。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的多方安全计算方法。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本公开各较佳实例。
本公开的积极进步效果在于:通过参与方之间共享随机数种子后,在不发生通信的条件下互相获取对方原始数据的数据分片,各自在本地进行计算,仅在执行多方安全计算乘法计算以及发送变换结果分片的时候发生通信。实现了整个计算过程中通信次数较少,运算量较少,且没有敏感信息在节点之间交互的效果。
附图说明
图1为本公开一示例性实施例提供的一种多方安全计算方法的流程图;
图2为本公开一示例性实施例提供的一种多方安全计算方法的数据交互过程的流程图;
图3为本公开一示例性实施例提供的另一种多方安全计算方法的流程图;
图4为本公开一示例性实施例提供的另一种多方安全计算方法的流程图;
图5为本公开一示例性实施例提供的一种多方安全计算装置的模块示意图;
图6为本公开一示例性实施例提供的另一种多方安全计算装置的模块示意图;
图7为本公开一示例性实施例提供的一种多方安全计算系统的示意图;
图8为本公开一示例性实施例提供的另一种多方安全计算系统的示意图;
图9为本公开一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本公开,但并不因此将本公开限制在所述的实施例范围之中。
图1为本公开一示例性实施例提供的一种多方安全计算方法的流程图,图2为本公开一示例性实施例提供的一种多方安全计算方法的数据交互过程的流程图。该多方安全计算方法应用于第一参与方,参照图1和图2可知,多方安全计算方法包括:
步骤101、与第二参与方共享第一随机数种子,并根据第一随机数种子生成第一参与方的原始数据所对应的第一数据分片和第二参与方的原始数据所对应的第二数据分片。
在本步骤中,第一参与方和第二参与方共享第一随机数种子,该第一随机数种子用于随机数的生成,进而用于对原始数据进行数据分片。其中,第一随机数种子的共享,可选地,基于Diffie-Hellman密钥交换原理实现。
例如,第一参与方与第二参与方分别持有原始数据X和Y,其中X为88,Y为12。第一参与方与第二参与方共享一对第一随机数种子seeda1和seedb1。第一参与方和第二参与方均基于seeda1生成随机数Rx=1,以及基于seedb1生成随机数Ry=-95。在对原始数据进行分片时,可选地,其规则为:随机数Rx为原始数据X所生成的两个分片的其中一个,随机数Ry为原始数据Y所生成的两个分片的其中一个,则原始数据X分为:1和87,原始数据Y分为:-95和107。
第一参与方所持有的数据分片为:第一数据分片X1和第二数据分片Y1,其中,X1=X-Rx=88-1=87,Y1=Ry=-95;
同理,第二参与方所持有的数据分片为:第五数据分片X2和第六数据分片Y2,其中,X2=Rx=1,Y2=Y-Ry=12-(-95)=107;
可选地,在本步骤中的第一随机数种子在完成对原始数据进行数据分片之后,第一随机数种子需要进行更新,成为第二随机数种子,以用于下一次的数据分片,可选地,更新方法为:seeda2=seeda1+1和seedb2=seedb1+1。应该理解的是,该更新方法可根据实际需要调整,并不局限于上述更新方法,只要使得第二随机数种子区别于第一随机数种子即可。
步骤102、将第一数据分片和第二数据分片进行减法计算以获得第一分片差值。
在本步骤中,对在步骤101中所获取的第一数据分片和第二数据分片进行减法计算。例如,第一参与方所持有的第一数据分片X1为87和第二数据分片Y1为-95,则第一分片差值D1为:D1=Y1-X1=-95-87=-182。
步骤103、提取第一分片差值的第一符号位和第一无符号数值位,将第一无符号数值位进行变换处理以获得第一变换结果分片。
在本步骤中,对第一分片差值进行第一符号位提取,当第一分片差值为正数时,所提取的第一符号位为0,当第一分片差值为负数时,所提取的第一符号位为1。例如,当第一分片差值D1为-182,则第一分片差值的第一符号位sign1为1。
对于第一无符号位数值的提取,当第一分片差值为正数时,则直接提取第一分片差值本身。可选地,当第一分片差值为负数时,既可以利用补码计算原理获得,也可以利用如下公式进行计算:
D'1=2L-1+D1
其中,D'1为第一无符号数值位,L为限定的数值范围的二进制比特数。例如,当数值范围为32比特时L为32,当数值范围为64比特时L为64。
其中,步骤103包括:
步骤1031、根据第二随机数种子生成第一参与方的第一无符号数值位所对应的第三数据分片和第二参与方的第二无符号数值位所对应的第四数据分片;
在本步骤中,由于第一参与方和第二参与方共享了第一随机数种子,并且第一随机数种子更新后生成了第二随机数种子,该第二随机数种子用于随机数的生成,进而用于对第一无符号数值位进行数据分片。
步骤1032、将第三数据分片和第四数据分片进行减法计算以获得第二分片差值;
步骤1033、将第二分片差值进行函数变换,以获得第一变换结果分片。
其中,步骤1033包括:与第二参与方协同生成变换函数参数,以生成第一变换函数参数分片;将第一变换函数参数分片和第二分片差值代入变换函数进行求解。由于本步骤涉及MPC(多方安全计算)的计算工作,需要与第二参与方建立通信,以完成函数变换的计算。可选地,变换函数为单调递增函数或单调递减函数。
在本步骤中,可选地,变换函数为线性函数,例如,d=a*D;可选地,变换函数也可为指数函数,例如,d=aD。其中,a为变换函数参数,D是对第一无符号数值位和第二无符号数值位进行重分片的减法结果。其中,重分片的减法的过程为:
根据第二随机数种子进行重分片,分别对第一无符号数值位e1和第二无符号数值位e2进行分片处理,第一无符号数值位分成第三数据分片G1和第七数据分片G2,第二无符号数值位分成第四数据分片H1和第八数据分片H2。
因此,在第一参与方持有第三数据分片G1和第四数据分片H1,其中G1=e1-Rx2,H1=Ry2;在第二参与方持有第七数据分片G2和第八数据分片H2,其中G2=Rx2,H2=e2-Ry2。
然后,执行分片的减法计算。在第一参与方计算第二分片差值为:D2=G1-H1;在第二参与方计算第四分片差值为:D4=G2-H2。步骤104、接收第二参与方的第二变换结果分片,与第一变换结果分片进行分片恢复,以获得变换结果;其中,第二变换结果分片由第二参与方根据第一随机数种子和第二参与方的原始数据生成。
在本步骤中,变换结果根据第一变换结果分片与第二变换结果分片进行分片恢复后的数值确定。
可选地,若变换函数为单调递增线性函数时,分片恢复后的数值若大于0,则变换结果输出为1,否则变换结果输出为0;其中,在执行分片的减法计算时,对于第一参与方计算第二分片差值为:D2=G1-H1;对于第二参与方计算第四分片差值为:D4=G2-H2。
同理,若变换函数为单调递减线性函数时,分片恢复后的数值若大于0,则变换结果输出为1,否则变换结果输出为0;但是,在执行分片的减法计算时,对于第一参与方计算第二分片差值变为:D2=H1-G1;对于第二参与方计算第四分片差值变为:D4=H2-G2。
可选地,若变换函数为单调递增指数函数时,分片恢复后的数值若大于1,则变换结果输出为1,否则变换结果输出为0。其中,在执行分片的减法计算时,对于第一参与方计算第二分片差值为:D2=G1-H1;对于第二参与方计算第四分片差值为:D4=G2-H2。
同理,若变换函数为单调递减指数函数时,分片恢复后的数值若大于1,则变换结果输出为1,否则变换结果输出为0。但是,在执行分片的减法计算时,对于第一参与方计算第二分片差值变为:D2=H1-G1;对于第二参与方计算第四分片差值变为:D4=H2-G2。
步骤105、根据第一符号位和变换结果确定第一比较结果分片,第一比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
在本步骤中,第一比较结果分片与第二比较结果分片用于判断比较结果。
在本步骤中,比较结果分片的计算方法为:ret1=sign1⊕carry,其中,ret1为第一参与方的比较结果分片,carry为变换结果,sign1为第一分片差值的符号位。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在第一无符号数值位进行变换处理和获取第二变换结果分片时与第二参与方产生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
图3为本公开一示例性实施例提供的另一种多方安全计算方法的流程图,该多方安全计算方法应用于第二参与方,参见图2和图3可知,多方安全计算方法包括:
步骤201、与第一参与方共享第一随机数种子,并根据第一随机数种子生成第一参与方的原始数据所对应的第五数据分片和第二参与方的原始数据所对应的第六数据分片。
在本步骤中,第一参与方和第二参与方共享第一随机数种子,该第一随机数种子用于随机数的生成,进而用于对原始数据进行数据分片。其中,对原始数据进行数据分片的计算规则与步骤101相对应。
例如,第一参与方与第二参与方分别持有原始数据X和Y,其中X为88,Y为12。第一参与方与第二参与方共享一对第一随机数种子seeda1和seedb1。第一参与方和第二参与方均基于seeda1生成随机数Rx=1,以及基于seedb1生成随机数Ry=-95。在对原始数据进行分片时,可选地,其规则为:随机数Rx为原始数据X所生成的两个分片的其中一个,随机数Ry为原始数据Y所生成的两个分片的其中一个,则原始数据X分为:1和87,原始数据Y分为:-95和107第一参与方所持有的数据分片为:
第一数据分片X1和第二数据分片Y1,其中X1=X-Rx=88-1=87,Y1=Ry=-95;
同理,第二参与方所持有的数据分片为:
第五数据分片X2和第六数据分片Y2,其中X2=Rx=1,Y2=Y-Ry=12-(-95)=107;
可选地,在本步骤中的第一随机数种子在完成对原始数据进行数据分片之后,第一随机数种子需要进行更新,成为第二随机数种子,以用于下一次的数据分片,更新方法可以为:seeda2=seeda1+1和seedb2=seedb1+1。应该理解的是,该更新方法可根据实际需要调整,并不局限于上述更新方法,只要使得第二随机数种子区别于第一随机数种子即可。
步骤202、将第五数据分片和第六数据分片进行减法计算以获得第三分片差值。
在本步骤中,对在步骤201中所获取的第五数据分片和第六数据分片进行减法计算。例如,第二参与方所持有的第五数据分片X2为1和第六数据分片Y2为107,则第三分片差值D3为:D3=Y2-X2=107-1=106。
步骤203、提取第三分片差值的第二符号位和第二无符号数值位,将第二无符号数值位进行变换处理以获得第二变换结果分片。
在本步骤中,对第三分片差值进行第二符号位提取,当第三分片差值为正数时,所提取的第二符号位为0,当第三分片差值为负数时,所提取的第二符号位为1。例如,当第三分片差值D3为106,则第三分片差值的第二符号位sign2为0。
对于第二无符号位数值的提取,当第三分片差值为正数时,则直接提取第三分片差值本身。可选地,当第三分片差值为负数时,也可以利用如下公式进行计算:
D'3=2L-1+D3
其中,D'3为第二无符号数值位,L为限定的数值范围的二进制比特数。例如,数值范围为32比特时L为32,数值范围为64比特时L为64。
其中,步骤203包括:
步骤2031、根据第二随机数种子生成第一参与方的第一无符号数值位所对应的第七数据分片和第二参与方的第二无符号数值位所对应的第八数据分片;
在本步骤中,由于第一参与方和第二参与方共享了第一随机数种子,并且第一随机数种子更新后生成了第二随机数种子,该第二随机数种子用于随机数的生成,进而用于对第三无符号数值位进行数据分片。
步骤2032、将第七数据分片和第八数据分片进行减法计算以获得第四分片差值;
步骤2033、将第四分片差值进行函数变换,以获得第二变换结果分片。
其中,步骤2033包括:与第二参与方协同生成变换函数参数,以生成第二变换函数参数分片;将第二变换函数参数分片和第四分片差值代入变换函数进行求解,由于本步骤涉及MPC的计算工作,需要与第一参与方建立通信,以完成函数变换的计算。可选地,变换函数为单调递增函数或单调递减函数。
在本步骤中,可选地,变换函数为线性函数,例如,d=a*D;可选地,变换函数也可为指数函数,例如,d=aD。其中,a为变换函数参数,D是对第一无符号数值位和第二无符号数值位进行重分片的减法结果。其中,重分片的减法的过程为:
根据第二随机数种子进行重分片,分别对第一无符号数值位e1和第二无符号数值位e2进行分片处理,第一无符号数值位分成第三数据分片G1和第七数据分片G2,第二无符号数值位分成第四数据分片H1和第八数据分片H2。
因此,在第一参与方持有第三数据分片G1和第四数据分片H1,其中G1=e1-Rx2,H1=Ry2;在第二参与方持有第七数据分片G2和第八数据分片H2,其中G2=Rx2,H2=e2-Ry2。
然后,执行分片的减法计算。在第一参与方计算第二分片差值为:D2=G1-H1;在第二参与方计算第四分片差值为:D4=G2-H2。
步骤204、将第二变换结果分片发送给第一参与方,以由第一参与方根据第二变换结果分片和第一变换结果分片确定变换结果;第一变换结果分片由第一参与方根据第一随机数种子和第一参与方的原始数据生成;
步骤205、根据第二符号位确定第二比较结果分片,第二比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在第二无符号数值位进行变换处理和发送第二变换结果分片时与第一参与方产生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
图4为本公开一示例性实施例提供的另一种多方安全计算方法的流程图,多方安全计算方法包括:
步骤401、第一参与方与第二参与方共享第一随机数种子;
步骤402、第一参与方根据第一随机数种子生成第一参与方的原始数据所对应的第一数据分片和第二参与方的原始数据所对应的第二数据分片;
步骤403、第一参与方将第一数据分片和第二数据分片进行减法计算以获得第一分片差值;
步骤404、第一参与方提取第一分片差值的第一符号位和第一无符号数值位,将第一无符号数值位进行变换处理以获得第一变换结果分片;
步骤405、第二参与方根据第一随机数种子生成第一参与方的原始数据所对应的第五数据分片和第二参与方的原始数据所对应的第六数据分片;
步骤406、第二参与方将第五数据分片和第六数据分片进行减法计算以获得第三分片差值;
步骤407、第二参与方提取第三分片差值的第二符号位和第二无符号数值位,将第二无符号数值位进行变换处理以获得第二变换结果分片;
步骤408、第二参与方将第二变换结果分片发送给第一参与方;
步骤409、第一参与方对第二变换结果分片与第一变换结果分片进行分片恢复,以获得变换结果;
步骤410、第一参与方根据第一符号位和变换结果确定第一比较结果分片;
步骤411、第二参与方根据第二符号位确定第二比较结果分片;
第一比较结果分片和第二比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
步骤412、第一参与方根据第一比较结果分片和第二比较结果分片确定比较结果。
在本步骤中,对于比较结果的确定可由第一参与方、第二参与方或者数据获取方执行,只要具备第一比较结果分片和第二比较结果分片就可确定比较结果。
为对上述步骤进行说明,在此举一个具体示例,本示例包括:
步骤501、第一参与方与第二参与方分别持有原始数据X和Y,其中X为88,Y为12。第一参与方与第二参与方共享一对第一随机数种子seeda1和seedb1。第一参与方和第二参与方均基于seeda1生成随机数Rx=1,以及基于seedb1生成随机数Ry=-95。在对原始数据进行分片时,可选地,其规则为:随机数Rx为原始数据X所生成的两个分片的其中一个,随机数Ry为原始数据Y所生成的两个分片的其中一个,则原始数据X分为:1和87,原始数据Y分为:-95和107。
第一参与方所持有的数据分片为:
第一数据分片X1和第二数据分片Y1,其中X1=X-Rx=88-1=87,Y1=Ry=-95;
同理,第二参与方所持有的数据分片为:
第五数据分片X2和第六数据分片Y2,其中X2=Rx=1,Y2=Y-Ry=12-(-95)=107;
步骤502、第一参与方与第二参与方分别在本地进行减法计算,分别计算出第一分片差值和第三分片差值。
在第一参与方第一分片差值D1为:D1=Y1-X1=-95-87=-182;
在第二参与方第三分片差值D3为:D3=Y2-X2=107-1=106;
步骤503、提取第一分片差值D1的第一符号位和第三分片差值D3的第二符号位。
在本步骤中,第一分片差值D1为-182,第一符号位sign1为1。
第三分片差值D3为106,第二符号位sign2为0。
步骤504、提取第一分片差值D1的第一无符号数值位D'1和第三分片差值D3的第二无符号数值位D'3。
在本步骤中,第一分片差值D1为-182,获取第一无符号数值位D'1的处理过程如下:-182的原码为32位数字“11111111111111111111111101001010”,其中左边第一位为第一符号位,当去掉第一符号位后变为31位数字“1111111111111111111111101001010”作为第一无符号数值位D'1,将其转换成十进制后表示为2147483466。
第三分片差值D3为106,第二无符号数值位D'3为106。
步骤505、基于第一无符号数值位D'1和第二无符号数值位D'3进行变换获得第一变换数据e1和第二变换数据e2。变换规则可以为:第一参与方的第一变换数据e1等于第一无符号数值位D'1,第二参与方的第二无符号数值位D'3根据如下公式进行转换:
e2=2L-1-1-D'3
其中,数值长度为32比特时L为32,所以,在本步骤中第一变换数据e1为2147483466,第二变换数据e2为2147483541。
步骤506、对第一变换数据e1和第二变换数据e2进行数据分片处理。第一参与方和第二参与方均基于第二随机数种子seeda2和seedb2生成随机数Rx2=42378,以及基于seedb1生成随机数Ry2=893425。在对原始数据进行分片时,可选地,其规则为:随机数Rx2为原始数据e1的分片,随机数Ry2为原始数据e2的分片,则原始数据X分为:2147441088和42378,原始数据Y分为:893425和2146590116。
第一参与方所持有的数据分片为:
第三数据分片G1和第四数据分片H1,其中G1=e1-Rx2=2147483466-42378=2147441088,H1=Ry2=893425;
同理,第二参与方所持有的数据分片为:
第七数据分片G2和第八数据分片H2,其中G2=Rx2=42378,H2=e2-Ry2=2147483541-893425=2146590116。
步骤507、分别在第一参与节点和第二参与节点进行减法计算,计算出第二分片差值和第四分片差值:
对于第一参与方计算第二分片差值为:D2=G1-H1=2147441088-893425=2146547663;
对于第二参与方计算第四分片差值为:D4=G2-H2=42378-2146590116=-2146547738。
步骤508、第一参与方和第二参与方分别协同生成第一变换函数参数分片a1和第二变换函数参数分片a2。
步骤509、第一参与方和第二参与方分别进行MPC乘法计算。
在本步骤中,MPC乘法计算是基于乘法三元组实现的,经过MPC乘法计算后,在第一参与方计算第一变换结果分片为d1,在第二参与方计算第二变换结果分片为d2。
步骤510、第二参与方将第二变换结果分片发送给第一参与方,在第一参与方将第一变换结果分片和第二变换结果分片进行分片恢复,生成分片恢复结果d,其中d=d1+d2=-1875。
步骤511、根据分片恢复结果d的数值计算变换结果carry的值,当d大于0时则变换结果carry为1,当d不大于0时则变换结果carry为0。由于d为负数,所以变换结果carry为0。
步骤512、分别在第一参与方和第二参与方计算第一比较结果分片和第二比较结果分片。
其中,第一比较结果分片为:ret1=sign1⊕carry=1;
第二比较结果分片为:ret2=sign2=0。
步骤513、计算比较结果,若比较结果为1则表示True,即表示第一参与方的原始数据大于第二参与方的原始数据。在本步骤中,比较结果计算为:ret=ret1⊕ret2=1⊕0=1,则表明表示第一参与方的原始数据88大于第二参与方的原始数据12。若比较结果为0则表示False,即表示第一参与方的原始数据不大于第二参与方的原始数据。
另外,对于判断第一参与方的原始数据与第二参与方的原始数据是否相等的情况,判断方法为:首先,对原始数据之间进行两次比较计算,得到比较结果。然后,再对比较结果进行取反计算,将取反后的比较结果进行与运算,若运算结果为1则表示相等,若运算结果为0则表示不相等。在此举两个示例进行说明:
示例1:当第一参与方的原始数据为x=2,第二参与方的原始数据为y=2时,先比较x是否大于y,比较结果为0;再比较y是否大于x,比较结果为0。对两次比较结果取反后进行与运算为:1&1=1,则表明x与y相等。
示例2:当第一参与方的原始数据为x=2,第二参与方的原始数据为y=3时,先比较x是否大于y,比较结果为0;再比较y是否大于x,比较结果为1。对两次比较结果取反后进行与运算为:1&0=0,则表明x与y不相等。
在本步骤中,在确定比较结果的时候,可选地,在第一参与方进行和/或在第二参与方进行。或者,如图8所示,在第一参与方和第二参与方之外设置结果获取方,第一参与方和第二参与方分别将第一比较结果分片和第二比较结果分片发送给结果获取方,在结果获取方确定比较结果。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在函数变换的过程中以及第二变换结果从第二参与方发送至第一参与方时发生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
图5为本公开一示例性实施例提供的一种多方安全计算装置的模块示意图,该多方安全计算装置对应于上述多方安全计算方法,多方安全计算装置应用于第一参与方,多方安全计算装置包括:
第一分片模块51,用于与第二参与方共享第一随机数种子,并根据第一随机数种子生成第一参与方的原始数据所对应的第一数据分片和第二参与方的原始数据所对应的第二数据分片;
第一差值模块52,用于将第一数据分片和第二数据分片进行减法计算以获得第一分片差值;
第一变换模块53,用于提取第一分片差值的第一符号位和第一无符号数值位,将第一无符号数值位进行变换处理以获得第一变换结果分片;
分片接收模块54,用于接收第二参与方的第二变换结果分片,与第一变换结果分片进行分片恢复,以获得变换结果;其中,第二变换结果分片由第二参与方根据第一随机数种子和第二参与方的原始数据生成;
第一结果确定模块55,用于根据第一符号位和变换结果确定第一比较结果分片,第一比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在第一无符号数值位进行变换处理和获取第二变换结果分片时与第二参与方产生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
可选地,第一变换模块53,包括:
第一分片单元,用于根据第二随机数种子生成第一参与方的第一无符号数值位所对应的第三数据分片和第二参与方的第二无符号数值位所对应的第四数据分片;
第一差值单元,用于将第三数据分片和第四数据分片进行减法计算以获得第二分片差值;
第一变换单元,用于将第二分片差值进行函数变换,以获得第一变换结果分片。
可选地,第一变换单元,还用于与第二参与方协同生成变换函数参数,以生成第一变换函数参数分片;将第一变换函数参数分片和第二分片差值代入变换函数进行求解。
可选地,变换函数为单调递增函数或单调递减函数。
图6为本公开一示例性实施例提供的另一种多方安全计算装置的模块示意图,该多方安全计算装置对应于上述多方安全计算方法,多方安全计算装置应用于第二参与方,多方安全计算装置包括:
第二分片模块61,用于与第一参与方共享第一随机数种子,并根据第一随机数种子生成第一参与方的原始数据所对应的第五数据分片和第二参与方的原始数据所对应的第六数据分片;
第二差值模块62,用于将第五数据分片和第六数据分片进行减法计算以获得第三分片差值;
第二变换模块63,用于提取第三分片差值的第二符号位和第二无符号数值位,将第二无符号数值位进行变换处理以获得第二变换结果分片;
分片发送模块64,用于将第二变换结果分片发送给第一参与方,以由第一参与方根据第二变换结果分片和第一变换结果分片确定变换结果;第一变换结果分片由第一参与方根据第一随机数种子和第一参与方的原始数据生成;
第二结果确定模块65,用于根据第二符号位确定第二比较结果分片,第二比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
可选地,第二变换模块63,包括:
第二分片单元,用于根据第二随机数种子生成第一参与方的第一无符号数值位所对应的第七数据分片和第二参与方的第二无符号数值位所对应的第八数据分片;
第二差值单元,用于将第七数据分片和第八数据分片进行减法计算以获得第四分片差值;
第二变换单元,用于将第四分片差值进行函数变换,以获得第二变换结果分片。
可选地,第二变换单元,还用于与第二参与方协同生成变换函数参数,以生成第二变换函数参数分片;将第二变换函数参数分片和第四分片差值代入变换函数进行求解。
可选地,变换函数为单调递增函数或单调递减函数。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在第二无符号数值位进行变换处理和发送第二变换结果分片时与第一参与方产生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
图7为本公开一示例性实施例提供的另一种多方安全计算系统的示意图,该多方安全计算系统对应于上述多方安全计算方法,该多方安全计算系统包括:第一参与方与第二参与方;
第一参与方,用于与第二参与方共享第一随机数种子;
第一参与方,用于根据第一随机数种子生成第一参与方的原始数据所对应的第一数据分片和第二参与方的原始数据所对应的第二数据分片;
第一参与方,还用于将第一数据分片和第二数据分片进行减法计算以获得第一分片差值;
第一参与方,还用于提取第一分片差值的第一符号位和第一无符号数值位,将第一无符号数值位进行变换处理以获得第一变换结果分片;
第二参与方,用于根据第一随机数种子生成第一参与方的原始数据所对应的第五数据分片和第二参与方的原始数据所对应的第六数据分片;
第二参与方,还用于将第五数据分片和第六数据分片进行减法计算以获得第三分片差值;
第二参与方,还用于提取第三分片差值的第二符号位和第二无符号数值位,将第二无符号数值位进行变换处理以获得第二变换结果分片;
第二参与方,还用于将第二变换结果分片发送给第一参与方;
第一参与方,还用于对第二变换结果分片与第一变换结果分片进行分片恢复,以获得变换结果;
第一参与方,还用于根据第一符号位和变换结果确定第一比较结果分片;
第二参与方,还用于根据第二符号位确定第二比较结果分片;
第一比较结果分片和第二比较结果分片用于确定第一参与方的原始数据与第二参与方的原始数据的比较结果。
其中,第一比较结果分片和第二比较结果分片用于确定比较结果。在确定比较结果的时候,可选地,在第一参与方进行和/或在第二参与方进行。或者,如图8所示,在第一参与方和第二参与方之外设置结果获取方,第一参与方和第二参与方分别将第一比较结果分片和第二比较结果分片发送给结果获取方,在结果获取方确定比较结果。
在本实施例中,第一参与方与第二参与方在获取第一随机数种子以后,仅在函数变换的过程中以及第二变换结果从第二参与方发送至第一参与方时发生通信,其余的计算过程均在本地进行,且没有通信的产生,缩减通信次数以及计算成本。
图9为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例提供的多方安全计算方法。图9显示的电子设备300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
参照图9,电子设备300可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备300的组件可以包括但不限于:上述至少一个处理器301、上述至少一个存储器302、连接不同系统组件(包括存储器302和处理器301)的总线303。
总线303包括数据总线、地址总线和控制总线。
存储器302可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器302还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器301通过运行存储在存储器302中的计算机程序,从而执行各种功能应用以及数据处理,例如本公开实施例中的多方安全计算方法。
电子设备300也可以与一个或多个外部设备304(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口305进行。并且,模型生成的设备300还可以通过网络适配器306与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器306通过总线303与模型生成的设备300的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的多方安全计算方法。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本公开还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现上述任一实施例提供的多方安全计算方法。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本公开的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本公开的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本公开的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本公开的保护范围。
Claims (11)
1.一种多方安全计算方法,其特征在于,所述多方安全计算方法应用于第一参与方,所述多方安全计算方法包括:
与第二参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
接收所述第二参与方的第二变换结果分片,与所述第一变换结果分片进行分片恢复,以获得变换结果;其中,所述第二变换结果分片由所述第二参与方根据所述第一随机数种子和所述第二参与方的原始数据生成;
根据所述第一符号位和所述变换结果确定第一比较结果分片,所述第一比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
2.根据权利要求1所述的多方安全计算方法,其特征在于,所述将所述第一无符号数值位进行变换处理以获得第一变换结果分片,包括:
根据第二随机数种子生成所述第一参与方的第一无符号数值位所对应的第三数据分片和所述第二参与方的第二无符号数值位所对应的第四数据分片;
将所述第三数据分片和所述第四数据分片进行减法计算以获得第二分片差值;
将所述第二分片差值进行函数变换,以获得第一变换结果分片。
3.根据权利要求2所述的多方安全计算方法,其特征在于,所述将所述第二分片差值进行函数变换,包括:
与所述第二参与方协同生成变换函数参数,以生成第一变换函数参数分片;
将所述第一变换函数参数分片和第二分片差值代入变换函数进行求解。
4.根据权利要求3所述的多方安全计算方法,其特征在于,所述变换函数为单调递增函数或单调递减函数。
5.一种多方安全计算方法,其特征在于,所述多方安全计算方法应用于第二参与方,所述多方安全计算方法包括:
与第一参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
将所述第二变换结果分片发送给所述第一参与方,以由所述第一参与方根据所述第二变换结果分片和第一变换结果分片确定变换结果;所述第一变换结果分片由所述第一参与方根据所述第一随机数种子和所述第一参与方的原始数据生成;
根据所述第二符号位确定第二比较结果分片,所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
6.一种多方安全计算方法,其特征在于,所述多方安全计算方法包括:
第一参与方与第二参与方共享第一随机数种子;
所述第一参与方根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
所述第一参与方将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
所述第一参与方提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
所述第二参与方根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
所述第二参与方将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
所述第二参与方提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
所述第二参与方将所述第二变换结果分片发送给所述第一参与方;
所述第一参与方对所述第二变换结果分片与所述第一变换结果分片进行分片恢复,以获得变换结果;
所述第一参与方根据所述第一符号位和所述变换结果确定第一比较结果分片;
所述第二参与方根据所述第二符号位确定第二比较结果分片;
所述第一比较结果分片和所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
7.一种多方安全计算装置,其特征在于,所述多方安全计算装置应用于第一参与方,所述多方安全计算装置包括:
第一分片模块,用于与第二参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
第一差值模块,用于将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
第一变换模块,用于提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
分片接收模块,用于接收所述第二参与方的第二变换结果分片,与所述第一变换结果分片进行分片恢复,以获得变换结果;其中,所述第二变换结果分片由所述第二参与方根据所述第一随机数种子和所述第二参与方的原始数据生成;
第一结果确定模块,用于根据所述第一符号位和所述变换结果确定第一比较结果分片,所述第一比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
8.一种多方安全计算装置,其特征在于,所述多方安全计算装置应用于第二参与方,所述多方安全计算装置包括:
第二分片模块,用于与第一参与方共享第一随机数种子,并根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片;
第二差值模块,用于将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
第二变换模块,用于提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
分片发送模块,用于将所述第二变换结果分片发送给所述第一参与方,以由所述第一参与方根据所述第二变换结果分片和第一变换结果分片确定变换结果;所述第一变换结果分片由所述第一参与方根据所述第一随机数种子和所述第一参与方的原始数据生成;
第二结果确定模块,用于根据所述第二符号位确定第二比较结果分片,所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
9.一种多方安全计算系统,其特征在于,所述多方安全计算系统包括:第一参与方与第二参与方;
所述第一参与方,用于与第二参与方共享第一随机数种子;
所述第一参与方,还用于根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第一数据分片和所述第二参与方的原始数据所对应的第二数据分片;
所述第一参与方,还用于将所述第一数据分片和所述第二数据分片进行减法计算以获得第一分片差值;
所述第一参与方,还用于提取所述第一分片差值的第一符号位和第一无符号数值位,将所述第一无符号数值位进行变换处理以获得第一变换结果分片;
所述第二参与方,用于根据所述第一随机数种子生成所述第一参与方的原始数据所对应的第五数据分片和所述第二参与方的原始数据所对应的第六数据分片
所述第二参与方,还用于将所述第五数据分片和所述第六数据分片进行减法计算以获得第三分片差值;
所述第二参与方,还用于提取所述第三分片差值的第二符号位和第二无符号数值位,将所述第二无符号数值位进行变换处理以获得第二变换结果分片;
所述第二参与方,还用于将所述第二变换结果分片发送给所述第一参与方;
所述第一参与方,还用于对所述第二变换结果分片与所述第一变换结果分片进行分片恢复,以获得变换结果;
所述第一参与方,还用于根据所述第一符号位和所述变换结果确定第一比较结果分片;
所述第二参与方,还用于根据所述第二符号位确定第二比较结果分片;
所述第一比较结果分片和所述第二比较结果分片用于确定所述第一参与方的原始数据与所述第二参与方的原始数据的比较结果。
10.一种电子设备,包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的多方安全计算方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的多方安全计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310339886.1A CN116055049B (zh) | 2023-04-03 | 2023-04-03 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310339886.1A CN116055049B (zh) | 2023-04-03 | 2023-04-03 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055049A true CN116055049A (zh) | 2023-05-02 |
CN116055049B CN116055049B (zh) | 2023-07-04 |
Family
ID=86129848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310339886.1A Active CN116055049B (zh) | 2023-04-03 | 2023-04-03 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055049B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016113738A1 (en) * | 2015-01-15 | 2016-07-21 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Secret shared random access machine |
WO2019015541A1 (zh) * | 2017-07-20 | 2019-01-24 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
US20200044863A1 (en) * | 2018-08-02 | 2020-02-06 | Curv, Ltd. | Techniques for securing digital signatures using multi-party computation |
WO2020034754A1 (zh) * | 2018-08-14 | 2020-02-20 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN112751665A (zh) * | 2019-10-30 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
CN112906044A (zh) * | 2021-05-10 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 多方安全计算方法、装置、设备及存储介质 |
CN113949505A (zh) * | 2021-10-15 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的多方安全计算方法和系统 |
CN113949510A (zh) * | 2021-10-15 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的多方安全计算方法和系统 |
CN114584285A (zh) * | 2022-05-05 | 2022-06-03 | 深圳市洞见智慧科技有限公司 | 安全多方处理方法及相关设备 |
CN114595483A (zh) * | 2022-05-10 | 2022-06-07 | 富算科技(上海)有限公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
CN114615282A (zh) * | 2022-05-10 | 2022-06-10 | 富算科技(上海)有限公司 | 多方安全计算方法、电子设备及可读存储介质 |
WO2022126993A1 (zh) * | 2020-12-18 | 2022-06-23 | 百度在线网络技术(北京)有限公司 | 多方安全计算方法、装置、电子设备和存储介质 |
CN114978510A (zh) * | 2022-06-14 | 2022-08-30 | 蚂蚁区块链科技(上海)有限公司 | 针对隐私向量的安全处理方法和装置 |
US20220286294A1 (en) * | 2021-02-02 | 2022-09-08 | Nimaty Advisory Llp | Secure digital signing of a document |
CN115080615A (zh) * | 2022-06-07 | 2022-09-20 | 蚂蚁区块链科技(上海)有限公司 | 基于多方安全计算的数据查询方法及装置 |
CN115617897A (zh) * | 2022-11-04 | 2023-01-17 | 华控清交信息科技(北京)有限公司 | 一种数据类型转换方法和多方安全计算系统 |
CN115765985A (zh) * | 2022-10-20 | 2023-03-07 | 支付宝(杭州)信息技术有限公司 | 用于多方安全计算的处理方法及装置 |
CN115859365A (zh) * | 2022-12-30 | 2023-03-28 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的安全分片转换方法和装置 |
-
2023
- 2023-04-03 CN CN202310339886.1A patent/CN116055049B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016113738A1 (en) * | 2015-01-15 | 2016-07-21 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | Secret shared random access machine |
WO2019015541A1 (zh) * | 2017-07-20 | 2019-01-24 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
US20200044863A1 (en) * | 2018-08-02 | 2020-02-06 | Curv, Ltd. | Techniques for securing digital signatures using multi-party computation |
WO2020034754A1 (zh) * | 2018-08-14 | 2020-02-20 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
CN112751665A (zh) * | 2019-10-30 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
WO2022126993A1 (zh) * | 2020-12-18 | 2022-06-23 | 百度在线网络技术(北京)有限公司 | 多方安全计算方法、装置、电子设备和存储介质 |
US20220286294A1 (en) * | 2021-02-02 | 2022-09-08 | Nimaty Advisory Llp | Secure digital signing of a document |
CN112906044A (zh) * | 2021-05-10 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 多方安全计算方法、装置、设备及存储介质 |
WO2022237450A1 (zh) * | 2021-05-10 | 2022-11-17 | 腾讯科技(深圳)有限公司 | 多方安全计算方法、装置、设备及存储介质 |
CN113949505A (zh) * | 2021-10-15 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的多方安全计算方法和系统 |
CN113949510A (zh) * | 2021-10-15 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的多方安全计算方法和系统 |
CN114584285A (zh) * | 2022-05-05 | 2022-06-03 | 深圳市洞见智慧科技有限公司 | 安全多方处理方法及相关设备 |
CN114615282A (zh) * | 2022-05-10 | 2022-06-10 | 富算科技(上海)有限公司 | 多方安全计算方法、电子设备及可读存储介质 |
CN114595483A (zh) * | 2022-05-10 | 2022-06-07 | 富算科技(上海)有限公司 | 一种安全多方计算方法、装置、电子设备及存储介质 |
CN115080615A (zh) * | 2022-06-07 | 2022-09-20 | 蚂蚁区块链科技(上海)有限公司 | 基于多方安全计算的数据查询方法及装置 |
CN114978510A (zh) * | 2022-06-14 | 2022-08-30 | 蚂蚁区块链科技(上海)有限公司 | 针对隐私向量的安全处理方法和装置 |
CN115765985A (zh) * | 2022-10-20 | 2023-03-07 | 支付宝(杭州)信息技术有限公司 | 用于多方安全计算的处理方法及装置 |
CN115617897A (zh) * | 2022-11-04 | 2023-01-17 | 华控清交信息科技(北京)有限公司 | 一种数据类型转换方法和多方安全计算系统 |
CN115859365A (zh) * | 2022-12-30 | 2023-03-28 | 支付宝(杭州)信息技术有限公司 | 保护隐私数据的安全分片转换方法和装置 |
Non-Patent Citations (2)
Title |
---|
汤龙梅;陈敏;许雪林;: "运算器中全加器标志位的逻辑设计与应用", 福建工程学院学报, no. 03 * |
王国华;刘志强;马红光;马猛;: "基于硬件加速的快速傅里叶变换", 航空计算技术, no. 05 * |
Also Published As
Publication number | Publication date |
---|---|
CN116055049B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210158216A1 (en) | Method and system for federated learning | |
CN112906044B (zh) | 多方安全计算方法、装置、设备及存储介质 | |
WO2021068444A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP2021515271A (ja) | コンピュータにより実施される投票処理およびシステム | |
JP2022523182A (ja) | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 | |
WO2023020216A1 (zh) | 多方安全确定最值的方法、装置、设备及存储介质 | |
CN116324778A (zh) | 可更新私有集合交集 | |
CN112182109A (zh) | 基于区块链的分布式数据编码存储方法和电子设备 | |
CN116112182A (zh) | 数字签名方法、装置、电子设备及存储介质 | |
CN114036581A (zh) | 基于神经网络模型的隐私计算方法 | |
CN116432040B (zh) | 基于联邦学习的模型训练方法、装置、介质以及电子设备 | |
CN111400270B (zh) | 一种基于区块链的文件授时的方法和装置 | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
CN116055049B (zh) | 多方安全计算方法、装置、系统、电子设备和存储介质 | |
CN112182108A (zh) | 基于区块链的分布式数据存储更新方法和电子设备 | |
CN117349685A (zh) | 一种通信数据的聚类方法、系统、终端及介质 | |
CN115357939B (zh) | 一种隐私保护数据计算方法和设备 | |
CN115481440B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN110570309A (zh) | 用于更换区块链网络的领导者的方法和系统 | |
CN112181308A (zh) | 基于区块链的分布式数据存储方法和电子设备 | |
CN117009723B (zh) | 一种多方计算方法、装置、设备及存储介质 | |
CN114553505B (zh) | 多方协同生成随机数的方法、装置、存储介质和计算设备 | |
US11962562B2 (en) | Anonymous message board server verification | |
CN116089991B (zh) | 数据对齐方法、装置、设备及存储介质 | |
CN115982785B (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 |