CN115037436B - 安全多方计算数据均值的方法及系统 - Google Patents
安全多方计算数据均值的方法及系统 Download PDFInfo
- Publication number
- CN115037436B CN115037436B CN202210468713.5A CN202210468713A CN115037436B CN 115037436 B CN115037436 B CN 115037436B CN 202210468713 A CN202210468713 A CN 202210468713A CN 115037436 B CN115037436 B CN 115037436B
- Authority
- CN
- China
- Prior art keywords
- data
- participants
- party
- participant
- application
- 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
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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
Abstract
本申请提供了一种安全多方计算数据均值的方法及系统,属于安全多方计算的技术领域,用于解决相关技术多方均值计算效果欠佳的问题。在该方法及系统中,多个参与方在不向外泄露自身数据的情况下实现数据均值的计算,若有n个参与方参与计算,则每个参与方将自身数据分为n份,并向外给其他n‑1个参与方分别发送一份,共发出n‑1份数据,也会接收其余n‑1个参与方向自己发送的数据,从而得到一组数据,然后将每个参与方得到的这组数据汇总至一方、求和,即可计算所有参与方所有数据的总和,根据总和除以n即可得到所有参与方数据的均值。该方法及系统较好的解决了多方数据安全计算平均值的问题。
Description
技术领域
本申请涉及安全多方计算的技术领域,尤其涉及一种安全多方计算数据均值的方法及系统。
背景技术
安全多方计算(SNC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,安全多方计算要确保输入的独立性、计算的正确性,同时不泄露个输入值给参与计算的其他成员,主要是针对在无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
发明内容
本申请提供了一种安全多方计算数据均值的方法及系统,其能够解决安全多方计算数据均值的问题。
第一方面,本申请提供了一种安全多方计算数据均值的方法。
在该方法中,设参与方有n个,n≥2,参与方以Ai表示、参与方的数据以Bi表示,i∈I,I={i|i∈N*且i≤n},A1为申请获得自身数据B1的大小序列的申请方;该方法包括:
参与方Ai将自身数据分为n份,Bi=Bi1+Bi2+...+Bin;
每个参与方Ai保留与自身编号相同的一份数据Aii,并将其余的n-1份数据分别发送给编号相应的参与方Ai,以使参与方Ai得到数据B1i,B2i,...,Bni;
将所有参与方Ai得到的数据汇总至一方,以计算n个参与方Ai的平均值。通过采用上述技术方案,在计算过程中不会泄露任一参与方的数据,即可实现多个参与方的均值的计算,从而解决了安全多方计算数据均值的问题。
进一步地,所述将所有参与方Ai得到的数据汇总至一方,以计算n各参与方Ai的平均值包括:
每一参与方Ai计算得到的所有数据的第一结果Ci=B1i+B2i+...+Bni;
计算所有第一结果Ci的和为第二结果D=C1+C2+...+Cn;
根据第二结果D确定n个参与方Ai的平均值E=D/n。
进一步地,参与方Ai的原始数据为B′i,B′i基于预设的秘钥、经同态加密算法加密后得到Bi。
进一步地,所述B′i扩大am倍,a为常数且a≠0,得到所述Bi。
进一步地,在参与方Aa将Bab发送至参与方Ab时,a,b∈I且a≠b,根据Bab生成第一申请验证码Fab1,并将第一申请验证码发送至参与方Ab,参与方Ab根据收到的Bab生成第二申请验证码Fab2,参与方Ab判断收到的第一申请验证码Fab1和计算得到的第二申请验证码Fab2的关系与预设关系是否相同,若是则表示Bab在传输过程中未被篡改。
进一步地,所述,Fab2根据收到的Bab计算得;
其中,p与q均为素数且q整除p-1,g为整数且g是的生成元,所述预设关系为Fab1=Fab2。
进一步地,所述平均值E=D/n;
或,
所述平均值为去极值后的平均值,具体计算方法包括
参与方排序方法:
申请方将自身数据分为两份,其余的每个参与方也将自身数据分为两份;申请方选择一份数据,将这一份数据分别发送给其余的每个参与方,其余的每个参与方均选择一份数据发送给申请方;申请方计算自身留存的数据与接收到的每个参与方的数据作差,得到与其余每个参与方一一对应的若干个第一差值;其余的每个参与方采用接收到的申请方的数据减去自身留存的数据,即其余的每个参与方得到一个第二差值;汇总申请方和其余的参与方发送的第一差值,将与同一参与方对应的第二差值相加,即可相对其余的每个参与方得到一个第三差值;根据第三差值的大小序列即可确定其余的参与方的数据大小序列,根据第三差值与零的大小关系即可确定申请方与其余的参与方的数据大小关系,从而确定所有参与方的数据大小序列;基于预获取的去极值规则,确定需要去掉的最大值和最小值的数量;
确定需要去掉的参与方,也可以确定这些参与方对应的第三差值,根据这些第三差值以及上述的第二结果D、自身的数据B1、所有参与方的数量以及第三差值的数量计算得去极值后的平均数;或确定需要去掉的参与方,以原始的参与方范围减去需要去掉的参与方范围得到的范围的新的参与方范围,计算新的参与方范围的不去极值的平均数,为原始的参与方范围的去极值的平均数。。
进一步地,所有第一结果Ci均发送至申请方A1,申请方A1执行第二结果D和平均值E的计算步骤。
进一步地,以任一参与方Ai作为裁判方,裁判方用于生成及分发所述秘钥。
第二方面,本申请提供了一种安全多方计算数据均值的系统。该系统包括多个用户终端,所述用户终端与如以上第一方面任意一项所述的参与方相一一对应,所述系统用于执行如以上第一方面任意一项所述的方法。
综上所述,本申请至少包含以下有益效果:
1.提供了一种安全多方计算数据均值的方法,其能够在参与方不泄露自身数据的情况下实现参与方的均值的计算;
2.具体算法简单、高效,实用性较高,交互的数据为封装的arrow格式,不需序列化与反序列化,有利于进一步提高传输、计算效率;
3.发送数据与接收数据之间通过验证码验证,有利于避免数据传输过程中被篡改,保障排序结果的可靠性。
应当理解,发明内容部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了能够在其中运行本申请实施例的示例性运行环境示意图;
图2示出了本申请实施例中一种安全多方计算数据均值的方法的流程图;
图3示出了本申请实施例中一种安全多方计算数据均值的系统的结构图;
图4示出了图3中用户终端的方框图。
图5示出了本申请实施例中一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请提供了一种安全多方计算数据均值的方法及系统,其能够在保障参与方原始数据不泄露的情况下确定所有参与方的数据均值,且算法简单、高效、实用、可靠。
图1示出了能够在其中运行本申请实施例的示例性运行环境100示意图。运行环境100包括多个终端110,多个终端110互相通讯连接,每一个终端110均能够与任意其他终端110进行数据交互,终端110之间的通讯连接方式可以是通过局域网、互联网连接,也可以是通过移动通信网络、卫星通信网络或WiFi模块、lora模块等通信手段连接,具体通信方式不作限定。终端110具有终端标识,以使每个终端110发出的数据能够确定来源。
图2示出了本申请实施例中一种安全多方计算数据均值的方法200的流程图。方法200可以在图1的运行环境中运行。
每个终端110中均包含一份隐私数据,在一终端110需要确定隐私数据的均值时,需要首先选定数据均值的参与方的范围,即哪些终端110参与计算,尔后即可执行方法200。
在方法200中,设参与方有n个,n≥2,参与方以Ai表示、参与方的数据以Bi表示,i∈I,I={i|i∈N*且i≤n},N*为正整数集,A1为申请获得所有参与方Ai的数据均值的申请方,则申请方为A1、其数据为B1,其余的参与方为Aj、数据为Bj,j∈I且j≠1。
方法200具体包括以下步骤:
S210:参与方将自身数据分为n份,n等于参与方的数量。
在本实施例中,每个参与方Ai均将自身数据随机分为n份,Bi=Bi1+Bi2+...+Bin,以保障通过任一个分配结果数据无法推导出原本的数据,保障原本数据的安全性。
为了进一步提高数据的安全性,参与方Ai的数据Bi并非需要排序的原始数据,而是原始数据进行同态加密后得到的数据。具体来说,设参与方Ai的原始数据为B′i,B′i基于预设的秘钥、经同态加密算法加密后得到Bi。
在本申请实施例中,所述B′i扩大am倍,a为常数且a≠0,得到所述Bi;a具体可以选择为10,m可以根据需求具体确定。原始数据B′i经过同态加密后得到的同态密文Bi与原始数据B′i具备相同的算术性质,可用于计算确定原始数据B′i之间的关系,且同态密文Bi不会直接体现原始数据B′i的大小,从而在保障计算结果的情况下进一步提高了原始数据的安全性。也可采用不可逆的同态加密算法,使同态密文Bi无法破译得到原始数据B′i,进一步提高原始数据B′i的安全性。
当然,同态加密也可以采用其他的同态加密方式,例如,若不涉及扩大倍数和乘法计算,可不采用全同态加密方式、而采用加同态加密方式。另外,同态加密是为了进一步降低原始数据B′i泄露的可能,即除以上在将原始数据B′i分为n份之前进行的方式之外,也可以在原始数据B′i分为n份之后、向外发送之前进行同态加密。
为了保障同态加密结果的安全性,需避免秘钥固定,故秘钥可在需要进行同态加密时触发生成,在本申请实施例中,在申请方A1申请获得所有参与方Ai的均值时,可在所有参与方Ai中随机选取一方作为裁判方,由裁判方即时生成同态加密公私钥,并向所有参与方Ai发送同态加密公私钥,动态的秘钥能够进一步提高加密结果的安全性。当然,裁判方也可以为第三方。
在一个具体示例中,裁判方为其余的参与方Aj中随即选择的一个。
S220:每个参与方Ai均保留一份数据、并将其余的n-1分数据分别发送至其余的n-1个参与方。
在本步骤的方法中,每个参与方Ai的数据均被划分为n份,故每个参与方Ai将自身的n-1份数据发送至其余的n-1个参与方后,每个参与方Ai均能够发出n-1份数据并接收到其余的n-1个参与方分别发送的共计n-1份数据,即本步骤之后每个参与方Ai的数据仍为n份,只是内容改变了。
在一个示例中,为了便于计算机分配,可基于对参与方Ai划分后数据的编号,Bi1、Bi2、...Bin,使每个参与方Ai保留第二下角标与自身下角标相同的一份数据,将其余的数据分别发送给下角标与数据的第二下角标相同的参与方Ai,即每个参与方Ai最终得到的数据为B1i,B2i,...,Bni。
S230:将所有参与方Ai得到的数据汇总至一方,以计算n各参与方Ai的平均值。
本步骤的方法包括:
每一参与方Ai计算得到的所有数据的第一结果Ci=B1i+B2i+...+Bni;
计算所有第一结果Ci的和为第二结果D=C1+C2+...+Cn;
根据第二结果D确定n个参与方Ai的平均值E=D/n。
在本步骤的方法中,所有第一结果Ci均发送至申请方A1,申请方A1执行第二结果D和平均值E的计算步骤。
在均值计算完毕后,申请方A1基于秘钥对平均值E进行解码,得到原始数据B′i的原始均值E′。
进一步地,计算均值除可以计算所有参与方Ai的数据均值外,在某些场景下,也可以计算去掉一个或几个最大值、去掉一个或几个最小值后计算均值,在需要去掉一个或几个最大值、去掉一个或几个最小值后计算均值的情况下,方法200还包括所有参与方Ai的数据进行排序的方法。
排序方法的具体原理为:申请方将自身数据分为两份,其余的每个参与方也将自身数据分为两份;
申请方选择一份数据,将这一份数据分别发送给其余的每个参与方,其余的每个参与方均选择一份数据发送给申请方;
申请方计算自身留存的数据与接收到的每个参与方的数据作差,得到与其余每个参与方一一对应的若干个第一差值;其余的每个参与方采用接收到的申请方的数据减去自身留存的数据,即其余的每个参与方得到一个第二差值;若参与方总数量为n则申请方得到与其余的参与方一一对应的n-1个第一差值,其余的参与方共n-1个分别得到一个第二差值,即其余的参与方共计得到n-1个差值,第一差值与其余的参与方一一对应,第二差值也与其余的参与方一一对应。
汇总申请方和其余的参与方发送的第一差值,将与同一参与方对应的第二差值相加,即可相对其余的每个参与方得到一个第三差值,第三差值与申请方的数据减去该参与方的数据的结果相关。汇总的动作具体可以有裁判方执行。
裁判方根据第三差值的大小序列即可确定其余的参与方的数据大小序列,根据第三差值与零的大小关系即可确定申请方与其余的参与方的数据大小关系,从而确定所有参与方的数据大小序列。
裁判方可基于申请方发送的去极值规则,选定去掉几个最大值和几个最小值,去极值规则可以固定,例如不论有多少参与方,均去掉一/三/五个最大值和一/三/五个最小值再求平均值,也可以根据所有申请方的数量确定,例如,去掉参与方数量的百分之一/三/五数量结果的最大值和百分之一/三/五数量结果的最小值。
在确定去掉的最大值和最小值数量后,即可确定去极值后的平均值。
一种方法为:裁判方确定需要去掉的参与方,也可以确定这些参与方对应的第三差值,将这些第三差值也发送给申请方,申请方即可根据这些第三差值以及上述的第二结果D、自身的数据B1、所有参与方的数量以及第三差值的数量计算得去极值后的平均数。
具体来说,若需要去掉m个第三差值(m<n)对应的申请方的数据,则最终:去极值后的平均数=(第二结果D+所有第三差值的和-m个申请方数据B1)/(n-m)。
当然,为保障数据安全,上述过程中也涉及到交互的数据也可以采用同态加密算法来处理,同态加密具体方式不作赘述。
另一种方法为:裁判方确定需要去掉的参与方,在所有参与方的名单中去掉这些参与方,重新确定需要计算均值的参与方范围,申请方即可按照重新确定的参与方范围、依照不需去极值的计算均值的方法确定一平均值,该平均值为原始的参与方范围的去极值的平均值。
进一步地,为了避免数据传输过程中被篡改,方法200还包括数据验证方法。
具体来说,在参与方Aa将Bab发送至参与方Ab时,a,b∈I且a≠b,根据Bab生成第一申请验证码Fab1,并将第一申请验证码发送至参与方Ab,参与方Ab根据收到的Bab生成第二申请验证码Fab2,参与方Ab判断收到的第一申请验证码Fab1和计算得到的第二申请验证码Fab2的关系与预设关系是否相同,若是则表示Bab在传输过程中未被篡改。
在一个示例中,所述即/>除以q结果的余数,Fab2根据收到的Bab计算得;其中,p与q均为素数且q整除p-1,p、q可根据经验较大的素数,g为整数且g是/>的生成元,所述预设关系为Fab1=Fab2。
当然,除Bab外,其他任意涉及不同方之间传输的数据也可以采用以上验证方法进行验证,除上述自主涉及的验证算法外,也可以采用其余任意保障验证码与传输内容相关、且通过验证码无法反推得到传输内容的验证算法,此处不作一一列举介绍。
另外,为了便于多方之间数据的传输,在数据发出之前,需要将数据封装成不需序列化和反序列化的arrow格式,以降低处理压力,提高传输效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过系统实施例,对本申请实施例所述方案进行进一步说明。
图3示出了本申请实施例中一种安全多方计算数据均值的系统300的结构图。参照图3,系统300包括:包括多个用户终端310,一所述用户终端310作为一如以上所述的参与方Ai。
图4示出了图3中用户终端的方框图。参照图4,所述用户终端310包括:
数据划分模块310,用于将自身数据Bi分为n份,Bi=Bi1+Bi2+...+Bin;
数据传输模块320,用于与其他用户终端310进行数据传输;以及
结果计算模块330,在汇总所有参与方Ai得到的数据后,计算n个参与方Ai的平均值。
系统300能够执行方法200,系统300中每个用户终端310均能够作为申请方Ai、参与方Aj或裁判方。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
关于用户终端310的具体限定可以参见上文中对于方法200的限定,在此不再赘述。上述用户终端310中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如以上所述的方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
设参与方有n个,n≥2,参与方以Ai表示、参与方的数据以Bi表示,i∈I,I={i|i∈N*且i≤n},A1为申请获得自身数据B1的大小序列的申请方;
参与方Ai将自身数据分为n份,Bi=Bi1+Bi2+...+Bin;
每个参与方Ai均保留一份数据、并将其余的n-1分数据分别发送至其余的n-1个参与方;
将所有参与方Ai得到的数据汇总至一方,以计算n个参与方Ai的平均值。
应理解,上述内容一般在一个过程中在不同主体中执行,但一个计算机设备在不同过程中可以扮演不同角色。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种安全多方计算数据均值的方法,其特征在于,设参与方有n个,n≥2,参与方以Ai表示、参与方的数据以Bi表示,i∈I,I={i|i∈N*且i≤n},A1为申请获得自身数据B1的大小序列的申请方;该方法包括:
参与方Ai将自身数据分为n份,Bi=Bi1+Bi2+...+Bin;
每个参与方Ai均保留一份数据、并将其余的n-1分数据分别发送至其余的n-1个参与方;
将所有参与方Ai得到的数据汇总至一方,以计算n个参与方Ai的平均值,所述一方为申请方或裁判方,所述裁判方为所述参与方Ai中的任意一方或第三方;
所述每个参与方Ai均保留一份数据、并将其余的n-1份数据分别发送至其余的n-1个参与方包括:
每个参与方Ai保留与自身编号相同的一份数据Aii,并将其余的n-1份数据分别发送给编号相应的参与方Ai,以使参与方Ai得到数据B1i,B2i,...,Bni;
所述将所有参与方Ai得到的数据汇总至一方,以计算n各参与方Ai的平均值包括:
每一参与方Ai计算得到的所有数据的第一结果Ci=B1i+B2i+...+Bni;
计算所有第一结果Ci的和为第二结果D=C1+C2+...+Cn;
根据第二结果D确定n个参与方Ai的平均值E;
所述平均值E=D/n;
或,
所述平均值为去极值后的平均值,具体计算方法包括:
申请方将自身数据分为两份,其余的每个参与方也将自身数据分为两份;申请方选择一份数据,将这一份数据分别发送给其余的每个参与方,其余的每个参与方均选择一份数据发送给申请方;申请方计算自身留存的数据与接收到的每个参与方的数据作差,得到与其余每个参与方一一对应的若干个第一差值;其余的每个参与方采用接收到的申请方的数据减去自身留存的数据,即其余的每个参与方得到一个第二差值;汇总申请方和其余的参与方发送的第一差值,将与同一参与方对应的第二差值相加,即可相对其余的每个参与方得到一个第三差值;根据第三差值的大小序列即可确定其余的参与方的数据大小序列,根据第三差值与零的大小关系即可确定申请方与其余的参与方的数据大小关系,从而确定所有参与方的数据大小序列;基于预获取的去极值规则,确定需要去掉的最大值和最小值的数量;
在确定去掉的最大值和最小值数量后,即可确定去极值后的平均值,所述可确定去极值后的平均值的一种方法包括:
确定需要去掉的参与方,根据所述需要去掉的参与方,确定这所述需要去掉的参与方对应的第三差值,根据这些第三差值以及上述的第二结果D、自身的数据B1、所有参与方的数量以及第三差值的数量计算得去极值后的平均数;
所述可确定去极值后的平均值的另一种方法包括:确定需要去掉的参与方,以原始的参与方范围减去需要去掉的参与方范围得到的范围为新的参与方范围,计算新的参与方范围的不去极值的平均值,为原始的参与方范围的去极值的平均数。
2.根据权利要求1所述的一种安全多方计算数据均值的方法,其特征在于,参与方Ai的原始数据为B'i,B'i基于预设的秘钥和经同态加密算法加密后得到Bi。
3.根据权利要求2所述的一种安全多方计算数据均值的方法,其特征在于,所述B′i扩大cm倍,c为常数且c≠0,得到所述Bi,m是常数。
4.根据权利要求1-3中任意一项所述的一种安全多方计算数据均值的方法,其特征在于,在参与方Aa将Bab发送至参与方Ab时,a,b∈I且a≠b,根据Bab生成第一申请验证码Fab1,并将第一申请验证码发送至参与方Ab,参与方Ab根据收到的Bab生成第二申请验证码Fab2,参与方Ab判断收到的第一申请验证码Fab1和计算得到的第二申请验证码Fab2的关系与预设关系是否相同,若是则表示Bab在传输过程中未被篡改。
5.根据权利要求4所述的一种安全多方计算数据均值的方法,其特征在于,所述Fab2根据收到的Bab计算得;
其中,g为整数且g是的生成元,p与q均为素数且q整除p-1,所述预设关系为Fab1=Fab2。
6.根据权利要求1所述的一种安全多方计算数据均值的方法,所述根据这些第三差值以及上述的第二结果D、自身的数据B1、所有参与方的数量以及第三差值的数量计算得去极值后的平均数,包括:
若需要去掉m个第三差值对应的申请方的数据,则最终:去极值后的平均数=(第二结果D+所有第三差值的和-m个申请方数据B1)/(n-m),其中,m<n。
7.根据权利要求1所述的一种安全多方计算数据均值的方法,其特征在于,所有第一结果Ci均发送至申请方A1,申请方A1执行第二结果D和平均值E的计算步骤。
8.根据权利要求2所述的一种安全多方计算数据均值的方法,其特征在于,以任一参与方Ai作为裁判方,裁判方用于生成及分发所述秘钥。
9.一种安全多方计算数据均值的系统,其特征在于,包括多个用户终端,所述系统用于执行如权利要求1-8中任意一项所述的方法,所述多个用户终端作为所述方法中的所述参与方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210468713.5A CN115037436B (zh) | 2022-04-29 | 2022-04-29 | 安全多方计算数据均值的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210468713.5A CN115037436B (zh) | 2022-04-29 | 2022-04-29 | 安全多方计算数据均值的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115037436A CN115037436A (zh) | 2022-09-09 |
CN115037436B true CN115037436B (zh) | 2023-09-29 |
Family
ID=83119939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210468713.5A Active CN115037436B (zh) | 2022-04-29 | 2022-04-29 | 安全多方计算数据均值的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037436B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019283A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 极值确定方法及装置、电子设备、存储介质 |
CN113408001A (zh) * | 2021-08-18 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 多方安全确定最值的方法、装置、设备及存储介质 |
CN114003923A (zh) * | 2021-09-27 | 2022-02-01 | 国广(杭州)数据技术有限公司 | 一种实现数据商业价值的多方计算数据商品构造方法 |
CN114022093A (zh) * | 2021-09-22 | 2022-02-08 | 医渡云(北京)技术有限公司 | 一种基于多方安全的数据协同计算方法、装置及设备 |
WO2022088969A1 (zh) * | 2020-10-29 | 2022-05-05 | 中国银联股份有限公司 | 一种基于区块链的数值排名方法及装置 |
-
2022
- 2022-04-29 CN CN202210468713.5A patent/CN115037436B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019283A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 极值确定方法及装置、电子设备、存储介质 |
WO2022088969A1 (zh) * | 2020-10-29 | 2022-05-05 | 中国银联股份有限公司 | 一种基于区块链的数值排名方法及装置 |
CN113408001A (zh) * | 2021-08-18 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 多方安全确定最值的方法、装置、设备及存储介质 |
CN114022093A (zh) * | 2021-09-22 | 2022-02-08 | 医渡云(北京)技术有限公司 | 一种基于多方安全的数据协同计算方法、装置及设备 |
CN114003923A (zh) * | 2021-09-27 | 2022-02-01 | 国广(杭州)数据技术有限公司 | 一种实现数据商业价值的多方计算数据商品构造方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115037436A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107634836B (zh) | 一种sm2数字签名生成方法及系统 | |
CN111934877B (zh) | 一种sm2协同门限签名方法、存储介质及电子装置 | |
CN107248909A (zh) | 一种基于sm2算法的无证书安全签名方法 | |
CN104754570B (zh) | 一种基于移动互联网络的密钥分发和重构方法与装置 | |
CN110278088A (zh) | 一种sm2协同签名方法 | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
CN109981269B (zh) | 一种安全高效的sm9多方密钥分发方法与装置 | |
CN112597542B (zh) | 目标资产数据的聚合方法及装置、存储介质、电子装置 | |
CN112953700B (zh) | 一种提升安全多方计算效率的方法、系统及存储介质 | |
CN113343283B (zh) | 一种数据处理方法 | |
CN115688185B (zh) | 多方隐私求和方法、装置、电子设备和存储介质 | |
CN113676333A (zh) | 一种两方协作生成sm2盲签名方法 | |
CN112231769A (zh) | 基于区块链的数值验证方法、装置、计算机设备和介质 | |
Hermans et al. | Private yoking proofs: attacks, models and new provable constructions | |
CN111046411A (zh) | 电网数据安全存储方法及系统 | |
Agrawal et al. | Game-set-MATCH: Using mobile devices for seamless external-facing biometric matching | |
CN110071796A (zh) | 一种基于共享秘密的计算方法 | |
CN115037436B (zh) | 安全多方计算数据均值的方法及系统 | |
CN112434281A (zh) | 一种面向联盟链的多因子身份认证方法 | |
CN116827559A (zh) | 一种基于bls的高效可验证时间签名方法及系统 | |
CN115037434B (zh) | 基于隐私计算的多方数据安全计算方法及系统 | |
CN115473633A (zh) | 一种多方协同产生sm2数字签名的方法及装置 | |
CN108111485A (zh) | 子密钥生成方法和装置、还原密钥方法和装置 | |
CN111274613B (zh) | 迭代式sm2数字签名生成方法、系统、介质和设备 | |
CN115037435B (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 |