WO2021237437A1 - 基于安全多方计算的数据处理方法、装置及电子设备 - Google Patents

基于安全多方计算的数据处理方法、装置及电子设备 Download PDF

Info

Publication number
WO2021237437A1
WO2021237437A1 PCT/CN2020/092240 CN2020092240W WO2021237437A1 WO 2021237437 A1 WO2021237437 A1 WO 2021237437A1 CN 2020092240 W CN2020092240 W CN 2020092240W WO 2021237437 A1 WO2021237437 A1 WO 2021237437A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
data matrix
privacy data
multiplication operation
privacy
Prior art date
Application number
PCT/CN2020/092240
Other languages
English (en)
French (fr)
Inventor
夏伏彪
谢翔
李升林
孙立林
Original Assignee
云图技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 云图技术有限公司 filed Critical 云图技术有限公司
Priority to PCT/CN2020/092240 priority Critical patent/WO2021237437A1/zh
Publication of WO2021237437A1 publication Critical patent/WO2021237437A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Definitions

  • This specification relates to the technical field of big data security and privacy protection, in particular to a data processing method, device and electronic equipment based on secure multi-party computing.
  • Secure Multi-Party Computation is a cryptographic technology that mainly solves the problem of how multiple participants can successfully complete calculations without disclosing their inputs.
  • Multiple parties involved in the calculation can perform a secure calculation based on the private data held by each party by executing a secure multi-party calculation algorithm, and obtain a calculation result, while not divulging the private data held by the party to other parties involved in the calculation. .
  • MPC-based data processing the application prospects of MPC-based data processing are more and more extensive, and the demand for collaborative services (such as joint data analysis, machine learning training, etc.) among enterprises, governments, research institutions, and individuals is becoming stronger.
  • a typical scenario is that with the rapid development of artificial intelligence (Artificial Intelligence, AI for short), the demand for data privacy protection is becoming stronger.
  • AI training (such as machine learning training) is not available in many application scenarios due to privacy compliance reasons, resulting in failure to complete AI training or poor AI training.
  • MPC-based data processing comes at the expense of performance, that is, the current MPC-based data processing efficiency is relatively low.
  • the purpose of the implementation of this specification is to provide a data processing method, device and electronic equipment based on secure multi-party computing, so as to improve the efficiency of data processing based on secure multi-party computing.
  • the implementation of this specification provides a data processing method based on secure multi-party computing, including:
  • the second privacy data matrix or its transposition is multiplexed when the target matrix multiplication operation is performed.
  • the implementation of this specification also provides a data processing device based on secure multi-party computing, including:
  • Confirmation module for confirming whether the first privacy data matrix involved in the target matrix multiplication operation in the matrix multiplication operation sequence is the same as the second privacy data matrix involved in the previous matrix multiplication operation in the matrix multiplication operation sequence or its transpose same;
  • the multiplexing module is used for multiplexing the second privacy data matrix or the second privacy data matrix or the second privacy data matrix when the target matrix multiplication operation is performed when the first privacy data matrix is the same as the second privacy data matrix or its transpose. Transpose.
  • the implementation of this specification also provides an electronic device, including a memory, a processor, and a computer program stored on the memory, and the computer program executes the following steps when the computer program is run by the processor:
  • the second privacy data matrix or its transposition is multiplexed when the target matrix multiplication operation is performed.
  • the second privacy data matrix or its transposition involved in the preceding matrix multiplication operation can be reused when the target matrix multiplication operation is performed, without further calculation or acquisition. In this way, while realizing privacy protection calculations, the amount of communication between participants is greatly saved, and the efficiency of data processing based on MPC is improved.
  • Figure 1 is a schematic diagram of the architecture of an MPC-based data processing system in some embodiments of this specification
  • Figure 2 is a flowchart of a data processing method (participant side) based on MPC in some embodiments of this specification;
  • FIG. 3 is a schematic diagram of the interaction of the MPC-based data processing system in some embodiments of this specification.
  • Fig. 4 is a schematic diagram of a matrix multiplication sequence in an exemplary embodiment of this specification.
  • Fig. 5 is a structural block diagram of an MPC-based data processing device in some embodiments of this specification.
  • Fig. 6 is a structural block diagram of an electronic device in some embodiments of this specification.
  • the MPC-based data processing system in some embodiments of this specification may include one or more data holders (nodes), one or more participants (nodes), and an auxiliary party (node).
  • the parties can communicate with each other, among which, the participants communicate based on the MPC protocol.
  • the MPC protocol here refers to the MPC protocol in a broad sense, that is, in addition to the MPC itself, it can also be oblivious transfer, secret sharing, etc. This specification does not limit this.
  • the data holder is the owner of private data (or called secret data, private data), and the private data owned by each data holder is different from the private data owned by other data holders. Therefore, when multiple data holders collaborate, it can help to dig out greater value from more data.
  • Participants refer to nodes participating in MPC calculations.
  • the data holder when the data holder participates in the MPC calculation, the data holder is also a participant, that is, the data holder and the participant can be physically one entity.
  • the data holder does not participate in the MPC calculation (that is, the MPC-based data processing calculation)
  • the node that it entrusts to participate in the MPC calculation is the participant.
  • Auxiliary parties are third parties other than data holders and participants.
  • the auxiliary party can assist the participant in the MPC calculation, but does not participate in the MPC calculation.
  • the auxiliary party can provide the participants with triplet fragments to realize the MPC multiplication calculation.
  • the above-mentioned nodes of all parties may be electronic devices with certain entities, or may also be software running in the above-mentioned electronic devices.
  • the electronic device may be a desktop computer, a tablet computer, a notebook computer, etc., for example.
  • MPC calculation involves secret sharing technology and Beaver triple technology.
  • Secret Sharing technology and the Beaver triple technology will be explained first.
  • the secret sharing technology is to split the secret (that is, private data) into multiple shares in an appropriate manner. Each of the split shares can be called a share and managed by different parties. Therefore, any single participant cannot recover the secret alone, and only a number of participants can work together to recover the secret, thereby improving the security of the secret.
  • the secret sharing algorithm can usually be divided into two steps:
  • Sharing algorithm (Share): The data holder splits the secret x into n pieces and distributes them to n participants.
  • Reconstruct Use any t (2 ⁇ t ⁇ n) fragments to recover the secret x.
  • the secret sharing technology is usually also denoted as (t,n)-secret sharing, where t represents the minimum number of participants needed to recover the secret, and n represents the number of shares that the secret is split.
  • Common secret sharing techniques include addition secret sharing, Shamir secret sharing, etc.
  • the simplest example is the addition of secret sharing.
  • the owner of the secret algorithm where x is in the Share generates a random number r i, as the value of fragment party P i (1 ⁇ i ⁇ n-1), and with As the fragmentation value of the participant P n. Therefore, in the Reconstruct algorithm, you only need to add all the fragment values to recover x.
  • the Beaver triple technology or similar technology
  • the Beaver triple technology is based on Beaver's multiplicative triplet protocol, which constructs multiplicative triples offline (referred to as triples), and then splits the offline constructed triples into m+1 triplet fragments based on secret sharing technology , And distribute the m three-tuple fragments to m participants to assist the participants in the realization of multiplication secret sharing.
  • triples multiplicative triples offline
  • m participants to assist the participants in the realization of multiplication secret sharing.
  • data holders Alice and Bob each have private matrices X and Y, and the goal is to calculate X ⁇ Y.
  • the party involved in the calculation is ⁇ P i ⁇ (1 ⁇ i ⁇ n).
  • Alice and Bob as data holders, can also be calculation participants, which degenerates into a matrix multiplication operation based on safe calculations between the two parties.
  • Pre-processing stage ie offline processing stage
  • Different technologies can be selected for the method of generating triples here, and since they are not within the scope of innovation of this application, they will not be elaborated in detail.
  • Alice and Bob also use the (n, n)-addition secret sharing technology to split their secret matrices and distribute the fragments to all participants. After the distribution is completed, P i X i have debris and Y i.
  • a data processing task (such as a neural network training task) may include multiple matrix multiplication operations, and the multiplication secret sharing based on the Beaver triple technology requires more interaction between participants. In this way, the communication volume and processing efficiency between the participants will be greatly increased.
  • the MPC-based data processing method may include the following steps:
  • the second privacy data matrix or its transpose can be reused when the target matrix multiplication operation is performed, without further calculation or acquisition. In this way, while realizing privacy protection calculations, the amount of communication between participants is greatly saved, and the efficiency of data processing based on MPC is improved.
  • the first privacy data matrix and the second privacy data matrix may be in the form of a matrix of privacy data fragments provided by the data holder.
  • whether the first privacy data matrix involved in the target matrix multiplication operation in the sequence of confirming matrix multiplication operations is the same as the second privacy data matrix involved in the previous matrix multiplication operation in the sequence of matrix multiplication operations
  • the data matrix or its transposition is the same, which may include: judging whether an operand duplication notification provided by the data holder in the data preprocessing stage is received; the operand duplication notification includes the first privacy data matrix and the first privacy data matrix.
  • the data holder can notify the participants in any way. In addition, when the data holder is also a participant, this notification can even be omitted.
  • the pre-order matrix multiplication operation refers to the matrix multiplication operation that is located before the target matrix multiplication operation in the sequence of matrix multiplication operations.
  • each data holder knows the processing logic of the data processing task.
  • the processing logic includes a matrix multiplication operation sequence composed of multiple matrix multiplication operations
  • the auxiliary party when the first privacy data matrix involved in the target matrix multiplication operation is the same as the second privacy data matrix involved in the previous matrix multiplication operation or its transpose, then In the preprocessing stage, the triplet fragments provided by the auxiliary party need to be repeatedly notified based on the number of operations provided by the data holder.
  • the operand duplication notification may include the same information content of the first privacy data matrix and the second privacy data matrix or a transposition thereof.
  • the auxiliary party can Generate triplet fragments directly based on Beaver triple technology.
  • the execution of the target matrix multiplication operation can be as shown in steps 4 to 3 in Fig. 3 6 shown.
  • multiplexing the second privacy data matrix or its transposition may include: when the first privacy data matrix is the same as the second privacy data matrix, multiplexing the second privacy data matrix Privacy data matrix; when the transposition of the first privacy data matrix and the second privacy data matrix are the same, the transposition matrix of the second privacy data matrix can be obtained first, and then the transposition matrix can be multiplexed.
  • the multiplexing operation is also performed as needed.
  • the third data matrix may include a triple matrix and an intermediate value matrix. That is to say, when the first privacy data matrix is the same as the second privacy data matrix or its transposition, when the target matrix multiplication operation is performed, not only the privacy data matrix can be multiplexed, but also triples can be multiplexed. Matrix and intermediate value matrix.
  • the multiplexing the third data matrix involved in the previous matrix multiplication operation or its transposition may include: when the first privacy data matrix is the same as the second privacy data matrix, multiplexing all the data The third data matrix; when the transposition of the first privacy data matrix and the second privacy data matrix are the same, the transposition matrix of the third data matrix is acquired first, and then the transposition matrix is multiplexed.
  • Case 1 the data processing method in the implementation of this specification will be illustrated by way of example.
  • Case 2 can refer to Case 1, which will not be repeated hereafter. Similar to the process shown in Figure 3, this example can be divided into a preprocessing stage and an online processing stage.
  • Alice inform all participants P i, a matrix of this fragment without sending multiplexing the fragments of the previous operation, and even if Recorded as notification 3; on the other hand, Bob still uses the (n, n)-addition secret sharing technology to split his secret matrix M t2 and distribute the fragments to all participants.
  • Bob inform all participants P i, a matrix of this fragment without sending multiplexing the fragments of the previous operation, and even if Recorded as notice 4; on the other hand, Alice still uses the (n, n)-addition secret sharing technology to split her secret matrix M t1 and distribute the fragments to all participants.
  • P i After completion of distribution, P i has a fragment [M t1] i and [M t2] i.
  • the preprocessing stage not only can the communication volume of one group of fragments (the first or second matrix in the triple) be omitted, but also the two secret matrices of the current matrix multiplication operation can be distributed When fragmenting, the communication volume of one of the matrices is omitted.
  • the online processing stage According to step 4, the data volume of one group of intermediate value fragments can be omitted. Therefore, the present exemplary embodiment can improve the processing efficiency of data processing based on secure multi-party calculation.
  • the privacy data processing for the data holder can be applied to any MPC-based data processing scenario.
  • it may include, but is not limited to, machine learning training, joint data analysis, or data security query, etc.
  • specific data processing scenarios may include, but are not limited to, computer vision, natural language processing, robot decision-making (such as autonomous driving), network security detection (such as spam detection, malicious programs ⁇ flow detection), medical fitting prediction, Scenarios such as financial high-frequency trading, Internet data mining, and association recommendation.
  • this specification also provides a data processing device based on secure multi-party computing, which may include:
  • the confirmation module 51 can be used to confirm whether the first privacy data matrix involved in the target matrix multiplication operation in the matrix multiplication operation sequence is the same as the second privacy data matrix involved in the previous matrix multiplication operation in the matrix multiplication operation sequence or its The same transpose;
  • the multiplexing module 52 may be used to multiplex the second privacy data matrix when the target matrix multiplication operation is performed when the first privacy data matrix is the same as the second privacy data matrix or its transpose Or its transposition.
  • whether the first private data matrix involved in the target matrix multiplication operation in the sequence of confirming matrix multiplication operations is the same as the second private data involved in the previous matrix multiplication operation in the sequence of matrix multiplication operations
  • the matrix or its transpose is the same, including:
  • the operand duplication notification contains the same information of the first privacy data matrix and the second privacy data matrix or its transposition content
  • the first privacy data matrix is the same as the second privacy data matrix or its transpose.
  • the triplet fragments used when performing the target matrix multiplication operation are determined by the auxiliary party Generated according to the operand repetition notification provided by the data holder; the operand repetition notification includes the same information content of the first privacy data matrix and the second privacy data matrix or its transposition.
  • the multiplexing of the second privacy data matrix or its transposition includes:
  • the transposition matrix of the second privacy data matrix is acquired first, and then the transposition matrix is multiplexed.
  • the multiplexing module can also be used to:
  • the third data matrix or the third data matrix involved in the previous matrix multiplication operation is multiplexed. Its transpose; the third data matrix includes a triplet matrix and an intermediate value matrix.
  • the multiplexing of the third data matrix or its transpose involved in the preceding matrix multiplication operation may include:
  • the transposition matrix of the third data matrix is acquired first, and then the transposition matrix is multiplexed.
  • this specification also provides an electronic device including a memory, a processor, and a computer program stored on the memory, the computer program being When the processor is running, the following steps are executed:
  • the second privacy data matrix or its transposition is multiplexed when the target matrix multiplication operation is performed.
  • These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of MPC operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, which can be executed on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
  • the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
  • processors CPU
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM).
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash memory
  • Computer-readable media includes permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer-readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • the implementation of this specification can be provided as a method, a system or a computer program product. Therefore, the implementation of this specification may adopt the form of a complete hardware implementation, a complete software implementation, or an implementation combining software and hardware. Moreover, the implementation of this specification may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • the embodiments of this specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于安全多方计算的数据处理方法、装置及电子设备。该方法包括:确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同(S201);当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置(S202)。该方法可以提高基于安全多方计算的数据处理效率。

