CN117009723A - 一种多方计算方法、装置、设备及存储介质 - Google Patents

一种多方计算方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117009723A
CN117009723A CN202311258012.XA CN202311258012A CN117009723A CN 117009723 A CN117009723 A CN 117009723A CN 202311258012 A CN202311258012 A CN 202311258012A CN 117009723 A CN117009723 A CN 117009723A
Authority
CN
China
Prior art keywords
calculation
computing
polynomial
plaintext
group
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
Application number
CN202311258012.XA
Other languages
English (en)
Other versions
CN117009723B (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.)
Changchun Jida Zhengyuan Information Technology Co ltd
Original Assignee
Changchun Jida Zhengyuan Information Technology 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 Changchun Jida Zhengyuan Information Technology Co ltd filed Critical Changchun Jida Zhengyuan Information Technology Co ltd
Priority to CN202311258012.XA priority Critical patent/CN117009723B/zh
Publication of CN117009723A publication Critical patent/CN117009723A/zh
Application granted granted Critical
Publication of CN117009723B publication Critical patent/CN117009723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

本公开提供了一种多方计算方法、装置、设备及存储介质,涉及信息安全领域,该方法包括:确定待批量处理的m个计算任务,m为正整数;根据所述m个计算任务生成m个乘法三元组;将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,所述明文多项式的数量小于乘法三元组的数量;将所述明文多项式进行加密和同态运算,得到共享多项式;根据所述共享多项式完成所述m个计算任务。该方法使得同态计算的运算复杂度大幅下降,可以有效降低计算开销和通信开销。

Description

