Homomorphic ciphertext processing method and device and computing equipment
By multiplexing the key management system of symmetric encryption, the problems of high expansion rate and low flexibility of homomorphic ciphertexts in all-homomorphic encryption technology are solved, and higher system flexibility and performance scalability are achieved.
Patent Information
- Application Number
- CN202311086577.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-25
- Publication Date
- 2025-02-25
AI Technical Summary
When the existing fully homomorphic encryption technology is used to calculate in the ciphertext state, the homomorphic ciphertext has high expansion rate, low flexibility, poor performance expansion, and makes it difficult to reuse the key management system of symmetric encryption.
By multiplexing the key management system with symmetric encryption, homomorphic computing is realized, and the calculation files after homomorphic computing are obtained without changing hardware and software, thereby improving the flexibility and performance scalability of the system.
降低了同态密文的膨胀率,提高了系统的灵活性和性能扩展性,避免了对硬件和软件的修改需求。
Smart Images

Figure CN119519918A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of encryption technology, and in particular to a method, device and computing equipment for processing homomorphic ciphertext. Background Art
[0002] Fully homomorphic encryption (FHE) is an encryption technology that can perform calculations on data in a ciphertext state without the need for decryption. Compared with other encryption technologies that can only transmit and store ciphertext, FHE technology can improve the privacy and security of data by performing complex calculations while keeping the data in an encrypted state. In related technologies, when FHE technology performs calculations on data in a ciphertext state, the resulting homomorphic ciphertext has defects such as large expansion rate, low flexibility, and poor performance scalability. Summary of the invention
[0003] In order to solve the above problems, a method for processing homomorphic ciphertext is provided in an embodiment of the present application, which reuses the key management system of symmetric encryption in related technologies, can realize homomorphic computing, and obtain the computing files after homomorphic computing, without the need to replace hardware and software, so as to improve the flexibility, performance scalability and other characteristics of the system. In addition, the present application also provides a homomorphic ciphertext processing device and computing equipment corresponding to the homomorphic ciphertext processing method.
[0004] To this end, the following technical solutions are adopted in the embodiments of the present application:
[0005] In a first aspect, the present application provides a method for processing homomorphic ciphertext, the method comprising: receiving a ciphertext acquisition request from a first type of memory, the ciphertext acquisition request indicating acquisition of a symmetric ciphertext calculation file; performing homomorphic symmetric encryption on the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file, the homomorphic ciphertext calculation file being stored in the ciphertext storage end; sending the homomorphic symmetric ciphertext calculation file to a key storage end, the key storage end being used to perform homomorphic decryption on the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file; after receiving the symmetric ciphertext calculation file sent by the key storage end, forwarding the symmetric ciphertext calculation file to the ciphertext storage end.
[0006] In this implementation, the method is generally run by the server. When the client does not have the homomorphic decryption function, the server can, after receiving the ciphertext acquisition request, symmetrically encrypt the homomorphic ciphertext calculation file in a homomorphic manner, and then decrypt it in a homomorphic manner to obtain a symmetric ciphertext calculation file. Since the symmetric ciphertext calculation file calculated by the server is a calculation file that can be decrypted by the client, when the FHE technology is run between the client and the server, there is no need to modify the hardware and software, and the symmetric encryption key management system can be reused, and the FHE technology function can still be realized, thereby improving the flexibility of the client, performance scalability and other characteristics.
[0007] In one embodiment, the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file that is decrypted by a private key of a target client to obtain the calculation file; the at least one client includes the target client, and the target client is a client that receives the symmetric ciphertext calculation file.
[0008] In this implementation, usually, the homomorphic ciphertext calculation file is obtained by homomorphic calculation of the homomorphic ciphertexts of multiple clients. If a client needs a calculation file corresponding to the homomorphic ciphertext calculation file, the private keys of multiple clients may be required to decrypt the homomorphic ciphertext calculation file in order to obtain the calculation file. Therefore, in the process of homomorphic calculation of the homomorphic ciphertexts of multiple clients, the server can convert the private keys of multiple clients that decrypt the homomorphic ciphertext calculation file into the private key of the target client, so that after receiving the homomorphic ciphertext calculation file or the symmetric ciphertext calculation file generated based on the homomorphic ciphertext calculation file, the target client only needs to use its own private key for decryption, which can avoid waking up other clients online to participate in decryption, thereby improving the computing service performance of the system.
[0009] In one embodiment, sending the homomorphic symmetric ciphertext calculation file to the key storage end specifically includes: adding a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file; sending the blinded homomorphic symmetric ciphertext calculation file to the key storage end, and the key storage end is specifically used to homomorphically decrypt the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file.
[0010] In one embodiment, after receiving the symmetric ciphertext calculation file sent by the key storage end, forwarding the symmetric ciphertext calculation file to the ciphertext storage end specifically includes: after receiving the blinded symmetric ciphertext calculation file sent by the key storage end, removing the blinding factor to obtain the symmetric ciphertext calculation file; forwarding the symmetric ciphertext calculation file to the ciphertext storage end.
[0011] In this implementation, based on security issues, the server adds a blinding factor to the homomorphic symmetric ciphertext calculation file when forwarding it to the key storage end for homomorphic decryption, so that the homomorphic symmetric ciphertext calculation file is invisible in the key storage end, thereby ensuring the security of the homomorphic symmetric ciphertext calculation file.
[0012] In a second aspect, an embodiment of the present application provides a method for homomorphic computation of homomorphic ciphertexts, the method comprising: receiving a computation task, the computation task comprising at least one ciphertext address and a destination address; based on the at least one ciphertext address, sending ciphertext requests to corresponding sub-memories of a ciphertext storage end respectively; the ciphertext storage end comprises at least one sub-memory, each sub-memory storing ciphertexts of one or more clients respectively; the ciphertext request is used to obtain the ciphertext of the client from the sub-memory; using the computation key of the at least one client to perform homomorphic computation on the ciphertext of the at least one client respectively, to obtain at least one homomorphic ciphertext computation file, the computation key of the at least one client being stored in the key storage end; based on the destination address, sending the at least one homomorphic ciphertext computation file to the target sub-memory of the ciphertext storage end.
[0013] In this implementation, the ciphertexts of each client of the homomorphic computation are stored in each sub-memory of the ciphertext storage terminal, and the computation keys of each client of the homomorphic computation are stored in the key storage terminal. When the server receives a computation task, it can obtain the ciphertext of the corresponding client from the corresponding sub-memory of the ciphertext storage terminal, and the computation key of the corresponding client from the key storage terminal, and use the computation key to perform homomorphic computation on the ciphertext to obtain a homomorphic ciphertext computation file, thereby realizing homomorphic computation of homomorphic ciphertext. When the ciphertext stored in the ciphertext storage terminal is a symmetric ciphertext, the scheme protected by this application can be used to reduce the expansion rate of the homomorphic ciphertext, improve the flexibility of the system, and other advantages.
[0014] In one embodiment, before using the computation key of the at least one client to perform homomorphic computation on the ciphertext of the at least one client respectively to obtain at least one homomorphic ciphertext computation file, it also includes: sending a key request to the key storage end, wherein the key request is used to obtain the computation key corresponding to the ciphertext of the at least one client from the key storage end; and receiving the computation key of the at least one client.
[0015] In this implementation, after receiving the computing task, the server may generate a key request to obtain the corresponding client computing key from the key storage end, thereby obtaining the computing key corresponding to each ciphertext.
[0016] In one embodiment, the sending of the key request to the key storage end specifically includes: using a homomorphic computing function to decompose the computing task to calculate the type of the computing key; the computing task includes the homomorphic computing function; based on the type of the computing key, generating the key request, and sending the key request to the key storage end.
[0017] In this implementation, if the computing task does not carry the key address, the server cannot obtain the corresponding computing key from the key storage end after obtaining the computing task. Therefore, when the server receives the computing task, it can use the homomorphic computing function to disassemble the computing task, calculate the type of the computing key, and generate a key request based on the type of the computing key to obtain the corresponding computing key from the key storage end.
[0018] In one embodiment, the ciphertext of the client stored in the sub-memory is a symmetric ciphertext, and the symmetric ciphertext is a ciphertext encrypted with plaintext using symmetric encryption technology. After receiving the computation key of at least one client, the ciphertext of the at least one client is homomorphically calculated using the computation key of the at least one client to obtain at least one homomorphic ciphertext calculation file, which specifically includes: obtaining the first homomorphic ciphertext of the at least one client from the key storage end, and the first homomorphic ciphertext is a ciphertext homomorphically encrypted with a symmetric encrypted private key using homomorphic encryption technology; performing homomorphic decryption operations on the symmetric ciphertext of the at least one client and the first homomorphic ciphertext of the at least one client to obtain the homomorphic ciphertext of the at least one client; and performing homomorphic calculations on the homomorphic ciphertexts of the at least one client using the computation key of the at least one client to obtain the at least one homomorphic ciphertext calculation file.
[0019] In this implementation, if the ciphertext of the client stored in the ciphertext storage end is a symmetric ciphertext, the server end can obtain the homomorphic ciphertext of the symmetric key from the key storage end. Then, the server end performs a homomorphic decryption operation on the symmetric ciphertext and the homomorphic ciphertext of the symmetric key to obtain the homomorphic ciphertext of the client, thereby converting the symmetric ciphertext of the client into a homomorphic ciphertext and then performing homomorphic calculation.
[0020] In a third aspect, an embodiment of the present application provides a homomorphic ciphertext processing device, comprising: a first processing unit, for receiving a ciphertext acquisition request from a ciphertext storage end, the ciphertext acquisition request indicating acquisition of a symmetric ciphertext calculation file; a second processing unit, for homomorphically symmetrically encrypting the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file, the homomorphic ciphertext calculation file being stored in the ciphertext storage end, the homomorphic ciphertext calculation file being the result of homomorphic calculation of homomorphic ciphertexts of at least one client; a third processing unit, for sending the homomorphic symmetric ciphertext calculation file to a key storage end, the key storage end being used to homomorphically decrypt the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file; a fourth processing unit, for forwarding the symmetric ciphertext calculation file to the ciphertext storage end after receiving the symmetric ciphertext calculation file sent by the key storage end.
[0021] In one embodiment, the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file that is decrypted by a private key of a target client to obtain the calculation file; the at least one client includes the target client, and the target client is a client that receives the symmetric ciphertext calculation file.
[0022] In one embodiment, the third processing unit is specifically used to add a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file; send the blinded homomorphic symmetric ciphertext calculation file to the key storage end, and the key storage end is specifically used to perform homomorphic decryption on the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file.
[0023] In one embodiment, the fourth processing unit is specifically used to remove the blinding factor after receiving the blinded symmetric ciphertext calculation file sent by the key storage end to obtain the symmetric ciphertext calculation file; and forward the symmetric ciphertext calculation file to the ciphertext storage end.
[0024] In a fourth aspect, an embodiment of the present application provides a device for homomorphic computation of homomorphic ciphertexts, comprising: a first processing unit, for receiving a computation task, wherein the computation task comprises at least one ciphertext address and a destination address; a second processing unit, for sending ciphertext requests to corresponding sub-memories of a ciphertext storage end based on the at least one ciphertext address; the ciphertext storage end comprises at least one sub-memory, each sub-memory storing ciphertexts of one or more clients respectively; the ciphertext request is used to obtain the ciphertext of the client from the sub-memory; a third processing unit, for performing homomorphic computation on the ciphertext of the at least one client using the computation key of the at least one client respectively, to obtain at least one homomorphic ciphertext computation file, wherein the computation key of the at least one client is stored in the key storage end; and a fourth processing unit, for sending the at least one homomorphic ciphertext computation file to a target sub-memory of the ciphertext storage end based on the destination address.
[0025] In one embodiment, the second processing unit is further used to send a key request to the key storage end, wherein the key request is used to obtain a calculation key corresponding to the ciphertext of the at least one client from the key storage end; and receive the calculation key of the at least one client.
[0026] In one embodiment, the second processing unit is specifically used to decompose the computing task using a homomorphic computing function to calculate the type of the computing key; the computing task includes the homomorphic computing function; based on the type of the computing key, the key request is generated, and the key request is sent to the key storage end.
[0027] In one embodiment, the ciphertext of the client stored in the sub-memory is a symmetric ciphertext, and the symmetric ciphertext is a ciphertext encrypted by using symmetric encryption technology. The fourth processing unit is specifically used to obtain the first homomorphic ciphertext of the at least one client from the key storage end, and the first homomorphic ciphertext is a ciphertext homomorphically encrypted with a symmetric encrypted private key using homomorphic encryption technology; perform homomorphic decryption operations on the symmetric ciphertext of the at least one client and the first homomorphic ciphertext of the at least one client to obtain the homomorphic ciphertext of the at least one client; use the calculation key of the at least one client to perform homomorphic calculation on the homomorphic ciphertext of the at least one client to obtain the at least one homomorphic ciphertext calculation file.
[0028] In a fifth aspect, an embodiment of the present application provides a computing device, comprising: at least one memory, multiple processors, the multiple processors including a main processor, the main processor being used to execute instructions stored in the at least one memory, so that the computing device is such as each possible implementation embodiment of the first aspect, or each possible implementation embodiment of the second aspect.
[0029] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed in a computer, the computer is caused to execute each possible implementation embodiment of the first aspect, or each possible implementation embodiment of the second aspect.
[0030] In the seventh aspect, an embodiment of the present application provides a computer program product, characterized in that the computer program product stores instructions, and when the instructions are executed by a computer, the computer implements each possible implementation embodiment of the first aspect, or each possible implementation embodiment of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] The following is a brief introduction to the drawings required for describing the embodiments or prior art.
[0032] Figure 1 A schematic diagram of the encryption process of FHE technology in related technologies;
[0033] Figure 2 A schematic diagram of the structure of a data processing system provided in an embodiment of the present application;
[0034] Figure 3 A schematic diagram of the structure of a homomorphic computing system 300 provided in an embodiment of the present application;
[0035] Figure 4 A schematic diagram of a process of sending a ciphertext from a client to a CRS provided in an embodiment of the present application;
[0036] Figure 5 A schematic diagram of a process for performing fully homomorphic computing by a task initiator, CRS, CCS and KH provided in an embodiment of the present application;
[0037] Figure 6 A schematic diagram of a process for obtaining a calculation result of a ciphertext provided in an embodiment of the present application;
[0038] Figure 7 A schematic diagram of another process for obtaining a ciphertext calculation result provided in an embodiment of the present application;
[0039] Figure 8 A schematic diagram of another process for obtaining a ciphertext calculation result provided in an embodiment of the present application;
[0040] Fig. 9 A schematic diagram of the structure of a homomorphic ciphertext processing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0041] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0042] The term "and / or" in this article is a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. The symbol " / " in this article indicates that the associated objects are in an or relationship, for example, A / B means A or B.
[0043] The terms "first" and "second" in the specification and claims herein are used to distinguish different objects rather than to describe a specific order of the objects. For example, a first response message and a second response message are used to distinguish different response messages rather than to describe a specific order of the response messages.
[0044] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.
[0045] In the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two. For example, multiple processing units refer to two or more processing units, etc.; multiple elements refer to two or more elements, etc.
[0046] FHE technology can replace the calculation of plaintext with the calculation of ciphertext, so that ciphertext can be calculated in an untrusted environment. FHE technology is generally operated by a data processing system consisting of a server and a client. Among them, the client refers to the party that provides data. The server refers to the party that uses the data and performs homomorphic calculations.
[0047] like Figure 1As shown, in a trusted environment, the client can send the plaintext (m) directly to the server. After receiving the plaintext, the server can process the plaintext to obtain the calculation file f(m), and send the calculation file f(m) to the client. In an untrusted environment, the client generates the public key (public key, pk) and private key (secretkey, sk) of the encryption scheme. The public key is used to encrypt the plaintext. The private key is used to encrypt or decrypt the ciphertext. Then, the client uses the public key pk to encrypt the plaintext, obtain the encrypted ciphertext Enc(m), and send the ciphertext Enc(m) to the server. After receiving the ciphertext Enc(m), the server uses the homomorphic operation supported by the homomorphic encryption scheme to calculate the ciphertext to obtain the ciphertext calculation file Enc(f(m)), and sends the ciphertext calculation file Enc(f(m)) to the client. After receiving the ciphertext calculation file Enc(f(m)), the client uses the private key sk to decrypt the ciphertext calculation file Enc(f(m)) to obtain the calculation file f(m).
[0048] When the data processing system directly uses FHE technology for encryption, the expansion rate of the generated homomorphic ciphertext is very large. The expansion rate refers to the ratio between the size of the homomorphic ciphertext and the size of the plaintext. If the data processing system uses FHE technology for encryption and also uses symmetric encryption technology for encryption, the expansion rate of the generated homomorphic ciphertext can be only 1, which can greatly reduce the expansion rate of the homomorphic ciphertext. Specifically: the data processing system uses symmetric encryption technology to symmetrically encrypt the plaintext m to obtain the symmetric ciphertext SYM(k, m), and uses homomorphic encryption technology to homomorphically encrypt the symmetric encrypted private key k to obtain the homomorphic ciphertext HE(sk, k). Then, the data processing system performs homomorphic decryption operations on the symmetric ciphertext SYM(k, m) and the homomorphic ciphertext HE(sk, k) to obtain the homomorphic ciphertext HE(sk, m). Finally, the data processing system applies the homomorphic operation f() supported by the homomorphic encryption scheme to calculate the homomorphic ciphertext HE(sk, m) to obtain the ciphertext calculation file HE(f(m)).
[0049] In the related art, the data processing system can run FHE technology between a client and a server. Specifically, the client first generates a private key sk, and generates a calculation key based on the private key sk. The client then uses the private key sk to homomorphically encrypt its own message m1 to obtain a homomorphic ciphertext HE(sk, m1). The client can send the homomorphic ciphertext HE(sk, m1) and the calculation key to the server. After the server receives the homomorphic ciphertext HE(sk, m1) and the calculation key, it performs homomorphic calculation of the function f() on the homomorphic ciphertext HE(sk, m1) and its own message m2 based on the calculation key to obtain the ciphertext calculation file HE(sk, f(m1, m2)). The server sends the ciphertext calculation file HE(sk, f(m1, m2)) to the client. After the client receives the ciphertext calculation file HE(sk, f(m1, m2)), it uses its own private key sk to decrypt the ciphertext calculation file HE(sk, f(m1, m2)) to obtain the calculation file f(m1, m2).
[0050] The data processing system allows a client and a server to use FHE technology, which can simplify the interaction process and key management. However, the expansion rate of the homomorphic ciphertext generated between the client and the server is very large, resulting in more memory occupied by the client and the server, and increased transmission overhead. Moreover, the data processing system can only run FHE technology between one client and the server, and cannot run FHE technology in scenarios with multiple clients and servers. The biggest problem is that the data processing system cannot reuse the key management system of symmetric encryption in related technologies, and the hardware and software need to be redesigned, resulting in low system flexibility.
[0051] In order to solve the defects of the above-mentioned related technologies, a solution is proposed in the related technology, and the data processing system can run FHE technology between multiple clients and servers. Specifically: multiple clients generate private keys skn respectively, and generate calculation keys based on the private key skn. Multiple clients then use the private key skn to homomorphically encrypt their own messages mn to obtain homomorphic ciphertext HE (skn, mn). Multiple clients send their own homomorphic ciphertexts HE (skn, mn) and calculation keys to the server. After the server receives multiple homomorphic ciphertexts HE (skn, mn) and multiple calculation keys, it expands the homomorphic ciphertext and expands the homomorphic ciphertext of a single key into a homomorphic ciphertext encrypted by multiple keys. Then, the server performs homomorphic calculation of the function f() on the expanded homomorphic ciphertext and its own message m0 to obtain the ciphertext calculation file HE ((sk1, sk2, ..., skn), f (m0, m1, ..., mn)). The server sends the ciphertext calculation file HE((sk1, sk2, ..., skn), f(m0, m1, ..., mn)) to each client. After receiving the ciphertext calculation file HE((sk1, sk2, ..., skn), f(m0, m1, ..., mn)), each client uses its own private key skn to jointly decrypt the ciphertext calculation file HE((sk1, sk2, ..., skn), f(m0, m1, ..., mn)) to obtain the calculation file f(m0, m1, ..., mn).
[0052] Although the data processing system can run FHE technology in scenarios with multiple clients and servers, it cannot solve the problem of the very large expansion rate of homomorphic ciphertext generated between the client and the server. In addition, the data processing system is participated by multiple clients, resulting in poor performance scalability of FHE technology. Moreover, the more clients there are in the data processing system, the worse the performance scalability of FHE technology.
[0053] In order to solve the defects of the above-mentioned related technologies, the related technologies have proposed a solution, in which the data processing system can run FHE technology between multiple clients and servers. Specifically: multiple clients generate private keys skn respectively, and generate calculation keys based on the private key skn. Multiple clients can run a joint protocol to generate a common public key pk and a common calculation key Evalk. Multiple clients then use the public key pk to homomorphically encrypt their own messages mn, obtain homomorphic ciphertext HE (pk, mn), and then send the homomorphic ciphertext HE (pk, mn) to the server. The server receives the homomorphic ciphertext HE (pk, m1), ..., HE (pk, mn) of each client, and uses the calculation key Evalk to perform homomorphic calculation of the function f () on the homomorphic ciphertext of each client and its own message m0, and obtains the ciphertext calculation file HE (pk, f (m0, m1, ..., mn)), and sends each ciphertext calculation file to each client. After receiving the ciphertext calculation file HE(pk, f(m0, m1, ..., mn)), each client uses its own private key sk to jointly decrypt the ciphertext calculation file HE(pk, f(m0, m1, ..., mn) to obtain the calculation file f(m0, m1, ..., mn).
[0054] Although the data processing system can solve the problem of poor performance scalability when multiple clients and servers run FHE technology, it cannot solve the problem of very large expansion rate of homomorphic ciphertext generated between clients and servers. In addition, if one or a few clients obtain the calculation file, all clients with homomorphic calculation parameters need to jointly decrypt it, resulting in the majority of clients being forced to decrypt online, which reduces the performance of the calculation service of the data processing system.
[0055] In order to solve the defects existing in the related technology, the embodiments of the present application provide a method for processing homomorphic ciphertext, a data processing system and a computing device. In the embodiments of the present application, a homomorphic computing system is newly added to the data processing system. When the client does not have the homomorphic decryption function, the homomorphic computing system can symmetrically encrypt the homomorphic ciphertext calculation file after obtaining the ciphertext acquisition request, and then decrypt it homomorphically to obtain the symmetric ciphertext calculation file. Since the symmetric ciphertext calculation file calculated by the homomorphic computing system is a calculation file that can be decrypted by the client, when the FHE technology is run between the client and the homomorphic computing system, there is no need to modify the hardware and software, and the symmetric encryption key management system can be reused, and the FHE technology function can still be realized, thereby improving the flexibility, performance scalability and other characteristics of the client.
[0056] Normally, a homomorphic ciphertext calculation file is obtained by homomorphic calculation of homomorphic ciphertexts of multiple clients. If a client needs a calculation file corresponding to a homomorphic ciphertext calculation file, the private keys of multiple clients are required to decrypt the homomorphic ciphertext calculation file in order to obtain the calculation file. In the process of performing homomorphic calculations on homomorphic ciphertexts of multiple clients, the homomorphic computing system can convert the private keys of multiple clients that decrypt the homomorphic ciphertext calculation file into the private key of the target client, so that after receiving the homomorphic ciphertext calculation file or the symmetric ciphertext calculation file generated based on the homomorphic ciphertext calculation file, the target client only needs to use its own private key for decryption, which can avoid waking up other clients online to participate in decryption, thereby improving the computing service performance of the system.
[0057] The ciphertexts of each client of homomorphic computing are stored in each sub-storage of the ciphertext storage end, and the computing keys of each client of homomorphic computing are stored in the key storage end. Since the ciphertexts of each client are stored in the sub-storages respectively, multiple clients are avoided from being bound together, which can improve the performance scalability of the system. In addition, the homomorphic computing system uses a symmetric encryption scheme to reduce the expansion rate of homomorphic ciphertexts.
[0058] When obtaining a calculation file, the client can directly obtain the calculation file from the target sub-storage storage of the first type of storage, or perform homomorphic decryption through the key storage end to obtain the calculation file. No authentication process is required, and authentication can be achieved using ciphertext data, which simplifies permission management based on symmetric encryption.
[0059] Figure 2 Schematic diagram of the architecture of the data processing system provided in the embodiment of the present application. Figure 2 As shown, the data processing system 20 includes multiple clients 100, a server 200 and a homomorphic computing system 300. The multiple clients 100 are respectively client 100-1, client 100-2, ..., client 100-N. The multiple clients 100 establish a communication connection with the server 200 through the homomorphic computing system 300. Data can be transmitted between the multiple clients 100 and the server 200 to implement the operation of FHE technology.
[0060] The client 100 may refer to a computer, a desktop computer, a portable laptop, a smart phone, a tablet computer, an electric car, a drone, a robot, etc., and may also be an Internet enterprise, a big data bureau, a communication operator, a credit reporting company, etc., which can generate data. The client 100 may provide raw data.
[0061] The server 200 can be a server, computer, desktop computer, portable notebook computer, smart phone, tablet computer, base station and other equipment, and can also be a bank, insurance company, medical institution, advertising company and other enterprises that need to use data. The server 200 can receive the original data and perform homomorphic calculation on the original data.
[0062] The homomorphic computing system 300 can be an independent third-party device, such as a computer, a desktop computer, a portable laptop, a smart phone, a tablet computer, etc. The homomorphic computing system 300 can be the client 100, or the server 200, or a part of the client 100 and the server 200. The homomorphic computing system 300 can support simplified permission management based on symmetric encryption, without the need for an authentication process, and authentication can be achieved using ciphertext data.
[0063] Figure 3 FIG. 3 is a schematic diagram of the architecture of the homomorphic computing system 300 provided in the embodiment of the present application. Figure 3 As shown, the homomorphic computing system 300 includes: a homomorphic key hub (KH) 310, at least one ciphertext repository service (CRS) 320 and a ciphertext computing service (CCS) 330. Among them, KH 310 is a key storage end. At least one CRS 320 is each sub-memory of the ciphertext storage end.
[0064] KH 310 is responsible for the storage, management, distribution, encryption, decryption and other operations of various types of computing keys. For example, KH 310 can generate and store computing keys. For another example, KH 310 can extract related computing keys and distribute the computing keys. For another example, KH 310 can encrypt or decrypt various types of ciphertexts.
[0065] In one case, when the FHE technology is run between a client 100 and a server 200, the KH 310 can initialize the client 100. For example, the KH 310 can generate a private key sk of the client 100, and generate various types of computing keys of the client 100 based on the private key sk. The KH 310 stores various types of computing keys of the client 100 separately, so that the client 100 can run the FHE technology between the client 100 and the server 200 based on the stored various types of computing keys.
[0066] The calculation key can be a public key pk, a relinearization key (rlk), a rotation key (galois key, glk), a bootstrap key (bsk), a key switching key, a scheme conversion key, etc. Among them, the public key pk is used to encrypt data to ensure the confidentiality of the data. The relinearization key rlk is used to keep the dimension of the ciphertext unchanged during the homomorphic encryption process. The rotation key glk can change the order or arrangement of the encrypted data during the homomorphic encryption process, rotate or reorder the encrypted data, and maintain the consistency of the data structure. The bootstrap key bsk refreshes the noise of the original ciphertext during the homomorphic encryption process, and refreshes the high-noise ciphertext into a low-noise ciphertext to support subsequent homomorphic operation. The scheme conversion key is used to convert the key of one encryption scheme into the key of another encryption scheme. For example, the key of the symmetric encryption scheme is converted into the key of the homomorphic encryption scheme.
[0067] In another case, when the FHE technology is run between multiple clients 100 and the server 200, KH 310 can initialize the multiple clients. For example, KH 310 can generate private keys sk of each client 100, which are sk1, sk2, ..., skN. KH 310 can generate various types of computing keys of each client 100 based on the private keys sk of each client 100. KH 310 stores various types of computing keys of multiple clients 100 together, so that multiple clients 100 can run FHE technology between multiple clients 100 and the server 200 based on the stored various types of computing keys.
[0068] CRS 320 is responsible for user data interaction. For example, CRS 320 can receive ciphertexts from all parties and store the ciphertexts. For another example, CRS 320 can provide relevant ciphertexts in cooperation with the computing tasks of CCS 230. For another example, CRS 320 can forward the relevant ciphertexts to the result acquisition party.
[0069] In the embodiment of the present application, the homomorphic computing system 300 may include one or more CRS 320. Each CRS 320 may receive ciphertexts from one or more clients 100. The ciphertexts received by the CRS 320 may be symmetric ciphertexts of a symmetric encryption scheme, homomorphic ciphertexts of a homomorphic encryption scheme, or hybrid ciphertexts of a symmetric encryption scheme and a homomorphic encryption scheme.
[0070] like Figure 4As shown, when the FHE technology is run between N clients 100 and the server 200, the homomorphic computing system 300 can be configured with M CRSs 320. Wherein, N and M are both positive integers greater than or equal to 1. In one case, the client 100-1 can send a ciphertext to the CRS 320-1, and the client 100-2 can send a ciphertext to the CRS 320-2. In another case, both the client 100-1 and the client 100-2 can send a ciphertext to the CRS 320-2.
[0071] The symmetric encryption algorithm is a relatively common encryption algorithm, and generally the client 100 has a symmetric encryption function. The homomorphic encryption algorithm is a relatively special encryption algorithm, and not all clients 100 have a homomorphic encryption function. If the client 100 only has the symmetric encryption function, the client 100 can perform symmetric encryption on the plaintext m to obtain a symmetric ciphertext HE (sk, m), and send the symmetric ciphertext HE (sk, m) to the CRS 320. If the client 100 only has the homomorphic encryption function, the client 100 can perform homomorphic encryption on the plaintext m to obtain a homomorphic ciphertext SYM (k, m), and send the homomorphic ciphertext SYM (k, m) to the CRS 320.
[0072] If the client 100 has both symmetric encryption and homomorphic encryption functions, the client 100 can homomorphically encrypt the plaintext to obtain the homomorphic ciphertext HE(sk, m), and send the homomorphic ciphertext HE(sk, m) to the CRS 320. Alternatively, the client 100 symmetrically encrypts the plaintext m using symmetric encryption technology to obtain the symmetric ciphertext SYM(k, m), and homomorphically encrypts the symmetric encrypted private key k using homomorphic encryption technology to obtain the homomorphic ciphertext HE(sk, k). The client 100 sends the symmetric ciphertext SYM(k, m) and the homomorphic ciphertext HE(sk, k) to the CRS 320.
[0073] like Figure 4 As shown, the ciphertext that can be sent by the client 100-1 is a symmetric ciphertext, or a homomorphic ciphertext, or a symmetric ciphertext and a homomorphic ciphertext, and the ciphertext that can be sent by the client 100-2 is a symmetric ciphertext, or a homomorphic ciphertext, or a symmetric ciphertext and a homomorphic ciphertext. .
[0074] CCS 330 is used to perform various types of homomorphic computing. For example, CCS 330 receives a task initiated by a task initiator, and can obtain relevant ciphertext from CRS 320 and relevant computing keys from KH 310 to perform homomorphic computing. For another example, CCS 330 can decompose the computing task into homomorphic basic units to perform homomorphic computing.
[0075] In the embodiment of the present application, when CCS 330 receives a computing task sent by a task initiator, it can obtain relevant ciphertext from CRS 320 according to the computing task, and obtain relevant computing keys from KH 310 to perform homomorphic computing. After CCS 330 generates a ciphertext computing file, it can forward the ciphertext computing file to a specified CRS 320. The specific process of performing homomorphic computing between CCS 330 and the task initiator, multiple CRS 320 and KH 310 is as follows:
[0076] S501 , the task initiator sends a computing task task to the CCS 330 .
[0077] The task initiator can be one of the multiple clients 100, the server 200 or a third-party device. The computing task is generally a task of calculating homomorphic ciphertext generated by the user according to the needs. The computing task generally carries a source address, at least one ciphertext address, a destination address and a homomorphic computing function f(). Among them, the source address refers to the identification (identity, ID) of the computing task. The ciphertext address instructs CCS 330 to obtain the specified ciphertext from the set CRS 320. The destination address instructs CCS 330 to forward the homomorphic ciphertext to the specified CRS 320. The homomorphic computing function f() refers to the algorithm for CCS 330 to perform homomorphic computing. Optionally, the computing task can also carry a key address. The key address instructs CCS 330 to obtain a specified key from KH 310.
[0078] S502, CCS 330 may send a first request instruction to CRS 320-1 based on the first ciphertext address of the computing task.
[0079] S503 , CRS 320 - 1 sends a first ciphertext to CCS 330 .
[0080] S504, CCS 330 may send a second request instruction to CRS 320-2 based on the second ciphertext address of the computing task.
[0081] S505 , CRS 320 - 2 sends the second ciphertext to CCS 330 .
[0082] After obtaining the computing task, CCS 330 parses the computing task to obtain the source address, at least one ciphertext address, the destination address and the homomorphic computing function f(). Based on the ciphertext address, CCS 330 sends a request instruction to the target CRS 320 to obtain the ciphertext stored in CRS 320. Since CRS 320 may store the ciphertexts of multiple clients 100, CCS 330 does not necessarily obtain the ciphertexts of all clients 100 stored in CRS 320 each time, resulting in CCS 330 being unable to accurately obtain the ciphertext of the specified client 100 from CRS 320. Therefore, the ciphertext address may carry a destination identifier. The destination identifier may indicate that the ciphertext of the specified client 100 is to be obtained from the target CRS 320. After receiving the ciphertext address, CRS 320 may parse the ciphertext address to obtain the destination identifier. Based on the destination identifier, CRS 320 reads the ciphertext of the specified client 100 and sends it to CCS 330 , so that CCS 330 obtains the ciphertext of the specified client 100 from the ciphertexts of multiple clients 100 in CRS 320 .
[0083] When CCS 330 sends a request instruction to the corresponding CRS 320 based on multiple ciphertext addresses, multiple request instructions can be sent to the corresponding CRS 320 at the same time to obtain the ciphertext of the specified client 100 from the corresponding CRS 320, thereby improving the efficiency of obtaining the ciphertext of the client 100. CCS 330 can first send a request instruction to the corresponding CRS 320, and after obtaining the ciphertext of the client 100 specified in the CRS 320, send a second request instruction to the corresponding CRS 320, and so on. CCS 330 obtains the ciphertext of the client 100 in batches, which can reduce the load rate of CCS 330.
[0084] S506, CCS 330 may send a third request instruction to KH 310 using the key address.
[0085] S507 , KH 310 sends the key to CCS 330 .
[0086] In one case, when the computing task carries a key address, CCS 330 may directly generate a request instruction based on the key address and send it to KH 310. After receiving the request instruction, KH 310 sends various types of keys of the specified client 100 to CCS 330 based on the key address carried in the request instruction, so that CCS 330 implements homomorphic computing based on various types of keys.
[0087] In another case, when the computing task does not carry a key address, CCS 330 can use the homomorphic computing function f() to disassemble the computing task to disassemble the type of computing key required by the computing task. After CCS 330 determines the type of computing key of the client 100 participating in the homomorphic computing, it can use the key address. CCS 330 can generate a request instruction based on the key address and send it to KH 310. After receiving the request instruction, KH 310 sends various types of keys of the specified client 100 to CCS 330 based on the address of the client 100 carried by the request instruction, so that CCS 330 implements homomorphic computing based on various types of keys.
[0088] S508, CCS 330 performs homomorphic calculation on the ciphertext using the key to obtain a ciphertext calculation file.
[0089] S509, CCS 330 sends the ciphertext calculation file to CRS 320-3.
[0090] If the ciphertext of the client 100 obtained by CCS 330 from each CRS 320 is a homomorphic ciphertext HE(sk, m), CCS 330 can use the corresponding calculation key of the client 100 obtained from KH 310 to perform homomorphic calculations on the homomorphic ciphertext of the client 100 and the message of CCS 330 itself, respectively, to obtain the ciphertext calculation files of each client 100.
[0091] If the ciphertext of the client 100 obtained by CCS 330 from each CRS 320 is a symmetric ciphertext SYM (k, m), CCS 330 can obtain the corresponding homomorphic ciphertext HE (sk, k) of the client 100 from KH 310. The homomorphic ciphertext HE (sk, k) is obtained by KH 310 using homomorphic encryption technology to homomorphically encrypt the symmetric encrypted private key k to obtain the homomorphic ciphertext HE (sk, k). Then, CCS 330 performs homomorphic decryption operations on the symmetric ciphertext SYM (k, m) and the homomorphic ciphertext HE (sk, k) to obtain the homomorphic ciphertext HE (sk, m). Finally, CCS 330 can use the corresponding client 100 computing key obtained from KH 310 to perform homomorphic calculations on the homomorphic ciphertext of the client 100 and the message of CCS 330 itself, respectively, to obtain the ciphertext calculation files of each client 100.
[0092] In addition, the homomorphic ciphertext calculation file is obtained by homomorphic calculation of the homomorphic ciphertexts of multiple clients. If a client needs the calculation file corresponding to the homomorphic ciphertext calculation file, it may require the private keys of multiple clients to decrypt the homomorphic ciphertext calculation file in order to obtain the calculation file. Therefore, in the process of homomorphic calculation of the homomorphic ciphertexts of multiple clients, the server uses the scheme to convert the key, and can convert the private keys of multiple clients that decrypt the homomorphic ciphertext calculation file into the private key of the target client, so that after receiving the homomorphic ciphertext calculation file, the target client only needs to use its own private key to decrypt it, which can avoid waking up other clients online to participate in decryption, thereby improving the computing service performance of the system.
[0093] The ciphertext of each client of homomorphic computing is stored in each CRS 320, and the computing key of each client of homomorphic computing is stored in KH 310. Since the ciphertext of each client is stored in CRS 320, multiple clients are avoided from being bound together, which can improve the performance scalability of the system. In addition, the homomorphic computing system uses a symmetric encryption scheme to reduce the expansion rate of homomorphic ciphertext.
[0094] In the embodiment of the present application, after obtaining the ciphertext calculation file, CRS 320 may notify the result acquisition party to obtain the ciphertext calculation file. In one case, when the result acquisition party has the homomorphic ciphertext decryption function, the process of transmitting the ciphertext calculation file between the result acquisition party and CRS 320 is specifically as follows:
[0095] S601, the CRS 320 sends a ciphertext acquisition request to a result acquisition party, wherein the result acquisition party refers to a party using data, which is one of the multiple clients 100 participating in running the FHE technology.
[0096] S602: The result acquisition direction sends a request instruction to the CRS 320. The request instruction may instruct to acquire the ciphertext calculation file from the CRS 320.
[0097] S603 , the CRS 320 sends the ciphertext calculation file to the CCS 330 .
[0098] In this case, after obtaining the homomorphic ciphertext, CRS 320 needs to forward the homomorphic ciphertext to the result acquisition party. After receiving the ciphertext acquisition request from CRS 320, the result acquisition party can detect whether it has the homomorphic ciphertext decryption function. If the result acquisition party has the homomorphic ciphertext decryption function, it can send a request instruction to CRS 320. After receiving the request instruction, CRS 320 reads the stored ciphertext calculation file and forwards the ciphertext calculation file to the result acquisition party. After receiving the ciphertext calculation file, the result acquisition party performs homomorphic decryption on the ciphertext calculation file according to its own stored private key sk to obtain the calculation file.
[0099] In addition, since the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client, the result acquirer only needs to use its own private key to decrypt the homomorphic ciphertext calculation file after receiving the homomorphic ciphertext calculation file, which can avoid waking up other clients online to participate in the decryption, thereby improving the computing service performance of the system.
[0100] In another case, when the result acquisition party does not have the homomorphic ciphertext decryption function but has the symmetric ciphertext decryption function, the process of transmitting the ciphertext calculation file between the result acquisition party, KH 310, CRS 320 and CCS 330 is specifically as follows:
[0101] S701, the CRS 320 sends a notification message that the ciphertext can be obtained to the result obtainer, wherein the result obtainer refers to a party using the data, which is one of the multiple clients 100 participating in running the FHE technology.
[0102] S702: The result acquisition direction sends a request instruction to the CRS 320. The request instruction may instruct to acquire the ciphertext calculation file from the CRS 320.
[0103] After receiving the notification information that the ciphertext can be obtained, the result acquisition party can detect whether it has the homomorphic ciphertext decryption function. If the result acquisition party determines that it does not have the homomorphic ciphertext decryption function, it can call the symmetric decryption algorithm to symmetrically decrypt the symmetric ciphertext. Therefore, the result acquisition party sends a request instruction to the CRS 320 based on the symmetric decryption algorithm, and can obtain the symmetric ciphertext from the CRS 320.
[0104] S703 , CRS 320 sends the homomorphic ciphertext calculation file to CCS 330 .
[0105] S704, CCS 330 homomorphically symmetric encrypts the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file.
[0106] After receiving the request instruction, CRS 320 reads the symmetric ciphertext stored in itself. However, the ciphertext of the result acquisition party stored in CRS 320 is a homomorphic ciphertext, and the symmetric ciphertext cannot be read out. CRS 320 can forward the request instruction and the homomorphic ciphertext calculation file to CCS 330. After receiving the homomorphic ciphertext and the request instruction, CCS 330 converts the homomorphic ciphertext into the ciphertext state required by the request instruction. That is, CCS 330 symmetrically encrypts the homomorphic ciphertext calculation file in a homomorphic manner to obtain a homomorphic symmetric ciphertext calculation file.
[0107] S705 , CCS 330 sends the homomorphic symmetric ciphertext calculation file to KH 310 .
[0108] S706 , KH 310 performs homomorphic decryption on the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file, and sends the symmetric ciphertext calculation file to CCS 330 .
[0109] Since the homomorphic symmetric ciphertext calculation file is homomorphically encrypted, the result acquisition party cannot decrypt the homomorphic symmetric ciphertext calculation file. Therefore, CCS 330 forwards the homomorphic symmetric ciphertext calculation file to KH 310, and KH 310 performs homomorphic decryption on the homomorphic symmetric ciphertext calculation file to obtain the symmetric ciphertext calculation file. The symmetric ciphertext result is freed from homomorphic encryption, and the result acquisition party can decrypt the symmetric ciphertext calculation file.
[0110] In addition, since the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client, after CCS 330 generates a symmetric ciphertext calculation file based on the homomorphic ciphertext calculation file, the target client only needs to use its own private key to decrypt the symmetric ciphertext calculation file after receiving the symmetric ciphertext calculation file, thereby avoiding waking up other clients online to participate in the decryption, thereby improving the computing service performance of the system.
[0111] S707 , the CCS 330 sends the symmetric ciphertext calculation file to the CRS 320 .
[0112] S708, CRS 320 sends the symmetric ciphertext calculation file to the result acquisition party.
[0113] After receiving the symmetric ciphertext calculation file, CCS 330 can forward the symmetric ciphertext calculation file to the result acquisition party in response to the request instruction. After receiving the symmetric ciphertext calculation file, the result acquisition party symmetrically decrypts the symmetric ciphertext result according to its own stored private key sk to obtain the calculation file.
[0114] In another case, when the result acquisition party does not have the homomorphic ciphertext decryption function but has the symmetric ciphertext decryption function and has a relatively high security requirement for the ciphertext calculation file, the process of transmitting the ciphertext calculation file between the result acquisition party, KH 310, CRS 320 and CCS 330 is specifically as follows:
[0115] S801, the CRS 320 sends a notification message that the ciphertext can be obtained to the result obtainer, wherein the result obtainer refers to a party using the data, which is one of the multiple clients 100 participating in running the FHE technology.
[0116] S802: The result acquisition direction sends a request instruction to the CRS 320. The request instruction may instruct to acquire the ciphertext calculation file from the CRS 320.
[0117] After obtaining the homomorphic ciphertext, CRS 320 needs to forward the homomorphic ciphertext to the result acquisition party. After receiving the ciphertext acquisition request from CRS 320, the result acquisition party can detect whether it has the homomorphic ciphertext decryption function. If the result acquisition party determines that it does not have the homomorphic ciphertext decryption function, it can call the symmetric decryption function to symmetrically decrypt the symmetric ciphertext. Therefore, the result acquisition party sends a request instruction to CRS 320 based on the symmetric decryption function, and can obtain the symmetric ciphertext from CRS 320.
[0118] S803, CRS 320 sends the homomorphic ciphertext calculation file to CCS 330.
[0119] S804, CCS 330 homomorphically symmetric encrypts the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file.
[0120] Since CRS 320 itself does not store the symmetric ciphertext of the result acquirer, after receiving the request instruction, CRS 320 will forward the request instruction and the homomorphic ciphertext to CCS 330. After receiving the homomorphic ciphertext and the request instruction, CCS 330 converts the homomorphic ciphertext into the ciphertext state required by the request instruction. That is, CCS 330 homomorphically symmetric encrypts the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file.
[0121] S805, CCS 330 adds a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file.
[0122] S806 , CCS 330 sends the blinded homomorphic symmetric ciphertext calculation file to KH 310 .
[0123] S807 , KH 310 performs homomorphic decryption on the blinded symmetric homomorphic ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file, and sends the blinded symmetric ciphertext calculation file to CCS 330 .
[0124] The security of data processed by KH 310 may be relatively low. In order to ensure the security of the homomorphic symmetric ciphertext calculation file, CCS 330 can add a blinding factor to the homomorphic symmetric ciphertext calculation file to construct a blinded homomorphic symmetric ciphertext calculation file. Since the homomorphic symmetric ciphertext calculation file adds the blinding factor, the homomorphic symmetric ciphertext calculation file changes, making the homomorphic symmetric ciphertext calculation file invisible inside KH 310, thereby ensuring the security of the homomorphic symmetric ciphertext calculation file. After receiving the blinded homomorphic symmetric ciphertext calculation file, KH 310 can perform homomorphic symmetric decryption on the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file. The blinded symmetric ciphertext calculation file releases the homomorphic encryption, allowing the result acquisition party to decrypt the symmetric ciphertext calculation file. The blinding factor can be a random number.
[0125] In addition, since the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client, after CCS 330 generates a symmetric ciphertext calculation file based on the homomorphic ciphertext calculation file, the target client only needs to use its own private key to decrypt the symmetric ciphertext calculation file after receiving the symmetric ciphertext calculation file, thereby avoiding waking up other clients online to participate in the decryption, thereby improving the computing service performance of the system.
[0126] S808, CCS 330 removes the blinding factor in the blinded symmetric ciphertext calculation file to obtain the symmetric ciphertext calculation file.
[0127] S809 , the CCS 330 sends the symmetric ciphertext calculation file to the CRS 320 .
[0128] S810, CRS 320 sends the symmetric ciphertext calculation file to the result acquisition party.
[0129] After receiving the blinded symmetric ciphertext calculation file, CCS 330 removes the blinding factor, which can eliminate the interference of the blinding factor on the symmetric ciphertext calculation file. After obtaining the symmetric ciphertext calculation file without the blinding factor, CCS 330 forwards the symmetric ciphertext calculation file to CRS 320. After receiving the symmetric ciphertext calculation file, CRS 320 can forward the symmetric ciphertext calculation file to the result acquisition party in response to the request instruction. After receiving the symmetric ciphertext calculation file, the result acquisition party symmetrically decrypts the symmetric ciphertext calculation file according to the private key sk stored by itself to obtain the calculation file.
[0130] In the embodiment of the present application, when the client does not have the homomorphic decryption function, the homomorphic computing system 300 can, after receiving the ciphertext acquisition request, symmetrically encrypt the homomorphic ciphertext calculation file in a homomorphic manner, and then decrypt it in a homomorphic manner to obtain a symmetric ciphertext calculation file. Since the symmetric ciphertext calculation file calculated by the homomorphic computing system 300 is a calculation file that can be decrypted by the client, when the FHE technology is run between the client and the homomorphic computing system 300, there is no need to modify the hardware and software, and the symmetric encryption key management system can be reused, and the FHE technology function can still be realized, thereby improving the flexibility, performance scalability and other characteristics of the client.
[0131] In addition, when obtaining a calculation file, the client can directly obtain the calculation file from the target sub-storage storage of the first type of storage, or perform homomorphic decryption through the key storage end to obtain the calculation file. No authentication process is required, and authentication can be achieved using ciphertext data, which simplifies permission management based on symmetric encryption.
[0132] Fig. 9 Schematic diagram of the structure of a homomorphic ciphertext processing device provided in an embodiment of the present application. Fig. 9 As shown, the homomorphic ciphertext processing device 900 can be divided into a first processing unit 910, a second processing unit 920, a third processing unit 930 and a fourth processing unit 940 according to the execution function. The specific implementation process of the homomorphic ciphertext processing device 900 is as follows:
[0133] The first processing unit 910 is used to receive a ciphertext acquisition request from the ciphertext storage end. The ciphertext acquisition request indicates the acquisition of a symmetric ciphertext calculation file. The second processing unit 920 is used to symmetrically encrypt the homomorphic ciphertext calculation file in a homomorphic manner to obtain a homomorphic symmetric ciphertext calculation file. The homomorphic ciphertext calculation file is stored in the ciphertext storage end. The homomorphic ciphertext calculation file is the result of homomorphic calculation of the homomorphic ciphertext of at least one client. The third processing unit 930 is used to send the homomorphic symmetric ciphertext calculation file to the key storage end. The key storage end is used to homomorphically decrypt the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file. The fourth processing unit 940 is used to forward the symmetric ciphertext calculation file to the ciphertext storage end after receiving the symmetric ciphertext calculation file.
[0134] In one embodiment, the homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client. At least one client includes the target client, and the target client is a client that receives the symmetric ciphertext calculation file.
[0135] In one embodiment, the third processing unit 9930 is specifically used to add a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file. The third processing unit 9930 is specifically used to send the blinded homomorphic symmetric ciphertext calculation file to the key storage end. The key storage end is specifically used to homomorphically decrypt the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file.
[0136] In one embodiment, the fourth processing unit 940 is specifically configured to remove the blinding factor after receiving the blinded symmetric ciphertext calculation file sent by the key storage end to obtain the symmetric ciphertext calculation file. The fourth processing unit 940 is specifically configured to forward the symmetric ciphertext calculation file to the ciphertext storage end.
[0137] The present application also provides a computing device in an embodiment. The computing device includes at least one memory and at least one processor. The at least one processor can execute the following steps: Figure 2-Figure 8 And the above corresponding protected technical solutions, so that the computing device has the technical effect of the above protected technical solutions.
[0138] The present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed in a computer, the computer executes the above Figure 2-Figure 8 And a method for processing homomorphic ciphertext as described in any one of the corresponding description contents.
[0139] In an embodiment of the present application, a computer program product is also provided, wherein the computer program product stores instructions, and when the instructions are executed by a computer, the computer implements the above Figure 2-Figure 8 And a method for processing homomorphic ciphertext as described in any one of the corresponding description contents.
[0140] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the embodiments of the present application.
[0141] In addition, various aspects or features of the embodiments of the present application can be implemented as methods, devices or products using standard programming and / or engineering techniques. The term "product" used in this application covers computer programs that can be accessed from any computer-readable device, carrier or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks or tapes, etc.), optical disks (e.g., compact discs (CDs), digital versatile discs (DVDs), etc.), smart cards and flash memory devices (e.g., erasable programmable read-only memory (EPROM), cards, sticks or key drives, etc.). In addition, the various storage media described herein may represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing and / or carrying instructions and / or data.
[0142] In the above embodiment, Fig. 9 The processing device 900 of the homomorphic ciphertext described in the embodiment can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital video disc (DVD)), or a semiconductor medium (eg, a solid state disk (SSD)).
[0143] It should be understood that in various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0144] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0145] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0146] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0147] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or an access network device, etc.) to perform all or part of the steps of the method described in each embodiment of the embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
[0148] The above is only a specific implementation of the embodiments of the present application, but the protection scope of the embodiments of the present application is not limited to this. Any technician familiar with the technical field can easily think of changes or replacements within the technical scope disclosed in the embodiments of the present application, which should be covered within the protection scope of the embodiments of the present application.
Claims
1. A method for processing homomorphic ciphertext, characterized in that: The method comprises: Receiving a ciphertext acquisition request from a ciphertext storage end, wherein the ciphertext acquisition request indicates obtaining a symmetric ciphertext calculation file; Performing homomorphic symmetric encryption on a homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file, wherein the homomorphic ciphertext calculation file is stored in the ciphertext storage end, and the homomorphic ciphertext calculation file is a result of performing homomorphic calculation on homomorphic ciphertext of at least one client; Sending the homomorphic symmetric ciphertext calculation file to a key storage end, wherein the key storage end is used to homomorphically decrypt the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file; After receiving the symmetric ciphertext calculation file sent by the key storage end, the symmetric ciphertext calculation file is forwarded to the ciphertext storage end.
2. The method according to claim 1, characterized in that The homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client; the at least one client includes the target client, and the target client is a client that receives the symmetric ciphertext calculation file.
3. The method according to claim 1 or 2, characterized in that: The sending of the homomorphic symmetric ciphertext calculation file to the key storage end specifically includes: Adding a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file; The blinded homomorphic symmetric ciphertext calculation file is sent to the key storage end, and the key storage end is specifically used to homomorphically decrypt the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file.
4. The method according to claim 3, characterized in that After receiving the symmetric ciphertext calculation file sent by the key storage end, forwarding the symmetric ciphertext calculation file to the ciphertext storage end specifically includes: After receiving the blinded symmetric ciphertext calculation file sent by the key storage end, removing the blinding factor to obtain the symmetric ciphertext calculation file; The symmetric ciphertext calculation file is forwarded to the ciphertext storage end.
5. A homomorphic ciphertext processing device, characterized in that: The method comprises: A first processing unit, configured to receive a ciphertext acquisition request from a ciphertext storage end, wherein the ciphertext acquisition request indicates acquisition of a symmetric ciphertext calculation file; A second processing unit is used to perform homomorphic symmetric encryption on the homomorphic ciphertext calculation file to obtain a homomorphic symmetric ciphertext calculation file, wherein the homomorphic ciphertext calculation file is stored in the ciphertext storage end, and the homomorphic ciphertext calculation file is a result of homomorphic calculation of homomorphic ciphertext of at least one client; A third processing unit is used to send the homomorphic symmetric ciphertext calculation file to a key storage end, and the key storage end is used to homomorphically decrypt the homomorphic symmetric ciphertext calculation file to obtain a symmetric ciphertext calculation file; The fourth processing unit is used to forward the symmetric ciphertext calculation file to the ciphertext storage end after receiving the symmetric ciphertext calculation file sent by the key storage end.
6. The device according to claim 5, characterized in that The homomorphic ciphertext calculation file is a homomorphic ciphertext calculation file obtained by decrypting the calculation file using the private key of the target client; the at least one client includes the target client, and the target client is a client that receives the symmetric ciphertext calculation file.
7. The device according to claim 5 or 6, characterized in that The third processing unit is specifically used to add a blinding factor to the homomorphic symmetric ciphertext calculation file to obtain a blinded homomorphic symmetric ciphertext calculation file; The blinded homomorphic symmetric ciphertext calculation file is sent to the key storage end, and the key storage end is specifically used to homomorphically decrypt the blinded homomorphic symmetric ciphertext calculation file to obtain a blinded symmetric ciphertext calculation file.
8. The device according to claim 7, characterized in that The fourth processing unit is specifically configured to remove the blinding factor after receiving the blinded symmetric ciphertext calculation file sent by the key storage end, so as to obtain the symmetric ciphertext calculation file; The symmetric ciphertext calculation file is forwarded to the ciphertext storage end.
9. A computing device, characterized in that include: at least one memory, At least one processor, the at least one processor is used to execute instructions stored in the at least one memory, so that the computing device performs the method according to any one of claims 1-4.
10. A computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to execute the method according to any one of claims 1 to 4.
11. A computer program product, characterized in that The computer program product stores instructions, and when the instructions are executed by a computer, the computer is caused to implement the method according to any one of claims 1 to 4.