CN115225264A - 一种安全多方计算方法、装置、电子设备及存储介质 - Google Patents
一种安全多方计算方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115225264A CN115225264A CN202210691278.2A CN202210691278A CN115225264A CN 115225264 A CN115225264 A CN 115225264A CN 202210691278 A CN202210691278 A CN 202210691278A CN 115225264 A CN115225264 A CN 115225264A
- Authority
- CN
- China
- Prior art keywords
- state data
- ciphertext
- operator
- plaintext
- data
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 71
- 239000012634 fragment Substances 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007619 statistical method Methods 0.000 abstract description 18
- 230000002829 reductive effect Effects 0.000 abstract description 14
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000004891 communication Methods 0.000 abstract description 12
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供一种安全多方计算方法、装置、电子设备及存储介质,用于改善对数据做统计分析的性能效率较低的问题。该方法包括:获取本地统计算子,并使用本地统计算子对本地存储的明文态数据进行计算,获得明文态结果;对明文态结果依次进行秘密分享,获得密文态数据;使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,获得密文态结果。通过在传统的安全多方计算过程中增加了使用本地统计算子对本地存储的明文态数据进行计算的过程,使得原本在安全多方计算过程中对密文态数据的计算量提前至本地计算过程中完成,有效地减少了对数据做统计的分析计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
Description
技术领域
本申请涉及机器学习、安全多方计算和计算机安全的技术领域,具体而言,涉及一种安全多方计算方法、装置、电子设备及存储介质。
背景技术
安全多方计算(Secure Multi-Party Computation,SMPC)的研究主要是针对无可信第三方的情况下,即两个或者多个参与方在不泄露每一方输入的信息的前提下,共同计算一个函数,使得所有参与方能算出计算结果。
目前,在安全多方计算领域中对数据做统计分析时,采用的计算协议大部分都是密码学中的秘密分享协议(例如Shamir算法)产生的所有数据进行统计处理的。在具体的实践过程中发现,在统计分析的过程中,需要交换大量密文态数据,并在密文态数据的基础上进行统计分析,因此,在安全多方计算领域中对数据做统计分析的数据计算量和通信传输量会比较大,也就是说,目前对数据做统计分析的性能效率较低。
发明内容
本申请实施例的目的在于提供一种安全多方计算方法、装置、电子设备及存储介质,用于改善对数据做统计分析的性能效率较低的问题。
本申请实施例提供了一种安全多方计算方法,包括:获取本地统计算子,并使用本地统计算子对本地存储的明文态数据进行计算,获得明文态结果;对明文态结果依次进行秘密分享,获得密文态数据;使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,获得密文态结果。
在上述方案的实现过程中,通过结合使用本地统计算子和安全多方算子来实现安全多方计算过程,即在传统的安全多方计算过程中增加了使用本地统计算子对本地存储的明文态数据进行计算的过程,使得原本在安全多方计算过程中对密文态数据的计算量提前至本地计算过程中完成,因此,能够减少密文态数据的计算过程中需要分发和交换的计算量,有效地减少了对数据做统计的分析计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
可选地,在本申请实施例中,明文态数据包括多个明文态数据,密文态数据包括多个密文态数据;使用本地统计算子对本地存储的明文态数据进行计算,包括:使用本地统计算子计算出多个明文态数据的和值、个数以及平方和;使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,包括:使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值、个数以及平方和。
在上述方案的实现过程中,通过拆解出能本地运算的本地统计算子,从而使得原本在安全多方计算过程中对密文态数据的计算量提前至本地计算过程中完成,有效地减少了对数据做统计的分析计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
可选地,在本申请实施例中,使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,还包括:根据多个密文态数据的和值以及个数确定多个密文态数据的平均值。
在上述方案的实现过程中,通过提前完成本地计算过程中需要统计分析的和值部分运算,从而降低了平均值在数据碎片化阶段和密文计算阶段中的数据计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
可选地,在本申请实施例中,使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,还包括:根据多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的方差和/或标准差。
在上述方案的实现过程中,通过提前完成本地计算过程中需要统计分析的和值、个数以及平方和等部分运算,从而降低了方差和/或标准差在数据碎片化阶段和密文计算阶段中的数据计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
可选地,在本申请实施例中,还包括:使用多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差,生成多个明文态数据的数据报表。
在上述方案的实现过程中,通过生成多个明文态数据的数据报表,从而可以在安全多方计算的应用场景中,有效地为目标设备提供数据报表服务。
可选地,在本申请实施例中,明文态数据包括多个明文投标金额,密文态数据包括多个密文投标金额;使用本地统计算子对本地存储的明文态数据进行计算,包括:使用本地统计算子计算出多个明文投标金额的最大金额或者最小金额;使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,包括:使用安全多方算子计算出多个密文投标金额的最大金额或者最小金额,多个密文投标金额的最大金额或者最小金额用于确定中标方。
在上述方案的实现过程中,通过使用本地统计算子计算出多个明文投标金额的最大金额或者最小金额,并使用安全多方算子计算出多个密文投标金额的最大金额或者最小金额,从而有效地确定最大金额的竞标方为中标方,或者,确定最小金额的竞标方为中标方。
可选地,在本申请实施例中,密文态结果包括:多个碎片数据;在获得密文态结果之后,还包括:对多个碎片数据进行合并复原,获得最终明文结果。
本申请实施例还提供了一种安全多方计算装置,包括:明文结果获得模块,用于获取本地统计算子,并使用本地统计算子对本地存储的明文态数据进行计算,获得明文态结果;密文数据获得模块,用于对明文态结果依次进行秘密分享,获得密文态数据;密文结果获得模块,用于使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,获得密文态结果。
可选地,在本申请实施例中,明文态数据包括多个明文态数据,密文态数据包括多个密文态数据;明文结果获得模块,包括:明文态数据计算模块,用于使用本地统计算子计算出多个明文态数据的和值、个数以及平方和;密文结果获得模块,包括:密文态数据计算模块,用于使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值、个数以及平方和。
可选地,在本申请实施例中,密文结果获得模块,还包括:平均数值确定模块,用于使用安全多方算子根据多个密文态数据的和值以及个数确定多个密文态数据的平均值。
可选地,在本申请实施例中,密文结果获得模块,还包括:方差标准差确定模块,用于根据多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的方差和/或标准差。
可选地,在本申请实施例中,安全多方计算装置,还包括:数据报表生成模块,用于使用多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差,生成多个明文态数据的数据报表。
可选地,在本申请实施例中,明文态数据包括多个明文投标金额,密文态数据包括多个密文投标金额;明文结果获得模块,包括:明文金额计算模块,用于使用本地统计算子计算出多个明文投标金额的最大金额或者最小金额;密文结果获得模块,包括:密文金额计算模块,用于使用安全多方算子计算出多个密文投标金额的最大金额或者最小金额,多个密文投标金额的最大金额或者最小金额用于确定中标方。
可选地,在本申请实施例中,密文态结果包括:多个碎片数据;安全多方计算装置,还包括:最终结果获得模块,用于对多个碎片数据进行合并复原,获得最终明文结果。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请实施例中的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的安全多方计算方法的流程示意图;
图2示出的本申请实施例提供的和值计算的逻辑示意图;
图3示出的本申请实施例提供的方差计算的逻辑示意图;
图4示出的本申请实施例提供的安全多方计算方法应用于招投标场景的流程示意图;
图5示出的本申请实施例提供的安全多方计算装置的结构示意图;
图6示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例中的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例中的选定实施例。基于本申请实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
可以理解的是,本申请实施例中的“第一”、“第二”用于区别类似的对象。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在介绍本申请实施例提供的安全多方计算方法之前,先介绍本申请实施例中所涉及的一些概念:
秘密分享(Secret sharing),又称秘密拆分(Secret splitting),是将秘密分散到多方节点的方法,每人得到秘密的一部分,称为份额(Share)。只有当充够多,或足够多种的份额结合时,才能还原出秘密原文;每个份额各自则没有用途。
不经意传输(Oblivious Transfer)协议,是一种可保护隐私的双方通信协议,能使通信双方以一种选择模糊化的方式传送消息,从而能够增加信息传输的安全性。
需要说明的是,本申请实施例提供的安全多方计算方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
下面介绍该安全多方计算方法适用的应用场景,这里的应用场景包括但不限于:在安全多方计算领域中,使用该安全多方计算方法对数据做统计分析,从而将统计分析计算分解为本地计算过程和安全多方计算过程,使得原本在安全多方计算过程中对密文态数据的计算量提前至本地计算过程中完成,因此,能够减少密文态数据的计算过程中需要分发和交换的计算量,有效地减少了对数据做统计的分析计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
请参见图1示出的本申请实施例提供的安全多方计算方法的流程示意图;本申请实施例提供了一种安全多方计算方法,包括:
步骤S110:获取本地统计算子,并使用本地统计算子对本地存储的明文态数据进行计算,获得明文态结果。
本地统计算子,是指在安全多方计算场景中需要提前至本地计算的算子,具体例如:统计多方节点中的所有数值中的最大值,那么本地节点可以提前计算出本地节点存储的所有数值中的最大值,然后本地节点再将该最大值提交给其它方节点进行安全多方计算。
步骤S120:对明文态结果依次进行秘密分享,获得密文态数据。
步骤S130:使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,获得密文态结果。
可以理解的是,由于在使用安全多方算子进行安全多方计算时,需要使用到本地统计算子计算出的明文态结果,因此,本地统计算子与安全多方算子之间存在一种对应关系,这种对应关系需要根据具体的使用场景来确定。此处以安全多方算子是平均值为例进行说明,那么平均值的安全多方算子可以分解为和值除以个数,其中,此处的除以运算可以转换为乘法的逆运算。换句话说,平均值的安全多方算子所依赖对应的本地统计算子包括:和值、个数和乘积。
在上述的实现过程中,通过结合使用本地统计算子和安全多方算子来实现安全多方计算过程,即在传统的安全多方计算过程中增加了使用本地统计算子(例如:加法和乘法等算子)对本地存储的明文态数据进行计算的过程,使得原本在安全多方计算过程中对密文态数据的计算量提前至本地计算过程中完成,因此,能够减少密文态数据的计算过程中需要分发和交换的计算量,有效地减少了对数据做统计的分析计算量和通信传输量,从而提高了对数据做统计分析的性能效率。
作为步骤S110的一种可选实施方式,上述的明文态数据可以包括多个明文态数据,密文态数据可以包括多个密文态数据;使用本地统计算子对本地存储的明文态数据进行计算,可以包括:使用本地统计算子计算出多个明文态数据的和值、个数以及平方和。
第一,以和值计算为例进行说明,具体例如:假设第一方参与者(表示为P1)中存储有明文态数据a和b,那么P1可以提前计算出本地明文态数据的和值a+b=x;同理地,第二方参与者(表示为P2)中存储有明文态数据c和d,P2也可以提前计算出本地明文态数据的和值c+d=y,最后,P1对本地明文态数据的和值x进行秘密分享即可,且P2对本地明文态数据的和值y进行秘密分享即可,而不是分别对a、b、c和d进行秘密分享,从而减少了密文态数据的计算过程中需要分发和交换的计算量,有效地减少了对数据做统计的分析计算量和通信传输量。
第二,以个数为例进行说明,具体例如:第一方参与者P1中存储有明文态数据a和b,那么P1可以提前计算出本地明文态数据的个数为2,同理地,第二方参与者P2中存储有明文态数据c、d和e,P2也可以提前计算出本地明文态数据的个数为3;最后,P1对本地明文态数据的个数2进行秘密分享即可,且P2对本地明文态数据的个数3进行秘密分享即可。
第三,以平方和计算为例进行说明,具体例如:假设第一方参与者P1中存储有明文态数据a和b,那么P1可以提前计算出本地明文态数据的平方和a2+b2=x;同理地,第二方参与者P2中存储有明文态数据c和d,P2也可以提前计算出本地明文态数据的平方和c2+d2=y,最后,P1对本地明文态数据的平方和x进行秘密分享即可,且P2对本地明文态数据的平方和y进行秘密分享即可,而不是分别对a、b、c和d进行秘密分享,从而减少了密文态数据的计算过程中需要分发和交换的计算量,有效地减少了对数据做统计的分析计算量和通信传输量。
请参见图2示出的本申请实施例提供的和值计算的逻辑示意图;可以理解的是,上述的统计分析中对多个明文态数据进行的计算包括但不限于:最大值、最小值、和值、个数、平方和、平均值、方差和/或标准差等,为了便于理解和说明,下面先以和值计算为例进行说明,后续再对其它计算过程进行说明。同理地,上述的多方是指在安全多方计算领域中的多个参与者(Parties,表示为P),为了便于理解和说明,下面仅以两方(第一参与者表和第二参与者)为例进行详细说明,主要可以包括以下阶段:
第一阶段,本地计算阶段,本地统计算子对本地存储的明文态数据进行计算,获得明文态结果,此处的明文态结果可以是本地明文态数据的和值。具体以和值计算为例进行说明,例如:假设第一方参与者P1中存储有明文态数据a和b,那么P1可以提前计算出本地明文态数据的和值a+b=x;同理地,第二方参与者P2中存储有明文态数据c和d,P2也可以提前计算出本地明文态数据的和值c+d=y。
第二阶段,数据碎片化阶段,对明文态结果的值进行秘密分享(Share Values),获得密文态数据。具体例如:P1存储的第一明文态结果表示为x,可以使用秘密分享协议对第一明文态结果x依次进行秘密分享,从而获得的密文态数据可以表示为[x]1和[x]2,具体地,可以生成随机数r,其中,[x]1=r,再计算出[x]2=x-r,并将[x]2发送给P2。同理地,P2存储的第二明文态结果表示为y,使用秘密分享协议对第二明文态结果依次进行秘密分享,从而获得的密文态数据可以表示为[y]1和[y]2,具体地,可以生成随机数t,其中,[y]2=t,再计算出[y]1=y-t,并将[y]1发送给P1。
第三阶段,密文计算阶段,使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值(Addition)的碎片数据。具体例如:第一方参与者P1接收第二方参与者P2发送的[y]1,并将[x]1与本地的[y]1相加,即可获得密文态结果的第一碎片数据[z]1=[x]1+[y]1。同理地,第二方参与者P2接收第一方参与者P1发送的[x]2,并将[x]2与本地的[y]2相加,即可获得密文态结果的第二碎片数据[z]2=[x]2+[y]2。
第四阶段,合并复原阶段,对密文态结果中的多个碎片数据进行合并复原,获得最终明文结果。具体例如:假设不参与安全多方计算的目标设备可以从第一方参与者P1获取到密文态结果的第一碎片数据[z]1,也可以第二方参与者P2获取到密文态结果的第二碎片数据[z]2,从而获得最终明文结果的计算证明过程可以表示为z=[z]1+[z]2=[x]1+[y]1+[x]2+[y]2=x+y。
作为步骤S120的一种可选实施方式,可以使用不经意传输协议和秘密分享协议对明文态结果依次进行秘密分享,从而获得密文态数据。其中,可以使用的秘密分享协议的类别包括但不限于三大类别:门限秘密分享(Threshold Secret Sharing Scheme)、一般访问结构的秘密分享(General Secret Sharing Scheme)以及介于二者之间的面向特殊访问结构的秘密分享协议等。此处以门限秘密分享类别为例进行说明,可以使用的秘密分享协议包括:基于多项式的Shamir协议、基于超平面的Blakley协议、基于中国剩余定理的Mignotee协议、Asumth-Bloom协议、Brickell协议、基于矩阵投影的秘密共享协议、Arithmetic分享协议、Boolean分享协议和Yao分享协议等。
请参见图3示出的本申请实施例提供的方差计算的逻辑示意图;图中的明文态数据使用实线表示,图中的密文态数据使用虚线表示,为了便于理解和说明,下面均以有两个参与方(P1和P2)为例进行说明,且每个参与方均存储有两个明文态数据,具体例如:P1存储有明文态数据a和b,P2存储有明文态数据c和d。
作为步骤S130的一种可选实施方式,使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,包括:
步骤S131:使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值、个数以及平方和。
上述步骤S131的实施方式具体例如:第一阶段是本地计算阶段,即使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值、个数以及平方和;其中,此处以第一参与者P1为例进行说明,P1的本地统计算子包括但不限于:最大值表示为max(a,b),最小值表示为min(a,b),和值表示为a+b、个数表示为count(a,b),和,乘积表示为a×b,平方和表示为a2+b2=a×a+b×b等;其中,a和b分别表示安全多方运算中的第一参与者本地存储的第一明文态数据和第二明文态数据。同理地,若第二参与者P2本地存储有明文态数据c和d,也可以使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值c+d、个数count(c,d)以及平方和c2+d2=c×c+d×d等。
第二阶段是数据碎片化阶段,本申请实施例实施方式中的所有数据碎片化操作具体可以采用上述的秘密分享协议来进行数据碎片化操作,由于上面已经详细描述了秘密分享协议的三大类别和具体协议,因此不再赘述。
作为步骤S130的一种可选实施方式,在步骤S131之后,还可以包括:
步骤S132:使用安全多方算子根据多个密文态数据的和值以及个数确定多个密文态数据的平均值。
上述步骤S132的实施方式包括:第三阶段是密文计算阶段,此处可以先计算出平均值,后续可以根据平均值计算方差和标准差等,下面介绍平均值的密文计算过程。平均值的密文计算过程具体例如:使用安全多方算子根据多个密文态数据的和值以及个数确定多个密文态数据的平均值;此处的安全多方算子可以分解为其中,此处的除法运算可以转换为乘法的逆运算,μ表示平均值,a表示安全多方运算中的第一参与者存储的明文态数据,b表示安全多方运算中的第二参与者存储的明文态数据,count表示统计个数。
作为步骤S130的一种可选实施方式,在步骤S132之后,还可以包括:
步骤S133:根据多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的方差和/或标准差。
上述步骤S133的实施方式包括:第三阶段是密文计算阶段,此处可以根据上述计算出的多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的方差,具体例如:当只有两个数据(例如:a和b)进行方差运算时,此时方差的安全多方算子可以使用公式分解为其中,var表示方差,μ表示平均值,count表示统计个数。同理地,当只有四个数据(例如:a、b、c和d)进行方差运算时,上述方差的安全多方算子可以使用公式分解为当有更多的多个参与方进行方差运算时,上述方差的安全多方算子可以使用公式分解为其中,上述的除法运算可以转换为乘法的逆运算,var表示方差,μ表示平均值,x1+x2+…+xn分别表示安全多方运算中的第一参与者、第二参与者、……第n参与者等存储的明文态数据,count表示统计个数。由此可以看出,方差的安全多方算子所依赖对应的本地统计算子包括:和值、个数、乘积以及平方和。
同理地,可以通过上面类似的方式使用标准差的安全多方算子进行计算,即可以根据多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的标准差。使用标准差的安全多方算子进行计算的过程具体例如:由于可以根据方差开方从而计算出标准差,且可以根据和值、个数和乘积计算出平均值,再通过上面类似的方式根据和值、个数、乘积和平均值计算出标准差,其中的除法运算可以转换为乘法的逆运算。可以看出,标准差的安全多方算子所依赖对应的本地统计算子也包括:和值、个数、乘积以及平方和。
作为安全多方计算方法的一种可选实施方式,还可以生成数据报表,该实施方式可以包括:
步骤S134:使用多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差,生成多个明文态数据的数据报表。
上述步骤S134的实施方式例如:电子设备接收目标设备的报表请求;此处的电子设备是指安全多方计算中的任意参与者,即可以是上述的第一参与者,也可以是上述的第二参与者。然后,根据报表请求对多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差对应的密文态数据进行合并复原、筛选、剔除和合并等运算,获得生成的多个明文态数据的数据报表;电子设备向目标设备发送生成的数据报表。
请参见图4示出的本申请实施例提供的安全多方计算方法应用于招投标场景的流程示意图;作为上述安全多方计算方法的一种可选实施方式,还可以将该安全多方计算方法应用于招投标场景中。上述的明文态数据可以包括多个明文投标金额,密文态数据包括多个密文投标金额;使用本地统计算子对本地存储的明文态数据进行计算,包括:
步骤S210:获取本地统计算子,并使用本地统计算子对本地存储的多个明文投标金额进行计算,获得明文态结果,明文态结果是多个明文投标金额的最大金额或者最小金额。
步骤S220:对多个明文投标金额的最大金额或者最小金额依次进行秘密分享,获得密文态数据,密文态数据包括多个密文投标金额。
步骤S230:使用本地统计算子对应的安全多方算子计算出密文态结果,此处的密文态结果是多个密文投标金额的最大金额或者最小金额,多个密文投标金额的最大金额或者最小金额用于确定中标方。
可以理解的是,上面仅仅举例了使用本地统计算子和安全多方算子进行计算过程中,使用最大值、最小值、平均值、和值、个数、平方和、方差和/或标准差作为计算的例子,然而在具体实践过程中,仍然还有很多统计分析中可以使用本地统计算子,难以穷举,例如:计算几何平均数值、立方和等,因此,本地统计算子和安全多方算子的具体内容以及两者的对应关系不应理解为对本申请实施例的限制。
作为安全多方计算方法的一种可选实施方式,上述的密文态结果包括:多个碎片数据;在获得密文态结果之后,还可以复原为明文结果,该实施方式可以包括:
步骤S240:对多个碎片数据进行合并复原,获得最终明文结果。
上述步骤S240的实施方式例如:使用预设编程语言编译或者解释的可执行程序对多个碎片数据进行合并复原,获得最终明文结果;其中,此处可以使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等。
请参见图5示出的本申请实施例提供的安全多方计算装置的结构示意图;本申请实施例提供了一种安全多方计算装置300,包括:
明文结果获得模块310,用于获取本地统计算子,并使用本地统计算子对本地存储的明文态数据进行计算,获得明文态结果。
密文数据获得模块320,用于对明文态结果依次进行秘密分享,获得密文态数据。
密文结果获得模块330,用于使用本地统计算子对应的安全多方算子对密文态数据进行安全多方计算,获得密文态结果。
可选地,在本申请实施例中,明文态数据包括多个明文态数据,密文态数据包括多个密文态数据;明文结果获得模块,包括:
明文态数据计算模块,用于使用本地统计算子计算出多个明文态数据的和值、个数以及平方和。
密文结果获得模块,包括:
密文态数据计算模块,用于使用本地统计算子对应的安全多方算子计算出多个密文态数据的和值、个数以及平方和。
可选地,在本申请实施例中,密文结果获得模块,还包括:
平均数值确定模块,用于使用安全多方算子根据多个密文态数据的和值以及个数确定多个密文态数据的平均值。
可选地,在本申请实施例中,密文结果获得模块,还包括:
方差标准差确定模块,用于根据多个密文态数据的平均值、和值、个数以及平方和,确定多个密文态数据的方差和/或标准差。
可选地,在本申请实施例中,安全多方计算装置,还包括:
数据报表生成模块,用于使用多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差,生成多个明文态数据的数据报表。
可选地,在本申请实施例中,明文态数据包括多个明文投标金额,密文态数据包括多个密文投标金额;明文结果获得模块,包括:
明文金额计算模块,用于使用本地统计算子计算出多个明文投标金额的最大金额或者最小金额。
密文结果获得模块,包括:
密文金额计算模块,用于使用安全多方算子计算出多个密文投标金额的最大金额或者最小金额,多个密文投标金额的最大金额或者最小金额用于确定中标方。
可选地,在本申请实施例中,密文态结果包括:多个碎片数据;安全多方计算装置,还包括:
最终结果获得模块,用于对多个碎片数据进行合并复原,获得最终明文结果。
应理解的是,该装置与上述的安全多方计算方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。
请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质430,该计算机可读存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。
其中,计算机可读存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种安全多方计算方法,其特征在于,包括:
获取本地统计算子,并使用所述本地统计算子对本地存储的明文态数据进行计算,获得明文态结果;
对所述明文态结果依次进行秘密分享,获得密文态数据;
使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,获得密文态结果。
2.根据权利要求1所述的方法,其特征在于,所述明文态数据包括多个明文态数据,所述密文态数据包括多个密文态数据;所述使用所述本地统计算子对本地存储的明文态数据进行计算,包括:
使用所述本地统计算子计算出所述多个明文态数据的和值、个数以及平方和;
所述使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,包括:
使用所述本地统计算子对应的安全多方算子计算出所述多个密文态数据的和值、个数以及平方和。
3.根据权利要求2所述的方法,其特征在于,所述使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,还包括:
根据所述多个密文态数据的和值以及个数确定所述多个密文态数据的平均值。
4.根据权利要求3所述的方法,其特征在于,所述使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,还包括:
根据所述多个密文态数据的平均值、和值、个数以及平方和,确定所述多个密文态数据的方差和/或标准差。
5.根据权利要求4所述的方法,其特征在于,还包括:
使用所述多个密文态数据的平均值、和值、个数、平方和、方差和/或标准差,生成所述多个明文态数据的数据报表。
6.根据权利要求1所述的方法,其特征在于,所述明文态数据包括多个明文投标金额,所述密文态数据包括多个密文投标金额;所述使用所述本地统计算子对本地存储的明文态数据进行计算,包括:
使用所述本地统计算子计算出所述多个明文投标金额的最大金额或者最小金额;
所述使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,包括:
使用所述安全多方算子计算出所述多个密文投标金额的最大金额或者最小金额,所述多个密文投标金额的最大金额或者最小金额用于确定中标方。
7.根据权利要求1-6任一所述的方法,其特征在于,所述密文态结果包括:多个碎片数据;在所述获得密文态结果之后,还包括:
对所述多个碎片数据进行合并复原,获得最终明文结果。
8.一种安全多方计算装置,其特征在于,包括:
明文结果获得模块,用于获取本地统计算子,并使用所述本地统计算子对本地存储的明文态数据进行计算,获得明文态结果;
密文数据获得模块,用于对所述明文态结果依次进行秘密分享,获得密文态数据;
密文结果获得模块,用于使用所述本地统计算子对应的安全多方算子对所述密文态数据进行安全多方计算,获得密文态结果。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691278.2A CN115225264A (zh) | 2022-06-17 | 2022-06-17 | 一种安全多方计算方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210691278.2A CN115225264A (zh) | 2022-06-17 | 2022-06-17 | 一种安全多方计算方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115225264A true CN115225264A (zh) | 2022-10-21 |
Family
ID=83608621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210691278.2A Pending CN115225264A (zh) | 2022-06-17 | 2022-06-17 | 一种安全多方计算方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225264A (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166446A (zh) * | 2019-05-13 | 2019-08-23 | 矩阵元技术(深圳)有限公司 | 一种基于安全多方计算的地理加权平均中心的实现方法 |
CN110175461A (zh) * | 2019-05-08 | 2019-08-27 | 矩阵元技术(深圳)有限公司 | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
CN110889447A (zh) * | 2019-11-26 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算检验模型特征显著性的方法和装置 |
CN111489155A (zh) * | 2020-03-11 | 2020-08-04 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111711645A (zh) * | 2020-08-19 | 2020-09-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
US20210058241A1 (en) * | 2019-02-22 | 2021-02-25 | Inpher, Inc. | Arithmetic for Secure Multi-Party Computation with Modular Integers |
CN112532383A (zh) * | 2020-11-18 | 2021-03-19 | 南京信息工程大学 | 一种基于秘密分享的隐私保护计算方法 |
CN112688779A (zh) * | 2021-03-09 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112906044A (zh) * | 2021-05-10 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 多方安全计算方法、装置、设备及存储介质 |
CN113315631A (zh) * | 2021-06-09 | 2021-08-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113516256A (zh) * | 2021-09-14 | 2021-10-19 | 深圳市洞见智慧科技有限公司 | 基于秘密共享、同态加密的无第三方联邦学习方法及系统 |
CN113535808A (zh) * | 2021-06-24 | 2021-10-22 | 复旦大学 | 基于安全多方计算的键值对模型安全训练与推理方法 |
US20210336790A1 (en) * | 2020-04-24 | 2021-10-28 | Unbound Tech Ltd. | Method for performing a preprocessing computation during a proactive mpc process |
CN114024960A (zh) * | 2021-09-22 | 2022-02-08 | 医渡云(北京)技术有限公司 | 多方安全计算方法、装置、系统、存储介质及设备 |
CN114168998A (zh) * | 2021-11-30 | 2022-03-11 | 联想(北京)有限公司 | 数据处理方法和装置 |
CN114358323A (zh) * | 2021-12-29 | 2022-04-15 | 深圳前海新心数字科技有限公司 | 联邦学习环境中基于第三方高效皮尔森系数计算方法 |
-
2022
- 2022-06-17 CN CN202210691278.2A patent/CN115225264A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210058241A1 (en) * | 2019-02-22 | 2021-02-25 | Inpher, Inc. | Arithmetic for Secure Multi-Party Computation with Modular Integers |
CN110175461A (zh) * | 2019-05-08 | 2019-08-27 | 矩阵元技术(深圳)有限公司 | 安全多方计算的实现方法、装置、计算机设备和存储介质 |
CN110166446A (zh) * | 2019-05-13 | 2019-08-23 | 矩阵元技术(深圳)有限公司 | 一种基于安全多方计算的地理加权平均中心的实现方法 |
CN110889447A (zh) * | 2019-11-26 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算检验模型特征显著性的方法和装置 |
CN111489155A (zh) * | 2020-03-11 | 2020-08-04 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
US20210336790A1 (en) * | 2020-04-24 | 2021-10-28 | Unbound Tech Ltd. | Method for performing a preprocessing computation during a proactive mpc process |
CN111711645A (zh) * | 2020-08-19 | 2020-09-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112532383A (zh) * | 2020-11-18 | 2021-03-19 | 南京信息工程大学 | 一种基于秘密分享的隐私保护计算方法 |
CN112688779A (zh) * | 2021-03-09 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112906044A (zh) * | 2021-05-10 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 多方安全计算方法、装置、设备及存储介质 |
CN113315631A (zh) * | 2021-06-09 | 2021-08-27 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113535808A (zh) * | 2021-06-24 | 2021-10-22 | 复旦大学 | 基于安全多方计算的键值对模型安全训练与推理方法 |
CN113516256A (zh) * | 2021-09-14 | 2021-10-19 | 深圳市洞见智慧科技有限公司 | 基于秘密共享、同态加密的无第三方联邦学习方法及系统 |
CN114024960A (zh) * | 2021-09-22 | 2022-02-08 | 医渡云(北京)技术有限公司 | 多方安全计算方法、装置、系统、存储介质及设备 |
CN114168998A (zh) * | 2021-11-30 | 2022-03-11 | 联想(北京)有限公司 | 数据处理方法和装置 |
CN114358323A (zh) * | 2021-12-29 | 2022-04-15 | 深圳前海新心数字科技有限公司 | 联邦学习环境中基于第三方高效皮尔森系数计算方法 |
Non-Patent Citations (2)
Title |
---|
DIVYA G NAIR: ""An effective private data storage and retrieval system using secret sharing scheme based on secure multi-party computation"", 《2014 INTERNATIONAL CONFERENCE ON DATA SCIENCE & ENGINEERING (ICDSE)》 * |
田原: ""基于机器学习与安全多方计算的棉花大数据分析与共享"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008256B (zh) | 一种基于安全多方计算的空间数据分布模式分析方法 | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN114584294A (zh) | 不经意分散排列方法及装置 | |
CN112182488B (zh) | 基于边缘计算的分布式外包计算处理方法及装置 | |
CN113159289A (zh) | 基于神经网络的联邦模型的训练方法、装置及计算机设备 | |
WO2023231340A1 (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
CN112734426A (zh) | 一种基于区块链技术的多方私密数据计算方法 | |
CN111523556A (zh) | 模型训练方法、装置及系统 | |
CN113626871A (zh) | 保护隐私数据的两方多分支条件实现方法和系统 | |
WO2022251341A1 (en) | Multi-party computation for many computers | |
CN113849806B (zh) | 多方安全计算中的任务执行方法及装置 | |
CN110941834B (zh) | 多方计算、数据审计、数据处理方法、系统及设备 | |
CN113645294A (zh) | 消息获取方法、装置、计算机设备和消息传输系统 | |
CN115225264A (zh) | 一种安全多方计算方法、装置、电子设备及存储介质 | |
CN112560106B (zh) | 针对隐私矩阵进行处理的方法、装置和系统 | |
CN110213201B (zh) | 数据安全的处理方法、装置、计算机设备及存储介质 | |
CN115357939A (zh) | 一种隐私保护数据计算方法和设备 | |
CN116248266A (zh) | 基于秘密分享的安全多方计算方法及系统 | |
CN113836595A (zh) | 两方安全比较的方法、装置和系统 | |
CN112685752A (zh) | 基于区块链的数据处理方法、装置、电子设备及区块链 | |
CN112417468A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN114239811B (zh) | 基于隐私保护的多方联合卷积处理方法、装置和系统 | |
CN112182593A (zh) | 一种数据处理方法、装置和电子设备 | |
CN115037436B (zh) | 安全多方计算数据均值的方法及系统 | |
CN116318613A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230801 Address after: 201802 room 416, 4th floor, building 1, No. 655, Yinxiang Road, Jiading District, Shanghai Applicant after: SHANGHAI FUDATA TECHNOLOGY Co.,Ltd. Address before: 510640 room 741, Zone C, 2nd floor, No. 38, Shengtang street, Cencun, Tianhe District, Guangzhou, Guangdong Province Applicant before: Shanghai Fushu Technology Co.,Ltd. Guangzhou Branch |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221021 |
|
RJ01 | Rejection of invention patent application after publication |