The present application claims priority to and the benefits of Chinese Patent Application No. 202310421294.4, filed on Apr. 17, 2023, which is incorporated herein by reference in its entirety.
The present disclosure relates to the field of chip technologies, and in particular, to a privacy calculation unit, an acceleration unit, a system on chip, and a privacy calculation method.
To improve accuracy of a machine learning model, privacy-preserving machine learning (PPML) allows participants to cooperate in model training and inference processes by applying a privacy-preserving computation technology. Common privacy-preserving computation technologies include Secure Multi-party Computation (SMC), Homomorphic Encryption (HE), a Trusted Execution Environment (TEE), and the like.
Because each single privacy-preserving computation technology has its own disadvantage, a computation solution combining multiple privacy-preserving computation technologies is currently used in the privacy-preserving machine learning. An efficient privacy-preserving machine learning solution is formed by combining advantages of different privacy-preserving computation technologies.
However, the privacy-preserving machine learning solution formed based on multiple privacy-preserving computation solutions does not have support from special-purpose hardware, resulting in low efficiency of privacy-preserving machine learning.
Embodiments of the present disclosure provide a privacy calculation unit. The privacy calculation unit includes: a first calculation subunit including circuitry configured to calculate a plurality of first domain conversion ciphertexts sequentially, wherein the first domain conversion ciphertext is an intermediate ciphertext when first to-be-converted data is converted from a first privacy-preserving computation domain to a second privacy-preserving computation domain; a storage subunit configured to store the calculated first domain conversion ciphertexts received from the first calculation subunit; and a communication subunit including circuitry configured to send, in a process in which the first calculation subunit calculates a postorder first domain conversion ciphertext, a preorder first domain conversion ciphertext to a target privacy calculation unit other than the current privacy calculation unit and to enable the target privacy calculation unit to generate first converted data corresponding to the first to-be-converted data in the second privacy-preserving computation domain according to the preorder first domain conversion ciphertext.
Embodiments of the present disclosure provide a privacy calculation method. The privacy calculation method is applied to a current privacy calculation unit and includes: calculating a plurality of first domain conversion ciphertexts sequentially, and storing the calculated first domain conversion ciphertexts, wherein the first domain conversion ciphertext is an intermediate ciphertext when first to-be-converted data is converted from a first privacy-preserving computation domain to a second privacy-preserving computation domain; and sending, in a process in which a postorder first domain conversion ciphertext is calculated, a preorder first domain conversion ciphertext to a target privacy calculation unit other than the current privacy calculation unit, to enable the target privacy calculation unit to generate first converted data corresponding to the first to-be-converted data in the second privacy-preserving computation domain according to the preorder first domain conversion ciphertext.
Embodiments of the present disclosure provide a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium stores a program that is executable by a device to cause the device to perform operations of a privacy calculation method, the operations including: calculating a plurality of first domain conversion ciphertexts sequentially, and storing the calculated first domain conversion ciphertexts, wherein the first domain conversion ciphertext is an intermediate ciphertext when first to-be-converted data is converted from a first privacy-preserving computation domain to a second privacy-preserving computation domain; and sending, in a process in which a postorder first domain conversion ciphertext is calculated, a preorder first domain conversion ciphertext to a target privacy calculation unit other than the current privacy calculation unit, to enable the target privacy calculation unit to generate first converted data corresponding to the first to-be-converted data in the second privacy-preserving computation domain according to the preorder first domain conversion ciphertext.
To describe the technical solutions in the embodiments of the present disclosure or in the prior art more clearly, the following briefly describes accompanying drawings required for describing the embodiments or the prior art. The accompanying drawings in the following description show merely some embodiments of the present disclosure, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings.
Embodiments of the present disclosure will be described below, but the present disclosure is not merely limited to the embodiments described below. Some specified details are described in the following detailed description of the present disclosure. A person skilled in the art may also fully understand the present disclosure without the description of the details. To prevent essence of the present disclosure from being confused, well-known methods, procedures, and processes are not described in detail. In addition, the accompanying drawings are not necessarily drawn to scale.
In the embodiments of the present disclosure, the first calculation subunit calculates the plurality of first domain conversion ciphertexts sequentially, and stores the calculated first domain conversion ciphertexts into the storage subunit. In a process in which the first calculation subunit calculates the postorder first domain conversion ciphertext, the communication subunit sends the preorder first domain conversion ciphertext to the target privacy calculation unit, so that a calculation process of the postorder first domain conversion ciphertext at least partially overlaps with a sending process of the preorder first domain conversion ciphertext, and there is no need to wait for a preorder domain conversion ciphertext to be sent to a target calculation apparatus before starting to calculate a postorder domain conversion ciphertext, which reduces at least part of time of sending a domain conversion ciphertext to the target calculation apparatus. Therefore, for a privacy-preserving computation scenario, such as privacy-preserving machine learning, that requires a batch of privacy-preserving computation domain conversion, efficiency of privacy-preserving computation can be improved. Privacy-preserving computation is a series of information technologies that analyze and calculate data on the premise that a data provider does not disclose original data, ensuring that the data is available and invisible during a circulation and integration process.
For privacy-preserving computation, one or more privacy-preserving computation technologies, for example, the Secure Multi-party Computation (SMC), the Homomorphic Encryption (HE), and the Trusted Execution Environment (TEE), may be used.
Secure multi-party computation (SMC) is a privacy-preserving distributed computation technology in the field of cryptography. It is used for resolving a problem of a group of untrusted participants each holding secret data and collaboratively calculating a given function, and ensuring that the participants cannot obtain any information other than a calculation result while obtaining a correct calculation result. During the calculation process, the participants have complete control over the data they possess.
Secret sharing (SS) is one of solutions in the secure multi-party computation. The main idea is to divide a secret s into n parts, where n is a positive integer greater than or equal to 2. Each part is held as a sub-secret by a holder. The secret s can be reconstructed through sub-secrets held by more than or equal to t participants, while the secret s cannot be reconstructed by sub-secrets held by less than t participants, and no information about the secrets can be obtained, in which t is a positive integer less than or equal to n.
Homomorphic encryption (HE) is an encryption technology in which a ciphertext can be directly used for operation. A result of decrypting an output obtained by processing data on which homomorphic encryption is performed is consistent with an output obtained by using the same method to process unencrypted original data. When adding, subtracting, and aggregating the data on which homomorphic encryption is performed, plaintext data is not exposed.
A Trusted Execution Environment (TEE) is a secure area built in a processor through software and hardware methods, and ensures that confidentiality and integrity of a program and data that are loaded inside the processor are protected.
Different privacy-preserving computation technologies correspond to different privacy-preserving computation domains. A privacy-preserving computation domain is a set of data types divided according to the privacy-preserving computation technologies. For example, data processed through a secure multi-party computation technology is located in a secure multi-party computation domain, and data processed through a trusted execution environment technology is located in a trusted execution environment domain.
Domain conversion refers to processing of converting data in a specified privacy-preserving computation domain to data in another privacy-preserving computation domain, for example, processing of converting data in the secret sharing domain to data in the homomorphic encryption domain, or converting data in the homomorphic encryption domain to data in the secret sharing domain. Secret sharing domain is a data set including data that may be operated through a secret sharing technology. Homomorphic encryption domain is a data set including data that may be operated through a homomorphic encryption technology.
An example application environment according to some embodiments of the present disclosure will be discussed below.
In some embodiments of the present disclosure, a privacy calculation solution is provided. The entire privacy calculation solution is universal and can be used in various hardware devices, such as a data center, an artificial intelligence (AI) acceleration unit, a graphics processing unit (GPU), a general-purpose graphics processing unit (GPGPU), an Internet of Things (IoT) device for executing a deep learning model, or an embedded device, that involve privacy-preserving computation. The privacy calculation solution has nothing to do with hardware deployed on a calculation apparatus that executes the solution, but for illustrative description, the following is mainly described with a data center as an application scenario. A person skilled in the art shall understand that the embodiments of the present disclosure may also be applied to other application scenarios.
Example systems according to some embodiments of the present disclosure will be discussed below.
The calculation apparatus 10 can be any appropriate device, including but not limited to a distributed storage system device, a server cluster, a computing cloud server cluster, a mobile device, a tablet computer, a laptop computer, a desktop computer, a wearable computer, or a vehicle system, that is configured to store information, data, program, and/or any other appropriate type of content. In some embodiments, the calculation apparatus 10 may perform any appropriate function. For example, in some embodiments, the calculation apparatus 10 may be used for privacy calculation. As an optional example, in some embodiments, the calculation apparatus 10 may perform privacy calculation based on a privacy-preserving computation technology such as secret sharing, homomorphic encryption, or a trusted execution environment, and send a calculated ciphertext to another calculation apparatus 10. In some other embodiments, different calculation apparatuses 10 may perform privacy calculation based on different privacy-preserving computation technologies, or the same calculation apparatus 10 may perform privacy calculation based on a plurality of privacy-preserving computation technologies. For example, a calculation apparatus A performs privacy calculation based on the homomorphic encryption, and a calculation apparatus B performs privacy calculation based on the secret sharing, or the calculation apparatus A performs privacy calculation based on the secret sharing, and the calculation apparatus B performs privacy calculation based on the secret sharing and the homomorphic encryption. Because the plurality of privacy-preserving computation technologies are used for privacy calculation, data needs to be converted between different privacy-preserving computation domains during the privacy calculation. For example, a homomorphic ciphertext held by the calculation apparatus B is converted to a secret shared value, or a secret shared value held by the calculation apparatus A and the calculation apparatus B is converted to a homomorphic ciphertext held by the calculation apparatus B.
The communication network 20 can be any appropriate combination of one or more wired and/or wireless networks. For example, the communication network 20 can include any one or more of an Internet, an intranet, a wide area network (WAN), a local area network (LAN), a wireless network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), and/or any other appropriate communication network. The calculation apparatus 10 can be connected to the communication network 20 through one or more communication links. The communication link can be any communication link appropriate for transmitting data between the calculation apparatuses 10, such as a network link, a dial-up link, a wireless link, a hardwired link, any other appropriate communication link, or any appropriate combination of this type of link.
Embodiments of the present disclosure mainly focus on a process of the calculation apparatus 10 performing privacy calculation. The process of privacy calculation will be described in detail below.
Example calculation apparatuses according to some embodiments of the present disclosure will be discussed below.
The design of a conventional processor architecture makes the scheduling unit and storage occupy a large part of space in the architecture, while a calculation unit occupies insufficient space. Therefore, the design is very effective in logic control, but not efficient enough in large-scale parallel computation. Therefore, various specialized acceleration units have been developed to more effectively increase the computation speed for different functions and calculations in different fields. The acceleration unit provided in some embodiments of the present disclosure is a processing unit specifically for accelerating a privacy calculation speed, and can support privacy-preserving machine learning formed based on multiple privacy-preserving computation solutions and improve efficiency of the privacy-preserving machine learning.
The acceleration unit 160 is configured to accept scheduling of the scheduling unit 140. As shown in
Example acceleration units according to some embodiments of the present disclosure will be discussed below.
Some embodiments of the present disclosure mainly focus on a process of the privacy calculation unit 162 converting data between different privacy-preserving computation domains. The following describes an interaction process between the subunits included in the privacy calculation unit 162, to describe a process of the control unit 161 scheduling each subunit in the privacy calculation unit 162 to perform data conversion. It is appreciated that at least a part of operation logic of each subunit included in the privacy calculation unit 162 is completed under scheduling of the control unit 161.
Example privacy calculation units according to some embodiments of the present disclosure will be discussed below.
When the first to-be-converted data is converted from the first privacy-preserving computation domain to the second privacy-preserving computation domain, the first to-be-converted data needs to be converted into the first domain conversion ciphertext, and then the first converted data of the first to-be-converted data in the second privacy-preserving computation domain can be generated according to the first domain conversion ciphertext. In an application scenario of privacy-preserving computation such as privacy-preserving machine learning, the first to-be-converted data needs to be converted into the corresponding first converted data in batches, so that the first calculation subunit 163 may process a plurality of pieces of received first to-be-converted data sequentially, to obtain a plurality of corresponding first domain conversion ciphertexts, and store the obtained first domain conversion ciphertexts into the storage subunit 164. In an example, the first calculation subunit 163 processes the first to-be-converted data according to a reception order, to obtain the corresponding first domain conversion ciphertexts, and store the first domain conversion ciphertexts into the storage subunit 164 according to the reception order of the first to-be-converted data.
When data conversion is performed between different privacy-preserving computation domains, generally at least two calculation apparatuses are involved. In some embodiments of the present disclosure, an example is used for the description in which a conversion process involves two calculation apparatuses, but the present disclosure is not limited thereto. For example, there may be three or more calculation apparatuses participating in the conversion process, where any two calculation apparatuses with interaction may interact in an interaction manner provided in some embodiments of the present disclosure. In a process in which data conversion is performed between two privacy-preserving computation domains, a main step of a data conversion process is performed by the privacy calculation unit 162 included in the calculation apparatus. A current calculation apparatus includes the current privacy calculation unit, and a target calculation apparatus includes the target privacy calculation unit. The current privacy calculation unit calculates the first domain conversion ciphertext according to the first to-be-converted data in the first privacy-preserving computation domain, and sends the first domain conversion ciphertext to the target privacy calculation unit. The target privacy calculation unit generates the first converted data corresponding to the first to-be-converted data in the second privacy-preserving computation domain according to the first domain conversion ciphertext.
The first calculation subunit 163 calculates the plurality of first domain conversion ciphertexts sequentially, defines a first domain conversion ciphertext that is first calculated as the preorder first domain conversion ciphertext, and defines a first domain conversion ciphertext that is calculated afterwards as the postorder first domain conversion ciphertext. The preorder first domain conversion ciphertext and the postorder first domain conversion ciphertext may be first domain conversion ciphertexts that are continuously calculated, or may be first domain conversion ciphertexts that are not continuously calculated. For example, after the preorder first domain conversion ciphertext is calculated and before the postorder first domain conversion ciphertext is calculated, the first calculation subunit 163 further calculates another one or more first domain conversion ciphertexts. In a process in which the first calculation subunit 163 calculates the postorder first domain conversion ciphertext, the communication subunit 165 sends the preorder first domain conversion ciphertext to the target privacy calculation unit. In other words, the process in which the first calculation subunit 163 calculates the postorder first domain conversion ciphertext and a process in which the communication subunit 165 sends the preorder first domain conversion ciphertext to the target privacy calculation unit are performed in parallel.
The first calculation subunit 163 stores the calculated first domain conversion ciphertext into the storage subunit 164, so that the communication subunit 165 is configured to read the first domain conversion ciphertext from the storage subunit 164 and then configured to send the read first domain conversion ciphertext to the target privacy calculation unit. Taking a time when the first calculation subunit 163 starts to calculate the postorder first domain conversion ciphertext as a reference, the communication subunit 165 may read the preorder first domain conversion ciphertext from the storage subunit 164 before the time, or read the preorder first domain conversion ciphertext from the storage subunit 164 after the time, or read the preorder first domain conversion ciphertext from the storage subunit 164 at the time. This is not limited in embodiments of the present disclosure, as long as it is ensured that the time when the first calculation subunit 163 calculates the postorder first domain conversion ciphertext partially overlaps with a time when the communication subunit 165 sends the preorder first domain conversion ciphertext.
In some embodiments of the present disclosure, the first calculation subunit 163 calculates the plurality of first domain conversion ciphertexts sequentially, and stores the calculated first domain conversion ciphertexts into the storage subunit 164. In a process in which the first calculation subunit 163 calculates the postorder first domain conversion ciphertext, the communication subunit 165 sends the preorder first domain conversion ciphertext to the target privacy calculation unit, so that a calculation process of the postorder first domain conversion ciphertext at least partially overlaps with a sending process of the preorder first domain conversion ciphertext, and there is no need to wait for a preorder domain conversion ciphertext to be sent to a target calculation apparatus before starting to calculate a postorder domain conversion ciphertext, which reduces at least part of time of sending a domain conversion ciphertext to the target calculation apparatus. Therefore, for a privacy-preserving computation scenario, such as privacy-preserving machine learning, that requires a batch of privacy-preserving computation domain conversion, efficiency of privacy-preserving computation can be improved.
In some embodiments, the first privacy-preserving computation domain and the second privacy-preserving computation domain may include the following two combination forms: (i) the first privacy-preserving computation domain being a homomorphic encryption domain, and the second privacy-preserving computation domain being a secret sharing domain; and (ii) the first privacy-preserving computation domain being a secret sharing domain, and the second privacy-preserving computation domain being a homomorphic encryption domain.
For the foregoing combination form (i), the first privacy-preserving computation domain is a homomorphic encryption domain, and the second privacy-preserving computation domain is a secret sharing domain. In other words, the first to-be-converted data is data under the homomorphic encryption domain, and the first to-be-converted data under the homomorphic encryption domain needs to be converted into the first converted data under the secret sharing domain. A corresponding scenario is that a homomorphic ciphertext held by a calculation device B is converted into a secret shared value of a calculation device A and the calculation device B.
For the foregoing combination form (ii), the first privacy-preserving computation domain is a secret sharing domain, and the second privacy-preserving computation domain is a homomorphic encryption domain. In other words, the first to-be-converted data is data under the secret sharing domain, and the first to-be-converted data under the secret sharing domain needs to be converted into the first converted data under the homomorphic encryption domain. A corresponding scenario is that a secret shared value held by a calculation device A and a calculation device B is converted into a homomorphic ciphertext held by the calculation device B.
In some embodiments of the present disclosure, the privacy calculation unit 162 may be configured to convert data under the homomorphic encryption domain into data under the secret sharing domain, and may also be configured to convert the data under the secret sharing domain into the data under the homomorphic encryption domain. The privacy calculation unit is applicable to a privacy-preserving computation scenario using secret sharing and homomorphic encryption, implements bidirectional data conversion between the secret sharing domain and homomorphic encryption domain, and has strong applicability.
In some embodiments, when the first privacy-preserving computation domain is a homomorphic encryption domain, and the second privacy-preserving computation domain is a secret sharing domain, the first calculation subunit 163 may obtain a random shared value when calculating the first domain conversion ciphertext, and then calculate the first domain conversion ciphertext according to the random shared value and the first to-be-converted data. After the communication subunit 165 sends the first domain conversion ciphertext to the target privacy calculation unit, the target privacy calculation unit may decrypt the first domain conversion ciphertext based on a private key thereof, to obtain first converted data corresponding to the first to-be-converted data in the secret sharing domain, and use the obtained first converted data as an input, while the current privacy calculation unit uses the random shared value as an output.
A first calculation subunit in the calculation apparatus B performs the following operations based on the input public key PKA and the homomorphic ciphertext [x]A.
In step B1, a random shared value <x>B is obtained.
In step B2, −<x>B is encrypted based on the public key PKA of the calculation apparatus A, to obtain a homomorphic ciphertext [−<x>B]A.
In step B3, [−<x>B]A+[x]A=[x−<x>B]A=[<x>A]A is calculated to obtain a first domain conversion ciphertext [<x>A]A.
After calculating the first domain conversion ciphertext [<x>A]A, the first calculation subunit in the calculation apparatus B stores the first domain conversion ciphertext [<x>A]A in a storage subunit in the calculation apparatus B, and then a communication subunit in the calculation apparatus B sends the first domain conversion ciphertext [<x>A]A to the calculation apparatus A.
After receiving the first domain conversion ciphertext [<x>A]A, a communication subunit in the calculation apparatus A stores the first domain conversion ciphertext [<x>A]A in a storage subunit in the calculation apparatus A, and then a first calculation subunit in the calculation apparatus A reads the first domain conversion ciphertext [<x>A]A and encrypts the first domain conversion ciphertext [<x>A]A based on the private key SKA of the calculation apparatus A, to obtain first converted data <x>A.
The calculation apparatus A uses the first converted data <x>A as an output, and the calculation apparatus B uses the random shared value <x>B as an output. Through cooperation between privacy calculation units in the calculation apparatus A and the calculation apparatus B, the homomorphic ciphertext [x]A held by the calculation apparatus B is converted into a secret shared value <x>A held by the calculation apparatus A and a secret shared value <x>B held by the calculation apparatus B. Because the secret shared value <x>B is a random value, original data may be reconstructed according to the secret shared value <x>A and the secret shared domain <x>B. However, the original data cannot be reconstructed according to only the secret shared value <x>A or only the secret shared value <x>B, thereby avoiding leakage of the original data.
In some other embodiments, after performing step B1, the first calculation subunit in the calculation apparatus B may combine step B2 and step B3 into a step of calculating [<x>A]A=−<x>B+[x]A, to obtain the first domain conversion ciphertext [<x>A]A. In other words, when calculating the first domain conversion ciphertext [<x>A]A, the first calculation subunit in the calculation apparatus B may calculate the first domain conversion ciphertext [<x>A]A based on a ciphertext of the random shared value <x>B, or may calculate the first domain conversion ciphertext [<x>A]A based on a plaintext of the random shared value <x>B. Specifically, selection can be performed according to an actual requirement, ensuring that the privacy calculation unit has strong applicability.
It should be noted that, the domain conversion process is described in embodiments in
In some embodiments of the present disclosure, when data is converted from the homomorphic encryption domain to the secret sharing domain, the first calculation subunit 163 obtains the random shared value, and calculates the first domain conversion ciphertext according to the random shared value and the first to-be-converted data. After the communication subunit 165 sends the first domain conversion ciphertext to the target privacy calculation unit, the target privacy calculation unit may decrypt the first domain conversion ciphertext based on the private key thereof, to obtain the first converted data corresponding to the first to-be-converted data in the secret sharing domain. On the premise of implementing conversion of the data from the homomorphic encryption domain to the secret sharing domain, it is ensured that the original data is not leaked.
The pseudo-random number generation subunit 166 generates the pseudo-random number according to the preset clock frequency. The first calculation subunit 163 uses the pseudo-random number as the random shared value to calculate the first domain conversion ciphertext. A speed of the pseudo-random number generation subunit 166 generating the pseudo-random number is greater than or equal to a speed of the first calculation subunit 163 using the pseudo-random number.
The pseudo-random number generation subunit 166 may be a cryptographically secure pseudo-random number generator (CSPRNG). The cryptographically secure pseudo-random number generator may use a standard such as message digest algorithm MD5 or a secure hash algorithm 1 (SHA1) to convert variable-length information into a fixed-length 128-bit binary random number or a fixed-length 160-bit binary random number. The pseudo-random number is a random number sequence calculated by using a deterministic algorithm and is not truly random.
The cache subunit 167 is configured to cache the pseudo-random number generated by the pseudo-random number generation subunit 166, and the cache subunit 167 may be a static random-access memory (SRAM).
When a speed of the pseudo-random number generation subunit 166 storing the pseudo-random number in the cache subunit 167 is greater than a speed of the first calculation subunit 163 reading the pseudo-random number from the cache subunit 167, data overflow may occur in the cache subunit 167, but this does not affect normal progress of a domain conversion process, as long as it is ensured that the first calculation subunit 163 can read the pseudo-random number from the cache subunit 167 as the random shared value.
In some embodiments of the present disclosure, the pseudo-random number generation subunit 166 generates the pseudo-random number, and caches the generated pseudo-random number in the cache subunit 167. When calculating the first domain conversion ciphertext, the first calculation subunit 163 reads the pseudo-random number from the cache subunit 167 as the random shared value, and calculates the first domain conversion ciphertext based on the random shared value. Because it takes a long time to generate the pseudo-random number, for reading the pseudo-random number from the cache subunit 167 as the random shared value, the first calculation subunit 163 may immediately read the pseudo-random number after the preorder first domain conversion ciphertext is generated and start to calculate the postorder first domain conversion ciphertext without waiting for the pseudo-random number to be generated before starting to calculate the postorder first domain conversion ciphertext, thereby improving efficiency of domain conversion.
In some embodiments, after the preorder first domain conversion ciphertext is calculated, the first calculation subunit 163 starts to calculate the postorder first domain conversion ciphertext, and stores the preorder first domain conversion ciphertext into the storage subunit 164.
After calculating the first domain conversion ciphertext, the first calculation subunit 163 stores the first domain conversion ciphertext into the storage subunit 164, and then the communication subunit 165 reads the first domain conversion ciphertext from the storage subunit 164 and sends the read first domain conversion ciphertext to a target privacy calculation unit. After the first calculation subunit 163 calculates the preorder first domain conversion ciphertext, a circuit responsible for operation in the first calculation subunit 163 is in an idle state, and in this case, it can start to calculate the postorder first domain conversion ciphertext, and synchronously store the calculated preorder first domain conversion ciphertext into the storage subunit 164.
It should be understood that the first calculation subunit 163 starts to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext, which means that the calculation of the postorder first domain conversion ciphertext can start after calculating the preorder first domain conversion ciphertext. However, the postorder first domain conversion ciphertext is not necessarily calculated immediately after the preorder first domain conversion ciphertext is calculated. There may be a time interval between the end time of the calculation of the preorder first domain conversion ciphertext and the start time of the calculation of the postorder first domain conversion ciphertext. It should be noted that, the preorder first domain conversion ciphertext and the postorder first domain conversion ciphertext in some embodiments of the present disclosure are first domain conversion ciphertexts that are continuously calculated.
Because the communication subunit 165 includes circuitry configured to send the first domain conversion ciphertexts to the target privacy calculation unit sequentially, and the target privacy calculation unit is configured to process the received first domain conversion ciphertexts sequentially, if it takes a long time for the communication subunit 165 to send the first domain conversion ciphertexts, or if it takes a long time for the target privacy calculation unit to process the first domain conversion ciphertext, efficiency of domain conversion is limited by sending efficiency and processing efficiency of the first domain conversion ciphertext. Even if the first calculation subunit 163 immediately starts to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext, the efficiency of domain conversion is not improved. In this case, there may be the time interval between the end time of the calculation of the preorder first domain conversion ciphertext and the start time of the calculation of the postorder first domain conversion ciphertext, as long as it is ensured that the communication subunit 165 continuously sends the first domain conversion ciphertext or the target privacy calculation unit continuously processes the first domain conversion ciphertext.
If it takes a long time for the first calculation subunit 163 to calculate the first domain conversion ciphertext relative to a sending time and a processing time of the first domain conversion ciphertext, then the efficiency of domain conversion is limited by calculation efficiency of the first domain conversion ciphertext. In this case, the first calculation subunit 163 immediately starts to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext, to maximize domain conversion efficiency.
The time for calculating the first domain conversion ciphertext is less than the network transmission delay for sending the first domain conversion ciphertext, and the network transmission delay for sending the first domain conversion ciphertext is less than the time for decrypting the first domain conversion ciphertext. Therefore, domain conversion efficiency is limited by the efficiency of the calculation apparatus A in decrypting the first domain conversion ciphertext. The calculation apparatus A is configured to decrypt the first domain conversion ciphertexts sequentially. To ensure the efficiency of domain conversion, after completing decryption of the preorder first domain conversion ciphertext, decryption of the postorder first domain conversion ciphertext can be immediately started. Before the decryption of the preorder first domain conversion ciphertext is completed, the receipt and storage of the postorder first domain conversion ciphertext are completed.
The calculation apparatus B continuously sends the first domain conversion ciphertexts to the calculation apparatus A sequentially. In other words, after the transmission of the preorder first domain conversion ciphertext is completed, the transmission of the postorder first domain conversion ciphertext can be started immediately. Correspondingly, there is a time interval between the end time of the calculation of the preorder first domain conversion ciphertext and the start time of obtaining a random shared value required for calculating the postorder first domain conversion ciphertext.
In some embodiments of the present disclosure, after calculating the preorder first domain conversion ciphertext, the first calculation subunit 163 can start to calculate the postorder first domain conversion ciphertext, and can synchronously store the preorder first domain conversion ciphertext into the storage subunit 164, so that the network transmission delay of the communication subunit 165 sending the preorder first domain conversion ciphertext at least partially overlaps with the time of the first calculation subunit 163 calculating the postorder first domain conversion ciphertext, thereby improving the efficiency of the domain conversion and privacy-preserving computation.
In some embodiments, when the first privacy-preserving computation domain is a secret sharing domain, and the second privacy-preserving computation domain is a homomorphic encryption domain, the first calculation subunit 163 can read the first to-be-converted data from the storage subunit 164 when calculating the first domain conversion ciphertext, and then perform homomorphic encryption on the first to-be-converted data based on a public key of the current privacy calculation unit, to obtain the first domain conversion ciphertext. After the communication subunit 165 sends the first domain conversion ciphertext to a target privacy calculation unit, the target privacy calculation unit can calculate the first converted data corresponding to the first to-be-converted data and the second to-be-converted data in the homomorphic encryption domain according to the first domain conversion ciphertext and a first homomorphic ciphertext obtained by the homomorphic encryption performed on the second to-be-converted data corresponding to the first to-be-converted data based on the public key of the current privacy calculation unit, and use the first converted data as an output, while the current privacy calculation unit has no output.
The first calculation subunit in the calculation apparatus A performs homomorphic encryption on the secret shared value <x>A based on the public key PKA of the calculation apparatus A, to obtain the first domain conversion ciphertext [<x>A]A. The first domain conversion ciphertext [<x>A]A is a homomorphic ciphertext. After calculating the first domain conversion ciphertext [<x>A]A, the first calculation subunit in the calculation apparatus A stores the first domain conversion ciphertext [<x>A]A in the storage subunit in the calculation apparatus A, and then the communication subunit in the calculation apparatus A sends the first domain conversion ciphertext [<x>A]A to the calculation apparatus B.
After receiving the first domain conversion ciphertext [<x>A]A, the first calculation subunit in the calculation apparatus B performs the following operations based on the inputted public key PKA and the secret shared value <x>B.
In step B1, the secret shared value <x>B is encrypted based on the public key PKA of the calculation apparatus A, to obtain the first homomorphic ciphertext [<x>B]A.
In step B2, [<x>A]A+[<x>B]A=[x]A is calculated, to obtain the first converted data [x]A. The first converted data [x]A is a homomorphic ciphertext.
The calculation apparatus A and the calculation apparatus B each hold a secret shared value. Through cooperation between privacy calculation units in the calculation apparatus A and the calculation apparatus B, the secret shared values held by the two calculation apparatuses are converted into the homomorphic ciphertext [x]A held by the calculation apparatus B. Both the first domain conversion ciphertext [<x>A]A and the first converted data [x]A are homomorphic ciphertexts. The first to-be-converted data <x>A and the second to-be-converted data <x>B under the secret sharing domain are converted into the first converted data [x]A under the homomorphic encryption domain, avoiding leakage of original data.
It should be noted that, the domain conversion process is described in embodiments in
In some embodiments of the present disclosure, when data is converted from the secret sharing domain to the homomorphic encryption domain, the first calculation subunit 163 encrypts the first to-be-converted data based on the public key of the current privacy calculation unit, to obtain the first domain conversion ciphertext. After the communication subunit 165 sends the first domain conversion ciphertext to the target privacy calculation unit, the target privacy calculation unit encrypts the second to-be-converted data based on the public key of the current privacy calculation unit, to obtain the first homomorphic ciphertext, and calculates the first converted data corresponding to the first to-be-converted data and the second to-be-converted data under the homomorphic encryption domain according to the first homomorphic ciphertext and the first domain conversion ciphertext. On the premise of implementing conversion of the data from the secret sharing domain to the homomorphic encryption domain, it is ensured that the original data is not leaked.
In some embodiments, when the first privacy-preserving computation domain is a secret sharing domain, and the second privacy-preserving computation domain is a homomorphic encryption domain, the first calculation subunit 163 reads, before calculating the preorder first domain conversion ciphertext, the first to-be-converted data corresponding to the postorder first domain conversion ciphertext from the storage subunit 164, to start to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext, and to store the preorder first domain conversion ciphertext into the storage subunit 164.
When calculating the first domain conversion ciphertext, the first calculation subunit 163 is configured to read the first to-be-converted data from the storage subunit 164 first, and then performs homomorphic encryption on the read first to-be-converted data, to obtain the first domain conversion ciphertext, and then stores the first domain conversion ciphertext into the storage subunit 164. The communication subunit 165 then reads the first domain conversion ciphertext from the storage subunit 164 and sends the read first domain conversion ciphertext to the target privacy calculation unit. After the first calculation subunit 163 calculates the preorder first domain conversion ciphertext, a circuit responsible for operation in the first calculation subunit 163 is in an idle state, and in this case, it can start to calculate the postorder first domain conversion ciphertext, and synchronously store the calculated preorder first domain conversion ciphertext into the storage subunit 164.
The first calculation subunit 163 includes circuitry configured to perform homomorphic encryption on the first to-be-converted data, to obtain the first domain conversion ciphertext. Because performing homomorphic encryption on the first to-be-converted data takes a long time and becomes a key step limiting domain conversion efficiency, before calculating the preorder first domain conversion ciphertext, the first calculation subunit 163 reads the first to-be-converted data corresponding to the postorder first domain conversion ciphertext from the storage subunit 164. After the first calculation subunit 163 calculates the preorder first domain conversion ciphertext, the first calculation subunit 163 immediately starts to calculate the postorder first domain conversion ciphertext. In other words, the calculation process of the postorder first domain conversion ciphertext and the storage and transmission processes of the preorder first domain conversion ciphertext are synchronously performed, which reduces the time in storing and sending the preorder first domain conversion ciphertext, and reduces the time in reading the first to-be-converted data corresponding to the postorder first domain conversion ciphertext, so that the domain conversion efficiency can be improved.
It is to be noted that, in some embodiments of the present disclosure, the preorder first domain conversion ciphertext and the postorder first domain conversion ciphertext are the first domain conversion ciphertexts being calculated continuously.
For the calculation apparatus A, the time for performing reading, encryption, storage, and transmission is greater than the network transmission delay for sending the first domain conversion ciphertext, so that domain conversion efficiency is limited by the efficiency of the calculation apparatus A in operations of reading, encryption, storage, and transmission. The calculation apparatus A pre-reads, before calculating the preorder first domain conversion ciphertext, the first to-be-converted data for calculating the postorder first domain conversion ciphertext, and immediately starts to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext. The time for storing and sending the preorder first domain conversion ciphertext overlaps with the time for calculating the postorder first domain conversion ciphertext, and the time for reading the first to-be-converted data for calculating the postorder first domain conversion ciphertext overlaps with the time for calculating the preorder first domain conversion ciphertext. For a privacy-preserving computation scenario, such as privacy-preserving machine learning, that requires a batch of privacy-preserving computation domain conversion, at least the time taken in operations of reading, storage, and transmission performed by the calculation apparatus A may be partially reduced, thereby improving the efficiency of the privacy-preserving computation.
In some embodiments of the present disclosure, the first calculation subunit 163 reads, before calculating the preorder first domain conversion ciphertext, the first to-be-converted data for calculating the postorder first domain conversion ciphertext from the storage subunit 164, and may immediately start to calculate the postorder first domain conversion ciphertext after calculating the preorder first domain conversion ciphertext, and may synchronously store the preorder first domain conversion ciphertext into the storage subunit 164. When the first calculation subunit 163 calculates the postorder first domain conversion ciphertext, the communication subunit 165 may synchronously send the preorder first domain conversion ciphertext, which reduces the time for reading the first to-be-converted data, storing the preorder first domain conversion ciphertext, and sending the preorder first domain conversion ciphertext, so that the efficiency of domain conversion and privacy-preserving computation can be improved.
In a privacy calculation system including a plurality of privacy calculation units 162, a domain conversion ciphertext is transferred between the privacy calculation units 162, to implement conversion of data between different privacy-preserving computation domains. Therefore, for any privacy calculation unit 162, the privacy calculation unit 162 can not only be used as a source privacy calculation unit to send a domain conversion ciphertext to a target privacy calculation unit, but also be used as a target privacy calculation unit to receive a domain conversion ciphertext sent by a source privacy calculation unit. In the foregoing embodiments, a current privacy computing unit is used as the source privacy computing unit, to describe the process of the privacy calculation unit 162 calculating and sending the domain conversion ciphertext. In the following paragraphs, the current privacy calculation unit is used as the target privacy calculation unit, to describe the process of the privacy calculation unit 162 receiving the domain conversion ciphertext and obtaining the converted data according to the domain conversion ciphertext.
In some embodiments, when converting data from the homomorphic encryption domain to the secret sharing domain, the communication subunit 165 can receive the second domain conversion ciphertext from the first source privacy calculation unit other than the current privacy calculation unit, and store the second domain conversion ciphertext into the storage subunit 164. The second domain conversion ciphertext is an intermediate ciphertext when third to-be-converted data is converted from the homomorphic encryption domain to the secret sharing domain, and the second domain conversion ciphertext is calculated by the first source privacy calculation unit based on a generated random shared value and the third to-be-converted data. The first calculation subunit 163 can decrypt the second domain conversion ciphertext based on a private key of the current privacy calculation unit, to obtain second converted data corresponding the third to-be-converted data in the secret sharing domain.
For the specific process of the first source privacy calculation unit calculating and sending the second domain conversion ciphertext, the reference may be made to the description for
For the specific process of the first calculation subunit 163 decrypting the second domain conversion ciphertext to obtain the second converted data, the reference may be made to the description for
In some embodiments of the present disclosure, when data is converted from the homomorphic encryption domain to the secret sharing domain, after the communication subunit 165 receives the second domain conversion ciphertext, the first calculation subunit 163 decrypts the second domain conversion ciphertext based on the private key of the current privacy calculation unit, to obtain the second converted data corresponding the third to-be-converted data in the secret sharing domain. On the premise of implementing conversion of the data from the homomorphic encryption domain to the secret sharing domain, it is ensured that the original data is not leaked.
In some embodiments, when the data is converted from the homomorphic encryption domain to the secret sharing domain, the first calculation subunit 163 reads, before completing decryption on a preorder second domain conversion ciphertext, a postorder second domain conversion ciphertext from the storage subunit 164, to start to decrypt the postorder second domain conversion ciphertext after completing the decryption on the preorder second domain conversion ciphertext.
As shown in
In some embodiments of the present disclosure, when converting data from the homomorphic encryption domain to the secret sharing domain, the first calculation subunit 163 reads the postorder second domain conversion ciphertext before completing the decryption of the preorder second domain conversion ciphertext, and may immediately start to decrypt the postorder second domain conversion ciphertext after completing the decryption of the preorder second domain conversion ciphertext, so that the process of receipt, storage, and reading of the postorder second domain conversion ciphertext overlaps with the process of decrypting the preorder second domain conversion ciphertext, which reduces the time for receiving, storing, and reading the postorder second domain conversion ciphertext, so that the efficiency of converting data from the homomorphic encryption domain to the secret sharing domain can be improved.
In some embodiments, when converting the data from the secret sharing domain to the homomorphic encryption domain, the communication subunit 165 can receive a third domain conversion ciphertext from a second source privacy calculation unit other than the current privacy calculation unit, and store the third domain conversion ciphertext into the storage subunit 164. The third domain conversion ciphertext is an intermediate ciphertext when fourth to-be-converted data and corresponding fifth to-be-converted data are converted from the secret sharing domain to the homomorphic encryption domain, and the third domain conversion ciphertext is obtained through homomorphic encryption performed by the second source privacy calculation unit on the fourth to-be-converted data based on a public key of the second source privacy calculation unit. The first calculation subunit 163 can read the third domain conversion ciphertext and the fifth to-be-converted data from the storage subunit 164, and perform homomorphic encryption on the fifth to-be-converted data based on a public key of the current privacy calculation unit, to obtain a second homomorphic ciphertext, and calculate third converted data corresponding to the fourth to-be-converted data and the fifth to-be-converted data in the homomorphic encryption domain according to the second homomorphic ciphertext and the third domain conversion ciphertext.
For the specific process of the second source privacy calculation unit calculating and sending the third domain conversion ciphertext, the reference may be made to the description for
For the specific process of the first calculation subunit 163 calculating the third converted data, the reference may be made to the description for
In some embodiments of the present disclosure, when data is converted from the secret sharing domain to the homomorphic encryption domain, after the communication subunit 165 receives the third domain conversion ciphertext, the first calculation subunit 163 performs homomorphic encryption on the fifth to-be-converted data based on the public key of the current privacy calculation unit, to obtain the second homomorphic ciphertext, thereby calculating the third converted data corresponding to the fourth to-be-converted data and the fifth to-be-converted data in the homomorphic encryption domain according to the second homomorphic ciphertext and the third domain conversion ciphertext. Because the fourth to-be-converted data and the fifth to-be-converted data are secret shared values under the secret sharing domain, and the third domain conversion ciphertext is a homomorphic ciphertext under homomorphic encryption, on the premise of implementing the conversion of data from the secret sharing domain to the homomorphic encryption domain, it is ensured that the original data is not leaked.
In some embodiments, when the data is converted from the secret sharing domain to the homomorphic encryption domain, before the communication subunit 165 receives the third domain conversion ciphertext, the first calculation subunit 163 reads the fifth to-be-converted data from the storage subunit 164, and performs homomorphic encryption on the fifth to-be-converted data based on the public key of the current privacy calculation unit, to obtain the second homomorphic ciphertext.
As shown in
In one example, when the current privacy calculation unit reads the fifth to-be-converted data, the second source privacy calculation unit synchronously reads the fourth to-be-converted data, and when the current privacy calculation unit performs homomorphic encryption on the fifth to-be-converted data, the second source privacy calculation unit synchronously performs homomorphic encryption on the fourth to-be-converted data.
In some embodiments of the present disclosure, when the data is converted from the secret sharing domain to the homomorphic encryption domain, before the communication subunit 165 receives the third domain conversion ciphertext, the first calculation subunit 163 pre-reads the fifth to-be-converted data, and performs homomorphic encryption on the fifth to-be-converted data, to obtain the second homomorphic ciphertext, so that after the communication subunit 165 receives the third domain conversion ciphertext, the first calculation subunit 163 may start to calculate the third converted data according to the third domain conversion ciphertext and the second homomorphic ciphertext, which reduces the time for reading and encrypting the fifth to-be-converted data, so that the efficiency of converting data from the secret sharing domain to the homomorphic encryption domain may be improved.
It should be noted that, concepts such as “first” and “second” mentioned in the embodiments of the present disclosure are only used for distinguishing different data, devices, modules, or units, and are not used for limiting a sequence or interdependence relationship of functions performed by the data, devices, modules, or units. For example, the first source privacy calculation unit and the second source privacy calculation unit may be the same privacy calculation unit. In a scenario of converting data from the homomorphic encryption domain to the secret sharing domain, a privacy calculation unit that generates a domain conversion ciphertext is referred to as the first source privacy calculation unit. In a scenario of converting data from the secret sharing domain to the homomorphic encryption domain, the privacy calculation unit that generates the domain conversion ciphertext is referred to as the second source privacy calculation unit.
In some embodiments of the present disclosure, during performing the privacy-preserving computation, not only operations in the homomorphic encryption domain are involved, but also operations in the secret sharing domain are involved. The operations in the homomorphic encryption domain include the homomorphic addition and multiplication operation. The operations in the secret sharing domain includes the integer operation. The first calculation subunit 163 is used for the homomorphic addition and multiplication operations in the homomorphic encryption domain, and the second calculation subunit is used for the integer operation in the secret sharing domain, to ensure that the privacy calculation unit 162 can normally perform the privacy-preserving computation.
In some embodiments, as shown in
Example privacy calculation methods according to some embodiments of the present disclosure will be discussed below.
In step 1101, a plurality of first domain conversion ciphertexts are calculated sequentially, and the calculated first domain conversion ciphertexts are stored. The first domain conversion ciphertext is an intermediate ciphertext when first to-be-converted data is converted from a first privacy-preserving computation domain to a second privacy-preserving computation domain.
In step 1102, in a process in which a postorder first domain conversion ciphertext is calculated, a preorder first domain conversion ciphertext is sent to a target privacy calculation unit other than the current privacy calculation unit, to enable the target privacy calculation unit to generate first converted data corresponding to the first to-be-converted data in the second privacy-preserving computation domain according to the preorder first domain conversion ciphertext.
In some embodiments of the present disclosure, the plurality of first domain conversion ciphertexts are calculated sequentially, and the calculated first domain conversion ciphertexts are stored. In the process of calculating the postorder first domain conversion ciphertext, the preorder first domain conversion ciphertext is sent to the target privacy calculation unit, so that the calculation process of the postorder first domain conversion ciphertext at least partially overlaps with the sending process of the preorder first domain conversion ciphertext, and there is no need to wait for the preorder domain conversion ciphertext to be sent to a target calculation apparatus before starting to calculate the postorder domain conversion ciphertext, thereby reducing at least part of the time for sending the domain conversion ciphertext to the target calculation apparatus. Therefore, for a privacy-preserving computation scenario, such as privacy-preserving machine learning, that requires a batch of privacy-preserving computation domain conversion, the efficiency of privacy-preserving computation can be improved.
It should be noted that, because details of the privacy calculation method have been described in detail in combination with the structural schematic diagram in the foregoing embodiments of the privacy calculation unit, for the specific process, the reference may be made to the description in the foregoing embodiments of the privacy calculation unit, and thus details are not repeated herein.
Example electronic devices according to some embodiments of the present disclosure will be discussed below.
Communication among the processor 1202, the communication interface 1204, and the memory 1206 can be implemented through the communication bus 1208.
The communication interface 1204 is configured to communicate with another electronic device or server.
The processor 1202 is configured to execute a program 1210, and specifically, may perform corresponding steps in any foregoing embodiments of the privacy calculation methods.
Specifically, the program 1210 may include program codes, and the program codes include a computer operation instruction.
The processor 1202 can be a CPU, or an application specific integrated circuit (ASIC), or may be configured as one or more integrated circuits in some embodiments of the present disclosure. One or more processors included in a smart device may be processors of the same type, for example, one or more CPUs, or may be processors of different types, for example, one or more CPUs and one or more ASICs.
RISC-V is an open source instruction set architecture based on a reduced instruction set computer (RISC) principle, may be applied to various aspects such as a single-chip microcomputer and an FPGA chip, and may be specifically used in the field such as Internet of Things security, industrial control, mobile phones, or personal computers. In addition, because the design considers the practical conditions of the small size, the high speed, and the low power consumption, the RISC-V is especially suitable for modern computation devices such as warehouse-scale cloud computers, high-end mobile phones, or micro embedded systems. With the rise of artificial intelligence of things (AIoT), the RISC-V instruction set architecture also gains more and more attention and support, and is expected to become the widely used CPU architecture in the next generation.
The computer operation instruction in some embodiments of the present disclosure may be a computer operation instruction based on the RISC-V instruction set architecture. Correspondingly, the processor 1202 may be designed based on the RISC-V instruction set. Specifically, a chip of the processor in the electronic device provided in some embodiments of the present disclosure may be a chip designed using the RISC-V instruction set. The chip may execute executable code based on the configured instruction, thereby implementing the privacy calculation method in the foregoing embodiments.
The memory 1206 is configured to store the program 1210. The memory 1206 may include a high-speed RAM memory, or may further include a non-volatile memory, for example, at least one magnetic disk memory.
Specifically, the program 1210 may be configured to enable the processor 1202 to perform the privacy calculation method in any foregoing embodiments.
For specific implementations of steps in the program 1210, the reference may be made to corresponding description of corresponding steps and units in any foregoing embodiments of privacy calculation methods, and details are not repeated herein. It can be clearly understood by a person skilled in the art that, for the purpose of convenient and brief description, for the detailed working process of the foregoing devices and modules, the reference may be made to the corresponding process in the foregoing method embodiments, and details are not repeated herein.
Through the electronic devices disclosed in embodiments of the present disclosure, the plurality of first domain conversion ciphertexts are calculated sequentially, and the calculated first domain conversion ciphertexts are stored. In the process of calculating the postorder first domain conversion ciphertext, the preorder first domain conversion ciphertext is sent to the target privacy calculation unit, so that the calculation process of the postorder first domain conversion ciphertext at least partially overlaps with the sending process of the preorder first domain conversion ciphertext, and there is no need to wait for the preorder domain conversion ciphertext to be sent to a target calculation apparatus before starting to calculate the postorder domain conversion ciphertext, thereby reducing at least part of the time for sending the domain conversion ciphertext to the target calculation apparatus. Therefore, for a privacy-preserving computation scenario, such as privacy-preserving machine learning, that requires a batch of privacy-preserving computation domain conversion, the efficiency of privacy-preserving computation can be improved.
Example computer storage media according to some embodiments of the present disclosure will be discussed below.
The present disclosure further provides a computer-readable storage medium storing instructions for enabling a machine to perform the privacy calculation methods described in the embodiments of the disclosure. Specifically, a system or an apparatus that is equipped with a storage medium may be provided. The storage medium stores software program codes that implement functions of any embodiment in the foregoing embodiments, and a computer (e.g., a CPU or an MPU) of the system or the apparatus is enabled to read and execute the program codes stored in the storage medium.
In this case, the program codes read from the storage medium can implement the functions in any one of the foregoing embodiments, and therefore the program codes and the storage medium for storing the program code constitute a part of the present disclosure.
Embodiments of the storage medium for providing the program code may include a floppy disk, a hard disk, a magneto-optical disk, an optical memory (such as a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, a DVD-RW, and a DVD+RW), a magnetic tape, a non-volatile storage card, and a ROM. Optionally, the program code may be downloaded from a server computer by using a communication network.
Example computer program products according to some embodiments of the present disclosure will be discussed below.
Some embodiments of the present disclosure further provide a computer program product including computer instructions. The computer instructions are configured to instruct a computer device to perform any corresponding operation(s) in the foregoing method embodiments.
It is appreciated that the present disclosure may be implemented as systems, methods, or computer program products. Therefore, the present disclosure may be specifically implemented in the following forms, e.g., the form of complete hardware, complete software (including firmware, resident software, and micro code), or may be implemented as a combination of hardware and software. In addition, in some embodiments, the present disclosure may further be implemented in a form of one or more computer program products in a computer-readable medium. The computer-readable medium includes computer-readable program code(s).
The computer program product may be any combination of one or more computer-readable media. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. The computer-readable storage medium may be, for example, but not limited to, an electric, magnetic, optical, electromagnetic, infrared, or semi-conductive system, apparatus, or device, or any combination thereof. More specific examples of the computer-readable storage medium include: an electrical connection having one or more wires, a portable computer magnetic disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable ROM (EPROM or flash memory), an optical fiber, a compact disk ROM (CD-ROM), an optical storage device, a magnetic storage device, or any appropriate combination thereof. In the present disclosure, the computer-readable storage medium may be any tangible medium containing or storing a program, and the program may be used by or used in combination with a processing unit, an apparatus, or a device.
The computer-readable signal medium may include a data signal being in a baseband or transmitted as a part of a carrier, which carries computer-readable program code(s). The propagated data signal may be in a plurality of forms, including but not limited to, an electromagnetic signal, an optical signal, or any other appropriate combination thereof. The computer-readable signal medium may further be any computer-readable medium other than the computer-readable storage medium. The computer-readable medium may send, propagate, or transmit a program that is used by or used in conjunction with an instruction execution system, an apparatus, or a device.
The program code(s) comprised in the computer-readable medium may be transmitted by using any suitable medium, including but not limited to, wireless transmission, a wire, a cable, radio frequency (RF) or the like, or any suitable combination thereof.
The computer program code(s) used for executing the embodiments of the present disclosure may be written by using one or more programming languages or a combination thereof. The programming languages include an object-oriented programming language such as Java and C++, and may also include a conventional procedural programming language such as C. The program code may be completely executed on a user computer, partially executed on a user computer, executed as an independent software package, partially executed on a user computer and partially executed on a remote computer, or completely executed on a remote computer or server. For the case involving a remote computer, the remote computer may be connected to a computer of a user through any type of network including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet by using an Internet service provider).
It should be noted that, information (including but not limited to user device information, user personal information, or the like) and data (including but not limited to sample data used for training a model, data used for analysis, stored data, displayed data, or the like) that are involved in some embodiments of the present disclosure and are related to a user are information and data that are authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant laws, regulations, and standards of relevant countries and regions. In addition, a corresponding operation entrance is provided for the user to choose to authorize or deny.
It can be understood that, the embodiments of this disclosure are described in a progressive manner, for the same or similar parts in the embodiments, the reference can be made to other embodiments, and descriptions of each embodiment focus on the different part(s) from other embodiments. Especially, method embodiments are generally similar to methods described in apparatus embodiments and system embodiments, and therefore are described briefly. For related parts, the reference can be made to partial description in other embodiments.
It should be understood that specific embodiments of the present disclosure are described above. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and the desired result may still be achieved. In addition, the processes depicted in the accompanying drawings do not necessarily require the particular order shown or sequential order to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
It should be understood that an element described in a singular form herein or displayed only one in the accompanying drawings does not indicate that the element is limited to only one. In addition, modules or elements described or shown as separate herein may be combined into a single module or element, while a module or an element described or shown herein as a single module or element may be split into a plurality of modules or elements.
The embodiments may further be described using the following clauses:
It should also be understood that the terms and expression manners used herein are merely for description, and one or more embodiments of the present disclosure should not be limited to these terms and expressions. The use of these terms and expressions does not mean to exclude any equivalent features of the illustration and description (or part of them), and it should be understood that various modifications that may exist should also be within the scope of claims. Other modifications, changes, and replacements may also exist. Accordingly, the claims should be considered as covering all these equivalents.
Number | Date | Country | Kind |
---|---|---|---|
202310421294.4 | Apr 2023 | CN | national |