Description

基于安全多方计算的数据处理方法、装置及电子设备 技术领域
本说明书涉及大数据安全与隐私保护技术领域,尤其是涉及一种基于安全多方计算的数据处理方法、装置及电子设备。
背景技术
安全多方计算(Secure Multi-Party Computation,简称MPC)是一种密码学技术,主要解决多个参与方在互不透露各自输入的前提下,如何成功完成计算的问题。参与计算的多方可以通过执行一个安全多方计算算法,基于各自持有的私密数据来共同进行安全计算,得到出一个计算结果,同时不会向参与计算的其它各方泄露本方持有的私密数据。
目前,基于MPC的数据处理的应用前景越来越广泛,企业、政府、研究机构和个人间的协同业务(例如联合数据分析、机器学习训练等)需求日趋强烈。例如,一个典型的场景是,随着人工智能(Artificial Intelligence,简称AI)迅猛发展,数据隐私保护的需求愈加强烈。AI训练(例如机器学习训练)所需的数据,在很多应用场景里由于隐私合规性的原因无法获得,从而导致无法完成AI训练或者AI训练的效果不佳。随着技术的进步,当前已出现基于MPC解决AI训练中数据隐私保护问题的技术方案。然而,基于MPC的数据处理在实现数据隐私保护的同时,是以牺牲性能为代价的,即当前基于MPC的数据处理的效率较低。
发明内容
本说明书实施方案的目的在于提供一种基于安全多方计算的数据处理方法、装置及电子设备,以提高基于安全多方计算的数据处理效率。
为达到上述目的,一方面,本说明书实施方案提供了一种基于安全多方计算的数据处理方法,包括:
确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
另一方面,本说明书实施方案还提供了一种基于安全多方计算的数据处理装置,包括:
确认模块,用于确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
复用模块,用于当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
另一方面,本说明书实施方案还提供了一种电子设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:
确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
由以上本说明书实施方案提供的技术方案可见,在本说明书的实施方案中,如果数据处理任务包括多个矩阵乘法操作,且目标矩阵乘法操作所涉及的第一隐私数据矩阵,与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,则可以在执行目标矩阵乘法操作时复用第二隐私数据矩阵或其转置,而无需再行计算或获取。如此,则在实现隐私保护计算的同时,大大节省了参与方之间的通讯量,提高了基于MPC的数据处理效率。
附图说明
为了更清楚地说明本说明书实施方案或现有技术中的技术方案,下面将对实施方案或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方案,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书一些实施方案中基于MPC的数据处理系统的架构示意图;
图2为本说明书一些实施方案中基于MPC的数据处理方法(参与方侧)的流程图;
图3为本说明书一些实施方案中基于MPC的数据处理系统的交互示意图;
图4为本说明书一示例性实施方案中阵乘法序列的示意图;
图5为本说明书一些实施方案中基于MPC的数据处理装置的结构框图;
图6为本说明书一些实施方案中电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施方案中的附图,对本说明书实施方案中的技术方案进行清楚、完整地描述,显然,所描述的实施方案仅仅是本说明书一部分实施方案,而不是全部的实施方案。基于本说明书中的实施方案,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方案,都应当属于本说明书保护的范围。
参考图1所示,本说明书一些实施方案中基于MPC的数据处理系统可以包括一个或多个数据持有方(节点)、一个或多个参与方(节点)以及一个辅助方(节点)。各方之间可以进行通信,其中,各参与方之间基于MPC协议进行通信。应当指出的是,这里的MPC协议是指广义的MPC协议,即除了MPC本身外,还可以是不经意传输(Oblivious transfer),秘密共享(secret sharing)等,本说明书对此不作限定。
数据持有方是隐私数据(或称为秘密数据、私密数据)的拥有方,每个数据持有方所拥有的隐私数据,与其他数据持有方所拥有的隐私数据都是不同的。因此,当多个数据持有方协作时,可有利于从更多数据中挖掘出更大的价值。
参与方是指参与MPC计算的节点。在一些情况下,当数据持有方参与MPC计算时,数据持有方亦是参与方,即数据持有方和参与方在物理上可以为一个实体。在另一些情况下,当数据持有方不参与MPC计算(即基于MPC的数据处理计算)时,其所委托的参与MPC计算的节点即为参与方。
辅助方是数据持有方和参与方之外的第三方。辅助方可以对参与方的MPC计算进行协助,但不参与MPC计算。例如,当数据处理任务包含矩阵乘法操作时,辅助方可以向参与方提供三元组碎片,以实现MPC乘法计算。
在本说明书一些实施方案中,上述各方节点可以为具有一定实体的电子设备,也还可以为运行于上述电子设备中的软体。其中,所述的电子设备例如可以是台式电脑、平板电脑、笔记本电脑等。
本说明书的实施方案中,MPC计算涉及到秘密分享(Secret sharing)技术和Beaver triple技术。为便于理解,先对秘密分享(Secret sharing)技术和Beaver triple技术进行说明。
一、秘密分享技术
秘密分享技术是将秘密(即隐私数据)以适当的方式拆分为多份,拆分后的每一个份可以称为一个碎片(share),并由不同的参与方管理。因此,任何单个参与方无法独自恢复秘密,只有若干个参与方一同协作才能恢复秘密,从而提高了秘密的安全性。秘密分享算法通常可以分为两步:
分享算法(Share):数据持有方将秘密x进行拆分成n个碎片后,分发给n个参与方。
重建算法(Reconstruct):利用任意t(2≤t≤n)个碎片就可以恢复秘密x。
因此,秘密分享技术通常也记为(t,n)-秘密分享,t表示想要恢复秘密所需的最小参与方数,n表示秘密被拆分的份数。常见的秘密分享技术包括加法秘密分享,Shamir秘密分享等。最简单的一个例子是加法秘密分享。在一个(n,n)-加法秘密分享中,秘密x的拥有者在Share算法里,会生成一个随机数r i,作为参与方P i(1≤i≤n-1)的碎片值,用
Figure PCTCN2020092240-appb-000001
作为参与方P n的碎片值。因此在Reconstruct算法里,只需要把所有碎片值相加,即可恢复出x。然而,对于乘法秘密分享,由于乘法的算术性质,在进行乘法秘密分享时需要参与方之间进行交互,以免数泄密;由此需要引入Beaver triple技术(或类似技术)。
二、Beaver triple技术
Beaver triple技术是基于Beaver的乘法三元组协议,通过离线构造乘法三元组(简称三元组),然后基于秘密分享技术将离线构造的三元组拆分为m+1片三元组碎片,并将其中的m片三元组碎片对应分发给m个参与方,以协助参与方的乘法秘密分享实现。例如,数据持有方Alice和Bob各自拥有私密矩阵X和Y,目标是计算X·Y。假设计算的参与方是{P i}(1≤i≤n)。一个典型例子是,Alice和Bob作为数据持有方,同时也可以是计算参与方,这样就退化为一个基于两方安全计算的矩阵乘法操作。
预处理阶段(即离线处理阶段):
1.Alice和Bob通知一个辅助方P 0进行数据处理。
2.辅助方P 0预先生成一个三元组(A,B,C),其中A,B,C均为随机生成的矩阵,且满足C=AB。这里生成三元组的方法可以选用不同的技术,由于不在本申请创新范围内,因此不作具体阐述。P 0利用(n,n)-加法秘密分享技术,将(A,B,C)拆分,将碎片[A] i,[B] i,[C] i发给P i,i=1,...,n,符号[A] i表示矩阵A给P i的碎片,[B] i和[C] i可以参照解释。
3.Alice和Bob同样采用(n,n)-加法秘密分享技术,将各自的秘密矩阵拆分后,将碎片分发给所有参与方。分发完成后,P i拥有碎片X i和Y i
在线处理阶段:
1.对于P i(i=1,...,n),计算两个中间值E,F的碎片:[E] i=[X] i-[A] i,[F] i=[Y] i-[B] i,然后将这两个中间值碎片发送给其他所有参与方。
2.对于P i(i=1,...,n),集齐其他参与方发送的中间值碎片后,在本地恢复中间值:
Figure PCTCN2020092240-appb-000002
随后,P i(i=1,...,n)计算目标值的碎片:[XY] i=-EF+[X] iF+E[Y] i+[C] i,然后将这个目标值碎片[XY] i发送给其他所有参与方。
3.对于P i(i=1,...,n),接收到所有其他参与方发送过来的目标值碎片后,在本地恢复目标值:
Figure PCTCN2020092240-appb-000003
注意,这里只需要减去一个中间值乘积项EF。
不难发现:
Figure PCTCN2020092240-appb-000004
由此验证了其正确性。
在很多情况下,一个数据处理任务(例如神经网络训练任务)中可能包括多个矩阵乘法操作,而基于Beaver triple技术的乘法秘密分享时需要参与方之间进行更多的交互。如此,参与方之间的通讯量和处理效率则会大幅增加。
有鉴于此,本说明书提供了一种基于MPC的数据处理方法,该方法的执行主体可以为参与方。参考图2所示,在本说明书一些实施方案中,所述基于MPC的数据处理方法可以包括如下步骤:
S201、确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置(即第二隐私数据矩阵的转置)相同。
S202、当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置(即第二隐私数据矩阵的转置)。
由此可见,在本说明书的实施方案中,如果数据处理任务包括多个矩阵乘法操作, 且目标矩阵乘法操作所涉及的第一隐私数据矩阵,与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,则可以在执行目标矩阵乘法操作时复用第二隐私数据矩阵或其转置,而无需再行计算或获取。如此,则在实现隐私保护计算的同时,大大节省了参与方之间的通讯量,提高了基于MPC的数据处理效率。
本领域技术人员应当理解,对于数据处理任务仅包含一个矩阵乘法操作以及数据处理任务不包含矩阵乘法操作的情况,本说明书的实施方案仍然可以实施,只是在这些情况下难以凸显其技术优势。
在本说明书的一些实施方案中,所述第一隐私数据矩阵和所述第二隐私数据矩阵可以为数据持有方提供的隐私数据碎片的矩阵形式。
在本说明书的一些实施方案中,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,可以包括:判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;当接收到所述操作数重复通知时,则可以确认所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同。本领域技术人员可以理解,这里仅是举例说明,而不应理解为对本申请的限制,在本说明书其他的实施方案,数据持有方可以以任何方式通知参与方。此外,在数据持有方亦作为参与方时,这种通知甚至可以省略。
在本说明书的一些实施方案中,前序矩阵乘法操作是指:矩阵乘法操作序列中位于目标矩阵乘法操作之前的矩阵乘法操作。例如,在图4所示的数据处理的逻辑计算图中,包括D=AB和E=DC两个矩阵乘法操作,这两个矩阵乘法操作可以形成矩阵乘法操作序列{D=AB→E=DC},则如果E=DC是目标矩阵乘法操作,则D=AB即为该目标矩阵乘法操作的前序矩阵乘法操作。
结合图3所示,在预处理阶段,每个数据持有方知晓数据处理任务的处理逻辑,当处理逻辑中包括由多个矩阵乘法操作组成的矩阵乘法操作序列时,对于每个数据持有方,需要判断目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,并可以通过消息通知的方式,将判断结果发送给辅助方和每个参与方,以告知重复的矩阵情况。例如,假设目标矩阵乘法操作为C=AB,前序矩阵乘法操作为D=EF,则需要判断A是否与E、F、E的转置或F的转置相同,以及B是否与E、F、E的转置或F的转置相同。
请继续参考图3所示,对于辅助方而言,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,则在预处理阶段,辅助方提供的三元组碎片需要根据数据持有方提供的操作数重复通知生成。其中,所述操作数重复通知中可以包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。在另一些情况下,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置不同时,则在预处理阶段,辅助方可以直接基于Beaver triple技术生成三元组碎片。
请继续参考图3所示,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,则在预处理阶段,与第一隐私数据矩阵对应的数据持有方可以向所有参与方发送操作数重复通知;余下的数据持有方仍需要将自身隐私数据拆分成m份数据碎片对应发给m个参与方。在另一些情况下,当目标矩阵乘法操作所涉及的第一隐私数据矩阵,与前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置不同时,则每个数据持有方均需要将自身隐私数据拆分成m份数据碎片对应发给m个参与方。
在本说明书一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,所述执行所述目标矩阵乘法操作,可以如图3中的步骤4~6所示。
在本说明书一些实施方案中,复用所述第二隐私数据矩阵或其转置可以包括:当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,可以复用所述第二隐私数据矩阵;当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,可以先获取所述第二隐私数据矩阵的转置矩阵,再复用所述转置矩阵。
在本说明书另一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,根据需要,还以复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置。其中,所述第三数据矩阵可以包括三元组矩阵和中间值矩阵。也就是说,当第一隐私数据矩阵与第二隐私数据矩阵或其转置相同的情况下,在执行所述目标矩阵乘法操作时,不仅可以复用隐私数据矩阵,还可以复用三元组矩阵和中间值矩阵。其中,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,可以包括:当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。
为了防止数据泄露,在任何情况下,目标矩阵乘法操作所涉及的两个隐私数据矩阵 中,至多有一个与前续矩阵乘法操作所涉及的隐私数据矩阵或其转置相同。例如,假设计算任务包括矩阵乘法操作序列{M i},i=1,2,...,n;记矩阵乘法操作XY=M k∈{M i}是序列中的一个操作,对于任意的后续操作M t∈{M i},k<t≤n,记M t=M t1·M t2,如果满足条件:{M t1∈{X,Y,X T,Y T}或M t2∈{X,Y,X T,Y T}},其中X T表示X的转置矩阵,则可以采用本说明书实施方案的方法进行优化。
对于要计算的矩阵乘法操作M t=M t1·M t2,可以进行分类分析:
情况1.假设Alice拥有第一个操作数M t1,Bob拥有第二个操作数M t2;并且存在:M t1∈{X,X T}或者M t2∈{Y,Y T},则可以采用本说明书实施方案中的数据处理方法进行处理。其中,Alice和Bob为数据持有方。
情况2.假设Alice拥有第二个操作数M t2,Bob拥有第一个操作数M t1,并且存在:M t1∈{Y,Y T}或者M t2∈{X,X T},则也可以采用本说明书实施方案中的数据处理方法进行处理。其中,Alice和Bob为数据持有方。
接下来以情况1为例,对本说明书实施方案中的数据处理方法进行示例性举例阐述,情况2可以参考情况1,后续不再赘述。与图3所示的流程类似,该示例可以分为预处理阶段和在线处理阶段。
一、预处理阶段:
1.Alice和Bob通知一个辅助方P 0进行数据处理;并且如果M t1=X或者M t1=X T,则Alice告知辅助方P 0本次乘法的第一个操作数与前续操作M k中的第一个操作数或其转置相同,可以记为通知1;如果M t2=Y或者M t2=Y T,则Bob告知辅助方P 0本次乘法的第二个操作数与前续操作M k中的第二个操作数或其转置相同,可以记为通知2。
2.辅助方P 0预先生成一个三元组(U,V,W);其中,(U,V,W)均为随机生成的矩阵,且满足W=UV;并且根据步骤1中的通知情况,关于U或者V的生成满足以下任一条件:
Figure PCTCN2020092240-appb-000005
则辅助方P 0可以利用(n,n)-加法秘密分享技术,将三元组(U,V,W)拆分,将碎片[V] i,[W] i(通知1),或者[U] i,[W] i(通知2),给P i,i=1,...,n。
3.如果M t1=X或者M t1=X T,则Alice通知所有参与方P i,本次的矩阵碎片无需发送,复用前次操作中的碎片,即令
Figure PCTCN2020092240-appb-000006
记为通知3;另一方面,Bob仍然采用(n,n)-加法秘密分享技术,将其秘密矩阵M t2拆分后,将碎片分发给所有参与方。
如果M t2=Y或者M t2=Y T,则Bob通知所有参与方P i,本次的矩阵碎片无需发送,复用前次操作中的碎片,即令
Figure PCTCN2020092240-appb-000007
记为通知4;另一方面,Alice仍然采用(n,n)-加法秘密分享技术,将其秘密矩阵M t1拆分后,将碎片分发给所有参与方。
分发完成后,P i拥有碎片[M t1] i和[M t2] i
二、在线处理阶段:
1.对于P i(i=1,...,n),如果接收到了通知3,计算一个中间值H的碎片:[H] i=[M t2] i-[V] i,然后将这个中间值碎片发送给其他所有参与方。需要注意的是,这里不需要计算另一个中间值G的碎片,而是复用此前计算XY时用到的中间值碎片。
记[G] i=[M t1] i-[U] i,根据条件
Figure PCTCN2020092240-appb-000008
Figure PCTCN2020092240-appb-000009
可以看出,上述条件(1)的等式显然成立;对于条件(2)的等式,如果[G] i=[X T] i-[A T] i,由于[X T] i-[A T] i=([X] i-[A] i) T,则仍可以直接使用[E] i,只是要计算一次转置操作,因此[G] i=[E] i T
对于P i(i=1,...,n),如果接收到了通知4,计算一个中间值G的碎片:[G] i=[M t1] i-[U] i,然后将这个中间值碎片发送给其他所有参与方。对于另一个中间值H的碎片进行如下处理。
记[H] i=[M t2] i-[V] i,根据条件
Figure PCTCN2020092240-appb-000010
则有:
Figure PCTCN2020092240-appb-000011
可以看出,上述条件(3)的等式显然成立;对于条件(4)的等式,如果[H] i=[M t2] i-[V] i,由于[Y T] i-[B T] i=([Y] i-[B] i) T,则仍可以直接使用[F] i,只是要计算一次转置操作,因此[H] i=[F] i T
2.对于P i(i=1,...,n),集齐其他参与者发送的一组中间值碎片(如果是通知3,则会收到关于H的碎片组,如果是通知4,则会收到关于G的碎片组)后,在本地恢复本次操作所需的两个中间值:
Figure PCTCN2020092240-appb-000012
随后P i(i=1,...,n)计算目标值M t1M t2的碎片:[M t1M t2] i=-GH+[M t1] iH+G[M t2] i+[W] i,然后将这个目标值碎片发送 给其他参与方。
3.对于P i(i=1,...,n),接收到其他参与方发送过来的目标值碎片后,在本地恢复目标值:
Figure PCTCN2020092240-appb-000013
在本示例性实施方案中,当矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同时,在预处理阶段:不仅可以省去其中一组碎片(三元组中的第一个或者第二个矩阵)的通讯量,还可以在分发当前矩阵乘法操作操作的两个秘密矩阵碎片时,省去其中一个矩阵的通讯量。在在线处理阶段:根据步骤4可以省去其中一组中间值碎片的数据量。因而本示例性实施方案可以提高基于安全多方计算的数据处理的处理效率。
在本说明书上述基于安全多方计算的数据处理方法中,对于数据持有方的隐私数据处理可以应用于任何基于MPC的数据处理场景。例如可以包括但不限于机器学习训练、联合数据分析或数据安全查询等等。其中,具体的数据处理场景,例如可以包括但不限于计算机视觉、自然语言处理、机器人决策(例如自动驾驶)、网络安全检测(例如垃圾邮件检测、恶意程序\流量检测)、医疗拟合预测、金融高频交易、互联网数据挖掘、关联推荐等场景。
参考图5所示,与上述基于安全多方计算的数据处理方法对应,本说明书还提供了一种基于安全多方计算的数据处理装置,其可以包括:
确认模块51,可以用于确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
复用模块52,可以用于当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
在本说明书一些实施方案中,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,包括:
判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;
如果接收到所述操作数重复通知,则确认所述第一隐私数据矩阵与所述第二隐私数 据矩阵或其转置相同。
在本说明书一些实施方案中,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,执行所述目标矩阵乘法操作时所用的三元组碎片,是由辅助方根据数据持有方提供的操作数重复通知生成;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。
在本说明书一些实施方案中,所述复用所述第二隐私数据矩阵或其转置,包括:
当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第二隐私数据矩阵;
当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第二隐私数据矩阵的转置矩阵,再复用所述转置矩阵。
在本说明书一些实施方案中,所述复用模块还可以用于:
当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置;所述第三数据矩阵包括三元组矩阵和中间值矩阵。
在本说明书一些实施方案中,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,可以包括:
当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;
当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
参考图6所示,与上述基于安全多方计算的数据处理方法对应,本说明书还提供了一种电子设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:
确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
虽然上文描述的过程流程包括以特定顺序出现的多个MPC操作,但是,应当清楚了 解,这些过程可以包括更多或更少的MPC操作,这些MPC操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
本申请是参照根据本说明书实施方案的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列MPC操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制 的数据信号和载波。
本领域技术人员应明白,本说明书的实施方案可提供为方法、系统或计算机程序产品。因此,本说明书实施方案可采用完全硬件实施方案、完全软件实施方案或结合软件和硬件方面的实施方案的形式。而且,本说明书实施方案可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施方案均采用递进的方式描述,各个实施方案之间相同相似的部分互相参见即可,每个实施方案重点说明的都是与其他实施方案的不同之处。尤其,对于系统实施方案而言,由于其基本相似于方法实施方案,所以描述的比较简单,相关之处参见方法实施方案的部分说明即可。在本说明书的描述中,参考术语“一个实施方案”、“一些实施方案”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方案或示例描述的具体特征、结构、材料或者特点包含于本说明书实施方案的至少一个实施方案或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施方案或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方案或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方案或示例以及不同实施方案或示例的特征进行结合和组合。
以上所述仅为本申请的实施方案而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

  1. 一种基于安全多方计算的数据处理方法,其特征在于,包括:
    确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
  2. 如权利要求1所述的基于安全多方计算的数据处理方法,其特征在于,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,包括:
    判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;
    如果接收到所述操作数重复通知,则确认所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同。
  3. 如权利要求1所述的基于安全多方计算的数据处理方法,其特征在于,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,执行所述目标矩阵乘法操作时所用的三元组碎片,是由辅助方根据数据持有方提供的操作数重复通知生成;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。
  4. 如权利要求1所述的基于安全多方计算的数据处理方法,其特征在于,所述复用所述第二隐私数据矩阵或其转置,包括:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第二隐私数据矩阵;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第二隐私数据矩阵的转置矩阵,再复用所述转置矩阵。
  5. 如权利要求1所述的基于安全多方计算的数据处理方法,其特征在于,还包括:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置;所述第三数据矩阵包括三元组矩阵和中间值矩阵。
  6. 如权利要求5所述的基于安全多方计算的数据处理方法,其特征在于,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,包括:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。
  7. 一种基于安全多方计算的数据处理装置,其特征在于,包括:
    确认模块,用于确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
    复用模块,用于当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
  8. 如权利要求7所述的基于安全多方计算的数据处理装置,其特征在于,所述确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同,包括:
    判断是否接收到数据持有方在数据预处理阶段提供的操作数重复通知;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容;
    如果接收到所述操作数重复通知,则确认所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同。
  9. 如权利要求7所述的基于安全多方计算的数据处理装置,其特征在于,当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,执行所述目标矩阵乘法操作时所用的三元组碎片,是由辅助方根据数据持有方提供的操作数重复通知生成;所述操作数重复通知中包含所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同的信息内容。
  10. 如权利要求7所述的基于安全多方计算的数据处理装置,其特征在于,所述复用所述第二隐私数据矩阵或其转置,包括:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第二隐私数据矩阵;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第二 隐私数据矩阵的转置矩阵,再复用所述转置矩阵。
  11. 如权利要求7所述的基于安全多方计算的数据处理装置,其特征在于,所述复用模块还用于:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置;所述第三数据矩阵包括三元组矩阵和中间值矩阵。
  12. 如权利要求11所述的基于安全多方计算的数据处理装置,其特征在于,所述复用所述前续矩阵乘法操作所涉及的第三数据矩阵或其转置,包括:
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵相同时,复用所述第三数据矩阵;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵的转置相同时,先获取所述第三数据矩阵的转置矩阵,再复用所述转置矩阵。
  13. 一种电子设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时执行如下步骤:
    确认矩阵乘法操作序列中目标矩阵乘法操作所涉及的第一隐私数据矩阵,是否与所述矩阵乘法操作序列中前续矩阵乘法操作所涉及的第二隐私数据矩阵或其转置相同;
    当所述第一隐私数据矩阵与所述第二隐私数据矩阵或其转置相同时,在执行所述目标矩阵乘法操作时,复用所述第二隐私数据矩阵或其转置。
