Homomorphic encryption computing method and system, homomorphic request, computing and key system
By adopting a three-party collaboration method in the homomorphic encryption computing system, the multi-data set addition of multi-client data sets is solved, and the existing system cannot support multi-client data set calculations are improved, and the computing flexibility and data mining value are improved.
Patent Information
- Application Number
- CN202210340672.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-02
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2042-04-02
AI Technical Summary
Existing homomorphic encryption computing systems cannot support multi-data sets added to computing with multiple clients, limiting the flexibility and application scope of computing.
By designing a homomorphic encryption computing system, using a three-party collaboration method, the traditional two-party computing framework is transformed into a multi-party collaborative computing framework, and the multi-data sets of multiple clients are added to homomorphic computing.
It improves the flexibility of homomorphic computing, provides feasibility of multi-party joint computing services, and enhances the value of data mining.
Smart Images

Figure CN114629620B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data security protection technology, and in particular to a homomorphic encryption calculation method and system, homomorphic request, calculation and key system. Background Art
[0002] With the rapid development of Internet technology, an increasing amount of data is being transmitted, stored, and calculated. Much of this data is critical, encrypted, secure, or private. In particular, private data may also be protected by confidentiality laws and regulations. Users generally encrypt their data to protect it from malicious insiders, external attackers, or accidental exposure. Under traditional encryption mechanisms, data can be encrypted and protected during transmission and storage. However, in the process of data use, ciphertext data often needs to be decrypted before it can be processed, making plaintext data extremely vulnerable to attacks. Academia and industry have been proposing various solutions to solve this problem, such as homomorphic encryption.
[0003] Homomorphic Encryption (HE) is a widely used cryptographic tool. It is an encryption algorithm that satisfies the homomorphic operation property of ciphertext. That is, after the data is homomorphically encrypted, a specific calculation is performed on the ciphertext, and the ciphertext calculation result is equivalent to the same calculation directly performed on the plaintext data after the corresponding decryption, so that the data is "computable but invisible". Therefore, it is widely used in privacy-protected cloud service computing, outsourced computing, federated learning and other scenarios, and is a direction of emerging privacy technology. In essence, homomorphic encryption refers to an encryption function that performs addition and multiplication operations on the plaintext in a ring and then encrypts it, and the results are equivalent to the corresponding operations on the ciphertext after encryption. Due to this good property, in actual applications, a third party can be entrusted to process the data without leaking information. An encryption function with homomorphic properties refers to an encryption function in which two plaintexts a and b satisfy the following encryption function:
[0004] Dec(En(a)⊙En(b))=a⊕b;
[0005] Among them, En is the encryption operation, Dec is the decryption operation, ⊕ and ⊙ correspond to the operations on the plaintext and ciphertext domains respectively. When ⊕ represents addition, the encryption is called additive homomorphic encryption, and when ⊕ represents multiplication, the encryption is called multiplicative homomorphic encryption. Fully homomorphic encryption refers to an encryption function that satisfies both additive homomorphism and multiplicative homomorphism properties and can perform any number of addition and multiplication operations. It can be expressed as a mathematical formula:
[0006] Dec(f(En(m1), En(m2),…, En(mk)))=f(m1, m2,…, mk),
[0007] Or, expressed as:
[0008] f(En(m1), En(m2),…, En(mk))=En(f(m1, m2,…, mk)),
[0009] Among them, if f is an arbitrary function, it is called fully homomorphic encryption.
[0010] However, homomorphic encryption requires that the entire process of the calculation be completed in the ciphertext state. Compared with plaintext calculation, the speed of ciphertext calculation decreases by 3-6 orders of magnitude, so greater computing power resources are needed to support homomorphic encryption calculation. In the prior art, homomorphic encryption calculation generally adopts a two-party computing framework. The homomorphic computing system includes two parties, the client and the server. The server has a data set X, and the client has a data set Y. The client needs to combine the data of the two parties to perform specific calculations. The client generates a homomorphic private key SKB and a public key PKB, uses the public key PKB to homomorphically encrypt the data set Y to obtain Enc(Y), and sends the public key PKB and the encrypted data set Enc(Y') to the server. The server performs homomorphic calculations on the data set X and the encrypted data set Enc(Y), obtains the encryption result and sends it back to the client, and the client uses the private key SKB to decrypt and obtain the calculation result. The disadvantage of this homomorphic request system is that the homomorphic public and private keys are generated on the client, and it is impossible to support other client data sets to join the calculation, which limits the participants in the calculation. Summary of the invention
[0011] The main technical problem solved by this application is how to realize the addition of multiple data sets of multiple clients to homomorphic computing to improve the flexibility and application scope of the homomorphic computing system.
[0012] In a first aspect, an embodiment provides a homomorphic encryption computing system, including a homomorphic request system, a homomorphic computing system, and a homomorphic key system;
[0013] The homomorphic key system is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively;
[0014] The homomorphic request system is used to obtain a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system;
[0015] The homomorphic computing system is used to perform homomorphic computing on the first homomorphic encrypted data set according to the obtained homomorphic public key and a homomorphic data processing method corresponding to a preset data processing method to obtain a second homomorphic encrypted data set, and send the obtained second homomorphic encrypted data set to the homomorphic key system;
[0016] The homomorphic key system is also used to decrypt the second homomorphic encrypted data set based on the homomorphic private key to obtain homomorphic processing result data; the homomorphic processing result data is the same as the result data obtained by processing the data set to be encrypted according to the data processing method.
[0017] In a second aspect, an embodiment provides a homomorphic request system, which is used for the homomorphic encryption computing system described in the first aspect, and the homomorphic request system is used to obtain the homomorphic public key to obtain first homomorphic encrypted data based on the homomorphic public key and the data set to be encrypted, and send the obtained first homomorphic encrypted data to the homomorphic computing system.
[0018] In a third aspect, an embodiment provides a homomorphic computing system, which is used for the homomorphic encryption computing system described in the first aspect, and the homomorphic computing system is used to obtain the homomorphic public key and the first homomorphic encrypted data, so as to perform homomorphic computing on the first homomorphic encrypted data set according to the homomorphic public key and a homomorphic data processing method corresponding to a preset data processing method, so as to obtain a second homomorphic encrypted data set, and send the obtained second homomorphic encrypted data set to the homomorphic key system.
[0019] In a fourth aspect, an embodiment provides a homomorphic key system, which is used in the homomorphic encryption computing system described in the first aspect, and the homomorphic key system is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively; the homomorphic key system is also used to obtain the second homomorphic encrypted data set output by the homomorphic computing system, and obtain the homomorphic processing result data based on the second homomorphic encrypted data set and the homomorphic private key.
[0020] In a fifth aspect, an embodiment provides a homomorphic encryption computing method, which is used in the homomorphic encryption computing system as described in the first aspect, and the homomorphic encryption computing method includes:
[0021] The homomorphic key system generates a homomorphic public key and a homomorphic private key, and sends the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively;
[0022] The homomorphic request system obtains a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and sends the obtained first homomorphic encrypted data set to the homomorphic computing system;
[0023] The homomorphic computing system obtains a second homomorphic encrypted data set according to the obtained homomorphic public key and the first homomorphic encrypted data set, and sends the obtained second homomorphic encrypted data set to the homomorphic key system;
[0024] The homomorphic key system obtains the homomorphic processing result data according to the second homomorphic encrypted data set and the homomorphic private key.
[0025] The homomorphic encryption computing system disclosed in the above embodiments adopts a three-party collaborative method for homomorphic computing, transforming the traditional two-party computing framework into a multi-party collaborative computing framework, thereby increasing the flexibility of homomorphic computing, providing the feasibility of multi-party joint computing services for data, and improving the value of data mining. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 A structural block diagram of a homomorphic encryption computing system in an embodiment;
[0027] Figure 2 A schematic diagram of the structural connection of a homomorphic computing system in an embodiment;
[0028] Figure 3 A flowchart of a homomorphic encryption calculation method in another embodiment. DETAILED DESCRIPTION
[0029] The present invention is further described in detail below by specific embodiments in conjunction with the accompanying drawings. Wherein similar elements in different embodiments adopt associated similar element numbers. In the following embodiments, many detailed descriptions are for making the present application better understood. However, those skilled in the art can easily recognize that some features can be omitted in different situations, or can be replaced by other elements, materials, methods. In some cases, some operations related to the present application are not shown or described in the specification, this is to avoid the core part of the present application being overwhelmed by too much description, and for those skilled in the art, it is not necessary to describe these related operations in detail, and they can fully understand the related operations according to the description in the specification and the general technical knowledge in the art.
[0030] In addition, the features, operations or characteristics described in the specification can be combined in any appropriate manner to form various implementations. At the same time, the steps or actions in the method description can also be interchanged or adjusted in a manner that is obvious to those skilled in the art. Therefore, the various sequences in the specification and the drawings are only for the purpose of clearly describing a certain embodiment and are not meant to be a required sequence, unless otherwise specified that a certain sequence must be followed.
[0031] The serial numbers assigned to the components herein, such as "first", "second", etc., are only used to distinguish the objects described and do not have any order or technical meaning. The "connection" and "coupling" mentioned in this application, unless otherwise specified, include direct and indirect connections (couplings).
[0032] The homomorphic encryption computing system disclosed in the embodiment of the present application includes a homomorphic request system, a homomorphic computing system and a homomorphic key system. First, the homomorphic key system generates a homomorphic public key and a homomorphic private key, and sends the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively. Then, the homomorphic request system obtains a first homomorphic encrypted data set based on the homomorphic public key and a preset data set to be encrypted and sends it to the homomorphic computing system; then, the homomorphic computing system obtains a second homomorphic encrypted data set based on the homomorphic public key and the first homomorphic encrypted data set and sends it to the homomorphic key system, so that the homomorphic key system can obtain homomorphic processing result data of the data set to be encrypted based on the second homomorphic encrypted data set and the homomorphic private key. Since the homomorphic computing adopts a three-party collaborative mode, the traditional two-party computing framework is transformed into a multi-party collaborative computing framework, which increases the flexibility of homomorphic computing, provides the feasibility of multi-party joint computing services for data, and improves the value of data mining.
[0033] Embodiment 1
[0034] Please refer to Figure 1 , is a structural block diagram of a homomorphic encryption computing system in an embodiment, the homomorphic encryption computing system includes a homomorphic request system 100, a homomorphic computing system 200 and a homomorphic key system 300. The homomorphic key system 300 is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system 100 and the homomorphic computing system 200 respectively. The homomorphic request system 100 is used to obtain a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system 200. The homomorphic computing system 200 is used to perform homomorphic computing on the first homomorphic encrypted data set according to the homomorphic data processing method corresponding to the preset data processing method according to the obtained homomorphic public key, so as to obtain a second homomorphic encrypted data set, and send the obtained second homomorphic encrypted data set to the homomorphic key system 300. The homomorphic key system 300 is also used to decrypt the second homomorphic encrypted data set according to the homomorphic private key to obtain homomorphic processing result data. The homomorphic processing result data is the same as the result data obtained by processing the data set to be encrypted according to the data processing method.
[0035] In one embodiment, the homomorphic request system 100 obtains a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, including:
[0036] The homomorphic request system 100 is used to perform homomorphic encryption calculation on a data set to be encrypted according to a homomorphic public key to obtain a first homomorphic encrypted data set.
[0037] In one embodiment, the homomorphic computing system 200 is used to perform homomorphic computing on a first homomorphic encrypted data set according to a homomorphic data processing method corresponding to an acquired homomorphic public key and a preset data processing method to obtain a second homomorphic encrypted data set, including:
[0038] The homomorphic computing system 200 performs homomorphic computing on a homomorphic encrypted data set according to a homomorphic public key to obtain a second homomorphic encrypted data set, wherein the second homomorphic encrypted data set is result data after homomorphic computing is performed on the first homomorphic encrypted data set.
[0039] In one embodiment, homomorphic computing is semi-homomorphic computing, partial homomorphic computing or full homomorphic computing. Semi-homomorphic computing includes addition homomorphic computing or multiplication homomorphic computing, partial homomorphic computing refers to arbitrary function homomorphic computing with limited computing depth, and full homomorphic computing refers to arbitrary function homomorphic computing with unlimited computing depth.
[0040] In one embodiment, homomorphic computing includes homomorphic addition function operation, homomorphic multiplication function operation, homomorphic mixing function operation and / or homomorphic logic operation. Homomorphic logic operation includes comparing a first homomorphic encrypted data set with a data set to be compared, and the second homomorphic encrypted data set includes comparison result data obtained after comparing the first homomorphic encrypted data set with the data set to be compared. The comparison result data includes identical relationships, size relationships and logical relationships, wherein identical relationships include identical, different, belonging, not belonging, intersection or no intersection, size relationships include greater than, less than or equal to, and logical relationships include total-to-specific relationships, primary-secondary relationships, parallel relationships, progressive relationships, point-to-surface relationships, cause-and-effect relationships, virtual-real relationships or qualitative and quantitative relationships.
[0041] The following describes a specific embodiment of performing homomorphic calculation on a first homomorphic encrypted data set according to a homomorphic data processing method corresponding to a preset data processing method to obtain a second homomorphic encrypted data set, for example:
[0042] Pre-calculate the data A (data set to be encrypted) by adding 1, and then obtain the calculation result based on the homomorphic private key. The specific process includes:
[0043] The homomorphic key system 300 generates a homomorphic public key N and a homomorphic private key M, and sends the homomorphic public key N to the homomorphic request system 100 and the homomorphic computing system 200 .
[0044] The homomorphic request system 100 performs homomorphic encryption calculation on data A according to the obtained homomorphic public key N to obtain data B (a first homomorphic encrypted data set), and then sends data B to the homomorphic computing system 200.
[0045] The homomorphic computing system 200 performs a homomorphic addition calculation on the data B based on the obtained homomorphic public key N (i.e., performs homomorphic calculation on the first homomorphic encrypted data set according to the homomorphic data processing method corresponding to the preset data processing method), and sends the calculation result data C (the second homomorphic encrypted data set) to the homomorphic key system 300.
[0046] The homomorphic key system 300 obtains the calculation result of data A plus 1 based on the homomorphic private key M and the calculation result data C.
[0047] In the above example, the preset data processing method is to pre-calculate data A plus 1, and the homomorphic data processing method corresponding to the preset data processing method is to perform homomorphic calculation of data B plus 1 according to the obtained homomorphic public key N.
[0048] In one embodiment, the homomorphic public key generated by the homomorphic key system 300 includes a first public key and a second public key. The homomorphic key system 300 is used to send the first public key to the homomorphic request system 100, and is also used to send the second public key to the homomorphic computing system 200. The first public key and the second public key are both generated based on the homomorphic private key. Please refer to Figure 2 , is a structural block diagram of a homomorphic computing system in an embodiment, the homomorphic request system 100 includes n homomorphic request devices 110, and n is a natural number greater than 1. Each homomorphic request device 110 obtains a first public key. In one embodiment, the first public key obtained by each homomorphic request device 110 is different. In one embodiment, the first public keys obtained by at least two homomorphic request devices 110 are different. In one embodiment, the first public keys obtained by each homomorphic request device 110 are the same.
[0049] Each homomorphic requesting device is used to obtain a homomorphic public key, and obtain a first homomorphic encrypted data set based on the homomorphic public key and the data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system 200. In one embodiment, each homomorphic requesting device 110 performs homomorphic encryption calculation on a corresponding data set to be encrypted, and sends the obtained first homomorphic encrypted data set corresponding to the data set to be encrypted to the homomorphic computing system.
[0050] In one embodiment of the present application, a homomorphic request system is also disclosed, which is used in the homomorphic encryption computing system as described above. The homomorphic request system is used to obtain a homomorphic public key to obtain a first homomorphic encrypted data set based on the homomorphic public key and the data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system. In one embodiment, the homomorphic request system includes multiple homomorphic request devices, each of which performs homomorphic encryption calculations on a data set to be encrypted to obtain multiple first homomorphic encrypted data sets. In one embodiment, multiple homomorphic request devices jointly perform homomorphic encryption calculations on a data set to be encrypted to obtain a first homomorphic encrypted data set.
[0051] In one embodiment of the present application, a homomorphic computing system is also disclosed, which is used in the homomorphic encryption computing system as described above, and the homomorphic computing system is used to obtain a homomorphic public key and a first homomorphic encryption data set, so as to obtain a second homomorphic encryption data set based on the homomorphic public key and the first homomorphic encryption data set, and send the obtained second homomorphic encryption data set to the homomorphic key system. In one embodiment, the homomorphic computing system includes at least two homomorphic computing devices, each of which obtains a second homomorphic encryption data set, or a plurality of homomorphic computing devices jointly obtain a second homomorphic encryption data set.
[0052] In one embodiment of the present application, a homomorphic key system is also disclosed, which is used in the homomorphic encryption computing system as described above, and the homomorphic key system is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively. The homomorphic key system is also used to obtain a second homomorphic encrypted data set output by the homomorphic computing system, and obtain homomorphic processing result data based on the second homomorphic encrypted data set and the homomorphic private key. In one embodiment, the homomorphic key system includes at least two homomorphic key devices, each homomorphic key device obtains a homomorphic public key, or multiple homomorphic key devices obtain a homomorphic public key. In one embodiment, when the homomorphic request system includes at least two homomorphic request devices, the homomorphic public keys obtained by each homomorphic request device are the same. In one embodiment, when the homomorphic request system includes at least two homomorphic request devices, the homomorphic public keys obtained by at least two of the homomorphic request devices are different.
[0053] The following is a specific example to illustrate Figure 2 The application scenario of the homomorphic encryption computing system shown in the figure queues the preset values of n homomorphic request devices in order of size, including:
[0054] First, n homomorphic requesting devices 110 respectively homomorphically encrypt their own preset values, and send their respectively obtained first homomorphic encrypted data sets to the homomorphic computing system 200.
[0055] Then, the homomorphic computing system 200 performs homomorphic logic operations on all the acquired first homomorphic encrypted data sets to sort the n first homomorphic encrypted data sets after comparing their sizes, and thereby acquire the second homomorphic encrypted data sets.
[0056] Finally, the homomorphic key system 300 decrypts the second homomorphic encrypted data set according to the homomorphic private key, and then obtains the result of comparing and sorting the preset numerical values of the n homomorphic requesting devices 110 under the premise of confidentiality.
[0057] The homomorphic encryption computing system disclosed in the present application first generates a homomorphic public key and a homomorphic private key by a homomorphic key system, and sends the homomorphic public key to a homomorphic request system and a homomorphic computing system respectively. Then the homomorphic request system obtains a first homomorphic encrypted data set based on the homomorphic public key and a preset data set to be encrypted and sends it to the homomorphic computing system; then the homomorphic computing system obtains a second homomorphic encrypted data set based on the homomorphic public key and the first homomorphic encrypted data set and sends it to the homomorphic key system, so that the homomorphic key system can obtain homomorphic processing result data based on the second homomorphic encrypted data set and the homomorphic private key. Since the homomorphic computing adopts a three-party collaborative mode, the traditional two-party computing framework is transformed into a multi-party collaborative computing framework, which increases the flexibility of homomorphic computing, provides the feasibility of multi-party joint computing services for data, and improves the value of data mining.
[0058] Embodiment 2
[0059] Please refer to Figure 3 , is a flow chart of a homomorphic encryption computing method in an embodiment, the homomorphic encryption computing method is used in the homomorphic encryption computing system as described in the first embodiment, including:
[0060] Step 1. Generate homomorphic public key and homomorphic private key.
[0061] The homomorphic key system generates a homomorphic public key and a homomorphic private key, and sends the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively.
[0062] Step 2. Obtain the first homomorphically encrypted data.
[0063] The homomorphic request system obtains a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and sends the obtained first homomorphic encrypted data set to the homomorphic computing system.
[0064] Step 3. Obtain the second homomorphically encrypted data.
[0065] The homomorphic computing system obtains a second homomorphic encrypted data set based on the obtained homomorphic public key and the first homomorphic encrypted data set, and sends the obtained second homomorphic encrypted data set to the homomorphic key system.
[0066] Step 4. Decryption is complete.
[0067] The homomorphic key system decrypts the second homomorphic encrypted data set according to the homomorphic private key to obtain homomorphic processing result data. The homomorphic processing result data is the same as the result data obtained by processing the to-be-encrypted data set according to the data processing method as described above.
[0068] In one embodiment, the homomorphic key system generates homomorphic keys, including but not limited to single keys and multiple keys. In one embodiment, the homomorphic computing types of the homomorphic computing system include but are not limited to full ciphertext computing and partial ciphertext computing (such as computing ciphertext and plaintext).
[0069] The core of the invention of the homomorphic encryption computing method disclosed in the present application is to realize homomorphic encryption computing by means of multi-party collaborative computing, specifically, to realize multi-party collaborative computing of homomorphic request system and homomorphic computing system by independently designing homomorphic key system. In one embodiment, the homomorphic key system first generates homomorphic public key and private key, and then distributes the homomorphic public key to the homomorphic request system and homomorphic computing system participating in the computing, and the private key is retained locally. The homomorphic request system prepares the request data set (i.e., the data set to be encrypted), and uses the homomorphic public key to encrypt the request data set into a first homomorphic encrypted data set, and sends it to the homomorphic computing system. The homomorphic computing system uses the homomorphic public key and the first homomorphic encrypted data set to perform homomorphic computing, obtains the second homomorphic encrypted data set, and sends it to the homomorphic key system. Finally, the homomorphic key system uses the homomorphic private key to perform decryption computing on the second homomorphic encrypted data set to obtain a plaintext result data set. Compared with the prior art, the homomorphic computing method can independently set the homomorphic key service party, realize the transformation of the traditional two-party computing architecture into a multi-party collaborative computing architecture, and increase the flexibility of the scheme. The multi-party collaborative computing architecture can also provide joint computing services for multiple data parties and improve the value of data mining.
[0070] The following takes single-key homomorphic encryption, a homomorphic key system (key service party), two homomorphic request systems (data request party, data service party) and a homomorphic computing system (computing party) as an example. The specific steps of the homomorphic computing method include:
[0071] Step 110: The key service provider generates a homomorphic private key SKA and a homomorphic public key PKA, distributes the homomorphic public key PKA to the data requester, the data service provider, and the computing provider, and retains the homomorphic private key SKA locally at the key service provider;
[0072] Step 120: The data requester prepares a data set X, encrypts the data set X using a homomorphic public key PKA to obtain an encrypted data set Enc(X), and sends it to the computing party.
[0073] Step 130: The data service provider prepares a data set Y, encrypts the data set Y using the homomorphic public key PKA to obtain an encrypted data set Enc(Y), and sends it to the computing party.
[0074] Step 140: The computing party prepares a computing function F(), uses the computing function F() and the homomorphic public key PKA to perform homomorphic computing on the encrypted data sets Enc(X) and Enc(Y), obtains the encrypted result data set Enc{F(X, Y)}, and sends it to the key service party;
[0075] In step 150, the key service provider uses the homomorphic private key SKA to decrypt the encrypted result data set Enc{F(X, Y)}, obtains the decryption result F(X, Y), and sends it to the data requester.
[0076] Those skilled in the art will appreciate that all or part of the functions of the various methods in the above-mentioned embodiments can be implemented by hardware or by computer programs. When all or part of the functions in the above-mentioned embodiments are implemented by computer programs, the program can be stored in a computer-readable storage medium, and the storage medium can include: read-only memory, random access memory, disk, optical disk, hard disk, etc., and the program is executed by a computer to implement the above-mentioned functions. For example, the program is stored in the memory of the device, and when the program in the memory is executed by the processor, all or part of the above-mentioned functions can be implemented. In addition, when all or part of the functions in the above-mentioned embodiments are implemented by computer programs, the program can also be stored in a storage medium such as a server, another computer, disk, optical disk, flash disk or mobile hard disk, and can be downloaded or copied and saved in the memory of the local device, or the system of the local device is updated, and when the program in the memory is executed by the processor, all or part of the functions in the above-mentioned embodiments can be implemented.
[0077] The above specific examples are used to illustrate the present invention, which is only used to help understand the present invention and is not intended to limit the present invention. For those skilled in the art, according to the concept of the present invention, some simple deductions, modifications or substitutions can be made.
Claims
1. A homomorphic encryption computing system, characterized in that: Including homomorphic request system, homomorphic computing system and homomorphic key system; The homomorphic key system is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively; The homomorphic request system is used to obtain a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system; The homomorphic computing system is used to perform homomorphic computing on the first homomorphic encrypted data set according to the obtained homomorphic public key and in a homomorphic data processing manner corresponding to a preset data processing method to obtain a second homomorphic encrypted data set, and send the obtained second homomorphic encrypted data set to the homomorphic key system; The homomorphic key system is also used to decrypt the second homomorphic encrypted data set according to the homomorphic private key to obtain homomorphic processing result data.
2. The homomorphic encryption computing system according to claim 1, characterized in that: The homomorphic request system includes one or at least two homomorphic request devices; Each of the homomorphic requesting devices is used to obtain the homomorphic public key, and obtain a first homomorphic encrypted data set based on the respectively obtained homomorphic public key and the data set to be encrypted, and send the obtained first homomorphic encrypted data set to the homomorphic computing system.
3. The homomorphic encryption computing system according to claim 2, characterized in that: When the homomorphic request system includes at least two homomorphic request devices, the homomorphic public keys obtained by each homomorphic request device are the same, or the homomorphic public keys obtained by at least two homomorphic request devices are different.
4. The homomorphic encryption computing system according to claim 1, characterized in that: The homomorphic computing system performs homomorphic computing on the first homomorphic encrypted data set according to the obtained homomorphic public key and a homomorphic data processing method corresponding to a preset data processing method to obtain a second homomorphic encrypted data set, including: The homomorphic computing system performs homomorphic computing on the first homomorphic encrypted data set according to the homomorphic public key to obtain a second homomorphic encrypted data set; the second homomorphic encrypted data set is result data after the homomorphic computing is performed on the first homomorphic encrypted data set.
5. The homomorphic encryption computing system according to claim 4, characterized in that: The homomorphic computing includes homomorphic addition function operation, homomorphic multiplication function operation, homomorphic mixing function operation and / or homomorphic logic operation; the homomorphic logic operation includes comparing the first homomorphic encrypted data set with a data set to be compared; the second homomorphic encrypted data set contains comparison result data obtained after comparing the first homomorphic encrypted data set with the data set to be compared; the comparison result data includes identical relationships, size relationships and logical relationships; wherein, the identical relationships include identical, different, belonging, not belonging, having intersection or not having intersection, the size relationships include greater than, less than or equal to, and the logical relationships include total-to-partial relationships, primary-secondary relationships, parallel relationships, progressive relationships, point-to-surface relationships, cause-and-effect relationships, virtual-real relationships or qualitative-quantitative relationships.
6. The homomorphic encryption computing system according to claim 1, characterized in that: The homomorphic public key generated by the homomorphic key system includes a first public key and a second public key; the homomorphic key system is used to send the first public key to the homomorphic request system, and is also used to send the second public key to the homomorphic computing system; the first public key and the second public key are generated based on the homomorphic private key.
7. A homomorphic request system, characterized in that: Used in the homomorphic encryption computing system described in any one of claims 1 to 6, the homomorphic request system is used to obtain the homomorphic public key, to obtain a first homomorphic encrypted data set based on the homomorphic public key and the data set to be encrypted, and to send the obtained first homomorphic encrypted data set to the homomorphic computing system.
8. A homomorphic computing system, characterized in that: A homomorphic encryption computing system used in any one of claims 1 to 6, wherein the homomorphic computing system is used to obtain the homomorphic public key and the first homomorphic encrypted data set, to perform homomorphic computing on the first homomorphic encrypted data set according to the homomorphic data processing method corresponding to the preset data processing method based on the obtained homomorphic public key, to obtain a second homomorphic encrypted data set, and to send the obtained second homomorphic encrypted data set to the homomorphic key system.
9. A homomorphic key system, characterized in that: Used in the homomorphic encryption computing system according to any one of claims 1 to 6, the homomorphic key system is used to generate a homomorphic public key and a homomorphic private key, and send the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively; the homomorphic key system is also used to obtain the second homomorphic encrypted data set output by the homomorphic computing system, and obtain the homomorphic processing result data based on the second homomorphic encrypted data set and the homomorphic private key.
10. A homomorphic encryption computing method, characterized in that: Used in a homomorphic encryption computing system as claimed in any one of claims 1 to 6, the homomorphic encryption computing method comprising: The homomorphic key system generates a homomorphic public key and a homomorphic private key, and sends the homomorphic public key to the homomorphic request system and the homomorphic computing system respectively; The homomorphic request system obtains a first homomorphic encrypted data set according to the obtained homomorphic public key and a preset data set to be encrypted, and sends the obtained first homomorphic encrypted data set to the homomorphic computing system; The homomorphic computing system obtains a second homomorphic encrypted data set according to the obtained homomorphic public key and the first homomorphic encrypted data set, and sends the obtained second homomorphic encrypted data set to the homomorphic key system; The homomorphic key system obtains the homomorphic processing result data according to the second homomorphic encrypted data set and the homomorphic private key.
Citation Information
Patent Citations
Method and system for sequencing ciphertexts orienting to homomorphic encryption
CN103401871A
Data security sharing system and method
CN110213219A