Homomorphic encryption operation key management system and management method
By using client public keys to generate and manage operation keys in a homomorphic encryption operation key management system, the high cost caused by client-generated rotation operation keys is solved, achieving more efficient key management and server storage optimization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
- Filing Date
- 2023-02-08
- Publication Date
- 2026-05-05
AI Technical Summary
In homomorphic encryption, the computational and communication costs are too high when the client generates and sends the spin operation key to the server, and it is inappropriate for multiple servers to store all the spin operation keys.
By generating a public key on the client and delegating it to a homomorphic encryption operation key management system, the system generates and manages operation keys based on the public key, reducing the computational burden on the client and sending the keys to the server when necessary.
It reduces the computational and communication costs for clients to generate and transmit operation keys, reduces the storage burden on servers, and improves operational efficiency.
Smart Images

Figure CN116582237B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to homomorphic encryption technology, and more specifically, to a method for generating operation keys for homomorphic encryption operations in a client-server model. Background Technology
[0002] Homomorphic encryption (HE) is an encryption method that allows data to be computed while in an encrypted state. The result of computation using ciphertext becomes new ciphertext, and decrypting this ciphertext yields the same plaintext as the original data before encryption. Homomorphic encryption can be used to store personal information on external media or to compute personal information while securely protecting it. For example, when using homomorphic encryption, data can be outsourced to commercial cloud services and processed in an encrypted state.
[0003] In homomorphic encryption, several data segments are encrypted into a single ciphertext. When operations are performed on two different ciphertexts, the operation is performed between corresponding data segments. When operations need to be performed on data at different positions within the ciphertext while it is in an encrypted state, in some cases, these positions need to be shifted to execute the operation. Only the homomorphic rotation operation changes the position of data within the ciphertext while it is in an encrypted state. The homomorphic rotation operation is a cyclic shift operation in the encrypted state, and it corresponds to the basic operations used in homomorphic encryption.
[0004] Figure 1 This refers to a traditional client-server network environment used for performing homomorphic encryption operations. (See reference...) Figure 1 In a traditional client-server model used to perform homomorphic encryption, client 1, which generates ciphertext based on homomorphic encryption, can generate and send the necessary operation key to request server 2 to perform homomorphic encryption on the ciphertext. For example, client 1 can use its private key to generate a rotation operation key for performing a rotation operation based on homomorphic encryption and send the generated rotation operation key to server 2, thereby performing a rotation operation on the ciphertext on server 2. The operation key required for homomorphic encryption can be generated based on client 1's private key and therefore cannot be generated in another electronic device (e.g., server 2) that does not know that private key. Summary of the Invention
[0005] In homomorphic encryption, the homomorphic rotation keys used to perform rotation operations often occupy hundreds of megabytes and come in over 100 types. Therefore, it incurs considerable cost when all rotation operation keys are generated and sent to the server by client electronics devices with relatively lower specifications compared to the server. Furthermore, even when the server generates homomorphic rotation operation keys, it is inappropriate from an overall memory burden perspective for each of the multiple servers to generate or store all rotation operation keys for the client if there are actually multiple servers performing homomorphic encryption operations in response to service requests from clients.
[0006] According to embodiments of this disclosure, a new method for generating an operation key using a client's public key is proposed, and the right to generate the operation key required for homomorphic encryption of the client's ciphertext can be delegated to another electronic device. As an embodiment, a homomorphic encryption operation key management system can be provided for generating and sending a homomorphic encryption operation key for client ciphertext in response to a request from a server, and for storing and managing the generated operation keys.
[0007] According to embodiments of this disclosure, a homomorphic encryption operation key management system can be provided. This system is capable of instantly sending operation keys stored in memory or generating operation keys only once, and sending the generated operation keys to one or more servers that request homomorphic encryption operation keys from the same client.
[0008] According to one aspect of the invention, the above and other objectives can be achieved by providing a homomorphic encryption operation key management system, the system comprising: a communication interface configured to support communication using a secure protocol; a memory; and at least one processor operatively coupled to the communication interface and the memory, wherein the memory includes a token and one or more public keys received from each of a plurality of electronic devices, the at least one processor verifying the validity of the token in response to the communication interface receiving a token and operation key request from a first server; generating one or more homomorphic encryption operation keys using one or more public keys for the first electronic device among the plurality of electronic devices based on data obtained by decrypting the token; and sending the homomorphic encryption operation keys of the first electronic device to the first server via the communication interface.
[0009] When the at least one processor successfully decrypts the token using a preset encryption method of the first electronic device, the at least one processor can determine that the token is valid.
[0010] The token may be encrypted and include at least one of the following: the user identity of the first electronic device, allowed operation time information, the type and range of allowed operation keys, or a random number issued by the first electronic device.
[0011] When the request time for the operation key is outside the allowed range based on the allowed operation time information, the at least one processor may not generate the homomorphic encryption operation key, and may send a message to the first server through the communication interface to suspend the use of the homomorphic encryption operation key.
[0012] The at least one processor can verify the validity of the token by checking the random number, depending on the type of the operation key request from the first server.
[0013] The one or more public keys may include hierarchical Galois keys corresponding to k-step shifts, and the at least one processor can generate one or more homomorphic rotation operation keys corresponding to the k-step shifts by repeatedly performing rotation operations using the hierarchical Galois keys.
[0014] The at least one processor may store the homomorphic rotation operation key in the memory and set the storage period of the homomorphic rotation operation key according to the content negotiated with the first electronic device.
[0015] In response to searching for the operation key requested by the first electronic device in the memory, the at least one processor may send the operation key stored in the memory to the first server.
[0016] According to another aspect of the present invention, a method for managing homomorphic encryption operation keys is provided, the method comprising: receiving a token and a request for a homomorphic encryption operation key from a first server; verifying the validity of the token; when the token is valid, generating the homomorphic encryption operation key using one or more public keys for a first electronic device based on data obtained by decrypting the token; and sending the homomorphic encryption operation key to the first server.
[0017] The method may further include sending a message indicating that the token is invalid to the first server when the token is invalid.
[0018] The one or more public keys may include hierarchical Galois keys generated using the private key of the first electronic device.
[0019] The generation may include generating one or more homomorphic rotation operation keys by repeatedly performing rotation operations using the hierarchical Galois key.
[0020] The verification may include: determining that the token is valid when the token is decrypted using a preset encryption method of the first electronic device.
[0021] The token may be encrypted and include at least one of the following: the user identity of the first electronic device, allowed operation time information, the type and range of allowed operation keys, or a random number issued by the first electronic device.
[0022] The generation may include sending a message to the first server to suspend the use of the homomorphic encryption operation key when the request time for the operation key is outside the allowed range based on the allowed operation time information, without generating the homomorphic encryption operation key.
[0023] The verification may include: checking the random number according to the type of the operation key request from the first server, and generating a homomorphic encryption operation key in response to the token being valid.
[0024] The method may further include setting the storage period of the homomorphic encryption operation key according to the content negotiated with the first electronic device, and storing the homomorphic encryption operation key in a memory.
[0025] According to another aspect of the present invention, a computer-readable non-transient recording medium is provided, which stores instructions for controlling an electronic device, the electronic device comprising: at least one processor, a memory, and a communication interface, wherein, when the instructions are executed by the at least one processor, the instructions control the electronic device to receive a request for a homomorphic encryption operation key and a first token for the first electronic device from a first server, decrypt the first token based on a first encryption method of the first electronic device stored in the memory, and, in response to successful decryption, search for a homomorphic encryption operation key in the memory, and, in response to finding a homomorphic encryption operation key, send the homomorphic encryption operation key to the first server, and, in response to not finding a homomorphic encryption operation key in the memory, generate a homomorphic rotation operation key using a public key of the first electronic device stored in the memory and a hierarchical Galois key, and send it to the first server.
[0026] One or more homomorphic rotation operation keys can be generated by repeatedly performing rotation operations on a public key using a hierarchical Galois key.
[0027] The homomorphic rotation operation key can be generated based on data obtained by decrypting the token, and the decrypted data can include at least one of the following: the user identity of the first electronic device, the allowed operation time information, the type and range of the allowed operation key, or a random number issued by the first electronic device. Attached Figure Description
[0028] The above and other objects, features and advantages of the present invention will become more clearly understood from the following detailed embodiments, taken in conjunction with the accompanying drawings, in which:
[0029] Figure 1 It is a network environment for performing homomorphic encryption operations using a traditional client-server model.
[0030] Figure 2 This refers to a network environment that includes a client-server model of a homomorphic encryption operation key management system, according to an embodiment.
[0031] Figure 3 This is a block diagram of components including a homomorphic encryption operation key management system according to an embodiment.
[0032] Figure 4 This is a flowchart of a method for managing homomorphic encryption operation keys in a client-server model according to an embodiment.
[0033] Figure 5 This is an example of a method for generating homomorphic rotation operation keys in a homomorphic encryption operation key management system according to an embodiment.
[0034] Figure 6 This is a sequence diagram of multiple clients and multiple servers requesting and receiving homomorphic encryption operation keys according to an embodiment. Detailed Implementation
[0035] In the following description, embodiments will be illustrated with reference to the accompanying drawings. However, the scope of the claims is not limited to these embodiments. Similar reference numerals in each figure denote similar elements.
[0036] The terminology used in the following specification has selected conventional and general terms in the relevant technical field. However, other terms may exist due to technological developments and / or changes, preferences of those skilled in the art, etc. Therefore, the terminology used in the following specification should not be construed as limiting the technical concept, but should be understood as exemplary terms used to describe embodiments.
[0037] Figure 2 This is a network environment according to an embodiment of a client 200-server 300 model 10 including a homomorphic encryption operation key management system 100.
[0038] For homomorphic encryption operations, each client requires several gigabytes to hundreds of gigabytes of operation keys (e.g., rotation operation keys, key switching keys, etc.). In relatively low-spec clients, generating, storing, and transmitting all operation keys (each an operation key is a public key) from the client to the server, where operations are delegated to the server, leads to cost issues. For example, in portable devices such as mobile devices, even with a key size of 1 GB, the computational cost of generating and storing keys, as well as the communication cost of sending keys to the server, is prohibitive. Furthermore, when one or more servers perform AI operations including homomorphic encryption through a proxy, receiving and storing the keys required for each client operation is burdensome in terms of communication costs and overall memory for each server. The homomorphic encryption operation key management system 100 according to various embodiments of this disclosure can generate operation keys on behalf of client 200, store operation keys, and send operation keys to operation servers when necessary. Therefore, the computational burden of generating operation keys and the communication cost of delivering operation keys to the server of client 200 can be reduced, and when multiple operation servers exist, the memory burden of storing operation keys on each server can be reduced.
[0039] According to an embodiment, the homomorphic encryption operation key management system 100 can store a public key (operation key) received from a client 200, generate a derived key (another operation key) based on the stored public key, and send the stored public key and derived key to a server 300 that needs to perform homomorphic encryption operations on the client 200. When the client 200 generates a public key (e.g., a hierarchical Galois key) only once and sends it to the homomorphic encryption operation key management system 100, the operation keys required for the homomorphic encryption operation (e.g., multiple rotation operation keys) can be generated by the homomorphic encryption operation key management system 100. For example, the homomorphic encryption operation key management system 100 can receive a hierarchical Galois key (public key) from one or more clients 200 that can generate rotation operation keys for homomorphic encryption rotation operations. In response to receiving a rotation operation key request from the server 300 related to one or more clients 200 managed by the homomorphic encryption operation key management system 100, the homomorphic encryption operation key management system 100 can generate multiple rotation operation keys (derived keys) based on the hierarchical Galois key (public key) of the corresponding client 200. One or more public keys may exist, and the homomorphic encryption operation key management system 100 can generate each derived key using, for example, one or more hierarchical Galois keys. The homomorphic encryption operation key management system 100 can store the public key (one or more hierarchical Galois keys) and the derived keys (multiple rotation operation keys) in the memory of the client 200. In one embodiment, the homomorphic encryption operation key management system 100 can store the public key continuously and, depending on the user's choice, store the derived keys only for a specific time period or a set time period. In response to a request for an operation key from the client 200, the homomorphic encryption operation key management system 100 can send the derived key stored in memory to the server 300 and regenerate the derived key, and when the derived key is deleted from memory, send the regenerated derived key to the server 300. In this case, the time delay required to send the operation key to the server 300 when regenerating the same operation key is as much as the time required for key generation, so the client 200 can request the homomorphic encryption operation key management system 100 to store the derived key for a necessary period. For effective memory management, the homomorphic encryption operation key management system 100 can charge a fee based on the amount of memory used by each client 200.
[0040] The server 300 requesting the operation key associated with client 200 can be an operation server that receives ciphertext sent by client 200 and performs homomorphic encryption on the received ciphertext. For example, server 300 could be an AI server. Server 300 can send data about the type of the necessary operation key and a token received from client 200 to the homomorphic encryption operation key management system 100 to perform homomorphic encryption on client 200's ciphertext. After verifying the token, when the token is proven valid, the homomorphic encryption operation key management system 100 can send client 200's operation key to server 300. At this time, if the operation key requested by server 300 was previously generated and stored in a cache, the homomorphic encryption operation key management system 100 can immediately send the stored operation key to server 300. Otherwise, the homomorphic encryption operation key management system 100 can generate the requested derived key using client 200's public key and send the derived key to server 300. The homomorphic encryption operation key management system 100 can store the generated derived key in client 200's cache. Users who use a large amount of storage space due to numerous requests for operation keys can be considered as active users of the homomorphic encryption operation key management system 100, and can utilize a charging calculation algorithm that differentiates charges based on the amount of storage space used.
[0041] The homomorphic encryption operation key management system 100 can register a new client 200 and delegate the generation of operation keys to that client. The homomorphic encryption operation key management system 100 can receive and store the user information of the client 200 and the public key used for homomorphic operations.
[0042] The homomorphic encryption operation key management system 100 can communicate with the client 200 and the server 300 using encrypted or authenticated channels. For example, the homomorphic encryption operation key management system 100 can receive user information and public keys from a client 200 requesting new registration, receive requests for operation keys from the server 300, or use security protocols such as transport layer security (TLS) or internet protocol security (IPSec) throughout the transmission of operation keys. The homomorphic encryption operation key management system 100 can prevent denial-of-service attacks or replay attacks caused by key exposure or key corruption during communication between external attackers and the client 200 and server 300 using secure protocols.
[0043] The homomorphic encryption operation key management system 100 can manage the operation keys of each of multiple clients 200, each client 200 having a different type, number, or capacity of derived keys, and can reside on multiple servers 300 associated with the multiple clients 200. For example, the homomorphic encryption operation key management system 100 can correspond to a large number of AIaaS servers 300. Clients 200 can use services using homomorphic encryption from various operation servers 300 regardless of their data transmission capabilities or storage space limitations. For example, a smartphone terminal 200 can use the homomorphic encryption operation key management system 100 to use a secure AIaaS server 300 using homomorphic encryption operations via encryption / token issuance or other methods, without storing or transmitting several gigabytes of keys. In various embodiments, when a client 200 requests a service from a server 300, it can authorize the use of the homomorphic encryption operation key management system 100 by using a token.
[0044] In this disclosure, the token may include information regarding the right to use the operation key between client 200 and server 300. Tokens are sent and received encrypted, and only the client 200 that issues the token and the homomorphic encryption operation key management system 100, which delegates the generation of the operation key from client 200, can decrypt the token. Server 300 can receive the token and send it to the homomorphic encryption operation key management system 100, but cannot decrypt the encrypted content. The homomorphic encryption operation key management system 100 can decrypt the token using a method previously agreed upon with client 200. For example, the homomorphic encryption operation key management system 100 can decrypt the token using a private / public key code agreed upon with client 200.
[0045] The token may include user identity information of client 200. User identity information may include client 200 identification information, user identification information, and authentication information. The token may include information about the time period during which client 200 is permitted to perform an operation. In cases corresponding to a time before or after a restriction range based on the permitted operation time information, the homomorphic encryption operation key management system 100 may determine that the token is a retransmission token, suspend the key use of the corresponding server, and send a key use suspension message to the server due to the expiration of the period. The token may include an authorized key ID and a permitted range. For example, the range or number of rotation operation keys may be restricted. Since one or more keys for each client may be stored in the homomorphic encryption operation key management system 100, ID information assigned to the keys may be included to distinguish the corresponding keys. The token may include a random number issued by client 200. For example, the random number may be used for additional authentication during the process of the operation server and the homomorphic encryption operation key management system 100 requesting important information for homomorphic operation on ciphertext for client 200.
[0046] although Figure 2 Only one client 200 and one server 300 are shown, but the homomorphic encryption operation key management system 100 according to various embodiments of this disclosure can operate with multiple clients 200 and multiple servers 300. In various embodiments, the homomorphic encryption operation key management system 100 can receive tokens and public keys from each of the multiple clients 200 and manage the homomorphic encryption operation keys for each of the multiple clients 200. In various embodiments, the homomorphic encryption operation key management system 100 can receive requests from multiple servers 300 for operation keys for a specific client 200 among the multiple clients 200 and provide homomorphic encryption operation keys to the corresponding client 200. As an example, in Figure 6 The example already provided describes a homomorphic encryption operation key management system 100 operating with two clients 200a and 200b and two servers 300a and 300b.
[0047] In one embodiment, client 200 may generate a hierarchical Galois key as follows.
[0048] Client 200 can define different sets of prime numbers C = {q0, ...,q} L} and B={p0,…,p K-1 All these sets can be used as variables (bases) of the residue number system (RNS). Client 200 can define another set of prime numbers. As a principal special prime number. For ease of description, the name can be renamed in the following order.
[0049] The factorization dnum is α = (L+1) / dnum, and client 200 can define the value obtained by clustering and multiplying prime numbers as... Client 200 can be defined And such that |P|≥max(Q) j ).
[0050] The principal factorization mdnum is α m = (L+1) / mdnum, and the value obtained by clustering and multiplying prime numbers can be defined as Client 200 can be defined And make satisfied
[0051] Client 200 can define the rotation key corresponding to key polynomial s as mswk. k ={mswkk,i} r=0,...,mdnum-1 ,in From R PQT Extracted from a uniform distribution in the sample, and Client 200 can be used for k = 1, -1, 2, -2, 4, -4, ..., -2 n-2 ,2 n-2 ,2 n-1 Generate each hierarchical Galois key. The value of k is an example, and can be determined such that k ranges from -2. n-1 to 2 n-1 The value is obtained by summing the combinations that allow repetition. The hierarchical Galois key has the form: And it can be defined as making a e From R PQ Elements extracted uniformly from the middle, and b e =-a e s+e e .
[0052] Client 200 can generate multiple rotation operation keys by repeatedly performing rotation operations on the public key using a hierarchical Galois key. The hierarchical Galois key can be generated in response to a k-step shift and can be generated by client 200 upon request from server 300 or the homomorphic encryption operation key management system 100. Client 200 can generate multiple rotation operation keys corresponding to multiples of the k-step shift using a hierarchical Galois key corresponding to the k-step shift. Client 200 can generate one or more hierarchical Galois keys corresponding to different shifts. The one or more hierarchical Galois keys can each generate multiple rotation operation keys corresponding to different shifts. In various embodiments, when the hierarchical Galois key set includes Galois keys corresponding to k = {1, -1, 2, -2, 4, -4, 8, -8}, client 200 can generate rotation operation keys by combining k different Galois keys. For example, client 200 can sequentially use the Galois key corresponding to k=8 and the Galois key corresponding to k=2 to generate a 10-step shift rotation operation key.
[0053] In one embodiment, the homomorphic encryption operation key management system 100 can use the hierarchical Galois key of the client 200 to generate one or more rotation operation keys, as shown below.
[0054] When the rotation key for l can be generated, the homomorphic encryption operation key management system 100 can define l = l0 + l1 + ... + l u-1 , where each l iIt is a value containing a hierarchical Galois key. The homomorphic encryption operation key management system 100 can first generate a rotation operation key for l0 using the hierarchical Galois key l0 in the encryption key (public key). The homomorphic encryption operation key management system 100 then... right Perform rotation operation to generate And this method is used to perform the operation on r = 0, ..., dnum-1. Therefore, the following is generated: Furthermore, a rotation operation key of l0 was generated. In addition, the homomorphic encryption operation key management system 100 can, based on k... (j-1) =l0+l1+…+l j-1 Rotation operation key Generate k (j) =l0+l1+…+l j Rotation operation key
[0055] The homomorphic encryption operation key management system 100 can use mswk lj For l j Rotation operation applied to ciphertext To generate And this operation can be performed on all r = 0, ..., dnum-1. Therefore, it is possible to generate And become k (j) The rotation operation key. The homomorphic encryption operation key management system 100 can handle all l0, l1, ..., l u-1 The above process is executed to generate the rotation operation key for l.
[0056] Figure 3 This is a block diagram of components including a homomorphic encryption operation key management system 100 according to an embodiment.
[0057] The homomorphic encryption operation key management system 100 according to this embodiment may include a processor 110, a memory 120, a communication interface 130, and a bus 140.
[0058] Processor 110 is a central processing unit and can execute one or more instructions stored in memory 120 to control the operation of homomorphic encryption operation key management system 100. Processor 110 may include any type of device capable of processing data. For example, processor 110 may refer to a data processing device embedded in hardware having physically structured circuitry to perform functions represented as code or instructions included in a program. As examples of data processing devices embedded in hardware as described above, processing devices such as microprocessors, central processing units (CPUs), processor cores, multiprocessors, application-specific integrated circuits (ASICs), or field-programmable gate arrays (FPGAs) may be included. However, the invention is not limited thereto. Processor 110 may include one or more processors. Processor 110 may include at least one core.
[0059] Processor 110 can verify the validity of a token in response to a token and operation key request received from server 300, and in response to the token being valid, generate one or more homomorphic encryption operation keys using one or more public keys based on the data obtained by decrypting the token. Processor 110 can decrypt the token received from server 300 based on an encryption method pre-set by client 200, and determine that the token is valid upon successful decryption. The token can be encrypted and includes at least one of the following: the user identity of client 200, allowed operation time information, allowed type and range of operation keys to be generated, or a random number issued by client 200. When the time of server 300's request for the operation key is outside the allowed range based on the allowed operation time information included in the token, processor 110 may not generate a homomorphic encryption operation key and may send a message to server 300 to suspend the use of the operation key. Processor 110 can further determine whether the token is valid by checking the random number according to the type of operation key request from server 300. One or more public keys received from client 200 may include hierarchical Galois keys corresponding to k-step shifts, and processor 110 can generate one or more homomorphic rotation operation keys corresponding to k-step shifts by repeatedly performing rotation operations using hierarchical Galois keys.
[0060] A hierarchical Galois key is a public key that generates an operation key (evaluation key) for rotation operations on homomorphic ciphertext. A hierarchical Galois key may include one or more Galois keys. For ease of description, a hierarchical Galois key that includes one or more Galois keys may be referred to as a hierarchical Galois key or a set of hierarchical Galois keys. For example, a hierarchical Galois key may include a Galois key corresponding to a k-step shift. Because this key is a public key, the processor 110 can generate an operation key for rotation operations using the received hierarchical Galois key without knowing the client 200's private key.
[0061] In various embodiments, the processor 110 can generate multiple rotation operation keys capable of performing shifts in multiples of k by using Galois keys corresponding to k-step shifts. For example, when the hierarchical Galois key is the Galois key corresponding to k=1, the Galois key corresponding to k=1 can be used 13 times to generate a rotation operation key for a 13-step shift. As another example, when the hierarchical Galois key set includes Galois keys corresponding to k={1, -1, 2, -2, 4, -4, 8, -8}, the Galois key corresponding to k=8, the Galois key corresponding to k=4, and the Galois key corresponding to k=1 can be used sequentially to generate a rotation operation key for a 13-step shift.
[0062] In various embodiments, client 200 may generate a hierarchical Galois key set including one or more Galois keys and send the hierarchical Galois key set to homomorphic encryption operation key management system 100. Optionally, homomorphic encryption operation key management system 100 may first request the necessary hierarchical Galois key set from client 200.
[0063] Processor 110 can store the homomorphic rotation operation key generated using a hierarchical Galois key in memory 120, and can set the storage period in memory according to the content negotiated with client 200. In response to a request for the operation key from server 300, processor 110 can first search for the operation key in memory 120, and can send the operation key to server 300 immediately upon storage. When the operation key is not found in memory 120, processor 110 can generate the operation key using one or more public keys from client 200.
[0064] Memory 120 may include internal and / or external memory, and may include volatile memory such as DRAM, SRAM, or SDRAM; non-volatile memory such as one-time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND flash memory, or NOR flash memory; flash drives such as SSDs, compact flash (CF) cards, SD cards, micro SD cards, mini SD cards, XD cards, or Memory Sticks; or storage devices such as HDDs. Memory 120 may include magnetic storage media or flash storage media. However, the invention is not limited thereto.
[0065] In one embodiment, memory 120 may store information about client 200, including tokens received from client 200, one or more public keys, and derived keys (one or more operation keys) generated by processor 110. Memory 120 may store the derived keys for a predetermined time period and may delete the corresponding derived keys when the predetermined time period has elapsed.
[0066] Communication interface 130 may include one or more communication interfaces for providing wired or wireless communication. In various embodiments, communication interface 130 may use security protocols to send and receive keys and tokens over secure or authenticated channels. For example, communication interface 130 may use transport layer security (TLS) or internet protocol security (IPSec). Communication interface 130 can prevent denial-of-service attacks or replay attacks caused by key exposure or key corruption during communication with client 200 and server 300 by external attackers.
[0067] Bus 140 is a logical / physical path connecting processor 110, memory 120, and communication interface 130. For example, processor 110 can perform reads and writes to memory 120 via bus 130.
[0068] Figure 4 This is a flowchart of a method for managing homomorphic encryption operation keys in a client-server model according to an embodiment.
[0069] In step S401, the homomorphic encryption operation key management system 100 can receive a first token and an operation key request from the first server 300. The operation key request may include information about the type and number of required operation keys. The first token can be decrypted in encrypted mode according to the encryption method pre-set by the client 200.
[0070] In step S402, the homomorphic encryption operation key management system 100 can verify the validity of the received first token. When the homomorphic encryption operation key management system 100 successfully decrypts the first token according to the encryption method preset by the client 200, the homomorphic encryption operation key management system 100 can determine that the first token is valid. Otherwise, the homomorphic encryption operation key management system 100 can determine that the first token is invalid, and in step S403, sends a message indicating that the first token is invalid to the first server without searching for or generating an operation key.
[0071] In step S404, the homomorphic encryption operation key management system 100 can search for the operation key in the memory 120. When the operation key is found, the homomorphic encryption operation key management system 100 can immediately send the found operation key to the first server 300 (step S405).
[0072] In step S406, in response to the failure to find the operation key in the memory 120, the homomorphic encryption operation key management system 100 can generate an operation key using one or more public keys of the client 120 corresponding to the first token. The homomorphic encryption operation key management system 100 can then send the generated operation key to the first server 300 (step S405).
[0073] Figure 5 This is an example of a method for generating homomorphic rotation operation keys in a homomorphic encryption operation key management system according to an embodiment.
[0074] In one embodiment, the homomorphic encryption operation key management system 100 can generate multiple homomorphic rotation operation keys using one or more public keys received from the client 200. The one or more public keys may include one or more hierarchical Galois keys and a public key generated using the client 200's private key. The public key for homomorphic encryption operations can be represented as a polynomial.
[0075] In step S501, the homomorphic encryption operation key management system 100 can receive one or more public keys (e.g., pk and MRkey) from the client 200.
[0076] A public key pk can be defined as a private key s, a polynomial “a” uniformly and randomly extracted from a finite set of polynomials, a small error e, and a large constant C.
[0077] A hierarchical Galois key (MRkey) is a public key that responds to a k-step shift and is defined as a key s, a polynomial “a” uniformly and randomly drawn from a finite set of polynomials, a small error e, and a large constant C.
[0078] In step S502, the homomorphic encryption operation key management system 100 can partially transform the public key pk to generate pk', and use the hierarchical Galois key (MRkey) to perform a rotation operation on the transformed public key pk', thereby generating a rotation operation key rk1 corresponding to k=1.
[0079] In step S503, the homomorphic encryption operation key management system 100 can use a hierarchical Galois key (MRkey) to perform a rotation operation on the rotation operation key rk1 generated in step S502, thereby generating a rotation operation key rk2 corresponding to k=2.
[0080] The homomorphic encryption operation key management system 100 can generate multiple rotation operation keys by repeatedly performing rotation operations using a hierarchical Galois key (MRkey), and when the hierarchical Galois key (MRkey) corresponds to a k-step shift, the generated multiple rotation operation keys can correspond to multiples of the k-step shift.
[0081] Figure 6 This is a sequence diagram of multiple clients and multiple servers requesting and receiving homomorphic encryption operation keys according to an embodiment. Multiple clients 200a and 200b according to the embodiment can request operations from multiple servers 300a and 300b, and delegate the generation of homomorphic encryption operation keys to a homomorphic encryption operation key management system (KMS, 100).
[0082] First client 200a can send a first token and public key to KMS 100 to delegate the generation of the homomorphic encryption operation key (step S601). First client 200a can send the first token and ciphertext simultaneously to request services from first server 300a and second server 300b (steps S602 and S603). When the necessary operation key is available during the homomorphic encryption operation, first server 300a can send the first token and necessary key information to KMS 100 to request the necessary operation key (S604). For example, KMS 100 can... Figure 4 The steps verify the validity of the first token, and the operation key can be sent to the first server 300a when the token's validity is proven (step S605). When the necessary operation key appears during the homomorphic encryption operation, the second server 300b can send the first token and necessary key information to KMS 100 to request the necessary operation key (S606). For example, KMS 100 can, according to... Figure 4The first server 300b is verified to be valid, and the operation key can be sent to the second server 300b when the token is proven to be valid (step S607). When the second server 300b requests the same operation key generated by KMS 100 in response to a request from the first server 300a, KMS 100 can immediately send the operation key stored in memory to the second server 300b without needing to regenerate the operation key (step S607).
[0083] The second client 200b can send a second token and public key to KMS 100 to delegate the generation of the homomorphic encryption operation key (step S608). The second client 200b can transmit the second token and ciphertext while requesting services from the second server 300b (step S609). When the necessary operation key is available during the homomorphic encryption operation, the second server 300b can send the second token and necessary key information to KMS 100 to request the necessary operation key (S610). For example, KMS 100 can... Figure 4 The steps verify the validity of the second token, and the operation key can be sent to the second server 300b when the token is proven to be valid (step S611).
[0084] When the homomorphic encryption operation is completed, the first server 300a and the second server 300b can send service information including the operation result to each of the clients 200a and 200b respectively (steps S612, S613 and S614).
[0085] The first and second tokens are distinct from each other, and are sent to each of servers 300a and 300b respectively in encrypted form, and can only be decrypted by KMS 100, which is authorized by clients 200a and 200b to generate the operation key.
[0086] The above embodiments can be implemented by hardware components, software components, and / or combinations of hardware and software components. For example, the devices, methods, and components described in the embodiments can be implemented using one or more general-purpose or special-purpose computers, such as processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field-programmable gate arrays (FPGAs), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device can execute an operating system (OS) and one or more software applications running on that operating system. Furthermore, the processing device can access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, even though a processing device is described as being used in some situations, those skilled in the art will recognize that a processing device can include multiple processing elements and / or various types of processing elements. For example, a processing device can include multiple processors or one processor and one controller. Alternatively, another processing configuration, such as a parallel processor, can be employed.
[0087] Software may include computer programs, code, instructions, or combinations thereof, and may be configured to operate a processing device as needed, independently or collectively instructing the processing device. Software and / or data may be permanently or temporarily embodied in a type of machine, component, physical device, virtual device, computer storage medium, or device, or in transmitted signal waves, for interpretation by the processing device or to provide instructions or data to the processing device. Software may be distributed through networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
[0088] The method according to this embodiment can be implemented in the form of program instructions, which can be executed by various computer devices and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., individually or in combination. The program instructions recorded in the medium may be specifically designed and configured for the embodiment, or may be known and used by those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical media such as CD-ROMs and DVDs; magneto-optical media such as floppy disks; and hardware devices specifically configured to store and execute program instructions, such as ROMs, RAMs, and flash memory. Examples of program instructions include not only machine language code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter. The aforementioned hardware devices may be configured to perform the operations of the embodiment as one or more software modules, and vice versa.
[0089] According to various embodiments of this disclosure, clients can reduce computational and communication costs by delegating the generation of operation keys to a homomorphic encryption operation key management system and sending ciphertext only to the server, without having to directly generate the operation keys required for homomorphic encryption operations.
[0090] According to various embodiments, the homomorphic encryption operation key management system can effectively manage a large number of operation keys by generating homomorphic encryption operation keys for clients upon request from a legitimate server, and storing or deleting the homomorphic encryption operation keys from memory as needed.
[0091] As described above, even though embodiments have been described with reference to limited examples and drawings, those skilled in the art can make various modifications and variations based on the above description. For example, suitable results can be achieved even if the described techniques are performed in a different order than the described methods, and / or the described components of the system, structure, device, circuit, etc., are combined or associated in a different form than the described methods, or are replaced or substituted by other components or equivalents. Therefore, other embodiments, other examples, and equivalents of the claims are also within the scope of the following claims.
Claims
1. A homomorphic encryption operation key management system, comprising: The communication interface is configured to support communication using secure protocols; Memory; as well as At least one processor operatively coupled to the communication interface and the memory, wherein: The memory includes tokens and one or more public keys received from each of the multiple electronic devices. In response to the communication interface receiving a first token and a homomorphic encryption operation key request from the first server, the at least one processor verifies the validity of the first token; In response to the first token being valid, based on the data obtained by decrypting the first token, one or more homomorphic encryption operation keys are generated using one or more public keys for the first electronic device among the plurality of electronic devices; and The homomorphic encryption operation key of the first electronic device is sent to the first server through the communication interface; The one or more public keys include hierarchical Galois keys generated using the private key of the first electronic device.
2. The homomorphic encryption operation key management system according to claim 1, wherein, When the at least one processor successfully decrypts the first token based on the encryption method preset by the first electronic device, the at least one processor determines that the first token is valid.
3. The homomorphic encryption operation key management system according to claim 1, wherein, The first token is encrypted and includes at least one of the following: the user identity of the first electronic device, permitted operation time information, the type and range of permitted homomorphic encryption operation keys, or a random number issued by the first electronic device.
4. The homomorphic encryption operation key management system according to claim 3, wherein, When the request time for the homomorphic encryption operation key is outside the allowed range based on the allowed operation time information, the at least one processor: The homomorphic encryption operation key is not generated; as well as The communication interface is used to send a message to the first server to suspend the use of the homomorphic encryption operation key.
5. The homomorphic encryption operation key management system according to claim 3, wherein, The at least one processor verifies the validity of the first token by checking the random number, based on the type of the homomorphic encryption operation key request from the first server.
6. The homomorphic encryption operation key management system according to claim 1, wherein: The hierarchical Galois key corresponds to a k-step shift; The at least one processor generates one or more homomorphic rotation operation keys corresponding to the k-step shift by repeatedly performing rotation operations using the hierarchical Galois key.
7. The homomorphic encryption operation key management system according to claim 6, wherein, The at least one processor stores the one or more homomorphic rotation operation keys in the memory and sets the storage period of the one or more homomorphic rotation operation keys according to the content negotiated with the first electronic device.
8. The homomorphic encryption operation key management system according to claim 1, wherein, In response to searching for a requested homomorphic encryption operation key for the first electronic device in the memory, the at least one processor sends the homomorphic encryption operation key stored in the memory to the first server.
9. A method for managing homomorphic encryption operation keys, the method comprising: Receive the first token and the request for the homomorphic encryption operation key from the first server; The validity of the first token is verified, and when the first token is valid, the homomorphic encryption operation key is generated using one or more public keys received from the first electronic device, based on the data obtained by decrypting the first token. as well as Send the homomorphic encryption operation key to the first server; The one or more public keys include hierarchical Galois keys generated using the private key of the first electronic device.
10. The method according to claim 9, wherein, The method further includes sending a message indicating that the first token is invalid to the first server when the first token is invalid.
11. The method according to claim 9, wherein, The generation of the homomorphic encryption operation key includes generating one or more homomorphic rotation operation keys by repeatedly performing rotation operations using the hierarchical Galois key.
12. The method according to claim 9, wherein, The verification of the validity of the first token includes: determining that the first token is valid when the first token is decrypted using a preset encryption method of the first electronic device.
13. The method according to claim 9, wherein, The first token is encrypted and includes at least one of the following: the user identity of the first electronic device, allowed operation time information, the type and range of allowed homomorphic encryption operation keys, or a random number issued by the first electronic device.
14. The method according to claim 13, wherein, The generation of the homomorphic encryption operation key includes: when the request time for the homomorphic encryption operation key is outside the allowed range based on the allowed operation time information, without generating the homomorphic encryption operation key, sending a message to the first server to suspend the use of the homomorphic encryption operation key.
15. The method according to claim 13, wherein: The verification of the validity of the first token includes: checking the random number according to the type of the homomorphic encryption operation key request from the first server; and In response to the first token being valid, a homomorphic encryption operation key is generated.
16. The method according to claim 9, wherein, The method further includes setting the storage period of the homomorphic encryption operation key according to the content negotiated with the first electronic device, and storing the homomorphic encryption operation key in a memory.
Citation Information
Patent Citations
Methods and devices for key management in an as-a-service context
US20150372812A1