一种多方计算方法、装置、设备及存储介质
技术领域
本公开涉及信息安全领域,尤其涉及一种多方计算方法、装置、设备及存储介质。
背景技术
多方安全计算是一种用于保护参与方数据隐私的技术,但它在计算效率方面目前面临以下问题:
首先是通信开销:多方安全计算通常需要参与方之间频繁地交换信息,这可能导致较大的通信开销。每个计算步骤都需要参与方之间传输加密的数据和中间结果,这会增加网络延迟和带宽消耗。
再者是计算复杂度:多方安全计算涉及对加密数据进行运算和计算,这通常比明文数据的计算复杂度高。加密和解密的操作以及安全协议的执行会引入额外的计算开销,从而导致计算效率降低。
发明内容
本公开提供了一种多方计算方法、装置、设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种多方计算方法,该方法由k个计算参与方执行,k为大于1的正整数,该方法包括:
确定待批量处理的m个计算任务,m为正整数;
将所述m个计算任务生成m个乘法三元组;
将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,明文多项式的数量小于乘法三元组的数量;
将所述明文多项式进行加密和同态运算,得到共享多项式;
根据所述共享多项式完成所述m个计算任务。
在一可实施方式中,从每个乘法三元组中分别取出第i份计算因子,组成第i个子计算因子组,所述第i个子计算因子组包括m个计算因子,i为小于k+1的正整数,i的初始值为1;将所述i更新为i+1,并行执行上一步骤,直至遍历k份目标计算因子,得到k个子计算因子组;将k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到所述明文多项式。
在一可实施方式中,所述明文多项式包括n个单项式,m远大于n;将所述k个子计算因子组中第j个子计算因子组的计算因子分为q组系数集合,q是m/n的向上取整值,所述j为小于k+1的正整数,j的初始值为1;将所述q组系数集合中每组系数集合的计算因子作为多项式的系数分别填入到q个多项式中,得到第j组明文多项式,所述第j组明文多项式供第j个计算参与方使用,所述第j组明文多项式包括q个多项式;将所述j更新为j+1,并行执行上两个步骤,直至遍历所述k个子计算因子组,得到所述明文多项式。
在一可实施方式中,对于所述q组系数集合中的第t组系数集合,若所述第t组系数集合的计算因子数量小于n,使用0填充所述第t组系数集合,使得所述第t组系数集合的计算因子数量达到n。
在一可实施方式中,第q个明文多项式为
在一可实施方式中,通过同态运算处理所述共享多项式,得到密文计算结果;解密所述密文计算结果,得到明文计算结果。
根据本公开的第二方面,提供了一种多方计算装置,该装置包括k个计算参与方,k为大于1的正整数,该装置包括:
编译模块,用于确定待批量处理的m个计算任务,m为正整数;
所述编译模块,还用于将所述m个计算任务生成m个乘法三元组;
编码模块,用于将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,所述明文多项式的数量小于乘法三元组的数量;
加密模块,用于将所述明文多项式进行加密和同态运算,得到共享多项式;
计算模块,用于根据所述共享多项式完成所述m个计算任务。
在一可实施方式中,每个乘法三元组包括各计算因子随机拆分成k份后的计算因子。
在一可实施方式中,所述编码模块,还用于从每个乘法三元组中分别取出第i份计算因子,组成第i个子计算因子组,所述第i个子计算因子组包括m个计算因子,i为小于k+1的正整数,i的初始值为1;将所述i更新为i+1,并行执行上一步骤,直至遍历所述k份目标计算因子,得到k个子计算因子组;将k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到所述明文多项式。
在一可实施方式中,所述明文多项式包括n个单项式,m远大于n;所述编码模块,还用于将所述k个子计算因子组中第j个子计算因子组的计算因子分为q组系数集合,q是m/n的向上取整值,所述j为小于k+1的正整数,j的初始值为1;将所述q组系数集合中每组系数集合的计算因子作为多项式的系数分别填入到q个多项式中,得到第j组明文多项式,所述第j组明文多项式供第j个计算参与方使用,所述第j组明文多项式包括q个多项式;将所述j更新为j+1,并行执行上两个步骤,直至遍历所述k个子计算因子组,得到所述明文多项式。
在一可实施方式中,所述编码模块,还用于对于所述q组系数集合中的第t组系数集合,若所述第t组系数集合的计算因子数量小于n,使用0填充所述第t组系数集合,使得所述第t组系数集合的计算因子数量达到n。
在一可实施方式中,所述计算模块,还用于过同态运算处理所述共享多项式,得到密文计算结果;解密所述密文计算结果,得到明文计算结果。
根据本公开的第三方面,提供了一种设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的存储介质,所述计算机指令用于使计算机执行本公开所述的方法。
本公开涉及的安全多方计算方法、装置、设备及存储介质,在生成乘法三元组之后,会对乘法三元组进行编码,将编码后的信息添加到共享多项式中,再将共享多项式共享给计算参与方,由计算参与方完成后续的计算任务。其中,共享多项式的数量要小于乘法三元组的数量,使得同态计算的运算复杂度大幅下降,可以有效降低计算开销和通信开销。而且,本公开还可以减少多项式乘法的次数,提高计算效率。同样,在特定情况下避免多项式旋转可以进一步优化安全多方计算预处理运算的时间复杂度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本公开实施例提供的一种多方计算方法的实现流程示意图一;
图2示出了本公开实施例提供的一种多方计算方法的实现流程示意图二;
图3示出了本公开实施例提供的一种多方计算方法的实现流程示意图三;
图4示出了本公开实施例提供的一种多方计算方法的实现示意图;
图5示出了本公开实施例提供的一种多方计算装置的实现模型示意图;
图6示出了本公开实施例一种设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1示出了可以用来实施本公开的多方计算方法的流程示意图。该方法由k个计算参与方执行,k为大于1的正整数,该方法包括:
步骤S101:确定待批量处理的m个计算任务。
在多方计算中,多个计算参与方通常需要处理大量的计算任务。多方计算平台是计算任务的发起者,多个参与方利用各自持有的计算因子完成各自需要处理的多个计算任务,得到计算结果,而后每个计算参与方会将加密后的计算结果共享给计算发起方得到最终计算结果。
在一可实施方式中,上文的原始计算任务包括乘法计算任务和加法计算任务中的至少一种。
原始计算任务为对多方数据进行求和运算,且待处理任务为多个。此时,将多个计算参与方各自持有的数据分享给多方安全计算平台会造成各方持有数据的泄露,影响到各方隐私数据的安全。但此时待处理的任务又需要基于各方数据展开运算才可得到计算结果。因此,出于对各方隐私数据安全的保护,多个计算任务需以密文形式参与运算。现有的多方安全计算的预处理阶段,在general arithmetic MPC(通用算数电路MPC)的计算中,基于secret sharing(秘密共享)定义加法运算或乘法运算。但在处理多个计算任务时,存在效率低的问题。如何实现批量任务的高效处理,是本发明要解决的技术问题。
示例性的,原始计算任务是计算z=x·y。其中,乘法运算依赖于乘法三元组[a,b,c],c满足c=a·b。每个计算参与方都需要共享和/>,[·]代表括号内的计算因子是秘密共享,接着每个计算参与方都计算,而后计算发起方基于各个计算参与方生成的/>,得到z。例如,令x=[x1]+[x2],y=[y1]+[y2],计算参与方A获得乘法三元组[a1,b1,c1]、[x1]和[y1],计算参与方B获得乘法三元组[a2,b2,c2]、[x2]和[y2]。计算参与方A计算/>和/>,并将[/>和/>提供给计算参与方B;计算参与方B计算/>]和/>],并将/>]和/>提供给计算参与方A。之后,计算参与方A和计算参与方B均计算/>和/>。而后,计算参与方A计算/>,计算参与方B计算。计算发起方计算z=/>+=/>=+/>=a·b+(x-a)·b+(y-b)·a+(x-a)·(y-b)=x·y。
在一可实施方式中,前述计算任务还可以是加法计算任务,同样为保证数据不会被泄露,每个计算参与方对各自持有的数据进行编码和加密,之后,每个计算参与方将经过编码和加密的数据分享给其他计算参与方,每个计算参与方都以密文形式进行计算任务,防止数据泄露。
步骤S102:将m个计算任务生成m个乘法三元组。
每个乘法三元组只针对一个计算任务有效,每个乘法计算任务都会消耗一个乘法三元组,因此计算任务和乘法三元组的数量是相同的。示例性的,总共有m个计算任务需要处理,则对应的乘法三元组可记为[c1]=[a1]·[b1],[c2]=[a2]·[b2],……,[cm]=[am]·[bm]。
步骤S103:将m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,明文多项式的数量小于乘法三元组的数量。
在一可实施方式中,由于每个计算任务都需要k个计算参与方的协作才能完成,因此需要将每个参与方k组数据进行整合,故每个乘法三元组包括各方拥有的计算因子,每份计算因子同一个计算参与方相关。另一方面,由于目的实际为要计算c=a·b中的c,而a、b数据为k个计算参与方别拥有,且不能以明文形式共享,为节约信道和提高传输效率,在共享乘法三元组的时候,通常只共享各方持有数据加密处理后的信息。
在一可实施方式中,由于总共有k个计算参与方参与m个计算任务,每个计算参与方都需要获取到各自的m个乘法三元组,则总共有乘法三元组[+/>]=[/>+]·[/>+/>],[/>+/>]=[/>+/>]·[/>+],…,[/>+/>]=[/>+/>]·[/>+/>]。这里以共享计算因子a为例,计算因子a按照计算参与方不同可包括P1={/>,/>,…,/>},P2={/>,/>,…,},…,Pk={/>,/>,…,/>}。P1是计算参与方1持有的数据,P2是计算参与方2持有的数据,依次类推。
在一可实施方式中,将{,/>,…,/>}作为多项式的系数,得到明文多项式。
在本步骤中,将m个乘法三元组中的各计算因子中压缩至多项式中,可以有效降低运算复杂度。在没有编码的情况下,计算复杂度与乘法三元组的数量呈正相关,其中m是一个很大规模的数,使得计算复杂度可达到O(m)(O用来表示计算复杂度),而本实施例中使用的方法可以有效降低计算复杂度,将计算复杂度降低至O(m/n)。
步骤S104:将明文多项式进行加密和同态运算,得到共享多项式。
在一可实施方式中,同态运算可确保共享多项式解密结果与加密前的明文多项式等价。可选的,同态运算包括但不限于加法同态算法、乘法同态算法和全同态算法中的至少一种。
步骤S105:根据共享多项式完成m个计算任务。
在一可实施方式中,共享多项式是由不同的计算参与方使用的,计算参与方在获取到共享多项式后,需要通过同态运算处理共享多项式,得到密文计算结果;解密密文计算结果,得到明文计算结果。其中,由于同态运算的特性,对处于加密状态的共享多项式进行运算,并不会影响最终的计算结果。
在一可实施方式中,明文计算结果指单个计算参与方的计算结果,而在多方计算中,由不同的计算参与方处理不同的计算任务,所以为了得到最终的计算结果,需要将各个计算参与方的计算结果进行统计,示例性的,各个计算参与方将各自的计算结果共享给计算发起方,计算发起方根据各个计算参与方共享的计算结果,得到计算任务对应的计算结果。在另一可实施方式中,计算发起方不参与计算任务,计算发起方仅从计算参与方处获取最终的明文计算结果。
综上所述,本公开在生成乘法三元组之后,会对乘法三元组进行编码,将编码后的信息添加到共享多项式中,再将共享多项式共享给计算参与方,由计算参与方完成后续的计算任务。其中,共享多项式的数量要小于乘法三元组的数量,使得同态计算的运算复杂度大幅下降,可以有效降低计算开销和通信开销。而且,本公开还可以减少多项式乘法的次数,提高计算效率。同样,在特定情况下避免多项式旋转可以进一步优化安全多方计算预处理运算的时间复杂度。
图2示出了可以用来实施本公开的多方计算方法的流程示意图。该方法由k个计算参与方执行,k为大于1的正整数,该方法包括:
步骤S201:确定待批量处理的m个计算任务。
在一可实施方式中,上文的原始计算任务包括乘法计算任务和加法计算任务中的至少一种。
步骤S202:根据m个计算任务生成m个乘法三元组。
在一可实施方式中,每个乘法三元组只针对一个计算任务有效,为每个计算任务生成对应的乘法三元组。
步骤S203:从每个乘法三元组中分别取出第i份计算因子,组成第i个子计算因子组。
在一可实施方式中,乘法三元组包括[+/>]=[/>+/>]·[/>+],[/>+/>]=[/>+/>]·[/>+/>],…,[/>+]=[/>+/>]·[/>+/>],其中,字母的上标用于表示乘法三元组,字母下标用于表示计算参与方,例如,/>表示第m个乘法三元组中第k个计算参与方需要使用的计算因子a。
示例性的,以计算因子a为例进行说明,从每个乘法三元组分别取出,/>,…,/>,…,/>,组成第1个子计算因子组P1={/>,/>,…,/>,…,/>},从每个乘法三元组分别取出,/>,…,/>,…,/>,组成第1个子计算因子组P1={/>,/>,…,/>,…,/>},依次类推,其他的子计算因子组的获取方法相同,这里不再赘述。
步骤S204:将i更新为i+1,并行执行上一步骤,直至遍历k份目标计算因子,得到k个子计算因子组。
在获取子计算因子组时,出于提高计算的考虑,采用并行处理的措施,同时处理k个子计算因子组。
步骤S205:将k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到明文多项式。
其中,n为正整数,且m远大于n。在一可实施方式中,n=2048或4096,m的取值可达到数万乃至数十万。因此,在将第j个子计算因子组的计算因子填入多项式时,需要考虑m和n的数量关系。
如图3所示,步骤S205可包括以下子步骤S2051至S2053:
步骤S2051:将k个子计算因子组中第j个子计算因子组的计算因子分为q组系数集合。
其中,q是m/n的向上取整值,j为小于k+1的正整数,j的初始值为1。且k个计算因子组和k个计算参与方相对应,第j个子计算因子组是第j个计算参与方所需的数据。
在一可实施方式中,将第j个子计算因子组Pj={,/>,…,/>}中的计算因子分为q组系数集合,得到第1组系数集合为{/>,/>,…,/>},第2组系数集合为{/>,/>,…,},…,第q组系数集合为{/>,/>,…,/>}。
在一可实施方式中,第j个子计算因子组是与第j个计算参与方对应的。
在一可实施方式中,由于存在n不能整除m的情况,对于q组系数集合中的第t组系数集合,若第t组系数集合的计算因子数量小于n,使用0填充第t组系数集合,使得第t组系数集合的计算因子数量达到n。例如,设n=2048,第t组系数集合中的计算因子数量为2000,则使用0填充第t组系数集合,直至第t组系数集合满足2048位。
子步骤S2052:将q组系数集合中每组系数集合的计算因子作为多项式的系数分别填入到q个多项式中,得到第j组明文多项式/>
其中,第j组明文多项式供第j个计算参与方使用,第j组明文多项式包括q个多项式。
示例性的,以a为例,且m/n为整数,则有m=n·q。将第j个子计算因子组对应的q组系数集合中每组系数集合的{,/>,…,/>},…,{/>,/>,…,/>}作为多项式得到多项式/>,…,
子步骤S2053:将j更新为j+1,并行执行上两个步骤,直至遍历k个子计算因子组,得到明文多项式。
在上述子步骤S2052中,仅得到单个计算参与方对应使用的明文多项式,由于子计算因子。
步骤S206:将明文多项式进行加密和同态运算,得到共享多项式。
在一可实施方式中,同态运算可确保共享多项式解密结果与加密前的明文多项式等价。可选的,同态运算包括但不限于加法同态算法、乘法同态算法和全同态算法中的至少一种。
步骤S207:根据共享多项式完成计算任务。
在一可实施方式中,共享多项式是由不同的计算参与方使用的,计算参与方在获取到共享多项式后,需要通过同态运算处理共享多项式,得到密文计算结果;解密密文计算结果,得到明文计算结果。
在一可实施方式中,明文计算结果指单个计算参与方的计算结果,而在多方计算中,由不同的计算参与方处理不同的计算任务,所以为了得到最终的计算结果,需要将各个计算参与方的计算结果进行统计,示例性的,各个计算参与方将各自的计算结果共享给计算发起方,计算发起方根据各个计算参与方共享的计算结果,得到计算任务对应的计算结果。在另一可实施方式中,计算发起方不参与计算任务,计算发起方仅从计算参与方处获取最终的明文计算结果。
综上所述,本公开在生成乘法三元组之后,会对乘法三元组进行编码,将编码后的信息添加至共享多项式,再将共享多项式共享给计算参与方,由计算参与方完成后续的计算任务。其中,共享多项式的数量要小于乘法三元组的数量,使得同态计算的运算复杂度大幅下降,可以有效降低计算开销和通信开销。而且,本公开还可以减少多项式乘法的次数,提高计算效率。同样,在特定情况下避免多项式旋转可以进一步优化安全多方计算预处理运算的时间复杂度。
图4示出了可以用来实施本公开的一种多方计算方法的示意图。本实施例将编码乘法三元组的步骤转移到云服务器或高性能服务器集群上处理。在本实施例中,以计算参与方包括计算发起方401,计算参与方402和计算参与方403为例进行说明,本领域技术人员可根据实际需求调整计算参与方的数量,其中,计算发起方401在本实施例中既是发起计算任务的计算机设备,也是参与计算的计算机设备。在其他实施方式中,计算发起方401还可以只发起计算任务,不参与计算。
计算发起方401向计算参与方402和计算参与方403发送计算请求,在一可实施方式中,计算请求包括但不限于计算任务的预估计算量、计算任务开始时间、预估计算时长、内存占用量中的至少一种。若计算参与方402和计算参与方403审批计算请求通过,则向计算发起方发送审批同意通知;若计算参与方402和计算参与方403审批计算请求未通过,则向计算发起方发送审批拒绝通知。
若计算发起方401接收到审批同意通知,则向云服务器404上传编译任务,在一可实施方式中,编译任务包括但不限于原始计算任务、计算参与方的IP地址、计算量、计算任务开始时间中的至少一种。若计算发起方401接收到审批拒绝通知,则向其他服务器发送计算请求。在其他可实施方式中,若计算发起方401在发送计算请求的预设时长内未收到来自计算参与方402消息,则重新向计算参与方402发送计算请求,或者向其他服务器发送计算请求。
云服务器404根据原始计算任务生成计算任务,在一可实施方式中,原始计算任务是乘法计算任务,例如,乘法计算任务是要求计算两组数据的乘积,则对应的计算任务是生成计算乘积所需的乘法三元组。在一可实施方式中,计算任务还可以是加法计算任务。接下来本实施例以计算任务是乘法计算任务为例进行说明,云服务器404根据计算任务生成函数,该函数用于计算参与方402和计算参与方403的乘法计算。之后,云服务器404将函数编译到二进制文件405中,并将二进制文件405发送给计算参与方402和计算参与方403。
计算参与方402和计算参与方403根据各自的二进制文件405进行编码和加密,并计算出各自的计算结果,该计算结果是经过加密的。在一可实施方式中,计算参与方402和计算参与方403将各自的计算结果共享给对方,计算参与方402和计算参与方403各自计算出计算任务的最终结果,计算参与方402和计算参与方403将各自的最终结果提供给计算发起方401,由计算发起方401确定最终结果。
综上所述,本实施例使用编码运行分离的方法,通过云服务器来编码乘法多项式,并完成正确的分发,从而平衡计算资源,并且由于云服务器的性能远大于普通服务器,因而云服务器产生的共享多项式具有更高的可信度。
图5示出了可以用来实施本公开的实施例的一种多方计算装置的模型示意图。该装置包括k个计算参与方,k为大于1的正整数,该装置500包括:
编译模块501,用于确定待批量处理的m个计算任务,m为正整数;
所述编译模块501,还用于将所述m个计算任务生成m个乘法三元组;
编码模块502,用于将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,所述明文多项式的数量小于乘法三元组的数量;
加密模块503,用于将所述明文多项式进行加密和同态运算,得到共享多项式;
计算模块504,用于根据所述共享多项式完成所述计算任务。
在一可实施方式中,所述编码模块501,还用于从每个乘法三元组中分别取出第i份计算因子,组成第i个子计算因子组,所述第i个子计算因子组包括m个计算因子,i为小于k+1的正整数,i的初始值为1;将所述i更新为i+1,并行执行上一步骤,直至遍历所述k份目标计算因子,得到k个子计算因子组;将k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到所述明文多项式。
在一可实施方式中,所述明文多项式包括n个单项式,m远大于n;,所述编码模块501,还用于将所述k个子计算因子组中第j个子计算因子组的计算因子分为q组系数集合,q是m/n的向上取整值,所述j为小于k+1的正整数,j的初始值为1;将所述q组系数集合中每组系数集合的计算因子作为多项式的系数分别填入到q个多项式中,得到第j组明文多项式,所述第j组明文多项式供第j个计算参与方使用,所述第j组明文多项式包括q个多项式;将所述j更新为j+1,并行执行上两个步骤,直至遍历所述k个子计算因子组,得到所述明文多项式。
在一可实施方式中,所述编码模块501,还用于对于所述q组系数集合中的第t组系数集合,若所述第t组系数集合的计算因子数量小于n,使用0填充所述第t组系数集合,使得所述第t组系数集合的计算因子数量达到n。
在一可实施方式中,第q个明文多项式为
在一可实施方式中,所述计算模块504,还用于通过同态运算处理共享多项式,得到密文计算结果;解密密文计算结果,得到明文计算结果。
综上所述,本公开在生成乘法三元组之后,会对乘法三元组进行编码,将编码后的信息添加至共享多项式中,再将共享多项式共享给计算参与方,由计算参与方完成后续的计算任务。其中,共享多项式的数量要小于乘法三元组的数量,使得同态计算的运算复杂度大幅下降,可以有效降低计算开销和通信开销。而且,本公开还可以减少多项式乘法的次数,提高计算效率。同样,在特定情况下避免多项式旋转可以进一步优化安全多方计算预处理运算的时间复杂度。
根据本公开的实施例,本公开还提供了一种设备和一种存储介质。
图6示出了可以用来实施本公开的实施例的示例设备的示意性框图。该设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。该设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM603中,还可存储设备操作所需的各种程序和数据。计算单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例的多方计算方法。例如,在一些实施例中,多方计算方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM602和/或通信单元609而被载入和/或安装到设备上。当计算机程序加载到RAM603并由计算单元601执行时,可以执行上文描述的多方计算方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行多方计算方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种多方计算方法,其特征在于,所述方法由k个计算参与方执行,k为大于1的正整数,所述方法包括:
确定待批量处理的m个计算任务,m为正整数;
根据所述m个计算任务生成m个乘法三元组;
将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,所述明文多项式的数量小于乘法三元组的数量;
将所述明文多项式进行加密和同态运算,得到共享多项式;
根据所述共享多项式完成所述m个计算任务。
2.根据权利要求1所述的方法,其特征在于,将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,包括:
从每个乘法三元组中分别取出第i份计算因子,组成第i个子计算因子组,所述第i个子计算因子组包括m个计算因子,i为小于k+1的正整数,i的初始值为1;
将所述i更新为i+1,并行执行上一步骤,直至遍历k份目标计算因子,得到k个子计算因子组;
将所述k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到所述明文多项式。
3.根据权利要求2所述的方法,其特征在于,所述明文多项式包括n个单项式,m远大于n;
将所述k个子计算因子组中的计算因子作为多项式的系数填入到多项式中,得到所述明文多项式,包括:
将所述k个子计算因子组中第j个子计算因子组的计算因子分为q组系数集合,q是m/n的向上取整值,所述j为小于k+1的正整数,j的初始值为1;
将所述q组系数集合中每组系数集合的计算因子作为多项式的系数分别填入到q个多项式中,得到第j组明文多项式,所述第j组明文多项式供第j个计算参与方使用,所述第j组明文多项式包括q个多项式;
将所述j更新为j+1,并行执行上两个步骤,直至遍历所述k个子计算因子组,得到所述明文多项式。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对于所述q组系数集合中的第t组系数集合,若所述第t组系数集合的计算因子数量小于n,使用0填充所述第t组系数集合,使得所述第t组系数集合的计算因子数量达到n。
5.根据权利要求3所述的方法,其特征在于,第q个明文多项式为
6.根据权利要求1至4任一项所述的方法,其特征在于,根据所述共享多项式完成所述m个计算任务,包括:
通过同态运算处理所述共享多项式,得到密文计算结果;
解密所述密文计算结果,得到明文计算结果。
7.一种多方计算装置,其特征在于,所述装置包括k个计算参与方,k为大于1的正整数,所述装置包括:
编译模块,用于确定待批量处理的m个计算任务,m为正整数;
所述编译模块,还用于根据所述m个计算任务生成m个乘法三元组;
编码模块,用于将所述m个乘法三元组中的各计算因子作为多项式的系数,得到明文多项式,所述明文多项式的数量小于乘法三元组的数量;
加密模块,用于将所述明文多项式进行加密和同态运算,得到共享多项式;
计算模块,用于根据所述共享多项式完成所述m个计算任务。
8.根据权利要求7所述的装置,其特征在于,
所述计算模块,还用于根据所述共享多项式的解密结果,得到所述明文多项式;提取所述明文多项式中各单项式的系数,得到所述m个乘法三元组中的各计算因子;利用所述m个乘法三元组中的各计算因子,还原所述乘法三元组;利用所述乘法三元组进行所述m个计算任务,得到计算结果。
9.一种设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
10.一种存储有计算机指令的存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1-6中任一项所述的方法。
CN202311258012.XA 2023-09-27 2023-09-27 一种多方计算方法、装置、设备及存储介质 Active CN117009723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311258012.XA CN117009723B (zh) 2023-09-27 2023-09-27 一种多方计算方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311258012.XA CN117009723B (zh) 2023-09-27 2023-09-27 一种多方计算方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117009723A true CN117009723A (zh) 2023-11-07
CN117009723B CN117009723B (zh) 2024-01-30