PCT/CN2020/092240 2020-05-26 2020-05-26 基于安全多方计算的数据处理方法、装置及电子设备 WO2021237437A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/092240 WO2021237437A1 (zh) 2020-05-26 2020-05-26 基于安全多方计算的数据处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/092240 WO2021237437A1 (zh) 2020-05-26 2020-05-26 基于安全多方计算的数据处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
WO2021237437A1 true WO2021237437A1 (zh) 2021-12-02

Family

ID=78745178

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/092240 WO2021237437A1 (zh) 2020-05-26 2020-05-26 基于安全多方计算的数据处理方法、装置及电子设备

Country Status (1)

Country Link
WO (1) WO2021237437A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114520721A (zh) * 2022-03-22 2022-05-20 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN114726580A (zh) * 2022-03-08 2022-07-08 支付宝(杭州)信息技术有限公司 数据处理方法和装置
CN115688185A (zh) * 2022-12-30 2023-02-03 成方金融科技有限公司 多方隐私求和方法、装置、电子设备和存储介质
CN116089990A (zh) * 2023-04-11 2023-05-09 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和可读存储介质
WO2023231340A1 (zh) * 2022-06-02 2023-12-07 蚂蚁区块链科技(上海)有限公司 分享ot协议的执行方法、安全多方计算方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
CN110889139A (zh) * 2019-11-26 2020-03-17 支付宝(杭州)信息技术有限公司 针对用户隐私数据进行多方联合降维处理的方法及装置
CN111143894A (zh) * 2019-12-24 2020-05-12 支付宝(杭州)信息技术有限公司 一种提升安全多方计算效率的方法及系统
CN111162896A (zh) * 2020-04-01 2020-05-15 支付宝(杭州)信息技术有限公司 双方联合进行数据处理的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
CN110889139A (zh) * 2019-11-26 2020-03-17 支付宝(杭州)信息技术有限公司 针对用户隐私数据进行多方联合降维处理的方法及装置
CN111143894A (zh) * 2019-12-24 2020-05-12 支付宝(杭州)信息技术有限公司 一种提升安全多方计算效率的方法及系统
CN111162896A (zh) * 2020-04-01 2020-05-15 支付宝(杭州)信息技术有限公司 双方联合进行数据处理的方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726580A (zh) * 2022-03-08 2022-07-08 支付宝(杭州)信息技术有限公司 数据处理方法和装置
CN114726580B (zh) * 2022-03-08 2024-01-30 支付宝(杭州)信息技术有限公司 数据处理方法和装置
CN114520721A (zh) * 2022-03-22 2022-05-20 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
CN114520721B (zh) * 2022-03-22 2024-03-29 杭州博盾习言科技有限公司 多方安全计算隐私求交方法、装置、设备及存储介质
WO2023231340A1 (zh) * 2022-06-02 2023-12-07 蚂蚁区块链科技(上海)有限公司 分享ot协议的执行方法、安全多方计算方法及装置
CN115688185A (zh) * 2022-12-30 2023-02-03 成方金融科技有限公司 多方隐私求和方法、装置、电子设备和存储介质
CN115688185B (zh) * 2022-12-30 2023-04-28 成方金融科技有限公司 多方隐私求和方法、装置、电子设备和存储介质
CN116089990A (zh) * 2023-04-11 2023-05-09 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和可读存储介质
CN116089990B (zh) * 2023-04-11 2023-06-20 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和可读存储介质

