CN114726514B - 数据的处理方法和装置 - Google Patents
数据的处理方法和装置 Download PDFInfo
- Publication number
- CN114726514B CN114726514B CN202210275326.XA CN202210275326A CN114726514B CN 114726514 B CN114726514 B CN 114726514B CN 202210275326 A CN202210275326 A CN 202210275326A CN 114726514 B CN114726514 B CN 114726514B
- Authority
- CN
- China
- Prior art keywords
- data
- mpc
- plaintext
- array
- random
- 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 abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 230000000873 masking effect Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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
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
本说明书实施例描述了数据的处理方法和装置。根据实施例的方法,首先可以由每一个MPC计算方获取数据提供方发送的第一数据分量,然后从N个MPC计算方中选取出M个MPC计算方对各自持有的第一数据分量分别进行乱序操作。通过循环执行选取M个MPC计算方进行乱序的操作,使得选取的MPC计算方都至少有一次没有被选取进行乱序操作。由于数据提供方是将待处理的数据拆分成了N个数据分量,并分别由不同的MPC计算方所持有。如此各个数据分量的持有方之间进行数据交互时,是将乱序后的数据分量交互的。因此任何一方都很难通过交互的数据推断出另一方的数据,从而能够降低隐私数据泄露的风险。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及数据的处理方法和装置。
背景技术
众所周知,数据往往包含大量的隐私和机密信息,统称为隐私数据,很多企业、医院等机构都会对隐私数据进行保护。在密码学中如何在不泄露隐私的情况下实现数据共享是一个重要的问题。在这种背景下,MPC(Secure Multi-Party Computation,安全多方计算)应运而生。MPC指的是一组互相不信任的参与者在保护隐私的同时,还可以进行协同计算。其中,上述的参与者称为MPC计算方。
然而,在现有的MPC数据处理中,会出现一个MPC计算方根据计算处理后的数据推断出另一MPC计算方的数据的情况,从而造成隐私数据的泄露。
发明内容
本说明书一个或多个实施例描述了数据的处理方法和装置,能够降低隐私数据泄露的风险。
根据第一方面,提供了数据的处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为不小于3的整数,所述方法包括:
每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
循环执行上述选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同。
在一种可能的实现方式中,每一个MPC计算方对自身所持有的第一数据分量进行乱序操作得到第二数据分量,包括:
根据所述第一数据分量,生成一个明文数组;其中,所述明文数组中的每一个元素与所述第一数据分量中的一个子数据唯一对应;
对所述明文数组中的各个元素进行乱序,生成一个明文随机序列;
根据所述明文随机序列对所述第一数据分量进行乱序操作,得到所述第二数据分量。
在一种可能的实现方式中,所述对所述明文数组中的各个元素进行乱序生成一个明文随机序列,包括:
根据随机数种子生成一个随机数组;其中,所述随机数种子由M个MPC参与方协商得到;
根据所述随机数组中的值对所述明文数组中各个元素的位置进行调整,得到所述明文随机序列。
在一种可能的实现方式中,所述随机数组的值包括第一类元素值和第二类元素值;
所述根据所述随机数组中的值对所述明文数组中各个元素的位置进行调整得到所述明文随机序列,包括:
依次对所述随机数组中各个元素的值进行判断;
若所述随机数组中第j个元素的值为第一类元素值,则将明文数组中第1个元素与第i+1个元素进行互换;其中,所述随机数组中的第j个元素与所述明文数组中的第i个元素相对应;
若所述随机数组中第j个元素的值为第二类元素值,则不对所述明文数组中的元素进行操作;
直至根据所述随机数组中的所有元素值对所述明文数组中的元素进行调整,得到所述明文随机序列。
在一种可能的实现方式中,所述根据所述明文随机序列对所述第一数据分量进行乱序操作得到所述第二数据分量,包括:
针对第一数据分量中的每一个子数据,根据该子数据所对应的元素在所述明文随机序列中的位置,将该子数据在第一数据分量中的位置进行调整,得到所述第二数据分量。
在一种可能的实现方式中,在每次循环执行选取M个MPC计算方对第一数据分量进行乱序的操作时,将上一轮循环得到的第二数据分量重新分配给所述N个MPC计算方。
在一种可能的实现方式中,每一个MPC计算方获取到有至少两个不相同的第一数据分量,且选取到的M个MPC计算方所持有的第一数据分量能够包含所述待处理的数据拆分成的所有N个数据分量;
将所述第二数据分量分配给N个MPC计算方,包括:
生成N个掩码因子;其中,该N个掩码因子的和为0;
针对由所述N个数据分量乱序后得到的N个第二数据分量中的每一个,计算该第二数据分量中的每一个子数据与一个掩码因子的和,得到掩码后的的第二数据分量;其中,一个第二数据分量唯一对应一个掩码因子;
将得到的各个掩码后的第二数据分量分配给N个MPC计算方,以使任意M个计算方所持有的第二数据分量能够包含所述待处理的数据拆分成的所有N个数据分量。
在一种可能的实现方式中,每一个所述MPC计算方均包括至少n个MPC子计算方,n为正整数,且n≥2;
每一轮循环中,在每一个MPC计算方对自身所持有的第一数据分量分别进行乱序操作之前,进一步包括:
将所述第一数据分量拆分成n个第一子数据分量;
利用所述n个MPC子计算方对所述第一子数据分量同时进行乱序操作,得到对应当前MPC计算方组内乱序后的第一数据分量。
根据第二方面,提供了数据的处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为不小于3的整数,所述装置包括:
数据获取模块,配置为每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
数据乱序模块,配置为选取M个MPC计算方对所述数据获取模块获取到的各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
循环执行模块,配置为循环执行上述数据乱序模块选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同。
根据第三方面,提供了一种计算设备,包括:存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述第一方面中任一项所述的方法。
根据本说明书实施例提供的方法和装置,包括数据提供方和N个MPC计算方的系统对数据进行处理时,首先由每一个MPC计算方获取数据提供方发送的第一数据分量,然后选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,从而得到用以进行MPC操作的第二数据分量。通过循环执行选取M个MPC计算方进行乱序的操作,使得选取的MPC计算方都至少有一次没有被选取进行乱序操作。由于数据提供方是将待处理的数据拆分成了N个数据分量,并分别由不同的MPC计算方所持有。每个MPC计算方都会将自己所持有的第一数据分量进行乱序。如此,各个数据分量的持有方之间进行数据交互时,是将乱序后的数据分量交互的。因此,任何一方都很难通过交互的数据推断出另一方的数据,从而能够降低隐私数据泄露的风险。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例提供的数据的处理方法的流程图;
图2是本申请实施例适用的系统架构图;
图3是本说明书一个实施例提供的乱序方法的流程图;
图4是本说明书另一个实施例提供的乱序方法的流程图;
图5是本说明书一个实施例提供的乱序数据再分配方法的流程图;
图6是本说明书一个实施例提供的数据的处理装置的示意图。
具体实施方式
MPC(Secure multi-party computation,安全多方计算)是一种安全高效的密态计算方法,其可以实现多个参与方在不暴露自己数据的情况下,基于这些数据共同完成一个计算结果的目的,这在现如今大数据计算和公众越来越重视隐私安全的环境背景下具有显著的优势。
在TECC(可信密态计算)应用场景中,MPC计算方可以为各TEE(Trusted ExecutionEnvironment,可信执行环境)。MPC计算方通过TEE技术能够确保其数据只在TEE中存在,TEE的宿主、拥有者等都无法获取数据明文(在TEE不被攻破的情况)。另一方面,每个TEE从始至终都只接触过数据分量,也就说,即便攻击者攻破一个TEE,并长期窃取或修改它,也不能获得有效信息。在现实系统中,这种防御程度几乎无法突破。然而,不同的计算方或不同的数据使用者会存在对数据处理后再进行数据交互的情况,而这可能会导致信息的泄露。
比如,为了保证数据的安全性,在计算环境对数据进行处理分析时,通常将数据以密文的形式上传处理中心进行处理分析,然后将分析结果返回给数据的提供者或者获取处理结果的请求者。在整个分析的过程中,处理中心不会对数据进行解密,因此也无法获得数据的任何信息。然而,在多方参与的数据处理时,是需要参与方之间进行数据交换的,而这容易导致一方根据数据处理的关联性推断出另一方的数据。比如,计算方对数据进行了多次排序,而这样的排序可能使得某一方能够推断出其他计算方的数据。如在一定概率下能够同时根据体重排名前2的人以及收入排名前5的人对数据中的相关人员信息进行定位,从而造成隐私的泄露。
基于此,本方案考虑在各计算方对数据进行处理之前,由MPC计算方对持有的数据进行乱序,如此保证了各数据持有方在进行数据交互时根据交互的数据无法对另一方所持有的数据进行推断,从而保证隐私数据的安全。
如图1所示,本说明书实施例提供了数据的处理方法,该方法应用于包括数据提供方和N个多方安全计算MPC计算方的系统,N为不小于3的整数,该方法可以包括:
步骤101:每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
步骤103:选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
步骤105:循环执行上述选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同。
本实施例中,在MPC计算方对数据记性处理分析之前,考虑先对数据进行乱序操作。比如,首先可以由每一个MPC计算方获取数据提供方发送的第一数据分量,然后选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,从而得到用以进行MPC操作的第二数据分量。通过循环执行选取M个MPC计算方进行乱序的操作,使得选取的MPC计算方都至少有一次没有被选取进行乱序操作。由于数据提供方是将待处理的数据拆分成了N个数据分量,并分别由不同的MPC计算方所持有。每个MPC计算方都会将自己所持有的第一数据分量进行乱序。如此,各个数据分量的持有方之间进行数据交互时,是将乱序后的数据分量交互的。因此,乱序后的数据是无法与之前的数据产生关联的,即任何一方都很难通过交互的数据推断出另一方的数据,从而能够降低隐私数据泄露的风险。
下面结合具体的实施例对附图1中的步骤分别进行说明。
首先在步骤101中,每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量。
在本步骤中,数据提供方会在本地将待处理的数据拆分成N个数据分量,其中N为参与对待处理数据进行处理的MPC计算方的个数。然后会将拆分后的各个第一数据分量发送给各个MPC计算方。
比如,图2所示为本申请实施例适用的系统架构图,如图2中所示,该系统中包括数据提供方和N个MPC计算方,N为不小于3的整数,在图2中N以3为例。数据提供者1(以数据提供者1、2和3中的数据提供者1进行说明)将数据u拆分成u1、u2和u3。然后将u1、u2提供给MPC计算方A,将u2、u3提供给MPC计算方B,将u3、u1提供给MPC计算方C。在一种可能的实现方式中,数据提供者1将数据u拆分成u1、u2和u3,然后将u1提供给MPC计算方A,将u2提供给MPC计算方B,将u3提供给MPC计算方C。进一步,MPC计算方B可以将u2发送给MPC计算方A,MPC计算方C可以将u3发送给MPC计算方B,MPC计算方A可以将u1发送给MPC计算方C,使得MPC计算方A持有u1、u2,MPC计算方B持有u2、u3,MPC计算方C持有u3、u1。
当然,每个MPC计算方不仅可以获取两个第一数据分量,也可以只获取一个第一数据分量,或更多的第一数据分量,但每个MPC计算方不能同时获得待处理数据拆分成的N个数据分量,从而避免攻击者攻破一个TEE即可获得有效的信息。
在步骤103中,选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作。
本步骤中,考虑从N个MPC计算方中选取M个MPC计算方对各自所持有的第一数据分量进行乱序操作。如图3所示,每一个MPC计算方对自身所持有的第一数据分量进行乱序操作得到第二数据分量时,可以通过如下步骤实现:
步骤301:根据第一数据分量,生成一个明文数组;其中,明文数组中的每一个元素与第一数据分量中的一个子数据唯一对应;
步骤303:对明文数组中的各个元素进行乱序,生成一个明文随机序列;
步骤305:根据明文随机序列对第一数据分量进行乱序操作,得到第二数据分量。
在本实施例中,首先考虑根据第一数据分量生成一个明文数组,其中该明文数组中的每一个元素与第一数据分量中的一个子数据唯一对应。然后对明文数组中的各个元素进行乱序,生成一个明文随机序列,进而根据该明文随机序列即可对第一数据分量进行乱序。由于明文随机序列是通过乱序操作得到的,因此根据该明文随机序列得到的第二数据分量也是进行过乱序操作的,如此即实现了对第一数据分量的乱序操作。
对步骤301进行说明。
步骤301考虑根据第一数据分量生成一个明文数组。值得注意的是,该明文数组中的每一个元素与第一数据分量中的一个子数据是唯一对应的。比如,第一数据分量中包括r个子数据,其分别为[a0,a1,a2,……ar-1],则生成的明文数组也应包含r个元素,比如该明文数组可以为[y0,y1,y2,……yr-1],其中,明文数组中的元素与第一数据分量中的子数据具有相同下标的相对应,即a0和y0对应、a1和y1对应、a2和y2对应、……ar-1和yr-1对应等。如此当对明文数组乱序之后,可以根据该对应关系,按照乱序后个元素的位置对第一数据分量中给子数据的位置进行调整,从而实现对第一数据分量的乱序。
当然,需要指出的是,该第一数据分量可以是一个数据表,在对第一数据分量进行乱序时考虑对该数据表的各行进行乱序,如此明文数组中的每一个元素可以与数据表中的一行数据唯一对应。
对步骤303进行说明。
步骤303中对步骤301中生成的明文数组中的各个元素进行乱序,以生成一个明文随机序列。如图4所示,一个可能的实现方式中,步骤303可以通过如下步骤对明文数组中的各个元素进行乱序:
步骤401:根据随机数种子生成一个随机数组;其中,随机数种子由M个MPC计算方协商得到;
步骤403:根据随机数组中的值对明文数组中各个元素的位置进行调整,得到明文随机序列。
其中,在一种可能的实现方式中,随机数种子可以为不小于M个MPC计算方所持有的第一数据分量中数据个数的最大值的一个值。
本实施例中,在对明文数组中的各个元素进行乱序操作时,可以先由选取的M个计算方协商出一个随机数种子,其中该随机数种子不小于这M个MPC计算方所持有的第一数据分量中数据个数的最大值。然后利用该随机数种子生成一个随机数组。进一步根据该随机数组中的值对明文数组中各个元素的位置进行调整,从而得到明文随机序列。
比如,通过M个MPC计算方协商得到了一个随机数种子k,通过随机生成的方式得到该随机数组为[x0,x1,x2,……xk-1]。此时可以根据指定的规则进行判断。比如当x为某值时,需要对明文数组中相应位置的元素进行位置调整或不进行调整。
比如,通过对协商得到的随机数种子k进行加法、取模、右移等操作生成一个随机数。如果第一数据分量中包含n个数据,则通过执行上述生成随机数的操作n次,得到n个随机数,并由该n个随机数构成随机数组。
在一种可能的实现方式中,随机数组中的值包括第一类元素值和第二类元素值;如此步骤403根据随机数组中的值对明文数组中各个元素的位置进行调整得到明文随机序列时,可以通过如下方式实现:
依次对随机数组中各个元素的值进行判断;
若随机数组中第j个元素的值为第一类元素值,则将明文数组中第1个元素与第i+1个元素进行互换;其中,随机数组中的第j个元素与明文数组中的第i个元素相对应;
若随机数组中第j个元素的值为第二类元素值,则不对明文数组中的元素进行操作;
直至根据随机数组中的所有元素值对明文数组中的元素进行调整,得到明文随机序列。
在本实施例中,随机数组中的值包括第一类元素值和第二类元素值。如此可以依次对随机数组中各个元素的值进行判断,如果随机数组中第j个元素的值为第一类元素值时,则将明文数组中第1个元素与第i+1个元素进行互换。如果随机数组中第j个元素的值为第二类元素值时,则不对明文数组中的元素进行操作。如此直至根据随机数组中的所有元素值对明文数组中的元素进行了调整,即可得到明文随机序列。由此可见,由于随机数组是随机生成的,因此基于此对明文数组进行乱序操作后得到的明文随机序列也是乱序的。
比如,随机数组[x0,x1,x2,……xk-1]中的值包括0和1两类元素值,假如生成的随机数组为[1,0,1,0,1],明文数组为Y=[y0,y1,y2,y3,y4]。规定:当随机数组中的值为1时,进行元素互换;当随机数组中的值为0时,不进行元素互换。那么,对于随机数组中的第一个元素x0=1,需要将明文数组中的第一个元素与第i+1个元素进行互换。而随机数组中第一个元素与明文数组中第一个元素相对应,即为y0。也就是说,需要将明文数组中第一个元素与第二个元素进行互换,即得到第一次互换后的结果为Y1=[y1,y0,y2,y3,y4]。进一步,随机数组的第二个元素为0,则不对明文数组中的元素进行操作,即第二次得到的结果为Y2=Y1=[y1,y0,y2,y3,y4]。随机数组的第三个元素为1,则将明文数组中的第一个元素与第四个元素进行互换,则有Y3=[y3,y0,y2,y1,y4]。依次根据随机数组中的值分别对明文数组中的元素进行交换。
需要指出的是,在生成随机数组时,随机数组中的元素个数可以比明文数组中的元素个数少一个,如此,可以刚好实现对每一个明文数组中的元素的乱序处理。当然,生成的随机数组中的元素个数可以和明文数组中的元素个数相同,如果随机数组中的最后一个元素为1,则可以将明文数组中最后一个元素与前一个元素进行互换。
当然,在一些可能的实现方式中,步骤403根据随机数组中的值对明文数组中各个元素的位置进行调整得到明文随机序列时,还可以利用Fisher-Yates算法、Knuth-Durstenfeld Shuffle算法、Inside-Out算法、蓄水池抽样算法等实现。
对步骤305进行说明。
步骤305在根据明文随机序列对第一数据分量进行乱序操作得到第二数据分量时,考虑针对第一数据分量中的每一个子数据,根据该子数据所对应的元素在明文随机序列中的位置,将该子数据在第一数据分量中的位置进行调整,以此得到第二数据分量。
比如,第一数据分量为A=[a0,a1,a2,a3,a4],明文随机序列为Y0=[y3,y0,y2,y1,y4],其中,对应的子数据和元素之间具有相同的下标。如此利用明文随机序列对第一数据分量进行调整则有:A0=[a3,a0,a2,a1,a4],即根据明文随机序列中各元素的位置,以及各元素和第一数据分量中各子数据之间的对应关系,将第一数据分量中各子数据的位置进行调整。
在步骤105中,循环执行上述选取M个MPC计算方对第一数据分量进行乱序的操作,直至选取的各个MPC计算方包括N个计算方中的每一个;其中,每次选取的M个MPC计算方不完全相同。
在针对每次选取的M个MPC计算方进行乱序操作之后,进一步选取新的M个MPC计算方进行乱序操作,直至每一个MPC计算方都参与到了乱序操作中。由于不同的MPC计算方持有不同的数据分量,通过让每一个MPC计算方都参与到乱序操作中,即保证乱序操作中的每一个数据分量都能实现乱序操作。从而保证数据的隐私安全。
当然,在每次循环执行选取M个MPC计算方对第一数据分量进行乱序的操作时,需要将上一轮循环得到的第二数据分量重新分配给N个MPC计算方。即将上一轮乱序后的数据分量重新分配所有的MPC计算方。
在一种可能的实现方式中,每一个MPC计算方获取到有至少两个不相同的第一数据分量,且选取到的M个MPC计算方所持有的第一数据分量能够包含待处理的数据拆分成的所有N个数据分量。如此在将第二数据分量重新分配给N个MPC计算方时,如图5所示,可以通过如下步骤实现:
步骤501:生成N个掩码因子;其中,该N个掩码因子的和为0;
步骤503:针对由N个数据分量乱序后得到的N个第二数据分量中的每一个,计算该第二数据分量中的每一个子数据与一个掩码因子的和,得到掩码后的的第二数据分量;其中,一个第二数据分量唯一对应一个掩码因子;
步骤505:将得到的各个掩码后的第二数据分量分配给N个MPC计算方,以使任意M个计算方所持有的第二数据分量能够包含待处理的数据拆分成的所有N个数据分量。
本实施例中,在将第二数据分量重新分配给N个MPC计算方时,首先随机生成N个掩码因子,其中,这N个掩码因子的和为0。然后针对由N个数据分量乱序后得到的N个第二数据分量中的每一个,计算该第二数据分量中的每一个子数据与掩码因子的和,得到掩码后的第二数据分量。进而可以将得到的各个掩码后的第二数据分量分配给N个MPC计算方,以使任意M个MPC计算方所持有的第二数据分量都能够包含待处理的数据拆分成的所有N个数据分量。如此,通过掩码的方式保证了对乱序后数据进行重新分配之后,任何一个MPC计算方也无法通过对照乱序前后的数据确定出这些数据被做了怎样的处理,从而能够防止隐私数据的泄露。
由于每个数据分量都是由待处理数据拆分得到的,而所有拆分的数据合起来又是完整的待处理数据。通过为乱序后的每个第二数据分量加一个掩码因子,既可以保证在数据分量重新分配后MPC计算方无法确定出该数据之前进行了什么操作,实现降低数据泄露的风险的目的。而且由于所有掩码因子的和为0,而将所有的数据分量合并为原数据后,掩码因子又不会影响到原数据的值。
在一种可能的实现方式中,可以每轮中只挑选一方,将自己的数据分量分享给本轮中的不知情方,即可进行下一轮运算,不需要所有MPC计算方都进行重新分享,如此能够提升处理器的执行效率。
由于MPC计算方在进行数据乱序处理时,数据量经常会非常大,这会严重影响数据处理的效率。因此,在一种可能的实现方式中,可以考虑将每个数据分量进一步拆分成子数据分量,由MPC计算方中的不同子计算方对各子数据进行并行处理。比如,每一个MPC计算方均包括至少n个MPC子计算方,n为正整数,且n≥2;
每一轮循环中,在每一个MPC计算方对自身所持有的的第一数据分量分别进行乱序操作之前,可以进一步将第一数据分量拆分成n个第一子数据分量,然后利用n个MPC子计算方对第一子数据分量同时进行乱序操作,得到对应当前MPC计算方组内乱序后的第一数据分量。
也就是说,不同的MPC计算方在得到数据分量之后,先利用各自的数据分量拆分成子数据分量,利用各自的MPC子计算方对子数据分量进行组内乱序。然后再进行上述各个实施例中的组间乱序,即MPC计算方之间的乱序。如此,先通过组内乱序再组间乱序,实现了多个子计算方的并行处理,能够极大地提升MPC计算方的执行效率。当然,在一种可能的实现方式中,在完成组内乱序和组间乱序之后,还可以进一步进行一次组内乱序。
当然,在一些可能的实现方式中,在待处理数据进行乱序操作时,可以只由各个计算方进行组内乱序,而不用进行组间乱序和组间乱序后的再次组内乱序,如此对于数据量较大的情况来说能够极大地提升处理效率。
如图6所示,本说明书提供了一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,N为不小于3的整数,装置包括:
数据获取模块601,配置为每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
数据乱序模块602,配置为选取M个MPC计算方对数据获取模块601获取到的各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
循环执行模块603,配置为循环执行上述数据乱序模块602选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同。
在一种可能的实现方式中,数据乱序模块602在每一个MPC计算方对自身所持有的第一数据分量进行乱序操作得到第二数据分量时,配置成执行如下操作:
根据第一数据分量,生成一个明文数组;其中,明文数组中的每一个元素与第一数据分量中的一个子数据唯一对应;
对明文数组中的各个元素进行乱序,生成一个明文随机序列;
根据明文随机序列对第一数据分量进行乱序操作,得到第二数据分量。
在一种可能的实现方式中,数据乱序模块602在对明文数组中的各个元素进行乱序生成一个明文随机序列时,配置成执行如下操作:
根据随机数种子生成一个随机数组;其中,随机数种子由M个MPC参与方协商得到;
根据随机数组中的值对明文数组中各个元素的位置进行调整,得到明文随机序列。
在一种可能的实现方式中,随机数组的值包括第一类元素值和第二类元素值;
数据乱序模块602在根据随机数组中的值对明文数组中各个元素的位置进行调整得到明文随机序列时,配置成执行如下操作:
依次对随机数组中各个元素的值进行判断;
若随机数组中第j个元素的值为第一类元素值,则将明文数组中第1个元素与第i+1个元素进行互换;其中,随机数组中的第j个元素与明文数组中的第i个元素相对应;
若随机数组中第j个元素的值为第二类元素值,则不对明文数组中的元素进行操作;
直至根据随机数组中的所有元素值对明文数组中的元素进行调整,得到明文随机序列。
在一种可能的实现方式中,数据乱序模块602在根据明文随机序列对第一数据分量进行乱序操作得到第二数据分量时,配置成执行如下操作:
针对第一数据分量中的每一个子数据,根据该子数据所对应的元素在明文随机序列中的位置,将该子数据在第一数据分量中的位置进行调整得到第二数据分量。
在一种可能的实现方式中,循环执行模块603在每次循环执行选取M个MPC计算方对第一数据分量进行乱序的操作时,将上一轮循环得到的第二数据分量重新分配给N个MPC计算方。
在一种可能的实现方式中,每一个MPC计算方获取到有至少两个不相同的第一数据分量,且选取到的M个MPC计算方所持有的第一数据分量能够包含待处理的数据拆分成的所有N个数据分量;
循环执行模块603在将第二数据分量分配给N个MPC计算方时,配置成执行如下操作:
生成N个掩码因子;其中,该N个掩码因子的和为0;
针对由N个数据分量乱序后得到的N个第二数据分量中的每一个,计算该第二数据分量中的每一个子数据与一个掩码因子的和,得到掩码后的的第二数据分量;其中,一个第二数据分量唯一对应一个掩码因子;
将得到的各个掩码后的第二数据分量分配给N个MPC计算方,以使任意M个计算方所持有的第二数据分量能够包含待处理的数据拆分成的所有N个数据分量。
在一种可能的实现方式中,每一个MPC计算方均包括至少n个MPC子计算方,n为正整数,且n≥2;
进一步包括:并行乱序模块;每一轮循环中,该并行乱序模块在每一个MPC计算方对自身所持有的第一数据分量分别进行乱序操作之前,配置成执行如下操作:
将第一数据分量拆分成n个第一子数据分量;
利用n个MPC子计算方对第一子数据分量同时进行乱序操作,得到对应当前MPC计算方组内乱序后的第一数据分量。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本说明书还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对数据的处理装置的具体限定。在说明书的另一些实施例中,数据的处理装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书描述的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (8)
1.数据的处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为不小于3的整数,所述方法包括:
每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
选取M个MPC计算方对各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
循环执行上述选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同;
其中,每一个MPC计算方对自身所持有的第一数据分量进行乱序操作得到第二数据分量,包括:
根据所述第一数据分量,生成一个明文数组;其中,所述明文数组中的每一个元素与所述第一数据分量中的一个子数据唯一对应;
对所述明文数组中的各个元素进行乱序,生成一个明文随机序列;
根据所述明文随机序列对所述第一数据分量进行乱序操作,得到所述第二数据分量;
其中,所述对所述明文数组中的各个元素进行乱序生成一个明文随机序列,包括:
根据随机数种子生成一个随机数组;其中,所述随机数种子由M个MPC参与方协商得到;通过对协商得到的随机数种子进行包括加法、取模、右移中的操作生成一个随机数;如果第一数据分量中包含s个数据,则通过执行生成随机数的操作s次,得到s个随机数,并由该s个随机数构成所述随机数组;
根据所述随机数组中的值对所述明文数组中各个元素的位置进行调整,得到所述明文随机序列。
2.根据权利要求1所述的方法,其中,所述随机数组的值包括第一类元素值和第二类元素值;
所述根据所述随机数组中的值对所述明文数组中各个元素的位置进行调整得到所述明文随机序列,包括:
依次对所述随机数组中各个元素的值进行判断;
若所述随机数组中第j个元素的值为第一类元素值,则将明文数组中第1个元素与第i+1个元素进行互换;其中,所述随机数组中的第j个元素与所述明文数组中的第i个元素相对应;
若所述随机数组中第j个元素的值为第二类元素值,则不对所述明文数组中的元素进行操作;
直至根据所述随机数组中的所有元素值对所述明文数组中的元素进行调整,得到所述明文随机序列。
3.根据权利要求1所述的方法,其中,所述根据所述明文随机序列对所述第一数据分量进行乱序操作得到所述第二数据分量,包括:
针对第一数据分量中的每一个子数据,根据该子数据所对应的元素在所述明文随机序列中的位置,将该子数据在第一数据分量中的位置进行调整得到所述第二数据分量。
4.根据权利要求1所述的方法,其中,在每次循环执行选取M个MPC计算方对第一数据分量进行乱序的操作时,将上一轮循环得到的第二数据分量重新分配给所述N个MPC计算方。
5.根据权利要求4所述的方法,其中,每一个MPC计算方获取到有至少两个不相同的第一数据分量,且选取到的M个MPC计算方所持有的第一数据分量能够包含所述待处理的数据拆分成的所有N个数据分量;
将所述第二数据分量分配给N个MPC计算方,包括:
生成N个掩码因子;其中,该N个掩码因子的和为0;
针对由所述N个数据分量乱序后得到的N个第二数据分量中的每一个,计算该第二数据分量中的每一个子数据与一个掩码因子的和,得到掩码后的的第二数据分量;其中,一个第二数据分量唯一对应一个掩码因子;
将得到的各个掩码后的第二数据分量分配给N个MPC计算方,以使任意M个计算方所持有的第二数据分量能够包含所述待处理的数据拆分成的所有N个数据分量。
6.根据权利要求1至5中任一所述的方法,其中,每一个所述MPC计算方均包括至少n个MPC子计算方,n为正整数,且n≥2;
每一轮循环中,在每一个MPC计算方对自身所持有的第一数据分量分别进行乱序操作之前,进一步包括:
将所述第一数据分量拆分成n个第一子数据分量;
利用所述n个MPC子计算方对所述第一子数据分量同时进行乱序操作,得到对应当前MPC计算方组内乱序后的第一数据分量。
7.数据的处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为不小于3的整数,所述装置包括:
数据获取模块,配置为每一个MPC计算方获取数据提供方发送的第一数据分量;其中,每一个第一数据分量均为数据提供方将待处理的数据拆分成N个数据分量后的其中一个数据分量;
数据乱序模块,配置为选取M个MPC计算方对所述数据获取模块获取到的各自所持有的第一数据分量分别进行乱序操作,得到第二数据分量用以进行MPC操作;其中,1<M<N,M为正整数;
循环执行模块,配置为循环执行上述数据乱序模块选取M个MPC计算方对第一数据分量进行乱序的操作,直至每个MPC计算方都至少有一次没有被选取进行乱序操作;其中,各次选取的M个MPC计算方不完全相同;
所述数据乱序模块在每一个MPC计算方对自身所持有的第一数据分量进行乱序操作得到第二数据分量时,配置成执行如下操作:
根据第一数据分量,生成一个明文数组;其中,明文数组中的每一个元素与第一数据分量中的一个子数据唯一对应;
对明文数组中的各个元素进行乱序,生成一个明文随机序列;
根据明文随机序列对第一数据分量进行乱序操作,得到第二数据分量;
所述数据乱序模块在对明文数组中的各个元素进行乱序生成一个明文随机序列时,配置成执行如下操作:
根据随机数种子生成一个随机数组;其中,随机数种子由M个MPC参与方协商得到;通过对协商得到的随机数种子进行包括加法、取模、右移中的操作生成一个随机数;如果第一数据分量中包含s个数据,则通过执行生成随机数的操作s次,得到s个随机数,并由该s个随机数构成所述随机数组;
根据随机数组中的值对明文数组中各个元素的位置进行调整,得到明文随机序列。
8.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210275326.XA CN114726514B (zh) | 2022-03-21 | 2022-03-21 | 数据的处理方法和装置 |
PCT/CN2023/071485 WO2023179185A1 (zh) | 2022-03-21 | 2023-01-10 | 数据的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210275326.XA CN114726514B (zh) | 2022-03-21 | 2022-03-21 | 数据的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726514A CN114726514A (zh) | 2022-07-08 |
CN114726514B true CN114726514B (zh) | 2024-03-22 |
Family
ID=82236973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210275326.XA Active CN114726514B (zh) | 2022-03-21 | 2022-03-21 | 数据的处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114726514B (zh) |
WO (1) | WO2023179185A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726514B (zh) * | 2022-03-21 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 数据的处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376054A (zh) * | 2015-11-25 | 2016-03-02 | 电子科技大学 | 一种基于随机矩阵的密文提取的方法 |
CN114003962A (zh) * | 2021-12-28 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方数据查询方法及装置 |
CN114090638A (zh) * | 2022-01-20 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528882B (zh) * | 2017-07-14 | 2020-12-25 | 创新先进技术有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
US10211980B1 (en) * | 2018-03-28 | 2019-02-19 | Bar Ilan University | Method for lattice-based decryption of data |
CN111931250B (zh) * | 2019-07-11 | 2024-03-22 | 华控清交信息科技(北京)有限公司 | 多方安全计算一体机 |
CN111967038B (zh) * | 2019-09-30 | 2023-12-15 | 华控清交信息科技(北京)有限公司 | 数据处理系统、方法、设备、编辑器及存储介质 |
CN113111569A (zh) * | 2021-03-08 | 2021-07-13 | 支付宝(杭州)信息技术有限公司 | 乱序处理方法、模型训练方法、装置和计算设备 |
CN114726514B (zh) * | 2022-03-21 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 数据的处理方法和装置 |
-
2022
- 2022-03-21 CN CN202210275326.XA patent/CN114726514B/zh active Active
-
2023
- 2023-01-10 WO PCT/CN2023/071485 patent/WO2023179185A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376054A (zh) * | 2015-11-25 | 2016-03-02 | 电子科技大学 | 一种基于随机矩阵的密文提取的方法 |
CN114003962A (zh) * | 2021-12-28 | 2022-02-01 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方数据查询方法及装置 |
CN114090638A (zh) * | 2022-01-20 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114726514A (zh) | 2022-07-08 |
WO2023179185A1 (zh) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dalskov et al. | Fantastic four:{Honest-Majority}{Four-Party} secure computation with malicious security | |
Fan et al. | Roll-DPoS: a randomized delegated proof of stake scheme for scalable blockchain-based internet of things systems | |
CN111512589B (zh) | 用于利用spdz的快速安全多方内积的方法 | |
Ziegeldorf et al. | Coinparty: Secure multi-party mixing of bitcoins | |
US10467389B2 (en) | Secret shared random access machine | |
EP2701337B1 (en) | Secret sharing method and system | |
CN110557245A (zh) | 用于spdz的容错和安全多方计算的方法和系统 | |
CN110784320A (zh) | 分布式密钥实现方法、系统及用户身份管理方法、系统 | |
EP3682592B1 (en) | Methods and devices for increasing entropy of a blockchain using blinded outcome diversification | |
CN114282256B (zh) | 一种基于秘密分享的排序打乱方法和恢复方法 | |
CN114726514B (zh) | 数据的处理方法和装置 | |
Wang et al. | Verifiable threshold scheme in multi-secret sharing distributions upon extensions of ECC | |
Mashhadi et al. | Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program | |
Verma et al. | A hybrid-based verifiable secret sharing scheme using Chinese remainder theorem | |
CN106254073A (zh) | 一种针对密文数的运算方法及系统 | |
Islam et al. | An efficient and forward-secure lattice-based searchable encryption scheme for the Big-data era | |
Talviste | Applying secure multi-party computation in practice | |
Jarrous et al. | Canon-mpc, a system for casual non-interactive secure multi-party computation using native client | |
Turesson et al. | Privacy preserving data mining as proof of useful work: Exploring an AI/Blockchain design | |
Turesson et al. | Privacy‐Preserving Blockchain Mining: Sybil-Resistance by Proof‐of‐Useful‐Work | |
Xiao et al. | Fault-tolerant quantum private comparison protocol | |
Kopal | Secure volunteer computing for distributed cryptanalysis | |
Falk et al. | GigaDORAM: Breaking the Billion Address Barrier. | |
Biswas et al. | Implementation of Cyber Security for Enabling Data Protection Analysis and Data Protection using Robot Key Homomorphic Encryption | |
Ogiela et al. | Knowledge-Based Approach for Unlocking Divided Secrets in Threshold Schemes with Privileges |
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 |