Family

ID=88576512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311258012.XA Active CN117009723B (zh) 2023-09-27 2023-09-27 一种多方计算方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117009723B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9536114B1 (en) * 2013-03-13 2017-01-03 Hrl Laboratories, Llc Secure mobile proactive multiparty computation protocol
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US20180366036A1 (en) * 2015-12-10 2018-12-20 Nec Corporation Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
US20180373834A1 (en) * 2017-06-27 2018-12-27 Hyunghoon Cho Secure genome crowdsourcing for large-scale association studies
US20200374103A1 (en) * 2019-05-22 2020-11-26 Crypto Lab Inc. Apparatus for processing modular multiply operation and methods thereof
WO2021083179A1 (zh) * 2019-10-30 2021-05-06 阿里巴巴集团控股有限公司 一种安全多方计算方法、设备、系统及存储介质
CN112784315A (zh) * 2019-11-04 2021-05-11 电科云(北京)科技有限公司 Spdz系列协议中的乘法计算方法、装置及存储介质
CN113315631A (zh) * 2021-06-09 2021-08-27 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN114615282A (zh) * 2022-05-10 2022-06-10 富算科技(上海)有限公司 多方安全计算方法、电子设备及可读存储介质
CN115333726A (zh) * 2022-07-11 2022-11-11 复旦大学 一种基于向量空间秘密共享的定点数安全乘法计算方法
WO2023094453A1 (en) * 2021-11-23 2023-06-01 Sedicii Innovations Ltd. Secure multi-party computations

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9536114B1 (en) * 2013-03-13 2017-01-03 Hrl Laboratories, Llc Secure mobile proactive multiparty computation protocol
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US20180366036A1 (en) * 2015-12-10 2018-12-20 Nec Corporation Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
US20180373834A1 (en) * 2017-06-27 2018-12-27 Hyunghoon Cho Secure genome crowdsourcing for large-scale association studies
US20200374103A1 (en) * 2019-05-22 2020-11-26 Crypto Lab Inc. Apparatus for processing modular multiply operation and methods thereof
WO2021083179A1 (zh) * 2019-10-30 2021-05-06 阿里巴巴集团控股有限公司 一种安全多方计算方法、设备、系统及存储介质
CN112784315A (zh) * 2019-11-04 2021-05-11 电科云(北京)科技有限公司 Spdz系列协议中的乘法计算方法、装置及存储介质
CN113315631A (zh) * 2021-06-09 2021-08-27 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
WO2023094453A1 (en) * 2021-11-23 2023-06-01 Sedicii Innovations Ltd. Secure multi-party computations
CN114615282A (zh) * 2022-05-10 2022-06-10 富算科技(上海)有限公司 多方安全计算方法、电子设备及可读存储介质
CN115333726A (zh) * 2022-07-11 2022-11-11 复旦大学 一种基于向量空间秘密共享的定点数安全乘法计算方法

