CN111813544A - Processing method and device of computing task, scheduling and management system and medium - Google Patents

Processing method and device of computing task, scheduling and management system and medium Download PDF

Info

Publication number
CN111813544A
CN111813544A CN202010564491.8A CN202010564491A CN111813544A CN 111813544 A CN111813544 A CN 111813544A CN 202010564491 A CN202010564491 A CN 202010564491A CN 111813544 A CN111813544 A CN 111813544A
Authority
CN
China
Prior art keywords
calculation
computing
scheme
task
complexity
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.)
Granted
Application number
CN202010564491.8A
Other languages
Chinese (zh)
Other versions
CN111813544B (en
Inventor
王蜀洪
王天雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202010564491.8A priority Critical patent/CN111813544B/en
Publication of CN111813544A publication Critical patent/CN111813544A/en
Application granted granted Critical
Publication of CN111813544B publication Critical patent/CN111813544B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

The disclosure provides a processing method and device of a computing task, a scheduling and management system and a medium. The method comprises the following steps: acquiring a calculation task and a calculation condition; acquiring scheme characteristics of each candidate calculation scheme; determining the complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation conditions and the scheme characteristics of each candidate calculation scheme; and selecting a calculation scheme for the calculation task according to the complexity. The embodiment of the disclosure improves the computing performance of the multi-party secure computing platform.

Description

Processing method and device of computing task, scheduling and management system and medium
Technical Field
The present disclosure relates to the field of secure computing, and in particular, to a method and an apparatus for processing a computing task, a scheduling and management system, and a medium.
Background
The multi-party security calculation means that under the condition that no trusted third party exists, calculation and fusion of data are realized among a plurality of non-mutually trusted databases on the premise that the data are mutually confidential. In the multi-party security computing, a plurality of computing nodes are arranged. The computing node obtains the ciphertext of the private data from the data side, computing is carried out based on the ciphertext, and the plaintext of a computing result can only be obtained by the result side. Because the ciphertext of the private data is acquired by the computing node, the real data is unknown, and the data is computed and fused under the condition of data confidentiality.
Various schemes can be adopted in the current multiparty security calculation, and the schemes can be roughly classified into a garbled security (GC), a Secret Sharing (SS), a Homomorphic Encryption (HE) and the like. Different schemes have different characteristics in terms of their computational power performance. If the scheme using the garbled circuit type scheme has a fixed number of communication rounds, the circuit size will increase with the calculation task; the scheme adopting the secret sharing scheme is fixed in communication amount each time of calculation and easy to support real number calculation, but the number of communication rounds is increased along with the increase of calculation tasks, and some technical schemes (such as SPDZ) need to generate a large amount of prepared data by using pre-calculation and then perform online calculation, so that certain storage space is occupied; the scheme adopting the homomorphic encryption scheme does not need network communication during ciphertext calculation, but has limitations in ciphertext length and encryption and decryption performance, so that the scheme is not suitable for complex calculation tasks. However, at present, a certain scheme is usually adopted for a computing platform, so that good computing performance cannot be achieved under certain environmental conditions.
Disclosure of Invention
It is an object of the present disclosure to improve the computational performance of a multi-party secure computing platform.
According to an aspect of the present disclosure, there is provided a method for processing a computing task, including:
acquiring a calculation task and a calculation condition;
acquiring scheme characteristics of each candidate calculation scheme;
determining the complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation conditions and the scheme characteristics of each candidate calculation scheme;
and selecting a calculation scheme for the calculation task according to the complexity.
Optionally, the selecting a computation scheme for the computation task according to the complexity includes: and splitting the computing task into at least two computing subtasks, and determining a computing scheme adopted by the computing subtasks.
Optionally, the splitting the computing task into at least two computing subtasks and determining a computing scheme adopted by the computing subtasks includes:
obtaining each candidate calculation block;
according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
Optionally, the complexity comprises at least one of computational complexity, communication complexity, storage complexity.
Optionally, the calculation condition comprises at least one of: a network environment; inputting a data type; calculating the size of a node storage space; computing node computing power; a safety model assumption.
Optionally, the scheme features include at least one of: the number of communication rounds required to perform the computation task, the amount of traffic, the pre-processing storage space, the content and amount of computation, the security model supported.
Optionally, the candidate calculation scheme comprises: a garbled circuit scheme, a secret sharing scheme, a homomorphic encryption scheme.
Optionally, the obtaining the computing task and the computing condition includes: acquiring computing tasks and computing conditions of a plurality of candidate computing nodes; the determining the complexity of the computing task under each candidate computing scheme according to the computing task, the computing conditions and the scheme features of each candidate computing scheme includes: according to the calculation task, the calculation conditions of the candidate calculation nodes and the scheme characteristics of each candidate calculation scheme, respectively determining the complexity of the calculation task under the combination of each candidate calculation node and each candidate calculation scheme; selecting a calculation scheme for the calculation task according to the complexity, comprising: and determining a computing node for executing the computing task and a computing scheme for executing the computing task according to the complexity.
Optionally, the determining, according to the complexity, a computing node for executing the computing task and a computing scheme for executing the computing task includes: and splitting the computing task into at least two computing subtasks, and determining a computing node for executing each computing subtask and a computing scheme for executing each computing subtask.
Optionally, after splitting the computing task into at least two computing subtasks and determining a computing scheme adopted by the computing subtasks, the method further includes: and sending the split computing subtasks and the computing scheme determined for each computing subtask to a computing node for execution, and executing the corresponding computing subtasks by the computing node according to the determined computing scheme.
Optionally, after the computing node executes the corresponding computing subtasks according to the determined computing scheme, the execution result of each computing subtask is converted into a general data type.
According to an aspect of the present disclosure, there is provided a computing task processing apparatus including:
a calculation task and condition acquisition unit for acquiring a calculation task and a calculation condition;
the candidate calculation scheme characteristic library is used for storing the scheme characteristics of each candidate calculation scheme;
the complexity calculating unit is used for determining the complexity of the calculating task under each candidate calculating scheme according to the calculating task, the calculating condition and the scheme characteristics of the candidate calculating schemes stored in the candidate calculating scheme characteristic library;
and the calculation task execution scheme decision unit is used for selecting a calculation scheme for the calculation task according to the complexity.
Optionally, the calculation task execution scheme decision unit is further configured to: and splitting the computing task into at least two computing subtasks, and determining a computing scheme adopted by the computing subtasks.
Optionally, the splitting the computing task into at least two computing subtasks and determining a computing scheme adopted by the computing subtasks includes: obtaining each candidate calculation block; according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
Optionally, the complexity comprises at least one of computational complexity, communication complexity, storage complexity.
Optionally, the calculation condition comprises at least one of: a network environment; inputting a data type; calculating the size of a node storage space; computing node computing power; a safety model assumption.
Optionally, the calculation task and condition obtaining unit is further configured to obtain calculation conditions of the calculation task and the plurality of candidate calculation nodes; the complexity calculation unit is further configured to: according to the calculation task, the calculation conditions of the candidate calculation nodes and the scheme characteristics of each candidate calculation scheme, respectively determining the complexity of the calculation task under the combination of each candidate calculation node and each candidate calculation scheme; the computing task execution scheme decision unit is further to: and determining a computing node for executing the computing task and a computing scheme for executing the computing task according to the complexity.
According to an aspect of the present disclosure, there is provided a scheduling and management system including: a memory for storing computer program instructions; a processor for executing computer program instructions stored by the memory to perform the method as described above.
According to an aspect of the present disclosure, there is provided a computer-readable program medium characterized in that it stores computer-readable instructions which, when executed by a processor, cause a computer to perform the method as described above.
Since the multi-party security computing can adopt a plurality of schemes, each scheme has suitable computing tasks and computing conditions. According to the method and the device, the complexity of the calculation task under each candidate calculation scheme is determined according to the calculation task, the calculation conditions and the scheme characteristics of each candidate calculation scheme, and the calculation scheme is selected according to the complexity, so that the defect that the platform cannot achieve good calculation performance under certain environmental conditions due to the fact that the calculation scheme is simplified is overcome. The computing scheme is automatically selected according to the computing task and the computing condition, the computing performance of the multi-party security computing platform is improved, and the automation degree of computing task processing is improved.
Additional features and advantages of the disclosure will be set forth in the detailed description which follows, or in part will be obvious from the description, or may be learned by practice of the disclosure.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The above and other objects, features and advantages of the present disclosure will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings.
FIG. 1 illustrates an architecture of an environment to which a method of processing a computing task is applied, according to one embodiment of the present disclosure;
FIG. 2 illustrates a flow diagram of a method of processing a computing task according to one embodiment of the present disclosure;
FIG. 3 shows scheme features of 4 candidate computational schemes, respectively, according to one embodiment of the present disclosure;
fig. 4 illustrates a hardware structure diagram of a scheduling and management system according to one embodiment of the present disclosure.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art. The drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus their repetitive description will be omitted.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more example embodiments. In the following description, numerous specific details are provided to give a thorough understanding of example embodiments of the disclosure. One skilled in the relevant art will recognize, however, that the subject matter of the present disclosure can be practiced without one or more of the specific details, or with other methods, components, steps, and so forth. In other instances, well-known structures, methods, implementations, or operations are not shown or described in detail to avoid obscuring aspects of the disclosure.
Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities. These functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
Various schemes can be adopted in the current multi-party security calculation, and the schemes can be roughly classified into a Garbledcircut (GC), a Secret Sharing (SS), a Homomorphic Encryption (HE) and the like. The confusion circuit scheme includes specific technical schemes such as Yao' GC, BMR, Auth-GC, GESS and the like, and is characterized in that a calculation task is converted into a calculation circuit, then the circuit is converted into an encryption form, and participants decrypt the circuit by exchanging identifiers corresponding to data to obtain a final result. The secret sharing scheme includes GMW, sharemind, SPDZ, BGW and other specific technical schemes, and is characterized in that input data obtain secret sharing factors through a certain secret sharing mode, the secret sharing factors are sent to participants, and the participants complete calculation tasks based on the secret sharing factors to obtain calculation results. The homomorphic encryption scheme is characterized in that various calculations are performed based on a ciphertext, then decryption is performed, and the obtained result is the same as the calculation performed in a plaintext.
Different schemes have different characteristics in terms of their computational power performance. If the scheme using the garbled circuit type scheme has a fixed number of communication rounds, the circuit size will increase with the calculation task; the scheme adopting the secret sharing scheme is fixed in communication amount each time of calculation and easy to support real number calculation, but the number of communication rounds is increased along with the increase of calculation tasks, and some technical schemes (such as SPDZ) need to use pre-calculation to generate a large amount of prepared data to be used in online calculation, so that certain storage space is occupied; the homomorphic encryption scheme is adopted, network communication is not needed during ciphertext calculation, but limitations exist in the aspects of ciphertext length and encryption and decryption performance, and therefore the homomorphic encryption scheme is not suitable for complex calculation tasks. At present, a certain scheme is usually adopted for a computing platform, so that good computing performance cannot be achieved under certain environmental conditions. The inventor of the present disclosure thinks that a scheme can be flexibly selected according to factors such as a computing task, a network environment, a size of a storage space of a computing node, computing capability of the computing node, and the like, rather than being fixed as one of the schemes, and a scheme combining a plurality of schemes can be used, so that respective advantages of the various schemes are brought into play, an execution effect of the computing task is improved, and computing performance of a multi-party security computing platform is improved.
Fig. 1 shows an architecture of an environment to which a processing method of a computing task according to one embodiment of the present disclosure is applied. The architecture includes a computing platform 300 and a scheduling and management system 100. Computing platform 300 may contain multiple computing nodes 301, which are the subject of performing multi-party secure computations. The scheduling and management system 100 is a system that performs control on the compute nodes 301, which generates the compute task execution plan decision information 200. The computing platform 300 performs the multi-party security computation according to the computation task execution scheme decision information 200.
According to one embodiment of the present disclosure, a method of processing a computing task 136 is provided, which is performed by the computing task processing device 110 of fig. 1. The compute task processing device 110 is a component of the scheduling and management system 100 for generating compute task execution plan decision information 200 for the compute tasks 136. The compute task 136 refers to a task that performs multi-party secure computations. As shown in fig. 2, the method includes:
step 410, obtaining a calculation task and a calculation condition;
step 420, obtaining scheme features of each candidate calculation scheme;
step 430, determining the complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation conditions and the scheme characteristics of each candidate calculation scheme;
and 440, selecting a calculation scheme for the calculation task according to the complexity.
These steps are described in detail below.
The computing conditions in step 410 refer to the environmental conditions under which the computing task is performed. As shown in fig. 1, the calculation condition includes at least one of: a network environment 131; an input data type 132; compute node storage size 133; compute node computing power 134; the security model assumes 135.
Network environment 131 refers to the conditions of the communication network in which computing node 301 operates. For the reason that the calculation task is sent to the calculation node 301 through the communication network, and the calculation result generated by the calculation node 301 is sent through the communication network, the network conditions such as the network speed and the communication throughput of the communication network affect the obtaining speed of the calculation result. The network environment includes network communication delay, communication throughput, and the like. It is a consideration in selecting a calculation scheme. For example, some computing schemes require high communication delay, communication throughput, and the like. When the communication delay is long and the throughput is low, it is not suitable to select the calculation scheme.
Input data type 132 refers to the type of data that needs to be input by a computing task, such as integer numbers, floating point numbers, and the like. It is also a consideration in selecting a calculation scheme. For example, some schemes are suitable for dealing with the calculation of integer numbers. In the case where floating point numbers are required, it is not appropriate to choose this calculation scheme.
The compute node memory size 133 refers to the size of the memory space present in the compute node. Some solutions require large amounts of data to be stored locally during computation. If the size of the storage space of the computing node is small, the computing scheme is not suitable for being selected.
Compute node computing power 134 is the time it takes for the compute node to perform various computations. For example, 1ms is used for random number generation calculation, 1.5ms is used for local addition calculation, and so on.
The security model assumption 135 refers to whether the computing model adopted by the computing node is an honest model, a semi-honest model or a malicious model. With different safety degrees of the models, the required calculation scheme is different. Therefore, it is also a consideration in selecting a calculation scheme.
In step 410, a computing task is generally received from a task delegate node. The calculation condition can be obtained through manual input, and can also be obtained through a detection and retrieval mode. For a network environment, the computing nodes may be determined and then detected via plug-ins or the like. For data types, it can also be determined by message detection. For the storage space size of the computing node, the computing capability of the computing node and the assumption of a safety model, the relevant data of the computing node can be obtained by scheduling after the computing node is determined.
In fig. 1, step 410 is performed by the calculation task and condition acquisition unit 111.
In step 420, recipe features for each candidate calculation recipe are obtained.
The candidate computation scheme 301 in one embodiment includes a Garbled Circuit (GC) scheme, a Secret Sharing (SS) scheme, and a Homomorphic Encryption (HE) scheme. Each candidate calculation scheme 301 includes a plurality of technical schemes 302. The confusion circuit scheme comprises a specific technical scheme 302 such as Yao' GC, BMR, Auth-GC, GESS and the like, and is characterized in that a calculation task is converted into a calculation circuit, then the circuit is converted into an encryption form, and participants decrypt the circuit by exchanging identifiers corresponding to data to obtain a final result. The secret sharing scheme comprises a specific technical scheme 302 of GMW, sharemind, SPDZ, BGW and the like, and is characterized in that input data obtain a secret sharing factor through a certain secret sharing mode, the secret sharing factor is sent to participants, and each participant completes a calculation task based on the secret sharing factor to obtain a calculation result. The homomorphic encryption scheme performs various calculations based on the ciphertext and then performs decryption, and the obtained result is the same as the calculation performed in the plaintext.
In one embodiment, the solution features for each candidate calculation solution may be stored in the candidate calculation solution feature library 112 of FIG. 1. The scheme characteristics refer to the characteristics presented by each scheme. The scheme features include at least one of: the number of communication rounds required to perform the computation task, the amount of traffic, the pre-processing storage space, the content and amount of computation, the security model supported.
The number of communication rounds and the amount of communication required for executing the calculation task correspond to the network environment in the above calculation condition. If the number of communication rounds and the communication volume required for executing the calculation task of a calculation scheme exactly match the network environment in the calculation condition obtained in step 410, the calculation scheme is satisfactory in this respect.
The preprocessing storage space corresponds to the size of the storage space of the computing node in the computing condition. If the pre-processing storage space of a computing solution matches the size of the computing node storage space in the computing conditions obtained in step 410, the computing solution is satisfactory in this respect.
The calculation contents and the calculation amounts correspond to the calculation node calculation capacities in the above-described calculation conditions. If the computation content and computation amount of a computation solution match the computation node computation power obtained in step 410, the computation solution is satisfactory in this respect.
The supported security models correspond to the security model assumptions in the above-described computation conditions. If the supported security model of a computational solution matches the security model assumption obtained in step 410, the computational solution is satisfactory in this regard.
In step 430, determining the complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation conditions and the scheme features of each candidate calculation scheme.
Step 430 is implemented by the complexity calculation unit 113 of fig. 1. The complexity includes at least one of a computational complexity 1132, a communication complexity 1131, and a storage complexity 1133. The completion of the calculation task involves calculation of the task, communication of the calculation result and input data, storage of the result of the data, and the like, and each aspect has complexity, and therefore, is embodied as calculation complexity 1132, communication complexity 1132, storage complexity 1133, and the like. FIGS. 3A-D show examples of computational complexity 1132, communication complexity 1131, and storage complexity 1133 obtained under the Yao's GC, BMR, Sharmind, and SPDZ schemes, respectively.
Take the Yao's GC scheme of FIG. 3A as an example. The calculation complexity under the scheme comprises the complexity of manufacturing a GC and the complexity of decrypting the GC, wherein the complexity of manufacturing the GC is represented by the times of generating random numbers in global, xor and operation of manufacturing the GC, the times of using a Key Derivation Function (KDF) in the global, xor and operation of manufacturing the GC, and the times of carrying out string XOR in the global, xor and operation of manufacturing the GC; the complexity of the decryption GC is represented by the number of times a random number is generated in the global, xor, and operations of the decryption GC, the number of times a Key Derivation Function (KDF) is used in the global, xor, and operations of the decryption GC, and the number of times a string is xored in the global, xor, and operations of the decryption GC. The communication complexity under the scheme comprises the times of communication of GC global, xor operation and operation, the times of communication of identification global, xor operation and the times of communication of Oblivious Transmission (OT) global, xor operation and operation.
3B-D are similar to FIG. 3A, and illustrate examples of specific data for computational complexity, communication complexity, and storage complexity obtained under BMR, Sharmind, and SPDZ schemes, respectively. Since it is similar to fig. 3A, it is not described in detail. In these figures, N is the length of the calculation factor used in the scheme, and N is the number of participants, where "/participant" refers to the situation where the participants in the scheme are each performing processing, and in this case, the overall time consumption of the scheme is the time consumption of one party, rather than the sum of the times of the parties.
The calculation condition represents an objective condition of calculation dependence, the scheme characteristic of each candidate calculation scheme represents a condition which can be realized by each candidate calculation scheme, and the calculation task, the calculation condition and the scheme characteristic of each candidate calculation scheme can be matched, so that the calculation complexity, the communication complexity and the storage complexity of the calculation task under the scheme can be determined for each candidate calculation scheme, and a basis is provided for the subsequent selection of the calculation scheme. How to determine computational complexity, communication complexity, storage complexity is known in the art and is not the focus of this disclosure. In order to not obscure the main implementation process of the present disclosure, the implementation method is not described in detail.
Then, in step 440, a computation solution is selected for the computation task based on the complexity of the computation task under each candidate computation solution. Step 440 is implemented by the calculation task execution scheme decision unit 114.
The selection of the calculation scheme includes two ways. The first way is to select one of the candidate computation schemes for the computation task as a whole. The second way is to divide the calculation task into at least two calculation subtasks and determine the calculation scheme adopted by each calculation subtask from each candidate calculation scheme. The second mode can flexibly select a scheme aiming at one part of the task, so that the realization is more flexible, the realization effect of each part is better, and the improvement of the calculation performance of the multi-party security calculation platform is more facilitated.
When the first method is implemented, the computation complexity, the communication complexity, and the storage complexity for implementing the computation task under each candidate computation scheme may be computed, then a weighted sum of the computation complexity, the communication complexity, and the storage complexity is obtained, and a candidate computation scheme with the smallest weighted sum is selected. For example, sub-items (e.g., the number of times of generating a random number in the GC, the number of times of KDF, and the number of times of string xor) of various complexities (e.g., computation complexity, communication complexity, and storage complexity) of each of fig. 3A-D may be calculated separately, the calculation results may be added to obtain the complexity of the complexity, then the weighted sum of the computation complexity, communication complexity, and storage complexity may be obtained, and one candidate calculation scheme with the smallest weighted sum may be used as the selected calculation scheme. The second approach is somewhat complex to implement and requires the decomposition of the computation task into computation subtasks. Atomic subtasks may be pre-specified and then the computing task decomposed into the specified atomic subtasks. Then, for each atomic subtask, a matching candidate computation scheme is determined in a manner similar to the first manner described above.
In one embodiment, some of the common computing blocks (building blocks) in the MPC computing task execution scheme are also implemented in the computing node 301. The so-called computation chunks are components of the MPC computation task execution scheme, such as relationship random numbers (slave triples/sharemid corrected random accesses) for assisting secret sharing computation, homomorphic macs (SPDZ-styles/BODZ-styles/.) for enhancing the security model as a malicious model, cut and cache for enhancing the security model as a malicious model, and the like. The computation task execution scenario decision information 200 sent by the scheduling and management system 100 to the compute node 301 may occur in a combination of scenario and computation chunks. That is, in some cases, since the specific conditions are complicated and do not necessarily perfectly match a scheme, a combination of a calculation scheme and a calculation block may be adopted to perfectly match the real conditions.
In this embodiment, the splitting the computing task into at least two computing subtasks and determining the computing scheme adopted by the computing subtasks includes: obtaining each candidate calculation block; according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
Each candidate compute block is all compute blocks that the compute node 301 prepared in advance can implement. The determined complexity of each computation scheme and each candidate computation block are handed to the computation task execution scheme decision unit 114, and the computation task execution scheme decision unit 114 can accordingly complete the splitting of the computation task and determine the combination of the computation scheme and the computation block for each split computation subtask.
The computation task execution scheme decision information 200 output by the computation task execution scheme decision unit 114 includes a splitting manner of the computation task and a scheme and a selection of a computation chunk for each split computation subtask. Which is sent to compute node 301 of computing platform 300 for computation. The above embodiments are all made on the assumption that the computing node 301 is pre-allocated, but in practice, there may be a plurality of computing nodes 301. In the case of multiple candidate compute nodes 301, the compute task execution plan decision information 200 may include, in addition to the above, a selection of the compute node 301.
In this case, step 410 includes: computing conditions of the computing task and the plurality of candidate computing nodes are obtained. The computing conditions of the plurality of candidate compute nodes include the network environment 131 of each selected compute node, the input data type 132, the compute node storage size 133, the compute node computing power 134, and the security model assumptions 135. Step 430 comprises: and respectively determining the complexity of the computing task under the combination of each candidate computing node and each candidate computing scheme according to the computing task, the computing conditions of the candidate computing nodes and the scheme characteristics of each candidate computing scheme. That is, for each candidate compute node, the complexity of the compute task under each candidate compute solution is determined. Step 440 includes: and determining a computing node for executing the computing task and a computing scheme for executing the computing task according to the complexity. Since there are a plurality of candidate computing nodes and a plurality of candidate computing schemes, it can be determined which computing node and which computing scheme have the least complexity, and then the computing task is assigned to the computing node and the computing scheme is adopted. In addition, in the case where the computation task includes a plurality of computation subtasks, the computation task may be split into at least two computation subtasks, and a computation node for executing each computation subtask and a computation scheme for executing each computation subtask may be determined. That is, for each computation subtask, it is determined which computation node and which computation scheme, in combination, the computation subtask has the least complexity, and the computation subtask is assigned to the computation node and the computation scheme is adopted.
The embodiment can flexibly select the computing nodes, thereby improving the flexibility and the efficiency of the multi-party safe computing.
After the computing task is split into at least two computing subtasks and the computing scheme adopted by the computing subtasks is determined, the computing task execution scheme decision unit 114 sends the computing task execution scheme decision information 200 to the computing node 301 of the computing platform 300. The calculation task execution scheme decision information 200 includes the divided calculation subtasks and the calculation scheme determined for each calculation subtask.
In one embodiment, the computing task execution scenario decision information 200 may be displayed to a user (administrator). If the user believes the decision information is incorrect, it may be adjusted by the configuration module 120. The configuration module 120 displays the calculation task execution scheme decision information 200 to a user (administrator), receives the adjustment of the user on the calculation task execution scheme decision information 200, and sends the adjusted calculation task execution scheme decision information 200 to the calculation node 301. This further improves the accuracy of the multi-party security computation decision. In addition, the calculation task execution scheme decision information 200 may also be directly generated by the configuration module 120, rather than being modified by the configuration module 120 after being generated by the calculation task processing device 110. In this case, the configuration module 120 receives the user-entered computing task execution scenario decision information 200 and sends it to the computing node 301.
The computing node 301 executes the corresponding computing subtask according to the determined computing scheme. Three candidate calculation schemes of GC, SS, and HE are shown in fig. 1, but these are actually the kinds of schemes. Under GC, there are Yao' GC, BMR, Auth-GC, GESS and other technical schemes 302 (specific schemes). Under SS, technical schemes 302 (specific schemes) such as GMW, sharemind, SPDZ, BGW and the like are provided. Specific embodiments are shown in scheme 302 (embodiments) under HE. In addition, compute node 301 also supports compute chunks 303 as described above. In addition, a data type conversion module 304 is further included in the computing platform 300, and is configured to convert an execution result of each computing subtask into a general data type after the computing node 301 executes the corresponding computing subtask according to the determined computing scheme. The data types required by the computing schemes are different, so that after the computing subtasks are operated by the corresponding computing schemes, the data types of the results are different, and the computing subtasks need to be converted into the general data types by the data type conversion module 304 and then integrated.
The following illustrates a specific processing procedure of a calculation task by a specific example.
First, a computation task T is received, in which:
circuit depth of 20 (multiplication 20, addition 25, focus on multiplication dominating);
binary circuit size 400 (number of gates, 300 and gates, 100 xor gates);
-using a semi-honest security model.
Then, the calculation conditions are obtained as follows (assuming that one calculation node is fixed for processing):
-a communication latency of the computing node/computing network of 300 ms;
-a communication throughput of 4 kbps;
the computing node storage space is 700M;
-the compute node computing power is:
-random number generation: 1ms
-local addition: 1.5ms
-local multiplication: 2ms
-the bit is also or: 2ms
——KDF:3ms。
Next, the scheme features of each candidate calculation scheme are obtained, including the number of communication rounds, communication volume, preprocessing storage space, calculation content and calculation amount, supported security models, and the like required for executing calculation tasks under the schemes of GC, BMR, and the like.
Then, according to the calculation tasks, the calculation conditions and the scheme features of the candidate calculation schemes obtained as above, the complexity of the calculation tasks under each candidate calculation scheme is determined as follows (the complexity is expressed by the completion time, and N is 1024 and N is 2):
-communication complexity:
——GC:175ms;500*OT
——BMR:425ms
——…
-computational complexity
——GC:5800ms
——BMR:9520ms
——…
-storage complexity
——GC:-bit
——BMR:-bit
——…
Then, generating calculation task execution scheme decision information according to the communication complexity, the calculation complexity and the storage complexity, wherein the calculation task execution scheme decision information comprises:
splitting the computing task into computing subtasks T1, T2 … …
-a computation scheme employed for each computation subtask:
——T1:GC
——T2:sharemind
——……
there is also provided, in accordance with an embodiment of the present disclosure, a computing task processing device 110, including:
a calculation task and condition acquisition unit 111 for acquiring a calculation task and a calculation condition;
a candidate calculation scheme feature library 112 for storing scheme features of each candidate calculation scheme;
the complexity calculating unit 113 is configured to determine complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation condition, and scheme features of the candidate calculation schemes stored in the candidate calculation scheme feature library;
and a calculation task execution scheme decision unit 114, configured to select a calculation scheme for the calculation task according to the complexity.
Optionally, the calculation task execution scheme decision unit 114 is further configured to: and splitting the computing task into at least two computing subtasks, and determining a computing scheme adopted by the computing subtasks.
Optionally, the splitting the computing task into at least two computing subtasks and determining a computing scheme adopted by the computing subtasks includes: obtaining each candidate calculation block; according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
Optionally, the complexity comprises at least one of computational complexity, communication complexity, storage complexity.
Optionally, the calculation condition comprises at least one of: a network environment; inputting a data type; calculating the size of a node storage space; computing node computing power; a safety model assumption.
Optionally, the computation task and condition obtaining unit 111 is further configured to obtain computation conditions of a computation task and a plurality of candidate computation nodes; the complexity calculating unit 113 is further configured to determine, according to the computing task, the computing conditions of the candidate computing nodes, and the solution features of the candidate computing solutions, the complexity of the computing task under the combination of the candidate computing nodes and the candidate computing solutions, respectively; the calculation task execution scheme decision unit 114 is further configured to: and determining a computing node for executing the computing task and a computing scheme for executing the computing task according to the complexity.
The implementation details of the computing task processing device 110 are substantially similar to those of the above embodiments, and are not repeated for brevity.
As shown in FIG. 4, the scheduling and management system 100 may take the form of a general purpose computing device. The components of the scheduling and management system 100 may include, but are not limited to: the at least one processing unit 810, the at least one memory unit 820, and a bus 830 that couples the various system components including the memory unit 820 and the processing unit 810.
Wherein the storage unit stores program code that is executable by the processing unit 810 to cause the processing unit 810 to perform steps according to various exemplary embodiments of the present disclosure described in the description part of the above exemplary methods of the present specification. For example, the processing unit 810 may perform the various steps as shown in fig. 2.
The storage unit 820 may include readable media in the form of volatile memory units such as a random access memory unit (RAM)8201 and/or a cache memory unit 8202, and may further include a read only memory unit (ROM) 8203.
The storage unit 820 may also include a program/utility 8204 having a set (at least one) of program modules 8205, such program modules 8205 including, but not limited to: a social operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
Bus 830 may be any of several types of bus structures including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
The scheduling and management system 100 may also communicate with one or more external devices 700 (e.g., keyboard, pointing device, bluetooth device, etc.), with one or more devices that enable a user to interact with the scheduling and management system 100, and/or with any device (e.g., router, modem, etc.) that enables the scheduling and management system 100 to communicate with one or more other computing devices. Such communication may occur via an input/output (I/O) interface 650. Also, the scheduling and management system 100 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN) and/or a public network, such as the Internet) via the network adapter 860. As shown, a network adapter 860 communicates with the other modules of the scheduling and management system 100 via a bus 830. It should be appreciated that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the scheduling and management system 100, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
In an exemplary embodiment of the present disclosure, there is also provided a computer program medium having stored thereon computer readable instructions which, when executed by a processor of a computer, cause the computer to perform the method described in the above method embodiment section.
According to an embodiment of the present disclosure, there is also provided a program product for implementing the method in the above method embodiment, which may employ a portable compact disc read only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited in this regard and, in the present document, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
A computer readable signal medium may include a propagated data signal with readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., through the internet using an internet service provider).
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functionality of two or more modules or units described above may be embodied in one module or unit, according to embodiments of the present disclosure. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Moreover, although the steps of the methods of the present disclosure are depicted in the drawings in a particular order, this does not require or imply that the steps must be performed in this particular order, or that all of the depicted steps must be performed, to achieve desirable results. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step execution, and/or one step broken down into multiple step executions, etc.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
While embodiments in accordance with the invention have been described above, these embodiments are not intended to be exhaustive or to limit the invention to the precise embodiments described. Obviously, many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. The invention is limited only by the claims and their full scope and equivalents.

