Data processing method, device, medium, equipment and product for secure computation
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING ZITIAO NETWORK TECH CO LTD
- Filing Date
- 2025-09-29
- Publication Date
- 2026-06-05
Smart Images

Figure CN121077642B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of secure multi-party computation, and more specifically, to a data processing method, apparatus, medium, device, and product for secure computation. Background Technology
[0002] Secure multi-party computation, also known as secure multi-party computation (MPC), allows multiple parties to collaboratively compute the result of a function without revealing the input data of each party. The result is then made public to one or more of the parties. Typical applications of secure multi-party computation include joint statistical analysis of privacy-preserving multi-party data and machine learning. Here, the function is a statistical operation function, a machine learning algorithm, etc.
[0003] In multi-party secure computation (MPC), to prevent the leakage of data and intermediate computation results, data or intermediate results can be shared among all parties. Each party holds a data shard, and the shards held by all parties are merged to reconstruct the corresponding data. In the development and application of MPC technology, in addition to focusing on the security of the MPC computation protocol itself, the accuracy of MPC itself also needs to be emphasized. Ensuring the accuracy of MPC is crucial for guaranteeing the reliability and effectiveness of the multi-party secure computation process and results. Summary of the Invention
[0004] This summary section is provided to briefly introduce the concepts, which will be described in detail in the detailed description section below. This summary section is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0005] In a first aspect, this disclosure provides a data processing method for secure computing, wherein two parties involved in the secure computing each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point. The method is applied to a first party, which is one of the two parties, and the method includes the following steps performed by the first party:
[0006] Shift the first slice of the first fixed point held by the first participant to the right;
[0007] Based on the first slice, a shift correction amount is calculated with the second participant to obtain a second slice of the shift correction amount; wherein, the second participant is the other of the two participants;
[0008] The first shifted piece is corrected using the second piece to obtain the first corrected piece;
[0009] The first data processing task is executed based on the first corrected fragment.
[0010] Secondly, this disclosure provides a data processing apparatus for secure computing, wherein two participants in the secure computing each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point, the apparatus being applied to the first participant, which is one of the two participants, the apparatus comprising:
[0011] The first shift module is used to shift the first piece of the first fixed point number held by the first participant to the right;
[0012] The first calculation module is used to calculate the shift correction amount with the second participant based on the first slice, and obtain the second slice of the shift correction amount; wherein the second participant is the other of the two participants;
[0013] The first correction module is used to correct the shifted first piece using the second piece to obtain the first corrected piece;
[0014] The first execution module is used to execute the first data processing task based on the first corrected fragment.
[0015] Thirdly, this disclosure provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the data processing method for secure computing provided in the first aspect of this disclosure.
[0016] Fourthly, this disclosure provides an electronic device, comprising: a storage device having a computer program stored thereon; and a processing device for executing the computer program in the storage device to implement the steps of the data processing method for secure computing provided in the first aspect of this disclosure.
[0017] Fifthly, this disclosure provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the data processing method for secure computing provided in the first aspect of this disclosure.
[0018] In the above technical solution, the first and second participants shift their respective fragments of the first fixed-point number to the right. Simultaneously, based on their respective fragments of the first fixed-point number, the first and second participants jointly calculate a shift correction amount, each obtaining a fragment with the shift correction amount. Then, the first and second participants use their obtained fragments with shift correction amounts to correct their local shifted fragments and execute the first data processing task based on the corrected fragments. By shifting their own fixed-point number fragments and then correcting the shifted fragments with the corresponding correction amounts, the accuracy of the fixed-point number shifting results can be improved, ensuring the reliable execution of the first data processing task. Therefore, this solution can protect data security and ensure accuracy in scenarios such as model training and SQL queries.
[0019] Other features and advantages of this disclosure will be described in detail in the following detailed description section. Attached Figure Description
[0020] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale. In the drawings:
[0021] Figure 1 This is a schematic diagram illustrating an acute angle ∠POQ in a planar coordinate system according to an exemplary embodiment.
[0022] Figure 2 This is a schematic diagram of an acute angle ∠POQ in a planar coordinate system according to another exemplary embodiment.
[0023] Figure 3 This is a schematic diagram of an acute angle ∠POQ in a planar coordinate system according to yet another exemplary embodiment.
[0024] Figure 4 This is a schematic diagram of an acute angle ∠POQ in a planar coordinate system according to yet another exemplary embodiment.
[0025] Figure 5 This is a flowchart illustrating a data processing method for secure computation applied to a first participant, according to an exemplary embodiment.
[0026] Figure 6 This is a flowchart illustrating a data processing method for secure computation applied to a second participant, according to an exemplary embodiment.
[0027] Figure 7This is a block diagram illustrating a data processing apparatus for secure computation applied to a first participant, according to an exemplary embodiment.
[0028] Figure 8 This is a block diagram illustrating a data processing apparatus for secure computation applied to a second participant, according to an exemplary embodiment.
[0029] Figure 9 This is a schematic diagram of the structure of an electronic device according to an exemplary embodiment. Detailed Implementation
[0030] Before introducing specific embodiments of this disclosure, the terminology involved in this disclosure and the specific application scenarios of multi-party secure computation will be explained first.
[0031] Communication volume: Since the data of the participants in secure computation are on different machines, they need to communicate over a network to complete the interaction. During the computation process, encrypted data will be transmitted over the network, and the amount of data transmitted is the communication volume.
[0032] A ring is a set that defines two operations: addition and multiplication. It forms an abelian group for addition and a semigroup for multiplication for all elements except zero. Multiplication satisfies the distributive property of addition.
[0033] Secret sharing, also known as secret partitioning or secret sharing, works by dividing a secret (such as a key or private data) into multiple shares, each held by a different data holder. The secret can only be recovered when more than a certain number of parties merge their shares; shares obtained from fewer than the threshold cannot recover any information from the secret. In multi-party secure computation, the threshold number is usually the same as the number of participating parties, and the shares into which the secret is divided can be called fragments. The private data refers to the data that the parties do not want to know in a multi-party secure computation.
[0034] Secret sharing is an important technique in secure multi-party computation. Common forms of secret sharing in secure multi-party computation include arithmetic sharing, Boolean sharing, and Yao's Sharing.
[0035] Arithmetic sharing, also known as sum sharing, involves dividing an integer x into two slices, x = x... L +x R Mod 2 n The shared form (translated to [0, 2) nThe interval (-1] is distributed between the two parties, that is, x is stored in a shared manner in the ring A between the two parties. This makes one party unaware of x R The other party is unaware of x L Neither of the two sides can obtain the complete form of x. R and x L This refers to arithmetic shares or A-shares for x. In secure two-way computation, the A-shares form is more suitable for arithmetic operations, such as addition and multiplication.
[0036] The arithmetic piecewise representation method defined above It can only represent integers; for decimals, it is generally stored using fixed-point numbers. That is, for a decimal x, it will be... It is stored in both P0 and P1 in an arithmetic-shared manner. Here, f is a fixed point and is a preset integer.
[0037] For the multiplication of two fixed-point numbers x and y, in the case of After the arithmetic slice execution of the secure multiplication protocol, a truncation operation is still required. Currently, a probabilistic truncation protocol is used for this, but the truncated result is correct with a certain probability, while the probability of error is approximately |x| / 2. n This affects the accuracy of the shift.
[0038] Specifically, the above probabilistic shift protocol is executed by P0 and P1, where the input to P0 is a fragment x1 of the data to be shifted. 00 The input to P1 is another slice x of the data to be shifted x1. 01 ,in, The shifted fragments of the output from P0 are [x 00 / 2 f The shifted fragments output by P1 are 2. n -[(2 n -x 01 ) / 2 f ].
[0039] In view of this, the present disclosure provides a data processing method, apparatus, medium, device and product for secure computing.
[0040] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0041] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0042] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0043] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0044] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0045] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0046] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, relevant users should be informed of the type, scope of use, and usage scenarios of the information involved in this disclosure through appropriate means in accordance with relevant laws and regulations, and authorization should be obtained from the relevant users. Among them, relevant users may include any type of rights holder, such as individuals, enterprises, and groups.
[0047] For example, in response to receiving an active request from a user, a prompt message is sent to the relevant user to clearly inform the user that the requested operation will require obtaining and using the user's information, thereby enabling the relevant user to choose whether to provide information to the software or hardware such as the electronic device, application, server, or storage medium that performs the operation of the technical solution disclosed herein based on the prompt message.
[0048] As an optional but non-restrictive implementation, in response to a user's active request, a prompt message can be sent to the user, such as a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide information to the electronic device.
[0049] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0050] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition, use, storage or deletion of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0051] Before describing the specific implementation of this disclosure, the principle of the data processing method for secure computing in this disclosure will first be introduced.
[0052] In this disclosure, secure computation is used by the first and second participants to right-shift a first fixed-point number. The first fixed-point number is arithmetically shared by the first and second participants, meaning that each participant in the secure computation holds a slice of the first fixed-point number. Specifically, the first participant holds one slice (i.e., the first slice) x0 of the first fixed-point number x, and the second participant holds another slice (i.e., the fifth slice) x1 of the first fixed-point number x. The first fixed-point number is a number with a fixed decimal point.
[0053] Specifically, the first fixed-point number x is stored in the first and second participants in a subtractive-shared manner, where the first fixed-point number is the difference between the first and fifth partitions, 2. n The result of taking the modulus is x = (x0 - x1) mod 2 n ,and That is, both the first slice x0 and the fifth slice x1 belong to the modulo 2 power space. The number of right shift bits d of the first fixed-point number can be set according to the calculation requirements, and It is understood that the first fixed number in this disclosure may be any data that the holder is not comfortable disclosing.
[0054] The principles of data processing methods used for secure computing are as follows:
[0055] make Where e is the base of the natural logarithm, and i is the imaginary unit. According to Euler's formula, we can obtain the mapping point P of X0 in the plane coordinate system with the origin O and the mapping point Q of X1 in the same plane coordinate system. The two mapping points form an acute angle ∠POQ with the origin O in the plane coordinate system, as shown below. Figures 1 to 4 As shown.
[0056] like Figure 1 and Figure 2 As shown, when x = x0 - x1, the positive real axis of the plane coordinate system lies outside the acute angle ∠POQ. Figure 3 and Figure 4 As shown, when x = x0 - x1 ± 2 n At that time, the positive real axis of the plane coordinate system lies within the acute angle ∠POQ. Specifically, as... Figure 3 As shown, when x = x0 - x1 + 2 n At that time, P is located in the first quadrant of the plane coordinate system, and Q is located in the fourth quadrant of the plane coordinate system; as Figure 4 As shown, when x = x0 - x1 - 2 n At that time, P is located in the fourth quadrant of the plane coordinate system, and Q is located in the first quadrant of the plane coordinate system.
[0057] When x = x0 - x1, x >> d ≈ (x0 >> d) - (x1 >> d), where x >> d represents shifting x to the right by d bits, x0 >> d represents shifting x0 to the right by d bits, and x1 >> d represents shifting x1 to the right by d bits.
[0058] In x = x0 - x1 + 2 n When x>>d≈(x0>>d)-(x1>>d)+2 n-d .
[0059] In x = x0 - x1 - 2 n When x>>d≈(x0>>d)-(x1>>d)-2 n-d .
[0060] In summary, x >> d ≈ (x0 >> d) - (x1 >> d) - 2 n-d +a0b1*2 n-d -b0a1*2 n-dSpecifically, when P is located in the first quadrant of the plane coordinate system, a0 = 1; when P is located in any quadrant other than the first quadrant, a0 = 0. When P is located in the fourth quadrant of the plane coordinate system, b0 = 1; when P is located in any quadrant other than the fourth quadrant, b0 = 0. When Q is located in the first quadrant of the plane coordinate system, a1 = 1; when Q is located in any quadrant other than the first quadrant, a1 = 0. When Q is located in the fourth quadrant of the plane coordinate system, b1 = 1; when Q is located in any quadrant other than the fourth quadrant, b1 = 0.
[0061] Define as follows The function f(x) is given by f(x) such that f(0) = 0 and f(1) = 2. n-d Let x be the independent variable. In x >> d ≈ (x0 >> d) - (x1 >> d) - 2 n-d +a0b1*2 n-d -b0a1*2 n-d In this process, the first participant can calculate x0 >> d locally, and the second participant can calculate x1 >> d locally. Thus, the first and second participants only need to collaboratively calculate f(a0b1) - f(b0a1), where f(a0b1) = a0b1 * 2. n-d f(b0a1) = b0a1 * 2 n-d Among them, a0 and b0 are held by the first participant, and a1 and b1 are held by the second participant.
[0062] Since a0 and b0 are held by the first participant, and a1 and b1 are held by the second participant, the first and second participants need to collaboratively calculate f(a0b1) to obtain a fragment of f(a0b1) respectively. At the same time, the first and second participants need to collaboratively calculate f(b0a1) to obtain a fragment of f(b0a1) respectively. Then, the first participant determines the difference between its own fragment of f(a0b1) and its own fragment of f(b0a1) as a fragment of f(a0b1)-f(b0a1). At the same time, the second participant determines the difference between its own fragment of f(b0a1) and its own fragment of f(b0a1) as a fragment of f(a0b1)-f(b0a1).
[0063] It is noted that When the first and second participants jointly calculate f(a0b1), the second participant can calculate f(b1) independently. In this way, the first and second participants only need to jointly calculate... That's fine. Similarly, When the first and second participants jointly calculate f(b0a1), the second participant can calculate f(a1) independently. In this way, the first and second participants only need to jointly calculate... That's all.
[0064] Figure 5 This is a flowchart illustrating a data processing method for secure computation applied to a first participant, according to an exemplary embodiment. The first participant is one of two participants in the secure computation, and the second participant is the other of the two participants in the secure computation. Figure 5 As shown, the data processing method for secure computation applied to the first participant may include the following S101 to S104.
[0065] In S101, the first slice of the first fixed point held by the first participant is shifted to the right.
[0066] When the first participant and the second participant realize the right shift of the first fixed point number through secure computation, the two participants first shift the slices of the first fixed point number they hold respectively. That is, the first participant shifts the first slice of the first fixed point number they hold to the right by d positions, and the second participant shifts the fifth slice of the first fixed point number they hold to the right by d positions.
[0067] In S102, based on the first slice, the shift correction amount is calculated with the second participant to obtain the second slice of the shift correction amount.
[0068] In S103, the first piece after shifting is corrected using the second piece to obtain the first corrected piece.
[0069] In this disclosure, after the holder of the first fixed-point fragment shifts its own fragment, the initial shift result may have a deviation. Therefore, after the two participants shift their own fixed-point fragments, they can jointly calculate the shift correction amount to obtain a fragment with the shift correction amount, namely the second fragment and the eighth fragment. Then, they use the fragment with the shift correction amount obtained by themselves to correct the local shifted fragment to obtain a more accurate shift result fragment. That is, the first participant uses the second fragment to correct the shifted first fragment to obtain the first corrected fragment, and the second participant uses the eighth fragment to correct the shifted fifth fragment to obtain the second corrected fragment.
[0070] Specifically, the first participant can determine the first corrected fragment as the sum of the shifted first fragment and the second fragment, and the second participant can determine the second corrected fragment as the sum of the shifted fifth fragment and the eighth fragment.
[0071] In S104, the first data processing task is executed based on the first corrected fragment.
[0072] After obtaining the first corrected fragment, the first participant can execute the first data processing task based on the first corrected fragment; similarly, after obtaining the second corrected fragment, the second participant can execute the first data processing task based on the second corrected fragment.
[0073] In this disclosure, the first data processing task mentioned above can be a Structured Query Language (SQL) query task or a machine learning model training task.
[0074] In one implementation, when the first data processing task is an SQL query task, the first and second participants can jointly perform the SQL query based on their respective feature fragments to obtain query result fragments. Then, each participant sends its obtained query result fragments back to the querying party. Upon receiving the query result fragments from both parties, the querying party merges them to obtain the final query result. Specifically, during the SQL query process, when encountering secure computation scenarios requiring shifting, such as secure multiplication or secure inner product calculations, the first and second participants can first execute the corresponding secure computation protocol, such as a secure multiplication protocol or a secure inner product protocol. Then, they can perform fixed-point number shifting by running the data processing method for secure computation provided in this disclosure to obtain a more accurate shifting result, thereby achieving a more precise SQL query.
[0075] In another implementation, when the first data processing task is a machine learning model training task, the second participant can utilize the features of the first participant for model training. Specifically, the first and second participants can perform model training using MPC (Multi-Processing) based on their respective feature slices to obtain model parameter slices. Then, the first participant sends its own model parameter slices to the second participant, which merges the model parameter slices obtained from the first participant with its own to obtain the model parameters, thus completing the second participant's model training. This allows the second participant to utilize the features of the first participant for model training when it lacks or has insufficient training data, improving model training accuracy while ensuring the data privacy of the first participant. During model training, when encountering secure computation scenarios that require shifting, such as secure multiplication calculations or secure inner product calculations, for example, when calculating model loss, the first and second participants can first execute the corresponding secure computation protocols, such as secure multiplication protocols or secure inner product protocols. Then, they can perform fixed-point shifting by running the data processing method for secure computation disclosed herein to obtain shifting results with higher accuracy, thereby obtaining a more accurate model.
[0076] In the above technical solution, the first and second participants shift their respective fragments of the first fixed-point number to the right. Simultaneously, based on their respective fragments of the first fixed-point number, the first and second participants jointly calculate a shift correction amount, each obtaining a fragment with the shift correction amount. Then, the first and second participants use their obtained fragments with shift correction amounts to correct their local shifted fragments and execute the first data processing task based on the corrected fragments. By shifting their own fixed-point number fragments and then correcting the shifted fragments with the corresponding correction amounts, the accuracy of the fixed-point number shifting results can be improved, ensuring the reliable execution of the first data processing task. Therefore, this solution can protect data security and ensure accuracy in scenarios such as model training and SQL queries.
[0077] The following is a detailed description of the specific implementation method for obtaining the second piece of the shift correction amount based on the first piece and the second participant in step S102 above. Specifically, it can be achieved through the following steps (a1) to (a3):
[0078] Step (a1): Generate the first Boolean value and the second Boolean value based on the first slice.
[0079] Step (a2): Calculate the first value of the product of the first Boolean value and the third Boolean value on f(x) with the second participant to obtain the third slice of the first value, and calculate the second value of the product of the second Boolean value and the fourth Boolean value on f(x) with the second participant to obtain the fourth slice of the second value.
[0080] Step (a3): The difference between the third and fourth slices is used to determine the second slice as the shift correction amount.
[0081] In this disclosure, the third and fourth Boolean values are generated by the second participant based on the fifth fragment of the first fixed point held by the second participant.
[0082] When the first and second participants jointly calculate the shift correction based on their respective slices of the first fixed point, the first participant first generates a first Boolean value a0 and a second Boolean value b0 according to the first slice. At the same time, the second participant generates a third Boolean value b1 and a fourth Boolean value a1 according to the fifth slice. Then, the first and second participants jointly calculate the first value of the product of the first Boolean value a0 and the third Boolean value b1 on f(x), that is, calculate f(a0b1). The first participant obtains one slice of the first value f(a0b1) (i.e., the third slice), and the second participant obtains another slice of the first value f(a0b1) (i.e., the ninth slice). At the same time, the first and second participants jointly calculate the second value of the product of the second Boolean value b0 and the fourth Boolean value a1 on f(x), that is, calculate f(b0a1). The first participant obtains the fourth slice of the second value f(b0a1), and the first participant obtains the tenth slice of the second value f(b0a1).
[0083] The shift correction is the difference between the first value and the second value, that is, the shift correction is equal to f(a0b1)-f(b0a1).
[0084] After obtaining the first and second values through secure computation, the first participant can determine the difference between the third and fourth slices as one slice of the shift correction amount, namely the second slice. The second participant can determine the ninth and tenth slices as another slice of the shift correction amount, namely the eighth slice.
[0085] The following is a detailed explanation of the specific implementation method for generating the first Boolean value and the second Boolean value based on the first slice in step (a1) above. Specifically, it can be achieved through the following steps (a11) to (a13):
[0086] Step (a11): Using the first transformation rule, convert the first piece into the first radian.
[0087] For example, the first transformation rule can be used to convert the first piece into the first radian θ using the following equation:
[0088]
[0089] Step (a12): Use Euler's formula to map the first radian onto the plane coordinate system to obtain the first mapped point.
[0090] Euler's formula e iθ =cosθ+isinθ, where the coordinates of the first mapping point in the plane coordinate system are (cosθ,sinθ).
[0091] Step (a13): Generate the first Boolean value and the second Boolean value based on the quadrant information of the first mapping point in the plane coordinate system.
[0092] Specifically, if the first mapping point is located in the first quadrant of the plane coordinate system, the first Boolean value is 1; if the first mapping point is located in any quadrant other than the first quadrant of the plane coordinate system, the first Boolean value is 0.
[0093] If the first mapping point is located in the fourth quadrant of the plane coordinate system, the second Boolean value is 1; if the first mapping point is located in any quadrant other than the fourth quadrant of the plane coordinate system, the second Boolean value is 0.
[0094] The following is a detailed explanation of the specific implementation method for obtaining the third slice of the first value by calculating the product of the first Boolean value and the third Boolean value with the second participant in step (a2) above. Specifically, it can be achieved through the following steps (a21) to (a25):
[0095] Step (a21): Obtain the first random number in the modulo 2 space and the second random number in the modulo 2 to the power of n space.
[0096] Step (a22): Use the first random number to mask the first Boolean value to obtain the first masked data.
[0097] In one implementation, the difference between a first Boolean value and a first random number can be determined as the first masking data.
[0098] Step (a23): Send the first masking data to the second participant.
[0099] In this disclosure, the second participant uses a third random number to mask a third Boolean value to obtain second masked data, and sends the second masked data to the first participant. The second participant then generates a new data set based on the first masked data, the second masked data, and a fourth random number. The sixth segment, in which the third random number belongs to the modulo 2 space and the fourth random number belongs to the modulo 2 power of n space.
[0100] Specifically, when the first participant and the second participant jointly calculate the first value of the product of the first Boolean value and the third Boolean value in f(x), the first participant can first obtain the first random number in the modulo 2 space. The second random number u0 is obtained from the space of modulo 2 to the power of n. Then, the first random number is used. The first Boolean value a0 is masked to obtain the first masked data δa0, and this first masked data δa0 is sent to the second participant; at the same time, the second participant can first obtain the third random number in the modulo 2 space. The fourth random number u1 is obtained from the space of modulo 2 to the power of n. Then, the third random number is used. The third Boolean value b1 is masked to obtain the second masked data δb1, and the second masked data δb1 is sent to the first participant.
[0101] Among them, the above four random numbers satisfy
[0102] Step (a24): In response to receiving the second masking data sent by the second participant, generate a new masking data based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment.
[0103] After receiving the second masking data sent by the second participant, the first participant can generate a new data structure based on the first Boolean value, the first masking data, the second masking data, and the second random number. One of the fragments, namely the seventh fragment; after receiving the first masking data sent by the first participant, the second participant can generate a... Another slice, namely the sixth slice.
[0104] For example, the first participant can generate the following equation based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment U1:
[0105]
[0106] For example, the second participant can generate the following equation based on the first masking data, the second masking data, and the fourth random number. The sixth segment, U2:
[0107]
[0108] The following addresses the above. =Seventh slice + Sixth slice, i.e. Explain the correctness of this.
[0109]
[0110] therefore,
[0111] Step (a25): According to The seventh slice is used to generate the third slice with the first value f(a0b1).
[0112] In this disclosure, the first participating party obtains After the seventh slice U1, -U1 / 2 can be determined as the third slice of the first value f(a0b1); the second participant obtains After the sixth segment U2, it can be The ninth slice is determined to be the first value f(a0b1).
[0113] The following is a detailed description of the specific implementation method for obtaining the first random number in the modulo-2 space in step (a21) above. Specifically, the first participant can obtain the first random number in various ways. In one implementation, the first random number is obtained from a semi-trusted third party, wherein the semi-trusted third party is used to randomly generate the first random number.
[0114] In this embodiment, the semi-trusted first party can randomly generate a first random number in the modulo 2 space, and then send the first random number to the first participant.
[0115] In another implementation, to reduce communication overhead, the first participant and the semi-trusted third party can generate a first random number based on a jointly held seed. Specifically, the first participant can generate a first random number in modulo-2 space based on its own first seed, while the semi-trusted third party synchronously generates the first random number based on its own first seed.
[0116] The following is a detailed description of the specific implementation method for obtaining the second random number in the modulo 2 power space in step (a21) above. Specifically, the first participant can obtain the second random number in various ways. In one implementation, the first participant can obtain the second random number from a semi-trusted third party, wherein the semi-trusted third party is used to randomly generate the second random number.
[0117] In this implementation, the semi-trusted first party can randomly generate a second random number in the space of n powers modulo 2, and then send the second random number to the first participant.
[0118] In another implementation, to reduce communication overhead, the first participant and the semi-trusted third party can generate a second random number based on a jointly held seed. Specifically, the first participant can generate a second random number in the modulo 2 power space based on its own second seed, while the semi-trusted third party synchronously generates the second random number based on its own second seed.
[0119] It should be noted that the first participant can use a similar method as in step (a2) above to calculate the first value of the product of the first Boolean value and the third Boolean value on f(x) with the second participant, and calculate the second value of the product of the second Boolean value and the fourth Boolean value on f(x). This disclosure will not elaborate further on this.
[0120] Figure 6 This is a flowchart illustrating a data processing method for secure computation applied to a second participant, according to an exemplary embodiment. Figure 6 As shown, the data processing method for secure computation applied to the second participant may include the following S201 to S204.
[0121] In S201, the fifth slice of the first fixed point held by the second participant is shifted to the right.
[0122] In S202, based on the fifth slice, the shift correction amount is calculated with the first participant to obtain the eighth slice of the shift correction amount.
[0123] In S203, the shifted fifth piece is corrected using the eighth piece to obtain the second corrected piece.
[0124] In S204, the first data processing task is executed based on the second corrected fragment.
[0125] In the above technical solution, the first and second participants shift their respective fragments of the first fixed-point number to the right. Simultaneously, based on their respective fragments of the first fixed-point number, the first and second participants jointly calculate a shift correction amount, each obtaining a fragment with the shift correction amount. Then, the first and second participants use their obtained fragments with shift correction amounts to correct their local shifted fragments and execute the first data processing task based on the corrected fragments. By shifting their own fixed-point number fragments and then correcting the shifted fragments with the corresponding correction amounts, the accuracy of the fixed-point number shifting results can be improved, ensuring the reliable execution of the first data processing task. Therefore, this solution can protect data security and ensure accuracy in scenarios such as model training and SQL queries.
[0126] The following is a detailed description of the specific implementation method for obtaining the eighth piece of the shift correction amount based on the fifth piece and the first participant in step S202 above. Specifically, it can be achieved through the following steps (b1) to (b3):
[0127] Step (b1): Generate the third and fourth Boolean values based on the fifth slice.
[0128] Step (b2): Calculate the first value of the product of the first Boolean value and the third Boolean value on f(x) with the first participant to obtain the ninth slice of the first value, and calculate the second value of the product of the second Boolean value and the fourth Boolean value on f(x) with the first participant to obtain the tenth slice of the second value.
[0129] Step (b3): Determine the difference between the ninth slice and the tenth slice as the eighth slice.
[0130] The first Boolean value and the second Boolean value are generated by the first participant based on the first fragment of the first fixed point number held by the first participant.
[0131] The following is a detailed explanation of the specific implementation method for generating the third and fourth Boolean values based on the fifth slice in step (b1) above. Specifically, it can be achieved through the following steps (b11) to (b13):
[0132] Step (b11): Using the first transformation rule, convert the fifth piece into the second radian.
[0133] For example, the fifth piece can be converted to the second radian θ1 using the first conversion rule and the following equation:
[0134]
[0135] Step (b12): Use Euler's formula to map the second radian onto the plane coordinate system to obtain the second mapped point.
[0136] Euler's formula e iθ1 =cosθ1+isinθ1, where the coordinates of the second mapping point in the plane coordinate system are (cosθ1,sinθ1).
[0137] Step (b13): Generate the third and fourth Boolean values based on the quadrant information of the second mapping point in the plane coordinate system.
[0138] Specifically, if the second mapping point is located in the first quadrant of the plane coordinate system, the fourth Boolean value is 1; if the second mapping point is located in any quadrant other than the first quadrant of the plane coordinate system, the fourth Boolean value is 0.
[0139] If the second mapping point is located in the fourth quadrant of the plane coordinate system, the third Boolean value is 1; if the second mapping point is located in any quadrant other than the fourth quadrant of the plane coordinate system, the third Boolean value is 0.
[0140] The following is a detailed explanation of the specific implementation method for obtaining the ninth slice of the first value in step (b2) above, which involves calculating the product of the first Boolean value and the third Boolean value with the first participant and then using the first value as the first value in f(x). Specifically, this can be achieved through the following steps (b21) to (b25):
[0141] Step (b21): Obtain the third random number in the modulo 2 space and the fourth random number in the modulo 2 to the power of n space.
[0142] Step (b22): Use the third random number to mask the third Boolean value to obtain the second masked data.
[0143] Step (b23): Send the second masking data to the first participant.
[0144] The first participant is used to generate a random number based on a first Boolean value, a first masking data, a second masking data, and a second random number. The seventh segment is used by the first participant to mask the first Boolean value using the first random number, obtain the first masked data, and send the first masked data to the second participant.
[0145] Step (b24): In response to receiving the first masking data sent by the first participant, generate a new masking data based on the first masking data, the second masking data, and the fourth random number. The sixth segment.
[0146] Step (b25): Generate the ninth fragment based on the sixth fragment.
[0147] The following is a detailed description of the specific implementation method for obtaining the third random number in the modulo-2 space in step (b21) above. Specifically, the second participant can obtain the third random number in various ways. In one implementation, the third random number is obtained from a semi-trusted third party, wherein the semi-trusted third party is used to randomly generate the third random number.
[0148] In this implementation, the semi-trusted first party can randomly generate a third random number in the modulo 2 space, and then send the third random number to the second participant.
[0149] In another implementation, to reduce communication overhead, the second participant and the semi-trusted third party can generate a third random number based on a jointly held seed. Specifically, the second participant can generate a third random number in modulo-2 space based on its own third seed, while the semi-trusted third party synchronously generates the third random number based on its own third seed.
[0150] The following is a detailed explanation of the specific implementation method for obtaining the fourth random number in the modulo 2 power space in step (b21) above. Specifically, the second participant can obtain the fourth random number from a semi-trusted third party, wherein the semi-trusted third party is used to generate the first random number, the second random number, and the third random number, and according to... Calculate the fourth random number.
[0151] The specific implementation of each step in the data processing method for secure computing applied to the first participant according to the embodiments of this disclosure has been described in detail in the data processing method for secure computing applied to the second participant according to the embodiments of this disclosure, and will not be repeated here.
[0152] Figure 7 This is a block diagram illustrating a data processing apparatus for secure computation applied to a first participant according to an exemplary embodiment. The two participants in the secure computation each hold a slice of a first fixed-point number, where the first fixed-point number is a number with a fixed decimal point. The first participant is one of the two participants. The data processing apparatus 300 for secure computation applied to the first participant includes:
[0153] The first shift module 301 is used to shift the first piece of the first fixed point number held by the first participant to the right;
[0154] The first calculation module 302 is used to calculate the shift correction amount with the second participant based on the first slice, and obtain the second slice of the shift correction amount; wherein the second participant is the other of the two participants;
[0155] The first correction module 303 is used to correct the shifted first piece using the second piece to obtain the first corrected piece;
[0156] The first execution module 304 is used to execute the first data processing task based on the first corrected fragment.
[0157] In the above technical solution, the first and second participants shift their respective fragments of the first fixed-point number to the right. Simultaneously, based on their respective fragments of the first fixed-point number, the first and second participants jointly calculate a shift correction amount, each obtaining a fragment with the shift correction amount. Then, the first and second participants use their obtained fragments with shift correction amounts to correct their local shifted fragments and execute the first data processing task based on the corrected fragments. By shifting their own fixed-point number fragments and then correcting the shifted fragments with the corresponding correction amounts, the accuracy of the fixed-point number shifting results can be improved, ensuring the reliable execution of the first data processing task. Therefore, this solution can protect data security and ensure accuracy in scenarios such as model training and SQL queries.
[0158] Optionally, the first correction module 303 includes: a first generation submodule, configured to generate a first Boolean value and a second Boolean value based on the first slice; and a first collaborative calculation submodule, configured to calculate with the second participant a first value of the product of the first Boolean value and the third Boolean value on f(x) to obtain a third slice of the first value, and to calculate with the second participant a second value of the product of the second Boolean value and the fourth Boolean value on f(x) to obtain a fourth slice of the second value; wherein f(x) satisfies f(0) = 0 and f(1) = 2. n-d The first slice belongs to the modulo 2 power of n space, d is the number of right shifts of the first fixed-point number, x is the independent variable, and the third and fourth Boolean values are generated by the second participant based on the fifth slice of the first fixed-point number held by the second participant. The first fixed-point number is the difference between the first slice and the fifth slice log2. n The result of the modulus calculation is the difference between the first value and the second value; the first determining submodule is used to determine the difference between the third segment and the fourth segment as the second segment.
[0159] Optionally, the first collaborative computing submodule includes: a first acquisition submodule, configured to acquire a first random number in the modulo-2 space and a second random number in the modulo-2 power of n space; a first masking processing submodule, configured to mask the first Boolean value using the first random number to obtain first masking data; and a first sending submodule, configured to send the first masking data to the second participant; wherein the second participant is configured to generate a new data set based on the first masking data, the second masking data, and the fourth random number. The sixth segment, in which the second participant uses a third random number to mask the third Boolean value to obtain the second masked data, and sends the second masked data to the first participant, wherein the third random number belongs to the modulo-2 space, the fourth random number belongs to the modulo-2 power of n space, a0 is the first Boolean value, and b1 is the third Boolean value. Let u0 be the first random number and u0 be the second random number. The third random number is u1, and the fourth random number is u1; the second generation submodule is used to generate, in response to receiving the second masking data sent by the second participant, a random number based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh fragment; the third generation submodule, used to generate the third fragment based on the seventh fragment.
[0160] Optionally, the second generation submodule is used to generate the seventh fragment based on the first Boolean value, the first masking data, the second masking data, and the second random number using the following formula:
[0161]
[0162] Wherein, U1 is the seventh segment, δb1 is the second masking data, and δa0 is the first masking data.
[0163] Optionally, the first acquisition submodule includes one of the following: a fourth generation submodule, used to generate the first random number in the modulo 2 space based on the first seed held by the first participant; wherein, a semi-trusted third party is used to synchronously generate the first random number based on the first seed held by the semi-trusted third party; and a second acquisition submodule, used to acquire the first random number from the semi-trusted third party; wherein, the semi-trusted third party is used to randomly generate the first random number.
[0164] Optionally, the first acquisition submodule includes one of the following: a fifth generation submodule, used to generate the second random number in the modulo 2 power space based on the second seed held by the first participant; wherein, a semi-trusted third party is used to synchronously generate the second random number based on the second seed held by the semi-trusted third party; a third acquisition submodule, used to acquire the second random number from the semi-trusted third party; wherein, the semi-trusted third party is used to randomly generate the second random number.
[0165] Optionally, the first generation submodule includes: a first transformation submodule, used to convert the first piece into a first radian using a first transformation rule; a first mapping submodule, used to map the first radian to a plane coordinate system using Euler's formula to obtain a first mapping point; and a sixth generation submodule, used to generate the first Boolean value and the second Boolean value based on the quadrant information of the first mapping point in the plane coordinate system.
[0166] Optionally, the sixth generation submodule includes: a second determining submodule, configured to set the first Boolean value to 1 if the first mapping point is located in the first quadrant of the plane coordinate system; a third determining submodule, configured to set the first Boolean value to 0 if the first mapping point is located in any quadrant other than the first quadrant of the plane coordinate system; a fourth determining submodule, configured to set the second Boolean value to 1 if the first mapping point is located in the fourth quadrant of the plane coordinate system; and a fifth determining submodule, configured to set the second Boolean value to 0 if the first mapping point is located in any quadrant other than the fourth quadrant of the plane coordinate system.
[0167] Optionally, the first conversion submodule is used to convert the first piece into a first radian using the first conversion rule and the following formula:
[0168]
[0169] Where θ is the first radian, x0 is the first piece, and the first piece belongs to the space of 2 to the power of n.
[0170] Optionally, the second participant is used to: shift the fifth piece of the first fixed point number held by the second participant to the right; calculate the shift correction amount with the first participant based on the fifth piece to obtain the eighth piece of the shift correction amount; and use the eighth piece to correct the shifted fifth piece to obtain the second corrected piece.
[0171] The first data processing task is executed based on the second corrected fragment.
[0172] Optionally, the second participant is configured to: generate a third Boolean value and a fourth Boolean value based on the fifth slice; calculate, with the first participant, a first value of the product of the first Boolean value and the third Boolean value on f(x) to obtain a ninth slice of the first value; and calculate, with the first participant, a second value of the product of the second Boolean value and the fourth Boolean value on f(x) to obtain a tenth slice of the second value; wherein f(x) satisfies f(0) = 0 and f(1) = 2. n-d The fifth slice belongs to the modulo 2 power of n space, d is the number of right shifts of the first fixed-point number, x is the independent variable, and the first Boolean value and the second Boolean value are generated by the first participant based on the first slice of the first fixed-point number held by the first participant. The first fixed-point number is the difference between the first slice and the fifth slice log2. n The result of the modulus calculation is that the shift correction amount is the difference between the first value and the second value; the difference between the ninth slice and the tenth slice is determined as the eighth slice.
[0173] Optionally, the second participant is configured to: obtain a third random number in the modulo-2 space and a fourth random number in the modulo-2 power of n space; use the third random number to mask the third Boolean value to obtain second masking data; and send the second masking data to the first participant; wherein the first participant is configured to generate based on the first Boolean value, the first masking data, the second masking data, and the second random number. In the seventh segment, the first participant uses a first random number to mask the first Boolean value, obtaining the first masked data, and sends the first masked data to the second participant. The first random number belongs to the modulo-2 space, the second random number belongs to the modulo-2 power-of-n space, a0 is the first Boolean value, and b1 is the third Boolean value. Let u0 be the first random number and u0 be the second random number. The third random number is u1, and the fourth random number is u1; in response to receiving the first masking data sent by the first participant, a third random number is generated based on the first masking data, the second masking data, and the fourth random number. The sixth fragment; based on the sixth fragment, the ninth fragment is generated.
[0174] Optionally, the second participant is used to generate, based on the first masking data, the second masking data, and the fourth random number, using the following formula. The sixth segment:
[0175]
[0176] Wherein, U2 is the sixth segment, δb1 is the second masking data, and δa0 is the first masking data.
[0177] Optionally, the first data processing task is a structured query language query task or a machine learning model training task.
[0178] Figure 8 This is a block diagram illustrating a data processing apparatus for secure computation applied to a second participant, according to an exemplary embodiment. The two participants in the secure computation each hold a slice of a first fixed-point number, where the first fixed-point number is a number with a fixed decimal point. The first participant is one of the two participants, and the second participant is the other of the two participants, as shown below. Figure 8 As shown, the data processing device 400 for secure computation applied to the second participant includes: a second shift module 401, used to shift the fifth slice of the first fixed point number held by the second participant to the right; a second calculation module 402, used to calculate a shift correction amount with the first participant based on the fifth slice, to obtain an eighth slice of the shift correction amount; a second correction module 403, used to correct the shifted fifth slice using the eighth slice, to obtain a second corrected slice; and a second execution module 404, used to execute a first data processing task based on the second corrected slice.
[0179] In the above technical solution, the first and second participants shift their respective fragments of the first fixed-point number to the right. Simultaneously, based on their respective fragments of the first fixed-point number, the first and second participants jointly calculate a shift correction amount, each obtaining a fragment with the shift correction amount. Then, the first and second participants use their obtained fragments with shift correction amounts to correct their local shifted fragments and execute the first data processing task based on the corrected fragments. By shifting their own fixed-point number fragments and then correcting the shifted fragments with the corresponding correction amounts, the accuracy of the fixed-point number shifting results can be improved, ensuring the reliable execution of the first data processing task. Therefore, this solution can protect data security and ensure accuracy in scenarios such as model training and SQL queries.
[0180] Optionally, the second calculation module 402 includes: a seventh generation submodule, used to generate a third Boolean value and a fourth Boolean value based on the fifth slice; and a second collaborative calculation submodule, used to calculate with the first participant the first value of the product of the first Boolean value and the third Boolean value on f(x) to obtain a ninth slice of the first value, and to calculate with the first participant the second value of the product of the second Boolean value and the fourth Boolean value on f(x) to obtain a tenth slice of the second value; wherein f(x) satisfies f(0) = 0 and f(1) = 2. n-d The fifth slice belongs to the modulo 2 power of n space, d is the number of right shifts of the first fixed-point number, x is the independent variable, and the first Boolean value and the second Boolean value are generated by the first participant based on the first slice of the first fixed-point number held by the first participant. The first fixed-point number is the difference between the first slice and the fifth slice log2. n The result of the modulus calculation is the difference between the first value and the second value; the sixth determining submodule is used to determine the difference between the ninth slice and the tenth slice as the eighth slice.
[0181] Optionally, the second collaborative computing submodule includes: a fourth acquisition submodule, used to acquire a third random number in the modulo-2 space and a fourth random number in the modulo-2 power of n space; a second masking processing submodule, used to mask the third Boolean value using the third random number to obtain second masking data; and a second sending submodule, used to send the second masking data to the first participant; wherein the first participant is used to generate based on the first Boolean value, the first masking data, the second masking data, and the second random number. In the seventh segment, the first participant uses a first random number to mask the first Boolean value, obtaining the first masked data, and sends the first masked data to the second participant. The first random number belongs to the modulo-2 space, the second random number belongs to the modulo-2 power-of-n space, a0 is the first Boolean value, and b1 is the third Boolean value. Let u0 be the first random number and u0 be the second random number. The third random number is u1, and the fourth random number is u1; the eighth generation submodule is used to generate, in response to receiving the first masking data sent by the first participant, the generation submodule based on the first masking data, the second masking data, and the fourth random number. The sixth fragment; the ninth generation submodule, used to generate the ninth fragment based on the sixth fragment.
[0182] Optionally, the eighth generation submodule is used to generate, based on the first masking data, the second masking data, and the fourth random number, using the following formula. The sixth segment:
[0183]
[0184] Wherein, U2 is the sixth segment, δb1 is the second masking data, and δa0 is the first masking data.
[0185] Optionally, the fourth acquisition submodule includes one of the following: a tenth generation submodule, used to generate the third random number in the modulo 2 space based on the third seed held by the second participant; wherein, a semi-trusted third party is used to synchronously generate the third random number based on the third seed held by the semi-trusted third party; a fifth acquisition submodule, used to acquire the third random number from the semi-trusted third party; wherein, the semi-trusted third party is used to randomly generate the third random number.
[0186] Optionally, the fourth acquisition submodule includes: a sixth acquisition submodule, configured to acquire the fourth random number from the semi-trusted third party; wherein the semi-trusted third party is configured to generate the first random number, the second random number, and the third random number, and according to... Calculate the fourth random number.
[0187] Optionally, the seventh generation submodule includes: a second transformation submodule, used to convert the fifth piece into a second radian using a first transformation rule; a second mapping submodule, used to map the second radian to a plane coordinate system using Euler's formula to obtain a second mapping point; and an eleventh generation submodule, used to generate the third Boolean value and the fourth Boolean value based on the quadrant information of the second mapping point in the plane coordinate system.
[0188] Optionally, the first data processing task is a structured query language query task or a machine learning model training task.
[0189] In addition, this disclosure also provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the data processing method for secure computing provided in this disclosure for a first participant, or implements the steps of the data processing method for secure computing provided in this disclosure for a second participant.
[0190] This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the data processing method for secure computing provided in this disclosure for a first participant, or implements the steps of the data processing method for secure computing provided in this disclosure for a second participant.
[0191] The following is for reference. Figure 9 The diagram illustrates a structural schematic of an electronic device (e.g., a terminal device or a server) 600 suitable for implementing embodiments of the present disclosure. The terminal device in the embodiments of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 9 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0192] like Figure 9 As shown, electronic device 600 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 601, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 602 or a program loaded from storage device 608 into random access memory (RAM) 603. RAM 603 also stores various programs and data required for the operation of electronic device 600. Processing device 601, ROM 602, and RAM 603 are interconnected via bus 604. Input / output (I / O) interface 605 is also connected to bus 604.
[0193] Typically, the following devices can be connected to I / O interface 605: input devices 606 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 607 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 608 including, for example, magnetic tapes, hard disks, etc.; and communication devices 609. Communication device 609 allows electronic device 600 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 9 An electronic device 600 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0194] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 609, or installed from a storage device 608, or installed from a ROM 602. When the computer program is executed by the processing device 601, it performs the functions defined in the methods of embodiments of this disclosure.
[0195] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.
[0196] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0197] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0198] The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: shift a first slice of a first fixed-point number held by a first participant to the right, wherein the two participants in the secure computation each hold a slice of the first fixed-point number, the first fixed-point number being a number with a fixed decimal point; calculate a shift correction amount with a second participant based on the first slice, obtaining a second slice of the shift correction amount, wherein the first participant is one of the two participants, and the second participant is the other of the two participants; correct the shifted first slice using the second slice, obtaining a first corrected slice; and execute a first data processing task based on the first corrected slice.
[0199] Computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof, including but not limited to object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0200] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0201] The modules described in the embodiments of this disclosure can be implemented in software or in hardware. The names of the modules do not necessarily limit the module itself; for example, the first shift module can also be described as "a module that shifts the first piece of the first fixed-point number held by the first participant to the right".
[0202] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0203] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0204] According to one or more embodiments of this disclosure, Example 1 provides a data processing method for secure computing, wherein two parties to the secure computing each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point, the method being applied to a first party, which is one of the two parties, and the method comprising the following steps performed by the first party:
[0205] Shift the first slice of the first fixed point held by the first participant to the right;
[0206] Based on the first slice, a shift correction amount is calculated with the second participant to obtain a second slice of the shift correction amount; wherein, the second participant is the other of the two participants;
[0207] The first shifted piece is corrected using the second piece to obtain the first corrected piece;
[0208] The first data processing task is executed based on the first corrected fragment.
[0209] According to one or more embodiments of this disclosure, Example 2 provides the method of Example 1, wherein calculating a shift correction amount with a second participant based on the first slice to obtain a second slice of the shift correction amount includes:
[0210] Based on the first fragment, generate a first Boolean value and a second Boolean value;
[0211] The second participant calculates the first value of the product of the first Boolean value and the third Boolean value on f(x) to obtain the third slice of the first value, and calculates the second value of the product of the second Boolean value and the fourth Boolean value on f(x) to obtain the fourth slice of the second value; wherein f(x) satisfies f(0) = 0 and f(1) = 2. n-d The first slice belongs to the modulo 2 power of n space, d is the number of right shifts of the first fixed-point number, x is the independent variable, and the third and fourth Boolean values are generated by the second participant based on the fifth slice of the first fixed-point number held by the second participant. The first fixed-point number is the difference between the first slice and the fifth slice log2. n The result of modulo operation is the difference between the first value and the second value;
[0212] The difference between the third segment and the fourth segment is determined as the second segment.
[0213] According to one or more embodiments of this disclosure, Example 3 provides the method of Example 2, wherein calculating a first value of the product of the first Boolean value and the third Boolean value with the second participant on f(x) to obtain a third slice of the first value includes:
[0214] Obtain a first random number in the modulo-2 space and a second random number in the nth power space of the modulo-2 space;
[0215] The first Boolean value is masked using the first random number to obtain the first masked data;
[0216] The first masking data is sent to the second participant; wherein the second participant is used to generate a fourth random number based on the first masking data, the second masking data, and the fourth random number. The sixth segment, in which the second participant uses a third random number to mask the third Boolean value to obtain the second masked data, and sends the second masked data to the first participant, wherein the third random number belongs to the modulo-2 space, the fourth random number belongs to the modulo-2 power of n space, a0 is the first Boolean value, and b1 is the third Boolean value. Let u0 be the first random number and u0 be the second random number. u1 is the third random number, and u1 is the fourth random number;
[0217] In response to receiving the second masking data sent by the second participant, a method is generated based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment;
[0218] The third fragment is generated based on the seventh fragment.
[0219] According to one or more embodiments of this disclosure, Example 4 provides the method of Example 3, wherein the method generates a value based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment includes:
[0220] The seventh fragment is generated based on the first Boolean value, the first masking data, the second masking data, and the second random number using the following formula:
[0221]
[0222] Wherein, U1 is the seventh segment, δb1 is the second masking data, and δa0 is the first masking data.
[0223] According to one or more embodiments of this disclosure, Example 5 provides the method of Example 3, wherein obtaining a first random number in the modulo-2 space includes one of the following:
[0224] Based on the first seed held by the first participant, the first random number in the modulo 2 space is generated; wherein, a semi-trusted third party is used to synchronously generate the first random number based on the first seed held by the semi-trusted third party;
[0225] The first random number is obtained from the semi-trusted third party; wherein the semi-trusted third party is used to randomly generate the first random number.
[0226] According to one or more embodiments of this disclosure, Example 6 provides the method of Example 3, wherein obtaining a second random number in the space of powers of 2 modulo n includes one of the following:
[0227] Based on the second seed held by the first participant, the second random number in the nth power space modulo 2 is generated; wherein, a semi-trusted third party is used to synchronously generate the second random number based on the second seed held by the semi-trusted third party;
[0228] The second random number is obtained from the semi-trusted third party; wherein the semi-trusted third party is used to randomly generate the second random number.
[0229] According to one or more embodiments of this disclosure, Example 7 provides the method of Example 2, wherein generating a first Boolean value and a second Boolean value based on the first slice includes:
[0230] Using the first transformation rule, the first piece is converted into the first radian;
[0231] The first radian is mapped onto a planar coordinate system using Euler's formula to obtain the first mapped point;
[0232] Based on the quadrant information of the first mapping point in the plane coordinate system, generate the first Boolean value and the second Boolean value.
[0233] According to one or more embodiments of this disclosure, Example 8 provides the method of Example 7, wherein generating the first Boolean value and the second Boolean value based on the quadrant information of the first mapping point in the planar coordinate system includes:
[0234] If the first mapping point is located in the first quadrant of the plane coordinate system, the first Boolean value is 1; if the first mapping point is located in any quadrant other than the first quadrant of the plane coordinate system, the first Boolean value is 0.
[0235] If the first mapping point is located in the fourth quadrant of the plane coordinate system, the second Boolean value is 1; if the first mapping point is located in any quadrant other than the fourth quadrant of the plane coordinate system, the second Boolean value is 0.
[0236] According to one or more embodiments of this disclosure, Example 9 provides the method of Example 7, wherein converting the first piece into a first radian using a first conversion rule includes:
[0237] Using the first transformation rule, the first piece is converted into the first radian using the following formula:
[0238]
[0239] Where θ is the first radian, x0 is the first piece, and the first piece belongs to the space of 2 to the power of n.
[0240] According to one or more embodiments of this disclosure, Example 10 provides the method of Example 1, wherein the second participant is used to:
[0241] Shift the fifth slice of the first fixed point held by the second participant to the right;
[0242] Based on the fifth slice, the shift correction amount is calculated with the first participant to obtain the eighth slice of the shift correction amount;
[0243] The shifted fifth piece is corrected using the eighth piece to obtain the second corrected piece;
[0244] The first data processing task is executed based on the second corrected fragment.
[0245] According to one or more embodiments of this disclosure, Example 11 provides the method of Example 10, wherein the second participant is used to:
[0246] Based on the fifth segment, generate the third and fourth Boolean values;
[0247] The first participant calculates the first value of the product of the first Boolean value and the third Boolean value on f(x) to obtain the ninth slice of the first value, and calculates the second value of the product of the second Boolean value and the fourth Boolean value on f(x) to obtain the tenth slice of the second value; wherein f(x) satisfies f(0) = 0 and f(1) = 2. n-d The fifth slice belongs to the modulo 2 power of n space, d is the number of right shifts of the first fixed-point number, x is the independent variable, and the first Boolean value and the second Boolean value are generated by the first participant based on the first slice of the first fixed-point number held by the first participant. The first fixed-point number is the difference between the first slice and the fifth slice log2. n The result of modulo operation is the difference between the first value and the second value;
[0248] The difference between the ninth slice and the tenth slice is determined as the eighth slice.
[0249] According to one or more embodiments of this disclosure, Example 12 provides the method of Example 11, wherein the second participant is used to:
[0250] Obtain the third random number in the modulo 2 space and the fourth random number in the nth power space of the modulo 2;
[0251] The third Boolean value is masked using the third random number to obtain the second masked data;
[0252] The second masking data is sent to the first participant; wherein the first participant is configured to generate a value based on the first Boolean value, the first masking data, the second masking data, and the second random number. In the seventh segment, the first participant uses a first random number to mask the first Boolean value, obtaining the first masked data, and sends the first masked data to the second participant. The first random number belongs to the modulo-2 space, the second random number belongs to the modulo-2 power-of-n space, a0 is the first Boolean value, and b1 is the third Boolean value. Let u0 be the first random number and u0 be the second random number. u1 is the third random number, and u1 is the fourth random number;
[0253] In response to receiving the first masking data sent by the first participant, a method is generated based on the first masking data, the second masking data, and the fourth random number. The sixth segment;
[0254] The ninth fragment is generated based on the sixth fragment.
[0255] According to one or more embodiments of this disclosure, Example 13 provides a method of Example 3 or Example 12, wherein the second participant is configured to generate, based on the first masking data, the second masking data, and the fourth random number, the following formula. The sixth segment:
[0256]
[0257] Wherein, U2 is the sixth segment, δb1 is the second masking data, and δa0 is the first masking data.
[0258] According to one or more embodiments of this disclosure, Example 14 provides a method of any one of Examples 1-12, wherein the first data processing task is a structured query language query task or a machine learning model training task.
[0259] According to one or more embodiments of this disclosure, Example 15 provides a method in which two participants in the secure computation each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point, the apparatus being applied to a first participant, which is one of the two participants, the apparatus comprising:
[0260] The first shift module is used to shift the first piece of the first fixed point number held by the first participant to the right;
[0261] The first calculation module is used to calculate the shift correction amount with the second participant based on the first slice, and obtain the second slice of the shift correction amount; wherein the second participant is the other of the two participants;
[0262] The first correction module is used to correct the shifted first piece using the second piece to obtain the first corrected piece;
[0263] The first execution module is used to execute the first data processing task based on the first corrected fragment.
[0264] According to one or more embodiments of the present disclosure, Example 16 provides a computer-readable medium having a computer program stored thereon that, when executed by a processing device, implements the steps of the method described in any one of Examples 1-14.
[0265] According to one or more embodiments of this disclosure, Example 17 provides an electronic device comprising:
[0266] A storage device on which computer programs are stored;
[0267] A processing device for executing the computer program in the storage device to implement the steps of any of the methods in Examples 1-14.
[0268] According to one or more embodiments of the present disclosure, Example 18 provides a computer program product including a computer program that, when executed by a processor, implements the steps of the method described in any one of Examples 1-14.
[0269] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
[0270] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0271] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative forms of implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which the various modules perform their operations has been described in detail in the embodiments relating to the method, and will not be elaborated upon here.
Claims
1. A data processing method for secure computing, wherein two participants in the secure computing each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point, characterized in that, The method is applied to a first participant, which is one of the two participants, and the method includes the following steps performed by the first participant: Shift the first slice of the first fixed point held by the first participant to the right; Based on the first slice, a shift correction amount is calculated with the second participant to obtain a second slice of the shift correction amount; wherein, the second participant is the other of the two participants; The first shifted piece is corrected using the second piece to obtain the first corrected piece; Execute the first data processing task based on the first corrected fragment; The step of calculating the shift correction amount with the second participant based on the first slice to obtain the second slice of the shift correction amount includes: Based on the first fragment, generate a first Boolean value and a second Boolean value; The product of the first Boolean value and the third Boolean value is calculated with the second participant to obtain a first value on the independent variable function, resulting in a third slice of the first value. The product of the second Boolean value and the fourth Boolean value is then calculated with the second participant to obtain a second value on the independent variable function, resulting in a fourth slice of the second value. The third Boolean value and the fourth Boolean value are generated by the second participant based on a fifth slice of the first fixed-point number held by the second participant. The shift correction amount is the difference between the first value and the second value. The difference between the third segment and the fourth segment is determined as the second segment.
2. The method according to claim 1, characterized in that, The independent variable function is: ,in, satisfy ,and The first piece belongs to modulo 2. n Second power space. d The right shift of the first fixed-point number by the number of bits. As the independent variable, the first fixed-point number is the difference between the first slice and the fifth slice. The result of taking the modulus.
3. The method according to claim 2, characterized in that, The calculation of the product of the first Boolean value and the third Boolean value with the second participant is in... The first value is used to obtain the third slice of the first value, including: Obtain the first random number in the modulo-2 space and the modulo-2... n The second random number in the power space; The first Boolean value is masked using the first random number to obtain the first masked data; The first masking data is sent to the second participant; wherein the second participant is used to generate a fourth random number based on the first masking data, the second masking data, and the fourth random number. The sixth segment, in which the second participant uses a third random number to mask the third Boolean value to obtain the second masked data, and sends the second masked data to the first participant, wherein the third random number belongs to the modulo-2 space, and the fourth random number belongs to the modulo-2 space. n Second power space. The first Boolean value, The third Boolean value, , The first random number, The second random number, The third random number, The fourth random number; In response to receiving the second masking data sent by the second participant, a method is generated based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment; The third fragment is generated based on the seventh fragment.
4. The method according to claim 3, characterized in that, The process involves generating a value based on the first Boolean value, the first masking data, the second masking data, and the second random number. The seventh segment includes: The seventh fragment is generated based on the first Boolean value, the first masking data, the second masking data, and the second random number using the following formula: in, For the seventh segment, For the second masking data, This is the first masking data.
5. The method according to claim 3, characterized in that, The acquisition of the first random number in the modulo-2 space includes one of the following: Based on the first seed held by the first participant, the first random number in the modulo 2 space is generated; wherein, a semi-trusted third party is used to synchronously generate the first random number based on the first seed held by the semi-trusted third party; The first random number is obtained from the semi-trusted third party; wherein the semi-trusted third party is used to randomly generate the first random number.
6. The method according to claim 3, characterized in that, The acquisition modulo 2 n The second random number in the power space includes one of the following: Based on the second seed held by the first participant, generate a modulo 2. n The second random number in the power space; wherein, a semi-trusted third party is used to synchronously generate the second random number based on the second seed held by the semi-trusted third party; The second random number is obtained from the semi-trusted third party; wherein the semi-trusted third party is used to randomly generate the second random number.
7. The method according to claim 2, characterized in that, The step of generating a first Boolean value and a second Boolean value based on the first fragment includes: Using the first transformation rule, the first piece is converted into the first radian; The first radian is mapped onto a planar coordinate system using Euler's formula to obtain the first mapped point; Based on the quadrant information of the first mapping point in the plane coordinate system, generate the first Boolean value and the second Boolean value.
8. The method according to claim 7, characterized in that, The step of generating the first Boolean value and the second Boolean value based on the quadrant information of the first mapping point in the plane coordinate system includes: If the first mapping point is located in the first quadrant of the plane coordinate system, the first Boolean value is 1; if the first mapping point is located in any quadrant other than the first quadrant of the plane coordinate system, the first Boolean value is 0. If the first mapping point is located in the fourth quadrant of the plane coordinate system, the second Boolean value is 1; if the first mapping point is located in any quadrant other than the fourth quadrant of the plane coordinate system, the second Boolean value is 0.
9. The method according to claim 7, characterized in that, The step of converting the first piece into a first radian using the first conversion rule includes: Using the first transformation rule, the first piece is converted into the first radian using the following formula: in, For the first radian, The first fragment belongs to 2. n Power-law space.
10. The method according to claim 1, characterized in that, The second participant is used for: Shift the fifth slice of the first fixed point held by the second participant to the right; Based on the fifth slice, the shift correction amount is calculated with the first participant to obtain the eighth slice of the shift correction amount; The shifted fifth piece is corrected using the eighth piece to obtain the second corrected piece; The first data processing task is executed based on the second corrected fragment; The second participant is used for: Based on the fifth segment, generate the third and fourth Boolean values; The product of the first Boolean value and the third Boolean value is calculated with the first participant to obtain the first value of the independent variable function, and the product of the second Boolean value and the fourth Boolean value is calculated with the first participant to obtain the second value of the independent variable function, and the tenth value of the second value is obtained. The first Boolean value and the second Boolean value are generated by the first participant based on the first fragment of the first fixed point number held by the first participant, and the shift correction amount is the difference between the first value and the second value; The difference between the ninth slice and the tenth slice is determined as the eighth slice; Wherein, the independent variable function is ,in, satisfy ,and The first piece belongs to modulo 2. n Second power space. d The right shift of the first fixed-point number by the number of bits. As the independent variable, the first fixed-point number is the difference between the first slice and the fifth slice. The result of taking the modulus.
11. The method according to claim 10, characterized in that, The second participant is used for: Obtain the third random number in the modulo-2 space and the modulo-2 value. n The fourth random number in the power space; The third Boolean value is masked using the third random number to obtain the second masked data; The second masking data is sent to the first participant; wherein the first participant is configured to generate a value based on the first Boolean value, the first masking data, the second masking data, and the second random number. In the seventh segment, the first participant uses a first random number to mask the first Boolean value, obtaining the first masked data, and sends the first masked data to the second participant. The first random number belongs to the modulo-2 space, and the second random number belongs to the modulo-2 space. n Second power space. The first Boolean value, The third Boolean value, , The first random number, The second random number, The third random number, The fourth random number; In response to receiving the first masking data sent by the first participant, a method is generated based on the first masking data, the second masking data, and the fourth random number. The sixth segment; The ninth fragment is generated based on the sixth fragment.
12. The method according to claim 3 or 11, characterized in that, The second participant is used to generate, based on the first masking data, the second masking data, and the fourth random number, using the following formula. The sixth segment: in, For the sixth slice, For the second masking data, This is the first masking data.
13. The method according to any one of claims 1-11, characterized in that, The first data processing task is a structured query language query task or a machine learning model training task.
14. A data processing apparatus for secure computing, wherein two participants in the secure computing each hold a slice of a first fixed-point number, the first fixed-point number being a number with a fixed decimal point, characterized in that, The device is applied to a first participant, which is one of the two participants, and the device includes: The first shift module is used to shift the first piece of the first fixed point number held by the first participant to the right; The first calculation module is used to calculate the shift correction amount with the second participant based on the first slice, and obtain the second slice of the shift correction amount; wherein the second participant is the other of the two participants; The first correction module is used to correct the shifted first piece using the second piece to obtain the first corrected piece; The first execution module is used to execute a first data processing task based on the first corrected fragment; The first calculation module is configured to generate a first Boolean value and a second Boolean value based on the first slice; calculate, with the second participant, a first value of the product of the first Boolean value and the third Boolean value on the independent variable function to obtain a third slice of the first value; and calculate, with the second participant, a second value of the product of the second Boolean value and the fourth Boolean value on the independent variable function to obtain a fourth slice of the second value; the third Boolean value and the fourth Boolean value are generated by the second participant based on a fifth slice of the first fixed-point number held by the second participant, and the shift correction amount is the difference between the first value and the second value; and determine the difference between the third slice and the fourth slice as the second slice.
15. A computer-readable medium having a computer program stored thereon, characterized in that, When executed by a processing device, the computer program performs the steps of the method described in any one of claims 1-13.
16. An electronic device, characterized in that, include: A storage device on which computer programs are stored; A processing apparatus for executing the computer program in the storage device to implement the steps of the method according to any one of claims 1-13.
17. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1-13.