Also Published As

Publication number Publication date
CN117009723B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
WO2022237450A1 (zh) 多方安全计算方法、装置、设备及存储介质
CN106487503B (zh) 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法
CN110580409B (zh) 模型参数确定方法、装置和电子设备
CN113708930B (zh) 隐私数据的数据比较方法、装置、设备及介质
CN112560091B (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
CN112953700B (zh) 一种提升安全多方计算效率的方法、系统及存储介质
CN115664747A (zh) 加密方法和装置
CN115510502B (zh) 一种隐私保护的pca方法及系统
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
CN111917533A (zh) 具有减少泄漏的区间统计量的隐私保护基准分析
CN107248914B (zh) 一种iOS设备上新型对称加密系统及加密方法
JP7297131B2 (ja) 分散型機械学習モデルのトレーニング方法、装置、機器および媒体
CN117009723B (zh) 一种多方计算方法、装置、设备及存储介质
CN116743376A (zh) 基于高效密文混淆技术的多方秘密分享数据隐私比较方法
CN116681141A (zh) 隐私保护的联邦学习方法、终端及存储介质
CN114584284A (zh) 同态加密操作方法、装置和电子设备
CN115426111A (zh) 一种数据加密方法、装置、电子设备及存储介质
Trung et al. Design a cryptosystem using elliptic curves cryptography and Vigenère symmetry key
CN116089991B (zh) 数据对齐方法、装置、设备及存储介质
CN112637174B (zh) 数据相关度计算方法、装置、电子设备和存储介质
CN116055049B (zh) 多方安全计算方法、装置、系统、电子设备和存储介质
CN112615712B (zh) 数据的处理方法、相关装置及计算机程序产品
CN114095157B (zh) 密钥管理方法、装置、计算机设备及可读存储介质
CN115459924A (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