Claims (10)

1. A method for processing a computing task, comprising:
acquiring a calculation task and a calculation condition;
acquiring scheme characteristics of each candidate calculation scheme;
determining the complexity of the calculation task under each candidate calculation scheme according to the calculation task, the calculation conditions and the scheme characteristics of each candidate calculation scheme;
and selecting a calculation scheme for the calculation task according to the complexity.
2. The method of claim 1, wherein selecting a computing solution for the computing task based on the complexity comprises:
and splitting the computing task into at least two computing subtasks, and determining a computing scheme adopted by the computing subtasks.
3. The method of claim 2, wherein splitting the computing task into at least two computing subtasks and determining a computing scheme to be employed by the computing subtasks comprises:
obtaining each candidate calculation block;
according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
4. The method of claim 1, wherein the complexity comprises at least one of a computational complexity, a communication complexity, and a storage complexity.
5. A computing task processing apparatus, comprising:
a calculation task and condition acquisition unit for acquiring a calculation task and a calculation condition;
the candidate calculation scheme characteristic library is used for storing the scheme characteristics of each candidate calculation scheme;
the complexity calculating unit is used for determining the complexity of the calculating task under each candidate calculating scheme according to the calculating task, the calculating condition and the scheme characteristics of the candidate calculating schemes stored in the candidate calculating scheme characteristic library;
and the calculation task execution scheme decision unit is used for selecting a calculation scheme for the calculation task according to the complexity.
6. The apparatus of claim 5, wherein the computing task execution scheme decision unit is further configured to: and splitting the computing task into at least two computing subtasks, and determining a computing scheme adopted by the computing subtasks.
7. The apparatus of claim 6, wherein the splitting the computing task into at least two computing subtasks and determining a computing scheme to be employed by the computing subtasks comprises:
obtaining each candidate calculation block;
according to the complexity and the obtained candidate calculation chunks, splitting the calculation task into at least two calculation subtasks, and determining a calculation scheme adopted by the calculation subtasks and a combination of the calculation chunks.
8. The apparatus of claim 5, wherein the complexity comprises at least one of a computational complexity, a communication complexity, and a storage complexity.
9. A scheduling and management system comprising:
a memory for storing computer program instructions;
a processor for executing computer program instructions stored by the memory to perform the method of any of claims 1-4.
10. A computer-readable program medium storing computer-readable instructions which, when executed by a processor, cause a computer to perform the method of any one of claims 1-4.
CN202010564491.8A 2020-06-19 2020-06-19 Processing method, device, scheduling and management system and medium for computing task Active CN111813544B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010564491.8A CN111813544B (en) 2020-06-19 2020-06-19 Processing method, device, scheduling and management system and medium for computing task

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010564491.8A CN111813544B (en) 2020-06-19 2020-06-19 Processing method, device, scheduling and management system and medium for computing task

