Program, information processing device, method, and information processing system
By using non-fully homomorphic encryption methods like EC-ElGamal, the complexity of PIR is reduced, enabling efficient and secure data retrieval from large databases using multidimensional arrays, facilitating practical computation times.
Patent Information
- Application Number
- JP2025112695
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-07-03
- Publication Date
- 2025-09-04
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Conventional PIR technologies using fully homomorphic encryption face complexity issues that hinder parallel processing across multiple cores, leading to impractical computation times when searching large databases.
Employing homomorphic encryption methods like EC-ElGamal or Paillier encryption, which are not fully homomorphic, to enable a one-to-one correspondence between ciphertext and plaintext, allowing for efficient parallel processing and reduced ciphertext length, thereby simplifying operations on multidimensional arrays.
This approach enables secure and efficient retrieval of data from large databases in a practical amount of time, leveraging multi-core processors for improved computational efficiency.
Smart Images

Figure 2025129321000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a program, an information processing device, a method, and an information processing system. [Background technology]
[0002] There is a technology called PIR (Private Information Retrieval) that allows users to retrieve specific data from a server that owns a database without revealing which data they wish to retrieve (Non-Patent Document 1). However, PIR has the problem that the communication complexity becomes O(N). To solve this problem, a method is known in which the database stores data as a multidimensional array (Non-Patent Document 2). [Prior art documents] [Patent documents]
[0003] [Non-Patent Document 1] E. Kushilevitz and R. Ostrovsky. Replication is not needed: Single database, computationally-private information retrieval. In Proc. of the 38th Annu. IEEE Symp. on Foundations of Computer Science, pages 364-373, 1997. [Non-patent document 2] S.Angel, H.Chen, K.Laine and S.Setty, PIR with compressed queries and amortized query processing, https: / / eprint.iacr.org / 2017 / 1142.pdf, 2017. Summary of the Invention [Problem to be solved by the invention]
[0004] The technology in Non-Patent Document 2 uses fully homomorphic encryption based on LWE (Learning With Errors) to perform a predetermined calculation using an encrypted query, and the client decrypts the desired data. However, when using LWE-based fully homomorphic encryption, it is necessary to pack multiple plaintexts at once and represent them as a vector (v = (v1, v2, ...)). For example, if you want to add v1 and v2 while they are still encrypted, you need to rotate the vector v to create a vector v' = (v2, v3, ...), and then write v + v' = (v1 + v2, v2 + v3, ...). Furthermore, if you encrypt this vector, the ciphertext will be very long. For this reason, with conventional technology, parallelizing the encryption procedure is too complicated and it is not possible to efficiently distribute it across multiple cores. As a result, when searching a huge database, it is difficult to perform the calculation process in a practical amount of time.
[0005] An object of the present disclosure is to provide a technology that can acquire desired data from a huge database safely and in a practical amount of time. [Means for solving the problem]
[0006] A program of one aspect of the present disclosure is a program that causes a computer to perform processing in an information processing system including a computer having a processor, a server, and a database that stores multiple data elements as a multidimensional array, and causes the processor to execute the following steps: acquiring information about a specific data element from the multiple data elements stored in the database; generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic; sending the encrypted query to the server; receiving an encrypted response from the server that includes the specific data element; and extracting the specific data element by decrypting the response.
[0007] A program of one aspect of the present disclosure is a program that causes a computer to perform processing in an information processing system that includes a computer having a processor, a client terminal, and a database that stores multiple data elements as a multidimensional array, and causes the processor to perform the following steps: receiving an encrypted query from the client terminal, the query being encrypted using a homomorphic encryption method that is not fully homomorphic, to obtain a specific data element from multiple data elements stored in the database; using the encrypted query to perform a homomorphic operation in the encryption method on the multiple data elements stored in the database, thereby generating an encrypted response that includes the specific data element; and sending the response to the client terminal. [Effects of the Invention]
[0008] The technology disclosed herein can acquire desired data from a huge database safely and in a practical amount of time. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a block diagram showing a configuration of an information processing system 1 of the present disclosure. [Figure 2] 1 is a block diagram showing a configuration of a client terminal 10 according to the present disclosure. [Figure 3] FIG. 2 is a block diagram showing the configuration of a server 20 according to the present disclosure. [Figure 4] 2 is a block diagram showing a functional configuration of a client terminal 10 according to the present disclosure. FIG. [Figure 5] FIG. 2 is a block diagram showing a functional configuration of a server 20 according to the present disclosure. [Figure 6] 10 is a flowchart showing information acquisition processing by the client terminal 10 of the present disclosure. [Figure 7] 10 is a flowchart showing information acquisition processing by the server 20 of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. In the drawings for explaining the embodiment, the same components are generally designated by the same reference numerals, and repeated description thereof will be omitted.
[0011] <Theory of this disclosure> (PIR with homomorphic encryption) In a simple PIR, the database stores data in a sequential index. For example, the database stores N pieces of data, d1 to d N The PIR algorithm is as follows:
[0012] Step 1: The client terminal determines the index i of the desired data. Step 2: The client terminal encrypts the array {c k} (where k is an integer between 1 and N). where c k If k=i, it becomes Enc(1), otherwise it becomes Enc(0). Enc() is a function that performs encryption using the homomorphic encryption method. Step 3: The client terminal receives the encrypted query {c k} is sent to the server. Step 4: The server receives the encrypted query {c k} is received. Step 5: The server calculates the response r (equation (1) below). r=Σ k d k ○c k (1) Here, the operation "○" is a homomorphic operation. The operation "○" differs depending on the encryption method. That is, in homomorphic encryption, the encrypted elements a and b form a group, so Enc(a)○Enc(b)=Enc(a○b) Therefore, r=Σ k d k ○ck =Enc(d i ) This becomes: Step 6: The server sends the response r to the client terminal. Step 7: The client terminal receives the response r from the server.
[0013] Step 8: The client terminal uses its own decryption key to decrypt r. Specifically, the client terminal decrypts the data d i can be obtained from the response r. d i =Dec(r)=Dec(Enc(d i ))
[0014] Conventional PIR has a communication complexity of O(N), which is roughly the same amount of data transfer as retrieving all data from the server. If the client terminal retrieves all data from the server and discards the unwanted data, there is no need to use PIR. Therefore, it is essentially important to reduce the communication complexity below O(N).
[0015] (Multiple-Dimensional PIRs) In order to reduce the communication complexity under O(N), which is a problem of PIR, a method is known in which databases store data as multidimensional arrays. Hereinafter, this method will be referred to as MDPIRs. In MDPIRs, databases store data as d-dimensional arrays. For simplicity, the case where d=2 will be explained as an example. In other words, a database stores N×M pieces of data in d 1,1 ~d N,M (N and M are arbitrary integers). In this case, the MDPIRs algorithm is as follows:
[0016] Step 1: The client terminal determines the index (i, j) of the desired data. Step 2: The client terminal encrypts the array {c 0,k} and array {c 1,s} (where k is an integer between 1 and N, and s is an integer between 1 and M). where c 0,k If k=i, it is Enc(1), otherwise it is Enc(0). 1,s If s=j, then it is Enc(1), otherwise it is Enc(0). Step 3: The client terminal receives the encrypted query {c 0,k} and {c 1,k} is sent to the server. Step 4: The server receives the encrypted query {c 0,k} and {c 1,k} is received. Step 5: The server calculates the response r (equation (2) below). r=Σ n Ser(r n )○c 1,n =Enc(Ser(Enc(d i,j ))) …(2) where r n is expressed by the following formula (3). r n =Σ m d n,m ○c 0,m =Enc(d n,i ) …(3) Also, Ser() is a serialization function. Step 6: The server sends the response r to the client terminal. Step 7: The client terminal receives the response r from the server. Step 8: The client terminal decrypts r using its own decryption key.
[0017] This algorithm reduces the communication complexity to O(√N) in MDPIRs. The above is for a two-dimensional array, but for d dimensions, the communication complexity is O( d √N).
[0018] (Regarding the PIR of this disclosure) MDPIRs uses fully homomorphic encryption based on LWE. For this reason, MDPIRs needs to pack multiple plaintexts at once and represent them as a vector v = (v1, v2, ...). Therefore, when performing fully homomorphic operations while the data is encrypted, MDPIRs needs to rotate vector v to generate vector v', and then perform the operation between v and v'. For example, when adding elements v1 and v2 of vector v while the data is encrypted, MDPIRs needs to rotate vector v to create vector v' = (v2, v3, ...), and then perform the operation v + v' = (v1 + v2, v2 + v3, ...).
[0019] Furthermore, if this vector v is encrypted, the ciphertext will be very long.
[0020] For this reason, conventional MDPIRs have a complexity that makes them unsuitable for parallelizing the encryption procedure. As a result, client terminals and servers cannot efficiently distribute MDPIR processing to multiple cores. Therefore, when searching a huge database, it is difficult to perform the calculation process in a practical amount of time.
[0021] The technology disclosed herein uses homomorphic encryption, which is not fully homomorphic, in PIR using multidimensional arrays, and which has a one-to-one correspondence between ciphertext and plaintext. Examples of such homomorphic encryption include EC-ElGamal encryption and Paillier encryption. EC-ElGamal and Paillier encryption are homomorphic only for addition, but not for multiplication. By using such homomorphic encryption, the technology disclosed herein eliminates the need for complex operations such as vector rotation and enables manipulation of individual plaintexts while they remain encrypted.
[0022] Compared to the above-mentioned MDPIRs, the technology disclosed herein does not require vector representation by using homomorphic encryption such as EC-ElGamal encryption, which eliminates the computational complexity associated with vector representation and improves parallelism for processors when data becomes huge.
[0023] In addition, in PIR using multidimensional arrays, the length of the ciphertext can be reduced by using an encryption method in which ciphertext and plaintext correspond one-to-one, rather than using fully homomorphic encryption.
[0024] In this way, by using a homomorphic encryption method that is not fully homomorphic encryption but has a one-to-one correspondence between ciphertext and plaintext, it is possible to easily improve the degree of parallelism and perform computational processing on a huge database in a practical time. For example, a high degree of parallelism can be achieved in an information processing device having a multi-core processor such as a GPU.
[0025] <1. Configuration of Information Processing System 1> An information processing system using a multidimensional array PIR that employs EC-ElGamal encryption as an encryption method, which is a technology of the present disclosure, will be described below. Fig. 1 is a diagram showing the configuration of an information processing system 1 of the present disclosure.
[0026] 1, an information processing system 1 of the present disclosure includes a client terminal 10, a server 20, and a network 30. The client terminal 10 and the server 20 are connected to each other via the network 30 using a wired or wireless communication standard so as to be able to communicate with each other.
[0027] The client terminal 10 is a device that queries the server for data. Fig. 2 is a diagram showing the configuration of the client terminal 10 of the present disclosure.
[0028] The client terminal 10 is, for example, a laptop computer, a rack-mounted computer, a tower computer, or a smartphone.
[0029] The client terminal 10 includes a processor 11, a memory 12, a storage 13, a communication IF 14, and an input / output IF 15.
[0030] The processor 11 is hardware for executing an instruction set written in a program, and is configured with an arithmetic unit, a register, a peripheral circuit, etc. The processor 11 may also be configured with multiple processors.
[0031] The memory 12 is for temporarily storing programs and data to be processed by the programs, and is a volatile memory such as a DRAM (Dynamic Random Access Memory).
[0032] The storage 13 is a storage device for saving data, such as a flash memory, a hard disc drive (HDD), or a solid state drive (SSD).
[0033] The communication IF 14 is an interface for inputting and outputting signals so that the client terminal 10 can communicate with external devices. The communication IF 14 is connected to a network such as the Internet or a wide area Ethernet by wire or wirelessly.
[0034] The input / output IF 15 functions as an interface with an input device (for example, a pointing device such as a mouse, a keyboard) for receiving an input operation, and an output device (for example, a display, a speaker, etc.) for presenting information.
[0035] The server 20 is a device that performs a predetermined process in response to a request from the client terminal 10 and transmits a response to the client terminal 10.
[0036] 3 is a diagram showing the configuration of the server 20. The server 20 is, for example, a laptop computer, a rack-mounted or tower computer, a smartphone, or the like. The server 20 may be configured as a single system by a plurality of servers 20, or may be configured in a redundant manner. The method of allocating the multiple functions required to realize the information processing system 1 can be determined appropriately in consideration of the processing capacity of each piece of hardware, the specifications required for the information processing system 1, and the like.
[0037] The server 20 includes a processor 21, a memory 22, a storage 23, a communication IF 24, and an input / output IF 25.
[0038] The processor 21 is hardware for executing an instruction set written in a program, and is configured with an arithmetic unit, a register, a peripheral circuit, etc. The server 20 is configured to include multiple processors 21. The processor 21 may be a GPU.
[0039] The memory 22 is for temporarily storing programs and data to be processed by the programs, and is a volatile memory such as a DRAM (Dynamic Random Access Memory).
[0040] The storage 23 is a storage device for saving data, such as a flash memory, a hard disk drive (HDD), or a solid state drive (SSD). The storage 23 may also be configured as a database capable of saving a large amount of data.
[0041] The communication IF 24 is an interface for inputting and outputting signals so that the server 20 can communicate with external devices. The communication IF 24 is connected to a network such as the Internet or a wide area Ethernet by wire or wirelessly.
[0042] The input / output IF 25 functions as an interface with an input device (for example, a pointing device such as a mouse, a keyboard) for receiving an input operation, and an output device (for example, a display, a speaker, etc.) for presenting information.
[0043] The network 30 may be a wired or wireless network, and may include various networks such as the Internet and wide area Ethernet.
[0044] <2. Functional Configuration of the Client Terminal 10> The functional configuration of the client terminal 10 according to the present disclosure will be described with reference to Fig. 4. Fig. 4 is a block diagram showing the functional configuration of the client terminal 10. As shown in Fig. 4, the client terminal 10 includes a communication unit 110, a storage unit 120, and a control unit 130.
[0045] The communication unit 110 performs processing for the client terminal 10 to communicate with external devices.
[0046] The storage unit 120 stores data and programs used by the client terminal 10. The storage unit 120 also stores an encryption key used for encryption, a decryption key used for decryption, and the like.
[0047] The control unit 130 performs the functions of a reception control unit 131, a transmission control unit 132, an input unit 133, a generation unit 134, an extraction unit 135, and an output unit 136 by the processor 11 of the client terminal 10 performing processing according to a program.
[0048] The reception control unit 131 controls the process in which the client terminal 10 receives a signal from an external device (for example, the server 20) in accordance with a communication protocol.
[0049] The transmission control unit 132 controls the process in which the client terminal 10 transmits a signal to an external device (for example, the server 20) in accordance with a communication protocol.
[0050] The input unit 133 accepts input of information relating to a specific data element among a plurality of data elements stored in the database.
[0051] Specifically, the input unit 133 accepts a user operation and determines an index of a specific data element desired by the user through the operation. The operation is, for example, an operation in which the user operates a GUI to select a predetermined item. The input unit 133 determines the index for the item selected through the operation, for example, by referring to index information in a database stored in the storage unit 120. The index is d-dimensional index information, similar to the case of MDPIRs described above. For example, if d=2, the index is an index (i, j) having two elements i and j.
[0052] The generation unit 134 generates an encrypted query by encrypting a query for acquiring a specific data element using a homomorphic encryption method that is not fully homomorphic.
[0053] Specifically, the generation unit 134 first obtains an encryption key from the storage unit 120. Next, the generation unit 134 generates an encrypted query by encrypting a query for obtaining a specific data element using an encryption method that is homomorphic encryption that is not fully homomorphic and in which ciphertext and plaintext correspond one-to-one. In the present disclosure, the encryption method will be described taking as an example a case where EC-ElGamal encryption is adopted. More specifically, the generation unit 134 generates an encrypted query by encrypting a query for obtaining a specific data element using an array {c 0,k} and array {c 1,k}. That is, Enc() is a function for encryption using EC-ElGamal encryption.
[0054] Then, the generation unit 134 causes the transmission control unit 132 to transmit the encrypted query to the server 20.
[0055] When the reception control unit 131 receives an encrypted response including a specific data element from the server 20, the extraction unit 135 decrypts the response to extract the specific data element.
[0056] Specifically, the extraction unit 135 obtains a decryption key for the encryption key that has encrypted the query using the EC-ElGamal cipher from the storage unit 120. Next, the extraction unit 135 uses the decryption key to decrypt the response received from the server 20, thereby extracting a specific data element.
[0057] The output unit 136 outputs the extracted specific data element. The output unit 136 outputs the specific data element to the user, for example, by displaying it on a screen.
[0058] <3. Functional configuration of server 20> The functional configuration of the server 20 according to the present disclosure will be described with reference to Fig. 5. Fig. 4 is a block diagram showing the functional configuration of the server 20. As shown in Fig. 4, the server 20 includes a communication unit 210, a storage unit 220, and a control unit 230.
[0059] The communication unit 210 performs processing for the server 20 to communicate with external devices.
[0060] The storage unit 220 stores data and programs used by the server 20. The storage unit 120 stores a first data DB 221 and the like.
[0061] The first data DB 221 is a database that holds a plurality of data elements. The first data DB 221 stores the plurality of data elements in advance as a d-dimensional array. Note that the plurality of data elements do not necessarily need to be stored as a d-dimensional array, but may be handled as a d-dimensional array by, for example, arranging and handling the data elements in processing by the server 20. In the present disclosure, a case will be described as an example in which the plurality of data elements are stored in advance as a d-dimensional array.
[0062] The control unit 230 performs the functions of a reception control unit 231, a transmission control unit 232, an acquisition unit 233, and a generation unit 234 by the processor 21 of the server 20 performing processing according to a program.
[0063] The reception control unit 231 controls the process in which the server 20 receives a signal from an external device (for example, the client terminal 10) in accordance with a communication protocol.
[0064] The transmission control unit 132 controls the process in which the server 20 transmits a signal to an external device (for example, the client terminal 10) in accordance with a communication protocol.
[0065] The acquisition unit 233 acquires the encrypted query from the client terminal 10. Specifically, the reception control unit 231 receives the encrypted query from the client terminal 10, and thereby the acquisition unit 233 acquires the encrypted query.
[0066] If the plurality of data elements in the first data DB 221 are not arranged in a d-dimensional array, the acquiring unit 233 may have a function of arranging them.
[0067] The generation unit 234 uses the encrypted query to perform a homomorphic operation in the above encryption method on multiple data elements stored in the first data DB 221, thereby generating an encrypted response including a specific data element.
[0068] Specifically, the generation unit 234 performs a predetermined operation on the encrypted query and multiple data elements while the encrypted query is in an encrypted state. The generation unit 234 calculates the response using, for example, the above formula (2). Here, in the above formula (2), the operation "○" is addition, which is a homomorphic operation in EC-ElGamal encryption. Note that in other encryption methods, the operation may be multiplication or another operation.
[0069] Then, the generation unit 234 causes the transmission control unit 232 to transmit the generated response to the client terminal 10.
[0070] <4.Operation> The processing in the client terminal 10 will be described below with reference to the drawings.
[0071] <4.1. Information Acquisition Process of Client Terminal 10> 6 is a flowchart showing an example of the flow of information acquisition processing performed by the client terminal 10. The client terminal 10 executes this processing at any timing (for example, at the timing when a predetermined operation by the user is received).
[0072] In step S101, the input unit 133 accepts input of information relating to a specific data element among a plurality of data elements stored in the database.
[0073] In step S102, the generation unit 134 obtains the encryption key from the storage unit 120.
[0074] In step S103, the generation unit 134 generates an encrypted query by encrypting a query for acquiring a specific data element using a homomorphic encryption method that is not fully homomorphic.
[0075] In step S104 , the generation unit 134 causes the transmission control unit 132 to transmit the encrypted query to the server 20 .
[0076] In step S105, the reception control unit 131 receives an encrypted response including a specific data element from the server 20.
[0077] In step S106, the extraction unit 135 obtains the decryption key for the encryption key from the storage unit 120 and decrypts the response to extract the specific data element.
[0078] In step S107, the output unit 136 outputs the extracted specific data element, and the process ends.
[0079] <4.2. Information Acquisition Processing by Server 20> 7 is a flowchart showing an example of the flow of information acquisition processing performed by the server 20. The server 20 executes this processing by receiving a query from the client terminal 10, etc.
[0080] In step S201, the reception control unit 231 receives an encrypted query from the client terminal 10.
[0081] In step S202, the generation unit 234 uses the encrypted query to perform a homomorphic operation in the above encryption method on multiple data elements stored in the first data DB 221, thereby generating an encrypted response including a specific data element.
[0082] In step S203, the generation unit 234 causes the transmission control unit 232 to transmit the generated response to the client terminal 10, and then ends the process.
[0083] <5.Summary> As described above, the technology disclosed herein relates to an information processing system including a client terminal, a server, and a database. The client terminal acquires information about a specific data element from multiple data elements stored in the database, and generates an encrypted query by encrypting the query for acquiring the specific data element using a homomorphic encryption scheme that is not fully homomorphic. The client terminal transmits the encrypted query to a server, receives an encrypted response from the server including the specific data element, and decrypts the response to extract the specific data element. The server generates a response by performing a homomorphic operation in the encryption scheme on the multiple data elements stored in the database using the encrypted query received from the client terminal. The server transmits the generated response to the client terminal. The database then stores the multiple data elements as a multidimensional array. This allows the client terminal to securely acquire desired data from a huge database in a practical amount of time.
[0084] In addition, the encryption method has a one-to-one correspondence between ciphertext and plaintext. In PIR using multidimensional arrays, the length of the ciphertext can be reduced by using an encryption method with a one-to-one correspondence between ciphertext and plaintext, rather than using fully homomorphic encryption.
[0085] The encryption method is, for example, EC-ElGamal encryption or Paillier encryption. A high degree of parallelism can be achieved in an information processing device having a core processor. In particular, the use of elliptic curve encryption such as EC-ElGamal encryption can reduce the data volume of ciphertext to about twice the length of plaintext, further reducing communication costs.
[0086] Although the embodiments of the disclosure have been described above, they can be implemented in various other forms and can be implemented with various omissions, substitutions, and modifications. These embodiments and modifications, as well as those with omissions, substitutions, and modifications, are included in the technical scope of the claims and their equivalents.
[0087] The technology disclosed herein can also be applied to systems that use various information searches. For example, in the case of crypto assets, transactions are now managed using blockchains. For such highly confidential information, it is often the case that the server does not want to know what data has been searched. The technology disclosed herein can be adopted in such crypto asset management systems that use blockchains.
[0088] Specifically, the information processing system 1 is a crypto-asset management system that uses a blockchain, and the specific data element can be a crypto-asset. The crypto-asset can be, for example, a deposit, a Bitcoin balance, etc. By using the technology disclosed herein in managing crypto-assets using a blockchain, when a user references a crypto-asset, it is possible to prevent the wallet operator operating the server from referencing the content of the crypto-asset referenced by the user.
[0089] Also, for example, the functions of the client terminal 10 and the server 20 may be configured in other devices. For example, the first data DB 221 of the storage unit 220 may be constructed as an external database. Since it is conceivable that the number of multiple data items will be huge, the first data DB 221 may be configured from multiple databases. Furthermore, the multiple databases may be installed in the same data center, for example, or in various locations.
[0090] <Additional Notes> The matters described in the above embodiments will be supplemented below. (Supplementary Note 1) In an information processing system including a computer (e.g., a client terminal 10) having a processor (11), a server (20), and a database storing a plurality of data elements as a multidimensional array, the program causes the computer to perform processing, the program causing the processor to execute the following steps: acquiring information about a specific data element from a plurality of data elements stored in the database (S101); generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic (S103); sending the encrypted query to the server (S104); receiving an encrypted response from the server that includes the specific data element (S105); and extracting the specific data element by decrypting the response (S106).
[0091] (Supplementary Note 2) A program for causing a computer (e.g., a server 20) having a processor (21), a client terminal (10), and a database storing a plurality of data elements as a multidimensional array to perform processing in the computer, the program causing the processor to execute the following steps: receiving, from the client terminal, an encrypted query for obtaining a specific data element from a plurality of data elements stored in the database, encrypted using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by performing a homomorphic operation in the encryption method on the plurality of data elements stored in the database using the encrypted query; and transmitting the response to the client terminal (S203).
[0092] (Supplementary Note 3) The program according to (Supplementary Note 1) or (Supplementary Note 2), wherein the encryption method has a one-to-one correspondence between ciphertext and plaintext.
[0093] (Supplementary Note 4) The program according to any one of (Supplementary Note 1) to (Supplementary Note 3), wherein the encryption method is EC-ElGamal encryption.
[0094] (Appendix 5) The program described in any one of (Appendix 1) to (Appendix 4), wherein the information processing system is a cryptocurrency management system using blockchain, and the specific data element is a cryptocurrency.
[0095] (Supplementary Note 6) An information processing device in an information processing system including an information processing device (10) having a processor (11), a server (20), and a database storing a plurality of data elements as a multidimensional array, wherein the processor executes the steps of: acquiring information about a specific data element from the plurality of data elements stored in the database (S101); generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic (S103); transmitting the encrypted query to the server (S104); receiving an encrypted response from the server that includes the specific data element (S105); and extracting the specific data element by decrypting the response (S106).
[0096] (Supplementary Note 7) An information processing device in an information processing system including an information processing device (20) having a processor (21), a client terminal (10), and a database storing a plurality of data elements as a multidimensional array, wherein the processor executes the following steps: receiving, from the client terminal, an encrypted query obtained by encrypting a query for acquiring a specific data element from a plurality of data elements stored in the database using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by using the encrypted query to perform a homomorphic operation in the encryption method on the plurality of data elements stored in the database; and transmitting the response to the client terminal (S203).
[0097] (Supplementary Note 8) In an information processing system including a computer (e.g., a client terminal 10) having a processor (11), a server (20), and a database storing a plurality of data elements as a multidimensional array, the computer executes the following steps: acquiring information about a specific data element from a plurality of data elements stored in the database (S101); generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic (S103); sending the encrypted query to the server (S104); receiving an encrypted response from the server that includes the specific data element (S105); and extracting the specific data element by decrypting the response (S106).
[0098] (Supplementary Note 9) In an information processing system including a computer (e.g., a server 20) having a processor (21), a client terminal (10), and a database storing a plurality of data elements as a multidimensional array, the computer executes the following steps: receiving, from the client terminal, an encrypted query obtained by encrypting a query for acquiring a specific data element from a plurality of data elements stored in the database using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by performing a homomorphic operation in the encryption method on the plurality of data elements stored in the database using the encrypted query; and transmitting the response to the client terminal (S203).
[0099] (Supplementary Note 10) An information processing system including a client terminal (10), a server (20), and a database, wherein the client terminal performs the following steps: acquiring information about a specific data element from among a plurality of data elements stored in the database (S101); generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic (S103); transmitting the encrypted query to the server (S104); and receiving an encrypted response including the specific data element from the server (S105). 5), and a step (S106) of extracting the specific data element by decrypting the response, wherein the server executes a step (S201) of receiving the encrypted query from the client terminal, a step (S202) of generating the response by performing a homomorphic operation in the encryption method on a plurality of data elements stored in the database using the encrypted query, and a step (S203) of sending the response to the client terminal, wherein the database stores the plurality of data elements as a multidimensional array. [Explanation of symbols]
[0100] 1: Information processing system 10: Client terminal 11: Processor 12: Memory 13: Storage 14: Communication IF 15: Input / output interface 20: Server 21: Processor 22: Memory 23: Storage 24: Communication IF 25: Input / output interface 30: Network 110: Communications Department 120: Storage section 130: Control unit 131: Reception control section 132: Transmission control section 133: Input section 134 :Generation part 135:Extraction part 136: Output section 210: Communications Department 220: Storage section 221: First data DB 230: Control unit 231: Reception control section 232: Transmission control section 233: Acquisition Department 234 :Generation part
Claims
1. In an information processing system including a computer having a processor, a server, and a database storing a plurality of data elements as a multidimensional array, a program for causing the computer to perform processing, the program comprising: obtaining information about a specific data element from among a plurality of data elements stored in the database; generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic; sending the encrypted query to the server; receiving an encrypted response from the server that includes the specific data element; extracting the particular data element by decoding the response; A program that executes the following.
2. In an information processing system including a computer having a processor, a client terminal, and a database storing a plurality of data elements as a multidimensional array, a program for causing the computer to perform processing, the program comprising: receiving, from the client terminal, an encrypted query obtained by encrypting a query for acquiring a specific data element among a plurality of data elements stored in the database using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by performing a homomorphic operation in the encryption scheme on a plurality of data elements stored in the database using the encrypted query; sending the response to the client terminal; A program that executes the following.
3. The encryption method has a one-to-one correspondence between ciphertext and plaintext. The program according to claim 1 or 2.
4. The encryption method is EC-ElGamal encryption or Paillier encryption. The program according to claim 1 or 2.
5. The information processing system is a crypto-asset management system that uses a blockchain, The particular data element is a crypto asset.
3. The program according to claim 1 or 2.
6. An information processing device in an information processing system including an information processing device having a processor, a server, and a database storing a plurality of data elements as a multidimensional array, wherein the processor: obtaining information about a specific data element from among a plurality of data elements stored in the database; generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic; sending the encrypted query to the server; receiving an encrypted response from the server that includes the specific data element; extracting the particular data element by decoding the response; An information processing device that executes the above.
7. An information processing device in an information processing system including an information processing device having a processor, a client terminal, and a database storing a plurality of data elements as a multidimensional array, wherein the processor: receiving, from the client terminal, an encrypted query obtained by encrypting a query for acquiring a specific data element among a plurality of data elements stored in the database using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by performing a homomorphic operation in the encryption scheme on a plurality of data elements stored in the database using the encrypted query; sending the response to the client terminal; An information processing device that executes the above.
8. In an information processing system including a computer having a processor, a server, and a database storing a plurality of data elements as a multidimensional array, the computer obtaining information about a specific data element from among a plurality of data elements stored in the database; generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic; sending the encrypted query to the server; receiving an encrypted response from the server that includes the specific data element; extracting the particular data element by decoding the response; How to do it.
9. An information processing system including a computer having a processor, a client terminal, and a database storing a plurality of data elements as a multidimensional array, wherein the computer: receiving, from the client terminal, an encrypted query obtained by encrypting a query for acquiring a specific data element among a plurality of data elements stored in the database using a homomorphic encryption method that is not fully homomorphic; generating an encrypted response including the specific data element by performing a homomorphic operation in the encryption scheme on a plurality of data elements stored in the database using the encrypted query; sending the response to the client terminal; How to do it.
10. An information processing system including a client terminal, a server, and a database, The client terminal obtaining information about a specific data element from among a plurality of data elements stored in the database; generating an encrypted query by encrypting a query for acquiring the specific data element using a homomorphic encryption method that is not fully homomorphic; sending the encrypted query to the server; receiving an encrypted response from the server that includes the specific data element; extracting the particular data element by decoding the response; Run The server receiving the encrypted query from the client terminal; generating the response by performing a homomorphic operation in the encryption scheme on a plurality of data elements stored in the database using the encrypted query; sending the response to the client terminal; Run The database stores the plurality of data elements as a multidimensional array. Information processing system.