Similar Documents

Publication Publication Date Title
WO2021237437A1 (zh) 基于安全多方计算的数据处理方法、装置及电子设备
CN112183730B (zh) 一种基于共享学习的神经网络模型的训练方法
EP3075098B1 (en) Server-aided private set intersection (psi) with data transfer
CN112910631B (zh) 一种基于云服务器辅助的高效隐私集合交集计算方法及系统
CN111680322A (zh) 基于安全多方计算的数据处理方法、装置及电子设备
JP2020515087A5 (zh)
CN111738361B (zh) 业务模型的联合训练方法及装置
CN110166446B (zh) 一种基于安全多方计算的地理加权平均中心的实现方法
CN111475854A (zh) 保护两方数据隐私的协同计算方法及系统
Baryalai et al. Towards privacy-preserving classification in neural networks
CN114650134A (zh) 一种基于秘密共享的纵向隐私保护逻辑回归方法
CN113408001B (zh) 多方安全确定最值的方法、装置、设备及存储介质
Li et al. Practical privacy-preserving federated learning in vehicular fog computing
CN114154554A (zh) 一种基于非共谋双云服务器的隐私保护外包数据knn算法
CN115842627A (zh) 基于安全多方计算的决策树评估方法、装置、设备及介质
Chen et al. Industrial blockchain threshold signatures in federated learning for unified space-air-ground-sea model training
CN117353912A (zh) 基于双线性映射的三方隐私集合交集基数计算方法及系统
CN116743376A (zh) 基于高效密文混淆技术的多方秘密分享数据隐私比较方法
CN114358323A (zh) 联邦学习环境中基于第三方高效皮尔森系数计算方法
CN116760539A (zh) 一种端到端的高效安全两方矩阵求逆隐私计算装置及方法
CN112527898B (zh) 安全计算方法、装置、计算机及存储介质
Cianciullo et al. Unconditionally secure oblivious polynomial evaluation: A survey and new results
Ma Two-qubit quantum state sharing protocol based on Bell state
Ma et al. Over-threshold multi-party private set operation protocols for lightweight clients
Sun et al. Privacy-preserving minority oversampling protocols with fully homomorphic encryption

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20937887

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20937887

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20937887

Country of ref document: EP

Kind code of ref document: A1