Publications (2)

Publication Number Publication Date
CN111813544A true CN111813544A (en) 2020-10-23
CN111813544B CN111813544B (en) 2024-07-12

Family

ID=72845276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010564491.8A Active CN111813544B (en) 2020-06-19 2020-06-19 Processing method, device, scheduling and management system and medium for computing task

Country Status (1)

Country Link
CN (1) CN111813544B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487415A (en) * 2020-12-09 2021-03-12 华控清交信息科技(北京)有限公司 Method and device for detecting safety of computing task
CN113992439A (en) * 2021-12-27 2022-01-28 支付宝(杭州)信息技术有限公司 Distributed multi-party secure computing system, method and node
CN114444069A (en) * 2021-12-17 2022-05-06 中国科学院信息工程研究所 Efficient threshold safety multi-party calculation method under malicious model

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104081378A (en) * 2012-01-30 2014-10-01 国际商业机器公司 Full exploitation of parallel processors for data processing
WO2017216137A1 (en) * 2016-06-13 2017-12-21 Koninklijke Philips N.V. Assessing the functional ability of a person to perform a task
US20180341527A1 (en) * 2017-05-29 2018-11-29 Fujitsu Limited Task deployment method, task deployment apparatus, and storage medium
CN109255247A (en) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 Secure calculation method and device, electronic equipment
CN110262845A (en) * 2019-04-30 2019-09-20 北京邮电大学 The enabled distributed computing task discharging method of block chain and system
US20190372760A1 (en) * 2018-06-04 2019-12-05 Robert Bosch Gmbh Method and System for Fault Tolerant and Secure Multiparty Computation with SPDZ
CN111198765A (en) * 2019-12-31 2020-05-26 河南裕展精密科技有限公司 Operation resource allocation and management method and proxy server
CN111209478A (en) * 2020-01-03 2020-05-29 京东数字科技控股有限公司 Task pushing method and device, storage medium and electronic equipment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104081378A (en) * 2012-01-30 2014-10-01 国际商业机器公司 Full exploitation of parallel processors for data processing
WO2017216137A1 (en) * 2016-06-13 2017-12-21 Koninklijke Philips N.V. Assessing the functional ability of a person to perform a task
US20180341527A1 (en) * 2017-05-29 2018-11-29 Fujitsu Limited Task deployment method, task deployment apparatus, and storage medium
US20190372760A1 (en) * 2018-06-04 2019-12-05 Robert Bosch Gmbh Method and System for Fault Tolerant and Secure Multiparty Computation with SPDZ
CN109255247A (en) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 Secure calculation method and device, electronic equipment
CN110262845A (en) * 2019-04-30 2019-09-20 北京邮电大学 The enabled distributed computing task discharging method of block chain and system
CN111198765A (en) * 2019-12-31 2020-05-26 河南裕展精密科技有限公司 Operation resource allocation and management method and proxy server
CN111209478A (en) * 2020-01-03 2020-05-29 京东数字科技控股有限公司 Task pushing method and device, storage medium and electronic equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
申银杰: "云计算中安全矩阵计算外包方案的研究", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 03 *
陈振华;李顺东;王道顺;黄琼;张卫国;: "集合成员关系的安全多方计算及其应用", 电子学报, no. 05 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487415A (en) * 2020-12-09 2021-03-12 华控清交信息科技(北京)有限公司 Method and device for detecting safety of computing task
CN112487415B (en) * 2020-12-09 2023-10-03 华控清交信息科技(北京)有限公司 Method and device for detecting security of computing task
CN114444069A (en) * 2021-12-17 2022-05-06 中国科学院信息工程研究所 Efficient threshold safety multi-party calculation method under malicious model
CN114444069B (en) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 Efficient threshold safety multi-party calculation method under malicious model
CN113992439A (en) * 2021-12-27 2022-01-28 支付宝(杭州)信息技术有限公司 Distributed multi-party secure computing system, method and node

