CN114726512B - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN114726512B CN114726512B CN202210227410.4A CN202210227410A CN114726512B CN 114726512 B CN114726512 B CN 114726512B CN 202210227410 A CN202210227410 A CN 202210227410A CN 114726512 B CN114726512 B CN 114726512B
- Authority
- CN
- China
- Prior art keywords
- data
- component
- mpc
- calculator
- value
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 68
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 30
- 230000003993 interaction Effects 0.000 claims description 9
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000007792 addition Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- 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/50—Oblivious transfer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供了一种数据处理方法和装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数。根据该实施例的方法,首先每一个MPC计算方获取数据提供方发送的数据消息,并利用所述数据消息获取第一数据分量;然后利用所述第一数据分量,进行算数共享处理,得到第二数据分量用以进行MPC处理;其中,N个MPC计算方接收到的N个数据消息包括:所述数据提供方将隐私数据拆分为M个数据分量,并在其中M个数据消息中分别携带其中一个数据分量后发送的,1<M≤N,M为正整数。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种数据处理方法和装置。
背景技术
众所周知,数据往往包含大量的隐私和机密信息,统称为隐私数据,很多企业、医院等机构都会对隐私数据进行保护。在密码学中如何在不泄露隐私的情况下,保密地使用互联网实现数据共享是一个重要的问题。在这种背景下,MPC(Secure Multi-PartyComputation,安全多方计算)应运而生。MPC指的是一组互相不信任的参与者在保护数据隐私的同时,还可以进行协同计算。其中,上述的参与者称为MPC计算方。
数据提供方将隐私数据随机拆分成多个数据分量,将数据分量通过数据提供者与MPC计算方之间建立的安全信道提供给MPC计算方。数据提供者提供给各MPC计算方数据分量的原则在于,每个MPC计算方只获得其中一部分数据分量而非隐私数据全部,并且至少2个以上的MPC计算方之间交互数据分量后能还原出隐私数据。这样能够保证每个MPC计算方都只接触过数据分量,即便攻击者攻破一个MPC计算方,并且长期窃取或修改它,也不能获得有效信息。
由于数据提供者与MPC计算方之间是通过公网传输的,因此亟需一种数据处理方式能够降低数据提供者与MPC计算方之间数据分量传输对公网传输造成的压力。
发明内容
本说明书一个或多个实施例描述了一种数据处理方法,以便于降低数据分量传输对公网传输造成的压力。
根据第一方面,提供了一种数据处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数,所述方法包括:
每一个MPC计算方获取数据提供方发送的数据消息,并利用所述数据消息获取第一数据分量;
每一个MPC计算方利用所述第一数据分量进行算数共享处理,得到第二数据分量用以进行MPC处理;
其中,N个MPC计算方接收到的N个数据消息包括:所述数据提供方将隐私数据拆分为M个数据分量,并在其中M个数据消息中分别携带其中一个数据分量后发送的,1<M≤N,M为正整数。
根据本申请实施例中一种可实现的方式,所述M=N,每个所述数据消息中分别携带有一个数据分量;则,所述利用所述数据消息获取第一数据分量包括:将获取到的数据消息中携带的数据分量作为第一数据分量;
或者,
所述1<M<N,其中M个所述数据消息中分别携带有一个数据分量,其余数据消息中携带0个数据分量;则,所述利用所述数据消息获取第一数据分量包括:若获取到的数据消息中携带有一个数据分量,则将该被携带的数据分量作为第一数据分量;若获取到的数据消息中携带0个数据分量,则所述第一数据分量为空。
根据本申请实施例中一种可实现的方式,利用所述数据消息中携带的第一数据分量,进行算数共享处理包括:
若M=N,则每一个MPC计算方将所述第一数据分量作为待分享数据,进行算数共享处理得到所述第二数据分量;或者,
若1<M<N,则每一个MPC计算方进行零共享处理,得到第三数据分量;将得到的第三数据分量和所述数据消息中携带的第一数据分量合并后得到第四数据分量;将所述第四数据分量作为待分享数据进行算数共享处理,得到所述第二数据分量。
根据本申请实施例中一种可实现的方式,所述零共享处理包括:
每一个MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;
利用所述第一派生值与所述第二派生值的差值,得到第三数据分量。
根据本申请实施例中一种可实现的方式,所述算数共享处理包括:
将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;
将接收到的解密后的数据与本地的待分享数据合并,得到所述第二数据分量;
其中各MPC计算方按照环状次序进行算数共享处理。
根据本申请实施例中一种可实现的方式,所述第二数据分量为逻辑分量;所述方法还包括:
MPC计算方对所述第二数据分量进行从逻辑分量到算数分量的转换,得到第五数据分量用以进行所述MPC处理。
根据本申请实施例中一种可实现的方式,所述N个MPC计算方包括第一MPC计算方、第二MPC计算方和第三MPC计算方;
所述MPC计算方对所述第二数据分量进行从逻辑分量到算数分量的转换包括:
每一个MPC计算方进行零共享处理,得到第六数据分量,所述第六数据分量为算数分量;
第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,所述两个选择项为算数分量;
第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输;
每一个MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到所述第五数据分量。
根据本申请实施例中一种可实现的方式,所述本地持有的逻辑分量包括第一逻辑分量和第二逻辑分量;
所述第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换包括:所述第一MPC计算方利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、所述随机值以及所述MPC处理所采用定点数的小数位数进行所述第一转换和第二转换,得到两个选择项;
该方法还包括:所述第二MPC计算方利用所述交互密钥生成所述随机值。
根据本申请实施例中一种可实现的方式,所述第二数据分量为地址编码分量;所述方法还包括:
MPC计算方对所述第二数据分量进行从地址编码分量到独热one hot编码分量的转换,得到第七数据分量用以进行所述MPC处理。
根据本申请实施例中一种可实现的方式,所述MPC计算方对所述第二数据分量进行从地址编码分量到独热one hot编码分量的转换包括:
分别采用如下方式确定one hot编码分量中的第i位的取值:
分别采用如下方式确定one hot编码分量中的第i位的取值:
针对地址编码的第j位,从j为0开始,若i的二进制取值的第j位为1,则确定当前第i位的one hot编码分量取值为addr[0],否则确定当前第i位的one hot编码分量取值为addr[0]的取反值;
将j的值增1,若i的二进制取值的第j位为1,则将当前第i位的one hot编码分量取值和addr[j]进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;否则,将当前第i位的one hot编码分量取值和addr[j]的取反值进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;
转至执行所述将j的值增1的步骤,直至j达到地址编码分量的最高位数,得到第i位的one hot编码分量取值;
其中,所述addr[0]为地址编码分量中第0位的取值,addr[j]为地址编码分量中第j位的取值。
第二方面,提供了一种数据处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数,所述方法包括:
数据提供方将隐私数据拆分为M个数据分量,1<M≤N,M为正整数;
将所述M个数据分量通过数据消息分别发送给所述N个MPC计算方,以便每个MPC计算方接收到其中一个数据分量或0个数据分量作为第一数据分量,并利用所述第一数据分量进行算数共享处理得到第二数据分量用以进行MPC处理。
根据本申请实施例中一种可实现的方式,所述数据分量为逻辑分量或地址编码分量。
第三方面,提供了一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述MPC计算方,包括:
数据获取单元,被配置为获取数据提供方发送的数据消息,并利用所述数据消息获取第一数据分量;
算数共享单元,被配置为利用所述第一数据分量进行算数共享处理,得到第二数据分量用以进行MPC处理;
其中,N个MPC计算方接收到的N个数据消息包括:所述数据提供方将隐私数据拆分为M个数据分量后,并在其中M个数据消息中分别携带其中一个数据分量而发送的,1<M≤N,M为正整数。
第四方面,提供了一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述数据提供方,包括:
数据拆分单元,被配置为将隐私数据拆分为M个数据分量,1<M≤N,M为正整数;
数据发送单元,被配置为将所述M个数据分量通过数据消息分别发送给所述N个MPC计算方,以便每个MPC计算方接收到其中一个数据分量或0个数据分量作为第一数据分量,并利用所述第一数据分量进行算数共享处理得到第二数据分量用以进行MPC处理。
根据第五方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,数据提供方和MPC计算方之间通过公网传输的数据分量减少至M份,相比较原本的(N-1)*N份显然减少了对公网传输的压力,在数据提供方数量众多的情况下效果尤其明显。并且,MPC计算方通过算数共享处理的方式使得各MPC计算方只获得其中一部分数据分量并且至少2个以上的MPC计算方一起能够还原出隐私数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的系统架构图;
图2示出根据一个实施例的数据处理方法的流程图;
图3示出根据另一个实施例的数据处理方法的流程图;
图4为本申请实施例提供的一种数据传输的实例图;
图5为本申请实施例提供的另一种数据传输的实例图;
图6为本申请实施例提供的逻辑分量转换算数分量的方法流程图;
图7为本申请实施例提供的地址编码分量转换one hot编码分量的方法流程图;
图8示出根据一个实施例的数据处理装置的示意性框图;
图9示出根据另一个实施例的数据处理装置的示意性框图。
具体实施方式
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1为本申请实施例适用的系统架构图,如图1中所示,该系统中包括数据提供方和N个MPC计算方,N为3以上的整数,在图1中N以3为例。TECC(可信密态计算)基于MPC(Secure Multi-Party Computation,安全多方计算)算法,是一种安全高效的密态计算方法。在TECC应用场景下,上述的MPC计算方可以为各TEE(Trusted Execution Environment,可信执行环境)。
目前已有的数据分量传输方式是,数据提供方将隐私数据拆分成N个数据分量后,给每个MPC计算方均发送N-1个数据分量,且保证每个MPC计算方获取到的N-1个数据分量是不同的。由于数据提供方与MPC计算方之间是通过公网传输的,这种传输方式下,每个数据提供方都需要传输(N-1)*N份数据分量,网络传输压力较大。当存在众多数据提供方时,压力尤为明显。
以图1中为例,数据提供者1将数据u拆分成u1、u2和u3。然后将u1、u2提供给MPC计算方A,将u2、u3提供给MPC计算方B,将u3、u1提供给MPC计算方C。这样数据提供方1需要通过公网传输6份数据分量。本申请则致力于在保证MPC算法需求的情况下,减少数据提供方传输的数据分量。
下面结合附图,对本说明书提供的方案进行描述。
图2示出根据一个实施例的数据处理方法的流程图。该方法由图1所示系统中的数据提供者执行。如图2所示,该方法包括以下步骤:
步骤201:数据提供方将隐私数据拆分为M个数据分量。
其中,1<M≤N,M为正整数。
步骤203:将M个数据分量通过数据消息分别发送给N个MPC计算方,以便每个MPC计算方接收到其中一个数据分量或0个数据分量作为第一数据分量。
图3示出根据另一个实施例的数据处理方法的流程图,该方法由图1所示系统中的各MPC计算方执行。如图3中所示,该方法包括以下步骤:
步骤301:MPC计算方获取数据提供方发送的数据消息,并利用数据消息获取第一数据分量。
步骤303:利用所述第一数据分量,进行算数共享处理,得到第二数据分量用以进行MPC处理,其中,N个MPC计算方接收到的N个数据消息包括:数据提供方将隐私数据拆分为M个数据分量后,将其中M个数据消息分别携带其中一个数据分量后发送的数据消息,1<M≤N,M为正整数。
通过图2和图3所示数据处理方法,数据提供方和MPC计算方之间通过公网传输的数据分量减少至M份,相比较原本的(N-1)*N份显然减少了对公网传输的压力,在数据提供方数量众多的情况下效果尤其明显。并且,MPC计算方通过算数共享处理的方式使得各MPC计算方只获得其中一部分数据分量并且至少2个以上的MPC计算方一起能够还原出隐私数据。
作为其中一种可实现的方式,M=N,数据提供方将N个数据分量分别发送给N个MPC计算方,即每个MPC计算方接收到其中一个数据分量即第一数据分量,且每个MPC计算方接收到的数据分量不同。
这种情况下,MPC计算方接收到第一数据分量后,利用接收到的第一数据分量进行算数共享(sharing)处理即可。
所谓算数共享处理指的是:将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;然后将接收到的解密后的数据与本地的待分享数据合并,得到第二数据分量。也就是说,算数共享处理是各MPC计算方按照环状次序进行数据分享的过程。另外,MPC计算方进行加密时采用的密钥与下一MPC计算方解密所采用的密钥相同,该密钥是预先配置或约定好的。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。如图4所示,首先,数据提供方依然将隐私数据拆分成三个数据分量u1、u2和u3。然后将u1传输给MPC计算方A,将u2传输给MPC计算方B,将u3传输给MPC计算方C。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次算数共享处理。其中,每个MPC计算方预先约定好交互密钥使得每个MPC计算方本地均存在交互密钥对(share_rng_d,share_rng_u)。MPC计算方A的share_rng_d与MPC计算方C的share_rng_u相同,MPC计算方B的share_rng_d与MPC计算方A的share_rng_u相同,MPC计算方C的share_rng_d与MPC计算方B的share_rng_u相同。
在进行算数共享处理时,MPC计算方A利用share_rng_d对u1进行加密后传输给MPC计算方C,MPC计算方C利用share_rng_u进行解密得到u1。
MPC计算方B利用share_rng_d对u2进行加密后传输给MPC计算方A,MPC计算方A利用share_rng_u进行解密得到u2。
MPC计算方C利用share_rng_d对u3进行加密后传输给MPC计算方B,MPC计算方B利用share_rng_u进行解密得到u3。
进行算数共享处理之后,MPC计算方A本地存在u1和u2,MPC计算方B本地存在u2和u3,MPC计算方C本地存在u3和u1。但公网仅需要传输3份数据分量,即从原本需要传输6份数据分量减少到3份。而在MPC计算方之间进行算数共享时,由于是在高速网内部因此对于网络传输的压力很小。
作为另一种可实现的方式,1<M<N,数据提供方将M个数据分量分别发送给N个MPC计算方,即有部分MPC计算方通过数据消息分别接收到其中一个数据分量且每个MPC计算方接收到的数据分量不同,另一部分MPC计算方接收到0个数据分量,例如获取的数据消息中未携带数据分量。
这种情况下,MPC计算方如果获取到的数据消息中携带有数据分量,则将该被携带的数据分量作为第一数据分量;若获取到的数据消息未携带数据分量,则第一数据分量为空。
这种情况下,MPC计算方接收到第一数据分量后,首先进行零共享(zero sharing)处理,得到第三数据分量;然后将得到的第三数据分量和接收到的第一数据分量进行合并后得到第四数据分量;再将第四数据分量作为待分享数据进行算数共享处理,得到第二数据分量。
零共享处理指的是各MPC计算方各自生成数据分量并且各MPC计算方生成的数据分量的和为0。具体地,零共享处理包括:MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用第一派生值与第二派生值的差值,得到第三数据分量。其中每个MPC计算方预先约定好零共享密钥使得每个MPC计算方本地均存在由第一零共享密钥和第二零共享密钥构成的密钥对(prng,prngu)。MPC计算方A的prng与MPC计算方C的prngu相同,MPC计算方B的prng与MPC计算方A的prngu相同,MPC计算方C的prng与MPC计算方B的prngu相同。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。如图5所示,首先,数据提供方依然将隐私数据u拆分成两个数据分量y1和y2。然后将y1传输给MPC计算方A,将y2传输给MPC计算方B,MPC计算方C得到0个数据分量。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次零共享处理,分别获得0的三个分量x1、x2和x3。具体地,各MPC计算方各自使用prng生成第一派生值buf1,使用prngu生成第二派生值buf2,将buf1-buf2的值作为零共享处理得到的第三数据分量。
MPC计算方A将零共享处理的结果x1与y1合并后得到第四数据分量x1+y1,MPC计算方B将零共享处理的结果x2与y2合并后得到第四数据分量x2+y2,MPC计算方C将零共享处理的结果x3与接收到的0个数据分量合并后得到第四数据分量x3。
然后MPC计算方A、MPC计算方B和MPC计算方C共同执行一次算数共享处理。
在进行算数共享处理时,MPC计算方A利用share_rng_d对x1+y1进行加密后传输给MPC计算方C,MPC计算方C利用share_rng_u进行解密得到x1+y1。
MPC计算方B利用share_rng_d对x2+y2进行加密后传输给MPC计算方A,MPC计算方A利用share_rng_u进行解密得到x2+y2。
MPC计算方C利用share_rng_d对x3进行加密后传输给MPC计算方B,MPC计算方B利用share_rng_u进行解密得到x3。
进行算数共享处理之后,MPC计算方A本地存在u1=x1+y1,u2=x2+y2,MPC计算方B本地存在u2=x2+y2,u3=x3,MPC计算方C本地存在u3=x3,u1=x1+y1。但公网仅需要传输2份数据分量,即从原本需要传输6份数据分量减少到2份。而在MPC计算方之间进行算数共享时,由于是在高速网内部因此对于网络传输的压力很小。
在诸如机器学习等模型训练或预测场景下,数据提供方提供的隐私数据为样本特征数据的one hot(独热)编码数据。相应地,数据提供方传输的第一数据分量为由one hot编码数据随机拆分的逻辑分量,由于一些应用场景的需要,同时会传输逻辑分量对应的算数分量。其中逻辑分量指的是各元素为二进制值的数据分量,算数分量指的是各元素为整型数据值的数据分量。例如,对于特征数量为d,分桶为b,样本数量为n的数据集,可以使用X[d][b][n]来表示样本特征数据的one hot编码,X[d][b][n]中各元素的取值为0或1。每个元素占用1bit,将其拆分为逻辑分量,每个逻辑分量的大小与X[d][b][n]一致。同时,数据提供方需要提供上述逻辑分量对应的数据分量,即X[d][b][n]的每个元素都用一个整数表示,占用32bit。这种方式显然也会造成公网的传输压力过大,以d=200,b=13,n=100w为例,全量发送6个数据分量大小约为60GB,这是难以接受的。通过上面实施例中所述的方式可以将数据分量从6个缩小为3个或2个,还可以通过下面实施例中的方式进一步降低数据传输方与MPC计算方之间传输的数据量。
在一个实施例中,数据提供方发送的第一数据分量为逻辑分量,不包含算数分量,即得到第二数据分量时,也是逻辑分量,不包含算数分量。
在本实施例中,数据提供方仅发送逻辑分量,不发送算数分量,公网的数据传输量能够得到大大降低。相应地,MPC计算方在得到第二数据分量时,需要对第二数据分量进行从逻辑分量到算数分量的转换,得到第五数据分量。
图6为本申请实施例提供的一种从逻辑分量到算数分量的转换方法流程图,在该流程中,系统中包括第一MPC计算方、第二MPC计算方和第三MPC计算方。如图6中所示,包括以下步骤:
步骤601:MPC计算方进行零共享处理,得到第六数据分量。
零共享处理的方式在上面实施例中已经详细记载,在此不做赘述。经过零共享处理得到的第六数据分量为算数分量。具体将在后续实施例中举例说明。
步骤603:第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,两个选择项为算数分量。
作为一种可实现的方式,第一MPC计算方可以利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、随机值以及所采用定点数的小数位数进行第一转换和第二转换,得到两个选择项。另外,第二MPC计算方也可以利用交互密钥生成上述的随机值。
本步骤中可以利用如下公式分别得到两个选择项m0和m1:
m0=(0^u1^u2)×(1<<B)-rnd
m1=(1^u1^u2)×(1<<B)-rnd
其中,^为异或运算符,<<为左移运算符。B为MPC处理所采用定点数的小数位数。MPC算法中使用的是定点数,所谓定点数一般指的是定点小数。计算机处理的数值数据多数带有小数,小数点一般隐含在某个固定的位置上,称为定点表示法,简称定点数。rnd为随机值,可以利用本地持有的交互密钥share_rng_u生成。
步骤605:第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输。
不经意传输(OT,oblivious transfer)是一个密码学协议,目前被广泛的应用于MPC。目的是MPC计算方将m0和m1发送给另一个MPC计算方,该另一个MPC计算方只能获取m0和m1中的一个,并且发送m0和m1的MPC计算方也无法获知另一个MPC计算方获取的是m0和m1中的哪一个。
作为其中一种可实现的方式,本步骤中的不经意传输可以是三方不经意传输,第一MPC计算方作为不经意传输的发送(send)方,第二MPC计算方作为协助(help)方,第三MPC计算方作为接收(receive)方。第一MPC计算方以m0和m1作为两个选择项,第二MPC计算方和第三MPC计算方本地持有的u3作为选择,执行一次不经意传输。具体将在后续实施例中举例描述。
步骤607:各MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到第五数据分量。
具体地,在进行算数共享处理时,各MPC计算方将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将解密后的数据与本地的待分享数据合并,得到第五数据分量;其中各MPC计算方按照环状次序进行上述的分享处理。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。假设MPC计算方A、MPC计算方B和MPC计算方C分别获取到了第二数据分量(u1,u2),(u2,u3),和(u3,u1)。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次零共享处理,分别得到各自的第五数据分量r1,r2和r3。r1,r2和r3均为算数分量。
MPC计算方A使用本地的share_rng_u生成随机值rnd,确定m0=(0^u1^u2)×(1<<B)-rnd,m1=(1^u1^u2)×(1<<B)-rnd。其中,“1<<B”是一个转算数分量的处理,即将(1^x.b^x.bu)转成算数值。
MPC计算方B使用本地的share_rng_d生成随机值rnd,该值与MPC计算方A生成的随机值相同。此时MPC计算方B本地持有r2’,r2’=r2+rnd。
MPC计算方A作为不经意传输的send方,MPC计算方B作为help方,MPC计算方C作为receive方。MPC计算方A以m0和m1作为两个选择项,MPC计算方B和MPC计算方C本地持有的u3作为选择,执行一次不经意传输。
具体地,MPC计算方A和MPC计算方B进行交互产生共有的随机值W0和W1。MPC计算方A发送m0^W0,m1^W1给MPC计算方C。MPC计算方B利用u3将Wc发送给MPC计算方C,其中Wc为W0或W1。MPC计算方C利用Wc分别对m0^W0,m1^W1进行解密,解密其中一个,得到mi,mi为m0和m1中的一个值。不经意传输后,MPC计算方C本地持有r3’,r3’=r3+mi。
MPC计算方A将r1作为待分享数据,MPC计算方B将r2’作为待分享数据,MPC计算方C将r3’作为待分享数据,执行一次算数共享处理,得到各自的算数分量。即MPC计算方A得到算数分量r1+r2’,MPC计算方B得到算数分量r2+r3’,MPC计算方C得到算数分量r1+r3’。
下面论证上述过程是否得到算数分量:
由于u3的取值是0或者1,当u3为0时:
r1+r2’+r3’=r1+r2+rnd+r3+(0^u1^u2)*(1<<B)-rnd=(0^u1^u2)*(1<<B)=(u3^u1^u2)*(1<<B)
当u3为1时:
r1+r2’+r3’=r1+r2+rnd+r3+(1^u1^u2)*(1<<B)-rnd=(1^u1^u2)*(1<<B)=(u3^u1^u2)*(1<<B)
其中,(1<<B)实际上是将逻辑值转为算数值的处理,也就是说,r1+r2’+r3’经过上述处理后相当于逻辑量的和(u3^u1^u2)再转算数值。将r1、r2’和r3’进行一次算数sharing,三个MPC计算方就各自拥有了算数分量。
在该例子中,数据提供方只需要发送样本的逻辑分量,而不需要发送算数分量,相比较需要同时传输逻辑分量和算数分量数据传输量降低为
在另一个实施例中,数据提供方发送的第一数据分量可以是逻辑分量的地址编码分量。其中逻辑分量指的是各元素为二进制值的数据分量。也就是说,数据提供方在发送逻辑分量时,将one hot编码采用地址编码表示,从而压缩传输的数据量。地址编码指的是采用一个二进制整数来表示one hot编码中1所在的位置。仍以一个三维数组X[d][b][n]来表示样本特征数据为例,若将原本采用的b位的one hot编码改为用地址编码表示,则可以压缩至ceil(log2b)位。其中ceil()为向上取整函数。
b位的one hot编码中只有1位为1,其余位为0。使用ceil(log2b)位的地址编码来表示1所在的位置。例如,one hot编码“0000000001000”可以用地址编码“1010”表示1在onehot编码的第10位。
那么对于MPC计算方而言,获取到的第二数据分量是one hot编码的地址编码表示,需要对其进行从地址编码分量到one hot编码分量的转换,得到第七数据分量用以进行MPC处理。
转换的思路为,one hot编码分量的每一位的取值均可以表示成地址编码分量中各位的取值或取反值的组合乘积,因此,也就能够利用one hot编码分量的各位对应的地址编码分量中各位的取值或取反值(即取反得到的值)的组合乘积,得到one hot编码分量的各位取值。
图7为本申请实施例提供的一种地址编码分量转换one hot编码分量的方法流程图,如图7中所示,分别采用如下步骤确定one hot编码分量中第i位的取值,其中i从0开始依次到b-1。
步骤701:针对地址编码的第j位,j初始取值0。
步骤703:判断i的二进制取值的第j位是否为1,如果是,则执行步骤705;否则,执行步骤707。
步骤705:确定当前第i位的one hot编码分量one_hot[i]的取值为addr[0],执行步骤709。
即one_hot[i]=addr[0]。
其中,addr[0]为地址编码分量中第0位的取值。
步骤707:确定当前第i位的one hot编码分量取值one_hot[i]为addr[0]的取反值,执行步骤709。
即one_hot[i]=~addr[0]
其中,~表示MPC处理的逻辑取反。
步骤709:将j的值增1。
步骤711:判断i的二进制取值的第j位是否为1,如果是,则执行步骤713;否则,执行步骤715。
步骤713:将当前第i位的one hot编码分量取值和addr[j]进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值,执行步骤717。
即one_hot[i]=one_hot[i]×addr[j]
其中,×为MPC处理中的乘法运算。
步骤715:将当前第i位的one hot编码分量取值和addr[j]的取反值进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值,执行步骤717。
即one_hot[i]=one_hot[i]×(~addr[j])
步骤717:判断j的值是否达到地址编码分量的最高位数,如果是,执行步骤719;否则,转至执行步骤709。
步骤719:获得第i位的one hot编码分量取值。
分别针对i在0至b-1的取值分别执行上述流程就可以得到每一位的one hot编码分量取值,最终得到b位的one hot编码分量取值。
在此需要说明的是,各MPC计算方获取到的第一数据分量实际上是包含多个数据分量的,以图1、图3和图5所示场景为例,每个MPC计算方获取到的第一数据分量是包含两个数据分量的。例如MPC计算方A获取到的第一数据分量为u1和u2,MPC计算方B获取到的第一数据分量为u2和u3,MPC计算方C获取到的第一数据分量为u3和u1。也就是说,上述addj[0]和addr[j]均包含多个分量(图1、图3和图5所示场景下为2个分量)取值。相应地,上述one_hot[i]也包含多个分量取值。即将第一数据分量进行从地址编码到one hot编码转换后,得到的第二数据分量也是包含多个分量的,这多个分量为one hot编码分量。
通过上述压缩算法,数据提供方采用地址编码分量替代one hot编码分量在公网中进行传输,可以将公网数据传输量降维原来的
以16位的one hot编码分量采用4位地址编码分量表示为例,假设MPC计算方接收到的地址编码为addr[4]={a,b,c,d},用大写A,B,C和D分别代表a,b,c和d的MPC处理的逻辑取反值。
按照图7所示流程,可以得到one hot编码分量各位的取值:
one_hot[0]=ABCD
其中,“ABCD”即为“A×B×C×D”省略了乘法符号的表示,下面均以此方式进行表示。
one_hot[1]=ABCd
one_hot[2]=ABcD
one_hot[3]=ABcd
one_hot[4]=AbCD
one_hot[5]=aBcD
one_hot[6]=AbcD
one_hot[7]=Abcd
one_hot[8]=aBCD
one_hot[9]=aBCd
one_hot[10]=aBcD
……
在进行上述计算时,可以对乘法进行优化。由于在MPC处理中加法运算无需进行MPC计算方之间的交互,而乘法运算需要进行MPC计算方之间的交互,因此可以将乘法尽量转换为加法,以尽可能减少乘法运算。具体地,可以在进行相乘时,计算地址编码分量中部分addr[j]之间的乘积得到已计算乘积值,其他部分addr[j]取值之间的相乘转换为多个加法项之间相加的处理,其中加法项包括已计算乘积值。可以部分加法项为已计算乘积值,也可以所有加法项均为已计算乘积值。
例如,通过乘法运算计算ab、abc、Abc、aBc、abcd,Abcd,aBcd,ABcd,abCd,AbCd,aBCd,其他乘法转换为上述已计算得到的结果之间的加法:
Ab=ab+b
aB=ab+a
AB=Ab+A
ABc=abc+Abc+aBc+c
abC=abc+ab
AbC=Abc+Ab
aBC=aBc+aB
ABC=ABc+AB
ABCd=abcd+Abcd+aBcd+ABcd+abCd+AbCd+aBCd+d
abcD=abcd+abc
AbcD=Abcd+Abc
ABCD=ABCd+ABC
ABcD=ABcd+ABc
AbCD=AbCd+AbC
aBCD=aBCd+aBC
aBcD=aBcd+aBc
abCD=abCd+abC
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种数据处理装置。图8示出根据一个实施例的数据处理装置的示意性框图。可以理解,该装置可以设置于图1所示系统中的MPC计算方,可以体现为应用程序,或者应用程序中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元的形式。如图8所示,该装置800包括:数据获取单元801和算数共享单元802,还可以进一步包括零共享单元803、第一转换单元804和第二转换单元805。其中各组成单元的主要功能如下:
数据获取单元801,被配置为获取数据提供方发送的数据消息,并利用数据消息获取第一数据分量。
算数共享单元802,被配置为利用第一数据分量进行算数共享处理,得到第二数据分量用以进行MPC处理。
其中,N个MPC计算方接收到的N个数据消息包括:数据提供方将隐私数据拆分为M个数据分量后,并在其中M个数据消息中分别携带其中一个数据分量后发送的数据消息,1<M≤N,M为正整数。
作为一种可实现的方式,M=N,每个所述数据消息中分别携带有一个数据分量,数据获取单元801可以将获取到的数据消息中携带的数据分量作为第一数据分量。上述算数共享单元802可以被具体配置为将第一数据分量作为待分享数据,进行算数共享处理得到第二数据分量。
作为另一种可实现的方式,1<M<N,其中M个所述数据消息中分别携带有一个数据分量,其余数据消息中携带0个数据分量。数据获取单元801可以具体被配置为:若获取到的数据消息中携带有数据分量,则将该被携带的数据分量作为第一数据分量;若获取到的数据消息中携带0个数据分量,则所述第一数据分量为空。相应地,零共享单元803可以首先进行零共享处理,得到第三数据分量。然后算数共享单元802将零共享单元803得到的第三数据分量和数据消息中携带的第一数据分量合并后得到第四数据分量;将第四数据分量作为待分享数据进行算数共享处理,得到第二数据分量。
具体地,零共享单元803可以利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用第一派生值与第二派生值的差值,得到第三数据分量。
算数共享单元802执行算数共享处理时,将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将接收到的解密后的数据与本地的待分享数据合并,得到第二数据分量;其中各MPC计算方按照环状次序进行算数共享处理。
作为一种可实现的方式,第二数据分量为逻辑分量。第一转换单元804被配置为对第二数据分量进行从逻辑分量到算数分量的转换,得到第五数据分量用以进行MPC处理。
作为其中一种可实现的方式,系统中的N个MPC计算方包括第一MPC计算方、第二MPC计算方和第三MPC计算方,
上述的第一转换单元804可以具体被配置为:进行零共享处理,得到第六数据分量,该第六数据分量为算数分量;
若该装置设置于第一MPC计算方,第一转换单元804利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,两个选择项为算数分量;利用该两个选择项向第三MPC计算方进行不经意传输。
第一转换单元804还被配置为将本地得到的算数分量作为待分享数据进行算数共享处理,得到第五数据分量。
其中,本地持有的逻辑分量包括第一逻辑分量和第二逻辑分量。
第一转换单元804在利用本地持有的逻辑分量进行算数值的第一转换和第二转换时,可以执行:利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、所述随机值以及MPC处理所采用定点数的小数位数进行第一转换和第二转换,得到两个选择项。
若该装置设置于第一MPC计算方,则第一转换单元804还被配置为利用交互密钥生成随机值。
若该装置设置于第三MPC计算方,则第一转换单元804还被配置为获取第一MPC计算方不经意传输来的其中一个选择项。
其中,第一转换单元804可以利用如下公式分别得到选择项m0和m1:
m0=(0^u1^u2)×(1<<B)-rnd
m1=(1^u1^u2)×(1<<B)-rnd
其中,^为异或运算符,<<为左移运算符,u1和u2分别为第一逻辑分量和第二逻辑分量,rnd为随机值,B为所采用定点数的小数位数。
作为另一种可实现的方式,第二数据分量为地址编码分量。第二转换单元805,被配置为对第二数据分量进行从地址编码分量到one hot编码分量的转换,得到第七数据分量用以进行MPC处理。
作为一种可实现的方式,第二转换单元805可以具体被配置为利用one hot编码分量的各位对应的地址编码分量中各位的取值或取反的组合乘积,得到one hot编码分量的各位取值。
第二转换单元805可以具体被配置为分别采用如下方式确定one hot编码分量中的第i位的取值:
针对地址编码的第j位,从j为0开始,若i的二进制取值的第j位为1,则确定当前第i位的one hot编码分量取值为addr[0],否则确定当前第i位的one hot编码分量取值为addr[0]的取反值;
将j的值增1,若i的二进制取值的第j位为1,则将当前第i位的one hot编码分量取值和addr[j]进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;否则,将当前第i位的one hot编码分量取值和addr[j]的取反值进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;
转至执行将j的值增1的步骤,直至j达到地址编码分量的最高位数,得到第i位的one hot编码分量取值;
其中,addr[0]为地址编码分量中第0位的取值,addr[j]为地址编码分量中第j位的取值。
根据另一方面的实施例,提供了一种数据处理装置。图9示出根据一个实施例的数据处理装置的示意性框图。可以理解,该装置可以设置于图1所示系统中的数据提供方,可以体现为应用程序,或者应用程序中的插件或软件开发工具包(Software DevelopmentKit,SDK)等功能单元的形式。如图9所示,该装置900包括:数据拆分单元901和数据发送单元902。其中各组成单元的主要功能如下:
数据拆分单元901,被配置为将隐私数据拆分为M个数据分量,1<M≤N,M为正整数;
数据发送单元902,被配置为将M个数据分量通过数据消息分别发送给N个MPC计算方,以便每个MPC计算方接收到其中一个数据分量或0个数据分量作为第一数据分量,并利用第一数据分量进行算数共享处理得到第二数据分量用以进行MPC处理。
作为一种可实现的方式,数据分量为逻辑分量。即可以仅包括逻辑分量,不包括算数分量。
作为再一种可实现的方式,逻辑分量采用one hot编码分量。
作为一种优选的实施方式,上述逻辑分量可以采用地址编码分量。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2、图3、图6或图7所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2、图3、图6或图7所述的方法。
随着时间、技术的发展,计算机可读存储介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本说明书中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述的处理器可包括一个或多个单核处理器或多核处理器。处理器可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种数据处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数,所述方法包括:
每一个MPC计算方获取数据提供方发送的数据消息,并利用所述数据消息获取第一数据分量;
每一个MPC计算方利用所述第一数据分量进行算数共享处理,得到第二数据分量用以进行MPC处理;
其中,N个MPC计算方接收到的N个数据消息包括:所述数据提供方将隐私数据拆分为M个数据分量,并在其中M个数据消息中分别携带其中一个数据分量后发送的数据消息,1<M≤N,M为正整数;
所述M=N,每个所述数据消息中分别携带有一个数据分量;则,所述利用所述数据消息获取第一数据分量包括:将获取到的数据消息中携带的数据分量作为第一数据分量;
或者,所述1<M<N,其中M个所述数据消息中分别携带有一个数据分量,其余数据消息中携带0个数据分量;则,所述利用所述数据消息获取第一数据分量包括:若获取到的数据消息中携带有数据分量,则将该被携带的数据分量作为第一数据分量;若获取到的数据消息中携带0个数据分量,则所述第一数据分量为空;
其中,利用所述数据消息中携带的第一数据分量,进行算数共享处理包括:
若M=N,则每一个MPC计算方将所述第一数据分量作为待分享数据,进行算数共享处理得到所述第二数据分量;或者,
若1<M<N,则每一个MPC计算方进行零共享处理,得到第三数据分量;将得到的第三数据分量和所述数据消息中携带的第一数据分量合并后得到第四数据分量;将所述第四数据分量作为待分享数据进行算数共享处理,得到所述第二数据分量;
其中,所述零共享处理包括:
每一个MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;
利用所述第一派生值与所述第二派生值的差值,得到第三数据分量。
2.根据权利要求1所述的方法,其中,所述算数共享处理包括:
将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;
将接收到的解密后的数据与本地的待分享数据合并,得到所述第二数据分量;
其中各MPC计算方按照环状次序进行算数共享处理。
3.根据权利要求1至2中任一项所述的方法,其中,所述第二数据分量为逻辑分量;所述方法还包括:
MPC计算方对所述第二数据分量进行从逻辑分量到算数分量的转换,得到第五数据分量用以进行所述MPC处理。
4.根据权利要求3所述的方法,其中,所述N个MPC计算方包括第一MPC计算方、第二MPC计算方和第三MPC计算方;
所述MPC计算方对所述第二数据分量进行从逻辑分量到算数分量的转换包括:
每一个MPC计算方进行零共享处理,得到第六数据分量,所述第六数据分量为算数分量;
第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,所述两个选择项为算数分量;
第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输;
每一个MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到所述第五数据分量。
5.根据权利要求4所述的方法,其中,所述本地持有的逻辑分量包括第一逻辑分量和第二逻辑分量;
所述第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换包括:所述第一MPC计算方利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、所述随机值以及所述MPC处理所采用定点数的小数位数进行所述第一转换和第二转换,得到两个选择项;
该方法还包括:所述第二MPC计算方利用所述交互密钥生成所述随机值。
6.根据权利要求1至2中任一项所述的方法,其中,所述第二数据分量为地址编码分量;所述方法还包括:
MPC计算方对所述第二数据分量进行从地址编码分量到独热one hot编码分量的转换,得到第七数据分量用以进行所述MPC处理。
7.根据权利要求6所述的方法,其中,所述MPC计算方对所述第二数据分量进行从地址编码分量到独热one hot编码分量的转换包括:
分别采用如下方式确定one hot编码分量中的第i位的取值:
分别采用如下方式确定one hot编码分量中的第i位的取值:
针对地址编码的第j位,从j为0开始,若i的二进制取值的第j位为1,则确定当前第i位的one hot编码分量取值为addr[0],否则确定当前第i位的one hot编码分量取值为addr[0]的取反值;
将j的值增1,若i的二进制取值的第j位为1,则将当前第i位的one hot编码分量取值和addr[j]进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;否则,将当前第i位的one hot编码分量取值和addr[j]的取反值进行相乘,利用相乘得到的值更新当前第i位的one hot编码分量取值;
转至执行所述将j的值增1的步骤,直至j达到地址编码分量的最高位数,得到第i位的one hot编码分量取值;
其中,所述addr[0]为地址编码分量中第0位的取值,addr[j]为地址编码分量中第j位的取值。
8.一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述MPC计算方,包括:
数据获取单元,被配置为获取数据提供方发送的数据消息,并利用所述数据消息获取第一数据分量;
算数共享单元,被配置为利用所述第一数据分量进行算数共享处理,得到第二数据分量用以进行MPC处理;
其中,N个MPC计算方接收到的N个数据消息包括:所述数据提供方将隐私数据拆分为M个数据分量后,并在其中M个数据消息中分别携带其中一个数据分量后发送的数据消息,1<M≤N,M为正整数;
所述数据处理装置进一步包括:零共享单元;
当M=N时,每个所述数据消息中分别携带有一个数据分量,所述数据获取单元将获取到的数据消息中携带的数据分量作为第一数据分量,所述算数共享单元被配置为将第一数据分量作为待分享数据,进行算数共享处理得到第二数据分量;
当1<M<N时,其中M个所述数据消息中分别携带有一个数据分量,其余数据消息中携带0个数据分量,所述数据获取单元被配置为:若获取到的数据消息中携带有数据分量,则将该被携带的数据分量作为第一数据分量;若获取到的数据消息中携带0个数据分量,则所述第一数据分量为空;相应地,所述零共享单元进行零共享处理,得到第三数据分量;所述算数共享单元将所述零共享单元得到的第三数据分量和数据消息中携带的第一数据分量合并后得到第四数据分量;将第四数据分量作为待分享数据进行算数共享处理,得到第二数据分量;
所述零共享单元利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用第一派生值与第二派生值的差值,得到第三数据分量。
9.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227410.4A CN114726512B (zh) | 2022-03-08 | 2022-03-08 | 数据处理方法和装置 |
PCT/CN2023/071520 WO2023169081A1 (zh) | 2022-03-08 | 2023-01-10 | 数据处理 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210227410.4A CN114726512B (zh) | 2022-03-08 | 2022-03-08 | 数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726512A CN114726512A (zh) | 2022-07-08 |
CN114726512B true CN114726512B (zh) | 2024-03-26 |
Family
ID=82236747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210227410.4A Active CN114726512B (zh) | 2022-03-08 | 2022-03-08 | 数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114726512B (zh) |
WO (1) | WO2023169081A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726511B (zh) * | 2022-03-08 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
CN114726512B (zh) * | 2022-03-08 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
CN118585542A (zh) * | 2023-03-01 | 2024-09-03 | 脸萌有限公司 | 数据查询方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688159A (zh) * | 2017-07-20 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络任务处理系统 |
CN112016126A (zh) * | 2020-09-11 | 2020-12-01 | 山东大学 | 一种基于茫然传输的安全点积计算方法及系统 |
CN112751665A (zh) * | 2019-10-30 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019170908A1 (en) * | 2018-03-09 | 2019-09-12 | Koninklijke Philips N.V. | Batch-wise verification of multiparty computations |
CN112765616B (zh) * | 2020-12-18 | 2024-02-02 | 百度在线网络技术(北京)有限公司 | 多方安全计算方法、装置、电子设备和存储介质 |
CN112926051B (zh) * | 2021-03-25 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 多方安全计算方法和装置 |
CN113987554B (zh) * | 2021-12-23 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
CN114726512B (zh) * | 2022-03-08 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
-
2022
- 2022-03-08 CN CN202210227410.4A patent/CN114726512B/zh active Active
-
2023
- 2023-01-10 WO PCT/CN2023/071520 patent/WO2023169081A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688159A (zh) * | 2017-07-20 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络任务处理系统 |
CN112751665A (zh) * | 2019-10-30 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
CN112016126A (zh) * | 2020-09-11 | 2020-12-01 | 山东大学 | 一种基于茫然传输的安全点积计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023169081A1 (zh) | 2023-09-14 |
CN114726512A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112906044B (zh) | 多方安全计算方法、装置、设备及存储介质 | |
CN114726512B (zh) | 数据处理方法和装置 | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN110166446B (zh) | 一种基于安全多方计算的地理加权平均中心的实现方法 | |
US20150222422A1 (en) | Systems and methods for faster public key encryption using the associated private key portion | |
Natanael et al. | Text encryption in android chat applications using elliptical curve cryptography (ECC) | |
Peng | Danger of using fully homomorphic encryption: A look at Microsoft SEAL | |
CN115664747A (zh) | 加密方法和装置 | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN116743376B (zh) | 基于高效密文混淆技术的多方秘密分享数据隐私比较方法 | |
Arboleda et al. | Chaotic rivest-shamir-adlerman algorithm with data encryption standard scheduling | |
CN111193741B (zh) | 一种信息发送方法、信息获取方法、装置及设备 | |
Tiwari | Cryptography in blockchain | |
CN114726580B (zh) | 数据处理方法和装置 | |
CN114726511B (zh) | 数据处理方法和装置 | |
CN115412246B (zh) | 不经意传输方法、装置、设备和存储介质 | |
CN115659381A (zh) | 联邦学习的woe编码方法、装置、设备及存储介质 | |
CN112131596B (zh) | 加解密方法、设备及存储介质 | |
CN114499845A (zh) | 多方安全计算的方法、装置及系统 | |
CN114629620A (zh) | 同态加密计算方法及系统、同态请求、计算和密钥系统 | |
Al-Attab et al. | Lightweight effective encryption algorithm for securing data in cloud computing | |
CN114095157B (zh) | 密钥管理方法、装置、计算机设备及可读存储介质 | |
Sharma et al. | TEXCEL: text encryption with elliptic curve cryptography for enhanced security |
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 |