Also Published As

Publication number Publication date
CN111813544B (en) 2024-07-12

Similar Documents

Publication Publication Date Title
US20240113858A1 (en) Systems and Methods for Performing Secure Machine Learning Analytics Using Homomorphic Encryption
Tang et al. Non-interactive privacy-preserving truth discovery in crowd sensing applications
EP3218800B1 (en) Secure multiparty computation on spreadsheets
WO2021000561A1 (en) Data processing method and device, and electronic apparatus
US10467389B2 (en) Secret shared random access machine
CN111813544B (en) Processing method, device, scheduling and management system and medium for computing task
JP5916852B2 (en) Dynamic data protection policy associated with the request-reply message queueing environment
CN111783124B (en) Data processing method, device and server based on privacy protection
WO2017017501A1 (en) Cryptographically secure financial instruments
WO2019005845A1 (en) Variable relinearization in homomorphic encryption
TWI729698B (en) Data processing method, device and electronic equipment
CN107612683B (en) Encryption and decryption method, device, system, equipment and storage medium
WO2014137394A1 (en) Privacy-preserving ridge regression using partially homomorphic encryption and masks
CN110084599B (en) Key processing method, device, equipment and storage medium
CN112256275B (en) Code confusion method, device, electronic equipment and medium
CN112905187B (en) Compiling method, compiling device, electronic equipment and storage medium
Garimella et al. Characterizing and optimizing end-to-end systems for private inference
CN114884675A (en) Multi-party privacy intersection method, device, equipment and medium based on bit transmission
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
Rahaman et al. Secure Multi-Party Computation (SMPC) Protocols and Privacy
CN117978361A (en) Cloud-based privacy computing method and device, electronic equipment and readable medium
Folkerts et al. REDsec: Running Encrypted DNNs in Seconds.
CN111125788A (en) Encryption calculation method, computer equipment and storage medium
CN110290119B (en) JSON message encryption method, decryption method and device
US11539521B2 (en) Context based secure communication

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