Information processing method, information processing program, and information processing system
The implementation of key switch processing within a TEE for homomorphic encryption technologies addresses the risk of encryption key leakage by securely switching keys without decryption, enhancing the security and confidentiality of processed information.
Patent Information
- Application Number
- PCT/JP2024/026899
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-03
- Filing Date
- 2024-07-28
- Publication Date
- 2025-02-06
AI Technical Summary
Existing cryptographic technologies using homomorphic encryption methods face risks of encryption key leakage, leading to potential decryption and information leakage, even when calculations are performed on encrypted data.
Implementing a key switch processing mechanism within a Trusted Execution Environment (TEE) that switches the encryption key without decrypting the ciphertext, using a switch key generated through homomorphic encryption, to prevent key leakage and ensure secure data processing.
This approach effectively prevents information leakage due to key leakage and tampering attacks by securely managing encryption and decryption keys, maintaining the confidentiality of sensitive information even in the event of key exposure.
Smart Images

Figure JP2024026899_06022025_PF_FP_ABST
Abstract
Description
Information processing method, information processing program, and information processing system
[0001] The present disclosure relates to an information processing method, an information processing program, and an information processing system.
[0002] In recent years, in various fields, there has been a growing trend for companies to utilize data not only internally but also through collaboration with external companies and organizations via networks. As a result, security measures for highly confidential information such as personal information and trade secrets are becoming increasingly important.
[0003] As a security measure, cryptographic techniques that allow calculations to be performed on encrypted data are known. For example, Non-Patent Document 1 discloses a technique using homomorphic encryption that allows calculations to be performed on ciphertext.
[0004] C. Gentry, “Fully Homomorphic Encryption Using Ideal Lattices”, STOC 2009, pp. 169-178, 2009.
[0005] However, even if it is possible to encrypt confidential information using homomorphic encryption and perform computations on the ciphertext as is, once the encryption key is leaked, there is a risk that the encrypted confidential information will be decrypted and the information will be leaked.
[0006] Therefore, the present disclosure has been made to solve the above problem, and its purpose is to provide an information processing method that prevents the leakage of encryption keys.
[0007] In order to achieve the above-mentioned object, the information processing method disclosed herein is a method used in a system including a user terminal having a user control unit and a user memory unit, and a calculation device having an execution area that performs calculations, and includes the steps of: the user control unit generating a first private key and a first public key, as well as a second private key and a second public key; the user control unit encrypting the first private key using a homomorphic encryption method with the second public key to generate a switch key; the execution area storing the switch key obtained from the user control unit; the user memory unit storing at least the first public key and the second private key; the user control unit encrypting plaintext using a homomorphic encryption method with the first public key to generate a ciphertext; the execution area performing calculation processing based on the ciphertext obtained from the user control unit; the execution area performing key switch processing on the result of the calculation processing using the switch key; and the user control unit obtaining the result of the key switch processing performed by the execution area and decrypting it using the second private key.
[0008] In addition, in order to achieve the above-mentioned object, the information processing program disclosed herein is a program used in a system including a user terminal having a user control unit and a user memory unit, and an arithmetic device having an execution area for performing arithmetic operations, and includes the steps of: the user control unit generating a first private key and a first public key, as well as a second private key and a second public key; the user control unit encrypting the first private key using a homomorphic encryption method with the second public key to generate a switch key; the execution area storing the switch key obtained from the user control unit; the user memory unit storing at least the first public key and the second private key; the user control unit encrypting plaintext using the homomorphic encryption method with the first public key to generate a ciphertext; the execution area performing arithmetic processing based on the ciphertext obtained from the user control unit; the execution area performing key switch processing on the result of the arithmetic processing using the switch key; and the user control unit obtaining the result of the key switch processing performed by the execution area and decrypting it using the second private key.
[0009] In addition, to achieve the above-mentioned object, the information processing system of the present disclosure is a system comprising: a user terminal having a user control unit and a user memory unit; and a calculation device having an execution area for performing calculations, wherein the user control unit generates a first private key and a first public key, as well as a second private key and a second public key; the user control unit encrypts the first private key using a homomorphic encryption method with the second public key to generate a switch key; the execution area stores the switch key obtained from the user control unit; the user memory unit stores at least the first public key and the second private key; the user control unit encrypts plaintext using the homomorphic encryption method with the first public key to generate a ciphertext; the execution area performs calculation processing based on the ciphertext obtained from the user control unit; the execution area performs key switch processing on the result of the calculation processing using the switch key; and the user control unit obtains the result of the key switch processing performed by the execution area and decrypts it using the second private key.
[0010] According to the present disclosure, it is possible to provide an information processing method that prevents leakage of an encryption key.
[0011] 1 is an overall diagram of an information processing system 1. FIG. 2 is a diagram showing the hardware configuration of a calculation device 100. FIG. 3 is a block diagram showing the functional configuration of the calculation device 100. FIG. 4 is a block diagram showing the functional configuration of a terminal device 200. FIG. 5 is a flow diagram showing an example of information processing in the information processing system 1. FIG. 6 is a diagram explaining the concept of key switch processing. FIG. 7 is an overall diagram of an information processing system 3. FIG. 8 is a block diagram showing the functional configuration of a calculation device 400. FIG. 9 is a block diagram showing the functional configuration of a terminal device 500. FIG. 10 is a flow diagram showing an example of information processing in the information processing system 3. FIG. 11 is an overall diagram of an information processing system 4. FIG. 12 is a flow diagram showing an example of information processing in the information processing system 4.
[0012] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In all drawings describing the embodiments, common components are designated by the same reference numerals, and repeated explanations will be omitted. Note that the following embodiments do not unduly limit the content of the present disclosure described in the claims. Furthermore, not all of the components shown in the embodiments are necessarily essential components of the present disclosure.
[0013] <Overview of the Invention> In an information processing system according to the present invention, operations on ciphertext encrypted by homomorphic encryption, which is an encryption method that allows operations to be performed while the ciphertext is in an encrypted state, and key switch processing using bootstrapping, which switches an encryption key A used for encryption by homomorphic encryption to another encryption key B without decrypting the ciphertext, are performed in a trusted execution environment (TEE), which is a security mechanism of a processor. By performing operations on ciphertext encrypted by homomorphic encryption and key switch processing in an area that is strictly protected at the hardware level, information leakage due to key leakage and tampering attacks on calculation results is prevented.
[0014] FIG. 6 is a diagram illustrating the concept of key switch processing. The concept of key switch processing, which is a well-known technique, will be described with reference to FIG. 6. Details of the key switch processing are described in Document A. Document A: Ilaria Chillotti, Nicolas Gama, Mariya Georgieva & Malika Izabachene, “TFHE: Fast Fully Homomorphic Encryption Over the Torus”, Journal of Cryptology 33, 34-91 (2020)
[0015] The key switch process is a process of switching (converting) the encryption key used to generate ciphertext encrypted by homomorphic encryption to another encryption key without decrypting the ciphertext. The example in Fig. 6 explains the process of switching the encryption key for plaintext m from a first public key PK1 to a second public key PK2. In the explanation of Fig. 6, "encryption" refers to encryption by homomorphic encryption.
[0016] In Figure 6, first, a first secret key SK1 is encrypted using a second public key PK2 to generate a switch key SWK (=Enc(SK1,PK2)) (arrow A1). Meanwhile, plaintext m is encrypted using the first public key PK1 to generate ciphertext Enc(m,PK1) (arrow A2). The generated ciphertext Enc(m,PK1) is then encrypted using the switch key SWK, performing a key switch process to switch the key from plaintext m to ciphertext Enc(m,PK2) encrypted using the second public key PK2 (arrow A3). The ciphertext Enc(m,PK2) can be decrypted using the second secret key SK2 (arrow A4).
[0017] Since the plaintext m is encrypted using the first public key PK1 and the first secret key SK1 that decrypts the ciphertext Enc(m, PK1) is encrypted using the second public key PK2, anyone who performs key switch processing using the switch key SWK can switch the encryption key (first public key PK1) of the ciphertext Enc(m, PK1) to another encryption key (second public key PK2) without knowing the contents of the plaintext m or the first secret key SK1.
[0018] In the information processing system according to the present invention, the key switch processing as described above is executed in a TEE, which is a trusted execution area, thereby preventing information leakage to the outside. Furthermore, even if the TEE is subjected to an unauthorized attack, the risk of key leakage can be reduced by safely storing the decryption key (second secret key) for decrypting the ciphertext generated by the key switch processing on the switch key generation side.
[0019] (Configuration of Information Processing System 1) Fig. 1 is an overall view of an information processing system 1. The overall view of the information processing system according to this embodiment will be described with reference to Fig. 1 .
[0020] An information processing system 1 according to this embodiment includes a computing device 100 and one or more terminal devices 200 used by a user. The computing device 100 and the terminal devices 200 are communicably connected via a network NW. The network NW is configured from a wide area network (WAN), a local area network (LAN), or the like. In the information processing system 1, the computing device 100 performs computational processing such as statistical processing, database search processing, machine learning learning processing, inference processing, etc. on data transmitted from the terminal devices 200 while the data remains encrypted.
[0021] The computing device 100 includes a TEE 10. A TEE (Trusted Execution Environment) is a type of secure hardware and a security mechanism for a processor. The TEE 10 can execute programs while protecting highly confidential data by, for example, generating an isolated area in memory that is tightly protected at the hardware level, called an enclave.
[0022] The terminal device 200 accepts input from a user and transmits the input content to the arithmetic device 100 via the network NW. The terminal device 200 also receives data transmitted from the arithmetic device 100 via the network NW and presents the data to the user. There may be multiple terminal devices 200. The results of the arithmetic device 100 performing arithmetic processing on the data transmitted from the terminal device 200 may be acquired by another terminal device 200.
[0023] (Hardware Configuration of Arithmetic Device 100) Fig. 2 is a diagram showing the hardware configuration of the arithmetic device 100. The hardware configuration of the arithmetic device 100 according to this embodiment will be described with reference to Fig. 2 .
[0024] The computing device 100 may be realized by a general-purpose computer such as a workstation, a server computer, a desktop personal computer (PC), a laptop PC, etc., or may be realized logically by cloud computing.
[0025] The computing device 100 includes a processor 11 , a memory 12 , a storage 13 , a communication IF 14 , and an input / output IF 15 .
[0026] The processor 11 is hardware for executing an instruction set written in a program and controls the operation of the entire computer. The processor 11 includes a TEE 10. Within the enclave of the TEE 10, programs are executed in a state that cannot be referenced from the outside, and data is stored in a state that cannot be referenced from the outside.
[0027] The memory 12 is for temporarily storing programs and data to be processed by the programs, etc. The memory 12 is realized by a volatile memory such as a DRAM (Dynamic Random Access Memory). The programs stored in the memory 12 are programs that execute the information processing method according to the present invention, etc.
[0028] The storage 13 is a storage device for saving data, and is realized by, for example, a flash memory, a hard disk drive (HDD), or the like.
[0029] The communication IF 14 is an interface for transmitting and receiving signals so that the arithmetic device 100 can communicate with external devices, such as a wireless communication device for wireless communication or a Universal Serial Bus (USB) connector for serial communication.
[0030] The input / output IF 15 is an interface between an input device for receiving input from a user and an output device for presenting information to the user. The input device is realized by, for example, a keyboard, a mouse, a touch panel, buttons, a microphone, etc. The output device is realized by, for example, a display, a printer, a speaker, etc.
[0031] The hardware configuration of the terminal device 200 may be the same as that shown in Fig. 2 except that the TEE 10 is omitted. Similar to the above-described arithmetic device 100, the operation of each component of the terminal device 200 is realized by the processor 11 in accordance with the program stored in the memory 12.
[0032] (Functional Configuration of Arithmetic Device 100) Fig. 3 is a block diagram showing the functional configuration of the arithmetic device 100. The functional configuration of the arithmetic device 100 according to the first embodiment will be described with reference to Fig. 3 .
[0033] The arithmetic device 100 includes a communication unit 110 , a storage unit 120 , an input unit 130 , an output unit 140 , and a control unit 150 .
[0034] The communication unit 110 performs processing for the arithmetic device 100 to communicate with other devices. The other devices may be PCs connected via a network, or terminals such as smartphones or tablets. The other devices may also be input / output devices, such as flash memory or HDDs, that input and output data.
[0035] The communication unit 110 also transmits and receives data via a secure communication channel with devices connected via the network NW or locally, etc. The construction of a secure communication channel and the communication method are well-known techniques using a common key (such as a session key) or a public key, and therefore a description thereof will be omitted.
[0036] The storage unit 120 is configured, for example, with volatile memory such as RAM, flash memory, or a HDD, and stores data used by the arithmetic device 100 and computer programs used for various processes. The computer programs may be installed from a predetermined server or the like, or may be installed using a known setup program or the like from a computer-readable portable recording medium. Examples of the portable recording medium include a CD-ROM (Compact Disc Read Only Memory) and a DVD-ROM (Digital Versatile Disc Read Only Memory).
[0037] The storage unit 120 may include, for example, a machine learning model database that stores machine learning models used in the arithmetic device 100. The storage unit 120 may also include, for example, a key database that stores keys used by the control unit 150 (described later) to encrypt data or decrypt encrypted data, as well as communication keys. The key database may include, for example, a public key generated by the terminal device 200 (described later). Note that the keys may not be stored within the arithmetic device 100, but may be stored in a secure key management device (not shown) that is connected to the arithmetic device 100 via a network or directly.
[0038] The input unit 130 is an interface that accepts user input to the arithmetic device 100. The input unit 130 is, for example, a keyboard, a touch panel, or a microphone that detects voice input, but is not limited to these.
[0039] The output unit 140 is an interface that outputs information to notify a user of the arithmetic device 100. The output unit 140 is, for example, but not limited to, a display or a speaker that outputs audio. The output unit 140 displays data received from the terminal device 200 or the like on a display, for example.
[0040] The control unit 150 is a processor such as a CPU (Central Processing Unit) that controls each function of the arithmetic device 100 and operates based on a program stored in advance in the storage unit 120 .
[0041] The control unit 150 includes the TEE 10. The TEE 10 is a trusted execution area, and as described above, within the enclave of the TEE 10, programs are executed in a state that cannot be referenced from the outside, and data is stored in a state that cannot be referenced from the outside. The control unit 150 also includes an execution area other than the TEE (REE; Rich Execution Environment, not shown in FIG. 3). The REE is an execution area isolated from the TEE, and realizes the basic functions of the processor.
[0042] The TEE 10 stores a switch key acquired from the terminal device 200, which will be described later. In this embodiment, the switch key can switch the encryption key of the ciphertext from a first public key to a second public key. The TEE 10 may also store the first public key and / or the second public key acquired from the terminal device 200.
[0043] The TEE 10 also performs arithmetic processing based on the ciphertext acquired from the terminal device 200 via the communication unit 110. The arithmetic processing includes at least processing related to addition or multiplication between homomorphic ciphertexts, and may perform statistical processing, database search processing, machine learning learning processing, inference processing, etc. For example, when performing the inference processing, the above-described machine learning model may be encrypted using a homomorphic encryption method using the same encryption key (first public key or second public key) as the encryption key used for the ciphertext to be inferred. Encrypting the machine learning model with the same encryption key as the encryption key used for the ciphertext to be inferred can reduce the effort required for key switching processing compared to using a different encryption key, thereby improving computational efficiency.
[0044] Examples of homomorphic encryption methods include the Paillier method, the ElGamal method, the Lifted-ElGamal method, the Somewhat Homomorphic Encryption method, the Fully Homomorphic Encryption method, the RSA method, the Elliptic Curve Cryptography method, the Elliptic Curve Cryptography (L1 configuration) method, the Lattice Cryptography (BFV, BGV) method, the Lattice Cryptography (CKKS) method, the Lattice Cryptography (TFHE) method, the Lattice Cryptography (TFHE variant) method, the Goldwasser-Micali cryptography method, the NTRU cryptography method, and the DGHV (Dijk, Gentry, Halevi, and Vaikuntanathan) cryptography method. Furthermore, if the memory available in the TEE is not large enough to execute the arithmetic processing, the arithmetic processing may be configured to be executed in a secure execution area other than the TEE 10 of the control unit 150. The secure execution area may be realized by temporarily constructing a virtual execution area, for example, so that external access is difficult. Furthermore, the arithmetic processing may be configured to be executed in the REE.
[0045] Furthermore, the TEE 10 executes a key switch process using a switch key on the result of the arithmetic process. The key switch process is a process of switching the encryption key of a homomorphic ciphertext to another encryption key. In this embodiment, the TEE 10 executes the key switch process using the switch key to switch the encryption key of the ciphertext from a first public key to a second public key.
[0046] (Functional Configuration of Terminal Device 200) Fig. 4 is a block diagram showing the functional configuration of the terminal device 200. The functional configuration of the terminal device 200 according to the first embodiment will be described with reference to Fig. 4 .
[0047] The terminal device 200 is a “user terminal” and includes a communication unit 210 , a storage unit 220 , an input unit 230 , an output unit 240 , and a control unit 250 .
[0048] The communication unit 210 performs processing for the terminal device 200 to communicate with other devices. The function of the communication unit 210 is similar to that of the communication unit 110 of the arithmetic device 100, and therefore a duplicated description will be omitted.
[0049] The storage unit 220 functions as a "user storage unit" and is configured, for example, by volatile memory such as RAM, flash memory, or an HDD. The storage unit 220 stores data used by the terminal device 200 and computer programs used for various processes. The functions of the storage unit 220 are similar to those of the storage unit 220 of the terminal device 200, and therefore a duplicated description will be omitted.
[0050] The storage unit 220 stores at least a first public key and a second private key generated by the control unit 250 (described later). These keys may not be stored within the terminal device 200, but may be stored in a secure key management device (not shown) connected to the terminal device 200 via a network or directly.
[0051] The functions of the input section 230 and the output section 240 are similar to those of the input section 130 and the output section 140 of the arithmetic device 100, and therefore a duplicated description will be omitted.
[0052] The control unit 250 functions as a “user control unit,” controls each function of the terminal device 200, and is a processor such as a CPU (Central Processing Unit) that operates based on a program stored in advance in the storage unit 220.
[0053] The control unit 250 generates two key pairs. Specifically, the control unit 250 generates a first private key and a first public key, and a second private key and a second public key. These two key pairs may be generated by the key management device described above.
[0054] Furthermore, the control unit 250 encrypts the first private key using the second public key by homomorphic encryption to generate a switch key. The control unit 250 transmits the generated switch key to the calculation device 100 via the communication unit 210. After transmitting the switch key to the calculation device 100, the control unit 250 may delete the switch key or store it in the storage unit 220.
[0055] Furthermore, the control unit 250 encrypts plaintext input via the communication unit 210 or the input unit 230 using the first public key according to homomorphic encryption to generate ciphertext.
[0056] Furthermore, the control unit 250 acquires the result of the second arithmetic processing executed by the TEE 10 via the communication unit 210 and decrypts it using the second private key. This allows the content of the result of the second arithmetic processing to be acquired without being disclosed to the outside.
[0057] The control unit 250 may delete the first private key after generating the switch key. By deleting (destroying) the first private key, the first private key is prevented from leaking to the outside, and the risk of a ciphertext generated by encryption using the first public key being decrypted by a third party can be reduced.
[0058] Fig. 5 is a flow diagram showing an example of information processing in the information processing system 1. The flow of information processing in the information processing system 1 will be described with reference to Fig. 5. Note that the processing flow is an example and is not limited to the order shown in Fig. 5.
[0059] In step S101, the control unit 250 of the terminal device 200 generates two key pairs. Specifically, it generates a first secret key SK1 and a first public key PK1, and a second secret key SK2 and a second public key PK2. Note that these key pairs may be generated by a key management device external to the terminal device 200 and acquired by the terminal device 200.
[0060] In step S102, the control unit 250 of the terminal device 200 encrypts the first secret key SK1 using the second public key PK2 by homomorphic encryption to generate the switch key SWK.
[0061] In step S103, the TEE 10 of the computing device 100 acquires the switch key SWK generated in step S102 from the terminal device 200 and stores it. In addition, the TEE 10 or the storage unit 120 may acquire the first public key PK1 or the second public key PK2 from the terminal device 200 and store it.
[0062] Furthermore, the storage unit 220 of the terminal device 200 stores at least a first public key and a second secret key. The control unit 250 of the terminal device 200 may delete the first secret key SK1 after generating the switch key SWK. By deleting the first secret key SK1, it is possible to reduce the risk of decrypting ciphertext generated by encryption using the first public key.
[0063] In step S104, the control unit 250 of the terminal device 200 encrypts the plaintext m using the first public key PK1 according to the homomorphic encryption method to generate the ciphertext Enc(m,PK1).
[0064] In step S105, the TEE 10 of the calculation device 100 acquires the ciphertext Enc(m,PK1) from the terminal device 200 and executes calculation processing. For example, based on a request from the user of the terminal device 200, statistical processing, database search processing, machine learning learning processing, inference processing, etc. are performed on the ciphertext Enc(m,PK1) while it remains encrypted. Note that when multiplication or addition of the ciphertext Enc(m,PK1) with other ciphertexts is to be efficiently performed, it is preferable that the other ciphertexts be encrypted with the first public key PK1.
[0065] In step S106, the TEE 10 of the calculation device 100 performs key switch processing on the result of the calculation processing using the switch key SWK. Specifically, the TEE 10 performs key switch processing on the ciphertext Enc(m',PK1) that is the result of the calculation processing using the switch key SWK to generate ciphertext Enc(m',PK2) encrypted with the second public key PK2.
[0066] In step S107, the control unit 250 of the terminal device 200 obtains the ciphertext Enc(m',PK2), which is the result of the key switch processing, from the arithmetic device 100, and decrypts it using the second secret key SK2. In this way, the terminal device 200 can securely obtain the result m' of the arithmetic processing on the plaintext m by decrypting the result of the key switch processing.
[0067] The terminal device 200 may share the second secret key with another terminal device 200 and provide the result of the key switch processing to the other terminal device 200. The result m' of the arithmetic processing can be provided to the other terminal device 200 without disclosing the plaintext m held by the terminal device 200.
[0068] (Explanation of Effects) As described above, in the information processing system according to the present invention, operations on ciphertext encrypted by homomorphic encryption, which is an encryption method that allows operations to be performed while the ciphertext remains encrypted, and key switch processing for switching an encryption key A used for encryption by homomorphic encryption to another encryption key B without decrypting the ciphertext, are performed in a trusted execution environment (TEE), which is a security mechanism of a processor. By generating a key used for data encryption and a key used for data decryption using different key generation processes and using technologies for preventing information leakage, such as TEE and homomorphic encryption, and at the same time performing key switch processing, it is possible to prevent information leakage due to key leakage and tampering attacks on calculation results.
[0069] Furthermore, by using TEE, reliability is increased at the hardware level, making it difficult to access data from the outside, thereby preventing information leakage.
[0070] Furthermore, by using TEE, it is possible to ensure that the system is in a secure state based on a process (remote attestation) in which the soundness of the program is verified by a remote trusted certification authority or the like.
[0071] Furthermore, in the information processing system according to the present invention, the first private key is deleted after the switch key is generated. The ciphertext generated by encryption using the first public key is handled in the TEE, which is an execution environment with extremely high security strength in the computing device 100, making it extremely difficult for an attacker to steal it. Therefore, it is virtually impossible to decrypt the ciphertext encrypted using the first public key, and the security of the original data to be encrypted can be extremely strengthened.
[0072] <Modification of Example 1> An information processing system 2 according to this modification has the same configuration as the information processing system 1, except that it includes a calculation device 300 instead of the calculation device 100 (see FIG. 1 ) of the information processing system 1 according to embodiment 1. Therefore, a description of the same configuration as embodiment 1 will be omitted.
[0073] In the arithmetic device 300 of the information processing system 2, the processing that was performed by the TEE 10 of the arithmetic device 100 is performed by a normal execution environment in an operating system (OS). Specifically, the normal execution environment of the arithmetic device 300 performs a process of storing a switch key (corresponding to step S103 in FIG. 5), an execution of an arithmetic process (corresponding to step S105 in FIG. 5), and an execution of a key switch process (corresponding to step S106 in FIG. 5).
[0074] In a normal execution environment of the computing device 300, an execution area such as a memory space may be divided into a key management area and an operation area. The key management area is a dedicated area for managing the switch key. The OS and applications cannot directly access the key management area. The operation area is an area where operation processing is executed. In order for the operation area to obtain the switch key from the key management area, it is necessary to do so via a secure protocol. By dividing the areas in this way, the risk of unauthorized access to the switch key can be reduced and the overall security of the system can be improved.
[0075] In the first embodiment, key switch processing and the like are performed by a trusted execution environment (TEE). The TEE is an execution environment that is tightly protected at the hardware level, and therefore has high security. However, there are issues such as high hardware costs and limited data processing volume. The configuration according to this modification can reduce hardware costs compared to using the TEE. Furthermore, it can easily supply resources according to the data processing volume.
[0076] Furthermore, in this modification, by deleting the first private key after generating the switch key, the risk of decrypting the ciphertext generated by encryption using the first public key can be reduced. To decrypt the ciphertext encrypted using the first public key, the first private key corresponding to the first public key is required. In other words, if the first private key is deleted, the ciphertext encrypted using the first public key cannot be decrypted. On the other hand, even if the first private key is deleted, it is possible to decrypt the ciphertext encrypted using the first public key if there is a switch key for key-switching the encryption key from the first public key to the second public key and a second private key for decrypting the ciphertext after the key-switching process. However, in this case, an attacker needs to obtain not only the second private key stored locally (terminal device 200) but also the switch key stored in the cloud (computing device 300). Because it is extremely difficult to obtain both keys, it is virtually impossible to decrypt the ciphertext. Therefore, in this variant, even in an execution environment that does not use a TEE, it is virtually impossible to decrypt the ciphertext generated by encryption using the first public key, thereby achieving high security.
[0077] The execution environment of the computing device 300 may also be realized by constructing a virtual execution environment.
[0078] In the first embodiment, the key switch processing is performed on homomorphic ciphertexts generated by one user (one terminal device). In the present embodiment, the key switch processing is performed on homomorphic ciphertexts generated by multiple users.
[0079] Homomorphic encryption is an encryption method that allows computations to be performed on ciphertexts encrypted using a certain public key while they are still encrypted. However, to enable computational processing on multiple ciphertexts, these ciphertexts must be in the same encryption space, i.e., encrypted using the same encryption key (public key). In this embodiment, to enable computational processing on homomorphic ciphertexts generated by multiple users using different encryption keys, a key switch process is performed to switch the encryption keys of these ciphertexts to the same encryption key. After performing the computational processing, a key switch process is performed to switch the encryption keys of the execution results (ciphertexts) to encryption keys (public keys) generated by each user. This enables decryption using a decryption key (private key) held by each user, allowing computational processing to be performed using data from other organizations while keeping the data held by each user confidential. In other words, computational processing is performed on the data held by each user while it remains encrypted, without disclosure, and each user can decrypt and view only the computation results.
[0080] (Configuration of Information Processing System 3) Fig. 7 is an overall view of the information processing system 3. The overall view of the information processing system according to this embodiment will be described with reference to Fig. 7 .
[0081] The information processing system 3 according to this embodiment includes a computing device 400 and terminal devices 500-1, 500-2, ..., 500-N (N is a natural number) used by users. In the following description, the terminal devices 500-1, 500-2, ..., 500-N will be referred to as terminal devices 500 unless otherwise necessary. The information processing system 3 is a platform that allows each organization (user) participating in the system to use data held by that organization without disclosing detailed data content to other organizations. Note that organizations are not limited to companies or organizations, but may also be groups such as departments, divisions, groups, or teams divided by role. The terminal devices 500 are associated with the organizations participating in the platform.
[0082] The computing device 400 includes a TEE 40. The computing device 400 has the same hardware configuration as the computing device 100, and the TEE 40 is a security mechanism similar to the TEE 10 described above.
[0083] The terminal device 500 accepts input from a user and transmits the input content to the arithmetic device 400 via the network NW. The terminal device 500 also receives data transmitted from the arithmetic device 400 via the network NW and presents the data to the user.
[0084] (Functional Configuration of Arithmetic Device 400) Fig. 8 is a block diagram showing the functional configuration of the arithmetic device 400. The functional configuration of the arithmetic device 400 according to the second embodiment will be described with reference to Fig. 8. Note that components common to the arithmetic device 100 are denoted by the same reference numerals, and repeated description will be omitted.
[0085] The arithmetic device 400 includes a communication unit 110, a storage unit 120, an input unit 130, an output unit 140, and a control unit 450. The control unit 450 is a processor such as a CPU that controls each function of the arithmetic device 400 and operates based on a program stored in advance in the storage unit 120.
[0086] The control unit 450 includes the TEE 40. The TEE 40 generates an intermediate private key and an intermediate public key. For example, a key pair may be generated by a key application included in the TEE 40. The control unit 450 controls the communication unit 110 to transmit the intermediate public key to each terminal device 500. The control unit 450 also acquires a second public key (described later) generated in each terminal device 500 via the communication unit 110. The TEE 40 encrypts the intermediate private key using the second public key acquired from each terminal device 500 using a homomorphic encryption scheme to generate a second switch key. The second switch key can switch the encryption key of a ciphertext from the intermediate public key to the second public key.
[0087] The TEE 40 stores the first switch keys acquired from each of the terminal devices 500 (described later) and the second switch key generated as described above. The second public key may be stored in the storage unit 120 or the like. The intermediate private key may be deleted after the second switch key is generated.
[0088] Furthermore, the TEE 40 executes a first key switch process on the ciphertext acquired from the terminal device 500 via the communication unit 110, using a first switch key corresponding to the terminal device 500 that generated the ciphertext. By the first key switch process, the encryption key of the ciphertext acquired from the terminal device 500 is switched from the first public key to the intermediate public key.
[0089] Furthermore, the TEE 40 executes arithmetic processing based on the ciphertext on which the first key switch processing has been executed. The arithmetic processing includes at least processing related to addition or multiplication between homomorphic ciphertexts. More specifically, the arithmetic processing is processing related to addition or multiplication of the ciphertext acquired from each terminal device 500-K (K is a natural number satisfying 1≦K≦N), and may be statistical processing, database search processing, machine learning learning processing, inference processing, or the like. Because the ciphertext acquired from each terminal device 500 is converted into ciphertext in the same encryption space by the first key switch processing using the first switch key, it is possible to perform processing related to addition or multiplication, or the like.
[0090] The TEE 40 also executes a second key switch process on the result of the arithmetic process (ciphertext) using a second switch key. By the second key switch process, the encryption key of the result of the arithmetic process (ciphertext) is switched from the intermediate public key to the second public key.
[0091] (Functional Configuration of Terminal Device 500) Fig. 9 is a block diagram showing the functional configuration of the terminal device 500. The functional configuration of the terminal device 500 according to the second embodiment will be described with reference to Fig. 9. Note that components common to the terminal device 200 are denoted by the same reference numerals, and repeated description will be omitted.
[0092] The terminal device 500 is a “user terminal” and includes a communication unit 210 , a storage unit 520 , an input unit 230 , an output unit 240 , and a control unit 550 .
[0093] The storage unit 520 functions as a "user storage unit" and has the same functions as the storage unit 220. The storage unit 520 stores at least a first public key and a second private key generated by the control unit 550 (described later). Note that these keys may not be stored within the terminal device 500, but may be stored in a secure key management device (not shown) that is connected to the terminal device 500 via a network or directly.
[0094] The control unit 550 functions as a “user control unit,” controls each function of the terminal device 500, and is a processor such as a CPU that operates based on a program stored in the storage unit 520 in advance.
[0095] The control unit 550 generates two key pairs. Specifically, it generates a first private key and public key, and a second private key and public key. These two key pairs may be generated by the key management device described above. The first private key and public key, and the second private key and public key generated by each terminal device 500 are different from each other.
[0096] Furthermore, the control unit 550 encrypts the first private key using the intermediate public key by homomorphic encryption to generate a first switch key. The first switch key can switch the encryption key of the ciphertext from the first public key to the intermediate public key. The control unit 550 transmits the generated first switch key to the arithmetic device 400 via the communication unit 210. After transmitting the first switch key to the arithmetic device 400, the control unit 550 may store the first switch key in the storage unit 220 or may delete it.
[0097] Note that the control unit 550 may delete the first private key after generating the first switch key. By deleting (destroying) the first private key, the first private key will not be leaked to the outside, and the risk that a ciphertext generated by encryption using the first public key will be decrypted by a third party, i.e., the risk that plaintext (original data) will be leaked, can be reduced.
[0098] Furthermore, the control unit 550 encrypts plaintext input via the communication unit 210 or the input unit 230 using the first public key according to homomorphic encryption, to generate ciphertext.
[0099] Furthermore, the control unit 550 obtains the result of the arithmetic processing in which the second key switch processing has been executed from the arithmetic device 400 via the communication unit 210, and decrypts it using the second private key.
[0100] FIG. 10 is a flow diagram showing an example of information processing in the information processing system 3. The flow of information processing in the information processing system 3 will be described with reference to FIG. 10. Note that the processing flow is an example and is not limited to the order shown in FIG. 10. Also, in FIG. 10, for ease of explanation, two terminal devices (terminal device 500-1 and terminal device 500-2) are shown, but there may be three or more terminal devices 500. Also, in FIG. 10, the first private key of terminal device 500-K is shown as SK1_k, the first public key is shown as PK1_k, the second private key is shown as SK2_k, and the second public key is shown as PK2_k.
[0101] In step S201, the control unit 550 of the terminal device 500-1 generates two key pairs. Specifically, it generates a first private key SK1_1 and a public key PK1_1, and a second private key SK2_1 and a public key PK2_1. Note that these key pairs may be generated by a key management server external to the terminal device 500-1 and acquired by the terminal device 500.
[0102] In step S202, the TEE 40 of the arithmetic device 400 generates an intermediate private key InSK and an intermediate public key InPK.
[0103] In step S203, the control unit 550 of the terminal device 500-1 acquires the intermediate public key InPK from the arithmetic device 400.
[0104] In step S204, the control unit 550 of the terminal device 500-1 encrypts the first private key SK1_1 using the intermediate public key InPK acquired in step S203 using the homomorphic encryption method to generate the first switch key SWK1(SK1_1, InPK).
[0105] In step S205, the TEE 40 of the calculation device 400 acquires the first switch key SWK1 (SK1_1, InPK) and the second public key PK2_1 from the terminal device 500-1. Note that the TEE 40 may acquire the first switch key SWK1 (SK1_1, InPK) and the second public key PK2_1 at different times.
[0106] In step S206, the TEE40 of the computing device 400 encrypts the intermediate private key InSK using the second public key PK2_1 obtained from the terminal device 500-1 using the homomorphic encryption method to generate a second switch key SWK2(InSK, PK2_1) corresponding to the terminal device 500-1.
[0107] In step S207, the storage unit 520 of the terminal device 500-1 stores the first public key PK1_1 and the second secret key SK2_1. Note that the control unit 550 of the terminal device 500-1 may delete the first secret key SK1_1 after generating the first switch key SWK(SK1_1, InPK). By deleting the first secret key SK1_1, it is possible to reduce the risk of decrypting the ciphertext generated by encryption using the first public key PK1_1.
[0108] In step S208, the terminal device 500-2 and the calculation device 400 perform key processing similar to that performed by the terminal device 500-1 and the calculation device 400 in steps S200 to S207. That is, the control unit 550 of the terminal device 500-2 generates a first secret key SK1_2 and a public key PK1_2, as well as a second secret key SK2_2 and a public key PK2_2. The control unit 550 of the terminal device 500-2 also acquires an intermediate public key InPK from the calculation device 400 and generates a first switch key SWK1(SK1_2, InPK). The TEE 40 of the calculation device 400 acquires a first switch key SWK1(SK1_2, InPK) and a second public key PK2_2 from the terminal device 500-2. The TEE 40 of the calculation device 400 then generates a second switch key SWK2(InSK, PK2_2) corresponding to the terminal device 500-2. The first private key and public key, and the second private key and public key are different keys generated by each terminal device 500. The process of step S208 may be performed simultaneously with or before the key processes performed by terminal device 500-1 and arithmetic device 400 in steps S200 to S207.
[0109] In step S209, the TEE 40 of the calculation device 400 stores the first switch key SWK1 (SK1_k, InPK) and the second switch key SWK2 (InSK, PK2_k) corresponding to each terminal device 500-K (K=1, 2 in FIG. 10).
[0110] Note that the TEE 40 of the computing device 400 may delete the intermediate private key InSK from the storage area after generating the second switch key SWK(InSK, PK2_k) corresponding to each terminal device 500-K. By deleting the intermediate private key InSK, it is possible to prevent an attacker from stealing the intermediate private key InSK and decrypting the ciphertext after the key switch process is executed using the first switch key of each terminal device 500-K, thereby preventing the plaintext (original data) from leaking.
[0111] Furthermore, the first private key SK1_k and the intermediate private key InSK may be deleted either alone or both.
[0112] In step S210, the control unit 550 of the terminal device 500-1 encrypts the plaintext m_1 using the first public key PK1_1 by homomorphic encryption to generate the ciphertext Enc(m_1, PK1_1).
[0113] In step S211, the TEE 40 of the calculation device 400 acquires the ciphertext Enc(m_1, PK1_1) from the terminal device 500-1.
[0114] In step S212, the control unit 550 of the terminal device 500-2 encrypts the plaintext m_2 using the first public key PK1_2 by homomorphic encryption to generate ciphertext Enc(m_2, PK1_2).
[0115] In step S213, the TEE 40 of the calculation device 400 acquires the ciphertext Enc(m_2, PK1_2) from the terminal device 500-2.
[0116] In step S214, the TEE 40 of the calculation device 400 executes a first key switch process on the ciphertext Enc(m_k, PK1_k) acquired from each terminal device 500-K, using the first switch key SWK(SK1_k, InPK) corresponding to the terminal device 500-K that generated the ciphertext. Specifically, the TEE 40 executes the key switch process on the ciphertext Enc(m_1, PK1_1) acquired from the terminal device 500-1, using the first switch key SWK(SK1_1, InPK) corresponding to the terminal device 500-1. The TEE 40 executes the key switch process on the ciphertext Enc(m_2, PK1_2) acquired from the terminal device 500-2, using the first switch key SWK(SK1_2, InPK) corresponding to the terminal device 500-2. By the key switch process in step S214, the encryption key of the ciphertext acquired from each terminal device 500 is switched from the first public key PK1_k generated in each terminal device 500-K to the intermediate public key InPK.
[0117] In step S215, the TEE 40 of the arithmetic device 400 executes arithmetic processing based on each ciphertext Enc(m_k, InPK) on which the first key switch processing has been executed. For example, in response to a request from the user of the terminal device 500-1, the TEE 40 performs machine learning learning processing, inference processing, etc. on each ciphertext Enc(m_k, InPK) while keeping it encrypted.
[0118] In step S216, in response to the transmission request for the arithmetic processing result (m'), the TEE 40 of the arithmetic device 400 executes key switch processing on the arithmetic processing result using the second switch key SWK2(InSK,PK2_k) corresponding to the terminal device 500-K that made the transmission request. Specifically, for example, in response to the transmission request for the arithmetic processing result from the terminal device 500-1, the TEE 40 executes key switch processing on the ciphertext Enc(m',InPK), which is the arithmetic processing result, using the second switch key SWK2(InSK,PK2_1) corresponding to the terminal device 500-1, to generate ciphertext Enc(m',PK2_1), i.e., ciphertext encrypted with the second public key PK2_1 generated by the terminal device 500-1.
[0119] Similarly, for example, in response to a request for the results of the calculation processing of the terminal device 500-2, a key switch process is performed to generate a ciphertext Enc(m',PK2_2), i.e., a ciphertext encrypted with the second public key PK2_2 generated by the terminal device 500-2.
[0120] In step S217, the terminal device 500-1 acquires the ciphertext Enc(m',PK2_1), and the terminal device 500-2 acquires the ciphertext Enc(m',PK2_2).
[0121] In step S218, the control unit 550 of the terminal device 500-1 decrypts the ciphertext Enc(m',PK2_1) using the second secret key SK2_1. In this way, by decrypting the result of the key switch process, the terminal device 500-1 can securely obtain the result m' of the arithmetic process between the plaintext m_1 and the plaintext m_k held by the other terminal device 500-K.
[0122] In step S219, the control unit 550 of the terminal device 500-2 decrypts the ciphertext Enc(m',PK2_2) using the second secret key. Similar to the terminal device 500-1, the terminal device 500-2 can securely obtain the result m' of the arithmetic operation between the plaintext m_2 and the plaintext m_k held by the other terminal device 500-K.
[0123] In the second embodiment, similarly to the modified example of the first embodiment, the processing performed by the TEE 40 of the computing device 400 may be performed by a normal execution environment in the OS of the computing device 400. When the normal execution environment performs the processing, the hardware cost can be reduced compared to when a TEE is used. Furthermore, the execution environment of the computing device 400 may be realized by constructing a virtual execution environment.
[0124] Furthermore, similar to the modification of the first embodiment, an execution area such as a memory space may be divided into a key management area and a calculation area in a normal execution environment of the calculation device 400. By dividing the areas in this manner, the risk of unauthorized access to the switch key can be reduced, and the overall security of the system can be improved.
[0125] (Explanation of Effects) As described above, in this embodiment, a key switch process is performed in which the encryption keys of homomorphic ciphertexts generated by multiple users using different encryption keys are switched to the same encryption key. Then, after executing a computation process, a key switch process is performed in which the encryption keys of the execution results (ciphertexts) are switched to encryption keys (public keys) generated by each user. This makes it possible to decrypt data using the decryption key (private key) held by each user, and enables computational processing that utilizes data from other organizations while keeping data held by one's own organization confidential. In other words, computational processing is performed on the data held by each user in an encrypted state without disclosure, and each user can decrypt and view only the computation results.
[0126] Furthermore, in this embodiment, at least one of the following steps is performed: a step of deleting the first private key after generating a first switch key in each terminal device; or a step of deleting the intermediate private key from a storage area in the computing device after generating a second switch key corresponding to each terminal device. By deleting the private key, ciphertext encrypted with the public key paired with the private key becomes impossible to decrypt. In other words, by deleting the first private key and / or the intermediate private key, it becomes impossible to decrypt ciphertext encrypted with the first public key in each terminal device back into plaintext (original data), thereby achieving extremely strong security.
[0127] The information processing system according to this embodiment further includes a management device in addition to the arithmetic device and the terminal devices. The management device itself does not provide data, but it can decrypt and view data encrypted and provided by each terminal device, as well as the results of arithmetic processing performed based on the encrypted data provided by each terminal device. Figure 11 is an overall diagram of the information processing system 4. The information processing system according to this embodiment will be described with reference to Figure 11.
[0128] The information processing system 4 includes a computing device 600, terminal devices 700-1, . . . , 700-N, and a management device 800.
[0129] The management device 800 is associated with a user who manages and supervises each organization participating in the information processing system 4, and handles highly confidential information in a centralized manner. The user of the management device 800 may be, for example, a human resources department or a production management department, and has the authority to view the data held by each terminal device 700 and the results of arithmetic processing based on the data held by each terminal device 700. The management device 800 includes a management control unit 810 and a management storage unit 820. The management storage unit 820 stores a management public key and a management private key. The management public key and management private key may be generated by the management control unit 810 and stored in the management storage unit 820, or may be managed (generated and stored) by an external key management device.
[0130] The TEE 60 of the computing device 600 acquires the managed public key stored in the management storage unit 820 of the management device 800, encrypts the intermediate private key using the managed public key by homomorphic encryption to generate a managed switch key. The TEE 60 also executes key switch processing using the managed switch key on the result of the computation executed based on the ciphertext on which the first key switch processing has been performed. The result of the computation on which the key switch processing has been performed is decrypted by the management control unit 810 of the management device 800 using the managed private key.
[0131] In this way, the user of the management device 800 can view the results of the arithmetic processing by key switch processing using the management switch key. In addition, the user can also view the ciphertext transmitted from each terminal device 700, not the arithmetic processing results obtained by the arithmetic processing in the TEE 60 of the arithmetic device 600, by key switch processing using the management switch key.
[0132] The terminal device 700 has a control unit and a storage unit (not shown in FIG. 11 ). The control unit of the terminal device 700 generates a first private key and a public key. The storage unit of the terminal device 700 stores the public key. Note that the first private key and the public key may be managed (generated, stored, etc.) by a key management device such as that described above.
[0133] The control unit of the terminal device 700 acquires the intermediate public key from the calculation device 600, encrypts the first private key using the intermediate public key by homomorphic encryption, generates a first switch key, and transmits it to the calculation device 600. The TEE 60 of the calculation device 600 uses the first switch key to execute a first key switch process on the ciphertext acquired from each terminal device 700. Note that the functional configurations of the calculation device 600 and the terminal device 700 are similar to those of the calculation device 400 and the terminal device 500, respectively, and therefore redundant explanations will be omitted.
[0134] Fig. 12 is a flow diagram showing an example of information processing in the information processing system 4. The flow of information processing in the information processing system 4 will be described with reference to Fig. 12. Note that the processing flow is an example and is not limited to the order shown in Fig. 12. Also, in Fig. 12, for ease of explanation, one or more terminal devices 700 will be described as terminal device 700-K (K is a natural number satisfying 1≦K≦N).
[0135] In step S301, the terminal device 700-K generates a key pair. Specifically, it generates a first private key SK1_k and a public key PK1_k. Note that the key pair may be generated by a key management device external to the terminal device 700-K and acquired by the terminal device 700-K.
[0136] In step S302, the TEE 60 of the arithmetic device 600 generates an intermediate private key InSK and an intermediate public key InPK.
[0137] In step S303, the terminal device 700-K acquires the intermediate public key InPK from the arithmetic device 600.
[0138] In step S304, the terminal device 700-K encrypts the first secret key SK1_k using the intermediate public key InPK acquired in step S303 by homomorphic encryption to generate a first switch key SWK1(SK1_k, InPK).
[0139] In step S305, the TEE 60 of the arithmetic device 600 acquires the first switch key SWK1(SK1_k, InPK) from the terminal device 700-K.
[0140] In step S306, the management control unit 810 of the management device 800 generates a management private key AdSK and a management public key AdPK.
[0141] In step S307, the TEE 60 of the arithmetic device 600 acquires the management public key AdPK from the management device 800.
[0142] In step S308, the TEE 60 of the calculation device 600 encrypts the intermediate private key InSK using the management public key AdPK obtained from the management device 800 by homomorphic encryption to generate a management switch key SWK2(InSK, AdPK).
[0143] In step S309, the TEE 60 of the arithmetic device 600 stores the administration switch key SWK2 (InSK, AdPK) and the first switch key SWK1 (SK1_k, InPK) corresponding to each terminal device 700-K.
[0144] In step S310, the terminal device 700-K stores the first public key PK1_k.
[0145] In step S311, the management storage unit 820 of the management device 800 stores the management private key AdSK.
[0146] The generation of the key pairs (steps S301, S302, and S306) may be performed simultaneously or at separate times. The same applies to the storage of the keys (steps S309, S310, and S311).
[0147] In step S312, the terminal device 700-K encrypts the plaintext m_k using the first public key PK1_k by homomorphic encryption to generate ciphertext Enc(m_k, PK1_k).
[0148] In step S313, the TEE 60 of the calculation device 600 acquires the ciphertext Enc(m_k, PK1_k) from the terminal device 700-K.
[0149] In step S314, the TEE 60 of the arithmetic device 600 executes a first key switch process on the ciphertext Enc(m_k, PK1_k) acquired from each terminal device 700-K, using the first switch key SWK1(SK1_k, InPK) corresponding to the terminal device 700-K that generated the ciphertext. Specifically, the TEE 60 executes a key switch process on the ciphertext Enc(m_k, PK1_k) acquired from the terminal device 700-K, using the first switch key SWK1(SK1_1, InPK) corresponding to the terminal device 700-K. By the first key switch process in step S314, the encryption key of the ciphertext acquired from each terminal device 700 is switched from the first public key PK1_k generated in each terminal device 700-K to the intermediate public key InPK.
[0150] In step S315, the TEE 60 of the arithmetic device 600 executes arithmetic processing based on each ciphertext Enc(m_k, InPK) on which the first key switch processing has been executed. For example, in response to a request from a user of the terminal device 700-K or the management device 800, the TEE 60 performs machine learning learning processing, inference processing, etc. on each ciphertext Enc(m_k, InPK) while keeping it encrypted.
[0151] In step S316, the TEE 60 of the arithmetic device 600 receives a request from the management device 800 to transmit the result (m′) of the arithmetic processing.
[0152] In step S317, in response to the request to transmit the arithmetic processing result (m'), the TEE 60 of the calculation device 600 executes a second key switch process on the arithmetic processing result using the managed switch key SWK2(InSK, AdPK) corresponding to the management device 800 that issued the transmission request. Specifically, in response to the request to transmit the arithmetic processing result from the management device 800, the TEE 60 executes a key switch process on the ciphertext Enc(m', InPK), which is the arithmetic processing result, using the managed switch key SWK2(InSK, AdPK), to generate the ciphertext Enc(m', AdPK), i.e., the ciphertext encrypted with the managed public key AdPK generated by the management device 800. Note that the calculation device 600 may previously execute the second key switch process on the arithmetic processing result (m') using the managed switch key SWK2(InSK, AdPK) corresponding to the management device 800 and store the result in a storage unit or the like, and then transmit the result of the arithmetic processing on which the second key switch process has been executed to the management device 800 in response to a transmission request from the management device 800.
[0153] In step S318, the management device 800 acquires the encrypted text Enc(m', AdPK).
[0154] In step S319, the management device 800 decrypts the ciphertext Enc(m', AdPK) using the management private key AdSK. In this way, the management device 800 can securely obtain the result m' of the arithmetic processing of the plaintext m_k held by the terminal device 700-K by decrypting the result of the key switch processing. The management device 800 can also obtain and decrypt the plaintext m_k held by the terminal device 700-K by using a similar key switch processing.
[0155] In the third embodiment, similarly to the modified example of the first embodiment, the processing performed by the TEE 60 of the arithmetic device 600 may be performed by a normal execution environment in the OS of the arithmetic device 600. When the normal execution environment performs the processing, the hardware cost can be reduced compared to when a TEE is used. Furthermore, the execution environment of the arithmetic device 400 may be realized by constructing a virtual execution environment.
[0156] Furthermore, similar to the modification of the first embodiment, in the normal execution environment of the arithmetic device 600, an execution area such as a memory space may be divided into a key management area and an arithmetic area. By dividing the areas in this manner, the risk of unauthorized access to the switch key can be reduced, and the overall security of the system can be improved.
[0157] (Explanation of Effects) As described above, in this embodiment, in addition to the arithmetic device and the terminal device, a management device is further provided. The management device itself does not provide data, but by key switch processing using the management switch key, only the management device can decrypt and view data encrypted and provided from each terminal device, and the results of calculations performed based on the encrypted data provided from each terminal device. This makes it easy to control management authority on the platform.
[0158] <Modification of Example 3> In a modification of Example 3, in the information processing system 4, the terminal device 700 may generate a second private key and public key in addition to the first private key and public key. The terminal device 700 generates the second private key and public key, and the arithmetic device 600 generates a second switch key, so that the terminal device 700 can also decrypt the ciphertext that has been subjected to the second key switch processing.
[0159] (Explanation of effect) Data held by each organization (user) participating in the information processing system 4 is processed in an encrypted state without being disclosed, and each user can decrypt and view the calculation results, etc., and even a management device that does not provide the data can view the data held by each organization and its calculation results.
[0160] The above-described embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and modifications are intended to be included in the scope of the invention and their equivalents as defined in the claims, as well as in the scope and spirit of the invention.
[0161] The present invention may also take the form of any of the following supplementary notes: [Supplementary Note 1] A method for use in a system including a plurality of user terminals, each having a user control unit and a user storage unit, and an arithmetic device having an execution area for performing arithmetic, the method comprising: in each of the user terminals, the user control unit generates a first private key and a public key, and a second private key and a public key; the execution area generates an intermediate private key and an intermediate public key; the user control unit in each of the user terminals acquires the intermediate public key; the user control unit in each of the user terminals encrypts the first private key using the intermediate public key by a homomorphic encryption scheme to generate a first switch key; the execution area acquires the first switch key and the second public key generated by the user control unit in each of the user terminals; and the execution area encrypts the intermediate private key using the second public key acquired from each of the user terminals by a homomorphic encryption scheme to generate a second switch key. the execution area storing the first switch key and the second switch key corresponding to each of the user terminals; the user storage unit in each of the user terminals storing the first public key and the second private key generated by the user control unit of the user terminal; the user control unit in each of the user terminals encrypting plaintext using the first public key by homomorphic encryption to generate a ciphertext; the execution area performing a first key switch process on the ciphertext obtained from the user control unit in each of the user terminals using the first switch key corresponding to the user terminal that generated the ciphertext; the execution area performing an arithmetic process based on the ciphertext on which the first key switch process was performed; the execution area receiving a request from the user terminal to transmit a result of the arithmetic process; and the execution area performing a second key switch process on the result of the arithmetic process using the second switch key corresponding to the user terminal that made the transmission request.an information processing method comprising: a step in which the user control unit in the user terminal that requested the transmission acquires a result of the arithmetic processing in which the second key switch processing was executed, and decrypts the result using the second private key stored in the user storage unit in the user terminal. [Supplementary Note 2] The information processing method according to [Supplementary Note 1], wherein the first private key and public key, and the second private key and public key generated by each of the user terminals are different keys. [Supplementary Note 3] The information processing method according to [Supplementary Note 1], wherein the arithmetic processing includes at least processing related to addition or multiplication of homomorphic ciphertext. [Supplementary Note 4] The information processing method according to [Supplementary Note 1], wherein the key switch processing is processing of switching an encryption key of a homomorphic ciphertext to another encryption key. [Supplementary Note 5] The information processing method described in [Supplementary Note 1] further includes at least one of the following steps: after at least one of the plurality of user terminals generates the first switch key, deleting the first private key generated by the user terminal; or after the execution area generates the second switch key, deleting the intermediate private key. [Supplementary Note 6] A method used in a system including: a plurality of user terminals, each having a user control unit and a user memory unit; a management device, each having a management control unit and a management memory unit; and a calculation device, each having an execution area for performing calculations, the method comprising: in each of the user terminals, a step by the user control unit generating a first private key and a public key; a step by the execution area generating an intermediate private key and an intermediate public key; a step by the user control unit in each of the user terminals acquiring the intermediate public key; a step by the user control unit in each of the user terminals encrypting the first private key using the intermediate public key by a homomorphic encryption scheme to generate a first switch key; a step by the execution area acquiring the first switch key generated by the user control unit in each of the user terminals; a step by the management control unit of the management device generating a management public key and a management private key; and a step by the execution area acquiring the management public key.the execution area encrypting the intermediate private key using the management public key obtained from the management device by a homomorphic encryption scheme to generate a managed switch key; the execution area storing the managed switch key and the first switch key corresponding to each of the user terminals; the user storage unit in each of the user terminals storing the first public key generated by the user control unit of the user terminal; the management storage unit of the management device storing the managed private key; the user control unit in each of the user terminals encrypting plaintext using the homomorphic encryption scheme by using the first public key to generate a ciphertext; the execution area performing a first key switch process on the ciphertext obtained from the user control unit in each of the user terminals by using the first switch key corresponding to the user terminal that generated the ciphertext; the execution area performing an arithmetic process based on the ciphertext on which the first key switch process was performed; and the execution area receiving a request to transmit the result of the arithmetic process from the management device. An information processing method comprising: a step in which the execution area executes a second key switch process on a result of the arithmetic process using the managed switch key; and a step in which the management control unit of the management device acquires the result of the arithmetic process on which the second key switch process has been executed, and decrypts it using the managed private key. [Supplementary Note 7] The information processing method according to any one of [Supplementary Note 1] to [Supplementary Note 6], wherein the execution area includes a trusted execution environment that is a security mechanism of a processor. [Supplementary Note 8] The information processing method according to any one of [Supplementary Note 1] to [Supplementary Note 6], wherein the execution area is divided into a key management area and an arithmetic area. [Supplementary Note 9] A program used in a system comprising: a plurality of user terminals each having a user control unit and a user storage unit; and an arithmetic device having an execution area that performs arithmetic, wherein: in each of the user terminals, the user control unit generates a first private key and public key, and a second private key and public key; and the execution area generates an intermediate private key and an intermediate public key.a step in which the user control unit in each of the user terminals acquires the intermediate public key; a step in which the user control unit in each of the user terminals encrypts the first private key using the intermediate public key by homomorphic encryption to generate a first switch key; a step in which the execution area acquires the first switch key and the second public key generated by the user control unit in each of the user terminals; a step in which the execution area encrypts the intermediate private key using the second public key acquired from each of the user terminals by homomorphic encryption to generate a second switch key; a step in which the execution area stores the first switch key and the second switch key corresponding to each of the user terminals; a step in which the user storage unit in each of the user terminals stores the first public key and the second private key generated by the user control unit of the user terminal; a step in which the user control unit in each of the user terminals encrypts plaintext using the first public key by homomorphic encryption to generate ciphertext; An information processing program comprising: a step in which the execution area executes a first key switch processing on the ciphertext acquired from the user control unit in each of the user terminals, using the first switch key corresponding to the user terminal that generated the ciphertext, a step in which the execution area executes an arithmetic operation based on the ciphertext on which the first key switch processing has been executed, a step in which the execution area receives a transmission request from the user terminal for a result of the arithmetic operation, a step in which the execution area executes a second key switch processing on the result of the arithmetic operation, using the second switch key corresponding to the user terminal that made the transmission request, and a step in which the user control unit in the user terminal that made the transmission request acquires the result of the arithmetic operation on which the second key switch processing has been executed, and decrypts it using the second private key stored in the user memory unit in the user terminal. [Supplementary Note 10] A system comprising: a plurality of user terminals, each having a user control unit and a user memory unit; and an arithmetic device having an execution area for performing an arithmetic operation,In each of the user terminals, the user control unit generates a first private key and a public key, and a second private key and a public key; the execution area generates an intermediate private key and an intermediate public key; the user control unit in each of the user terminals acquires the intermediate public key; the user control unit in each of the user terminals encrypts the first private key using the intermediate public key through a homomorphic encryption scheme to generate a first switch key; the execution area acquires the first switch key and the second public key generated by the user control unit in each of the user terminals; the execution area encrypts the intermediate private key using the second public key acquired from each of the user terminals through a homomorphic encryption scheme to generate a second switch key; the execution area stores the first switch key and the second switch key corresponding to each of the user terminals; the user storage unit in each of the user terminals stores the first public key and the second private key generated by the user control unit of the user terminal; an information processing system, wherein the user control unit in each of the user terminals encrypts plaintext using the first public key by homomorphic encryption to generate a ciphertext, the execution area performs a first key switch process on the ciphertext obtained from the user control unit in each of the user terminals using the first switch key corresponding to the user terminal that generated the ciphertext, the execution area performs an arithmetic process based on the ciphertext on which the first key switch process has been performed, the execution area receives a request to transmit a result of the arithmetic process from the user terminal, the execution area performs a second key switch process on the result of the arithmetic process using the second switch key corresponding to the user terminal that made the transmission request, and the user control unit in the user terminal that made the transmission request obtains the result of the arithmetic process on which the second key switch process has been performed, and decrypts it using the second private key stored in the user memory unit in the user terminal. [Supplementary Note 11] A user terminal having a user control unit and a user memory unit, an arithmetic device having an execution area that performs arithmetic,a step by the execution area storing the switch key acquired from the user control unit; a step by the user storage unit storing at least the first public key and the second private key; a step by the user control unit encrypting plaintext using the first public key using the homomorphic encryption method to generate ciphertext; a step by the execution area executing arithmetic processing based on the ciphertext acquired from the user control unit; a step by the execution area executing key switch processing on a result of the arithmetic processing using the switch key; and a step by the user control unit acquiring a result of the key switch processing executed by the execution area and decrypting it using the second private key. [Supplementary Note 12] The information processing method according to [Supplementary Note 11], wherein the arithmetic processing includes at least processing related to addition or multiplication of homomorphic ciphertext. [Supplementary Note 13] The information processing method according to [Supplementary Note 11], wherein the key switch processing is processing of switching an encryption key for a homomorphic ciphertext to another encryption key. [Supplementary Note 14] The information processing method according to [Supplementary Note 11], further including a step in which the user control unit deletes the first private key after generating the switch key. [Supplementary Note 15] The information processing method according to any one of [Supplementary Note 11] to [Supplementary Note 14], wherein the execution area includes a trusted execution environment that is a security mechanism of a processor. [Supplementary Note 16] The information processing method according to any one of [Supplementary Note 11] to [Supplementary Note 14], wherein the execution area is divided into a key management area and an operation area. [Supplementary Note 17] A program used in a system including: a user terminal having a user control unit and a user storage unit; and a calculation device having an execution area for performing calculations, the program comprising: a step in which the user control unit generates a first private key, a first public key, and a second private key and a second public key;an information processing program comprising: a step in which the user control unit encrypts the first private key using the second public key by a homomorphic encryption scheme to generate a switch key; a step in which the execution area stores the switch key obtained from the user control unit; a step in which the user memory unit stores at least the first public key and the second private key; a step in which the user control unit encrypts plaintext using the homomorphic encryption scheme by using the first public key to generate a ciphertext; a step in which the execution area executes an arithmetic operation based on the ciphertext obtained from the user control unit; a step in which the execution area executes a key switch operation using the switch key on a result of the arithmetic operation; and a step in which the user control unit acquires a result of the key switch operation executed by the execution area and decrypts it using the second private key. [Supplementary Note 18] An information processing system comprising: a user terminal having a user control unit and a user memory unit; and a calculation device having an execution area that performs calculations; wherein the user control unit generates a first private key, a first public key, and a second private key and a second public key; the user control unit encrypts the first private key using the second public key by homomorphic encryption to generate a switch key; the execution area stores the switch key obtained from the user control unit; the user memory unit stores at least the first public key and the second private key; the user control unit encrypts plaintext using the first public key by homomorphic encryption to generate a ciphertext; the execution area performs calculation processing based on the ciphertext obtained from the user control unit; the execution area performs key switch processing on a result of the calculation processing by using the switch key; and the user control unit obtains the result of the key switch processing performed by the execution area and decrypts it using the second private key.
[0162] 1, 2, 3, 4 Information processing system, 10, 40, 60 TEE, 100, 300, 400, 600 arithmetic device, 200, 500, 700 terminal device, 110, 210 communication unit, 120, 220, 520 memory unit, 130, 230 input unit, 140, 240 output unit, 150, 250, 450, 550 control unit, 800 management device, 810 management control unit, 820 management memory unit.
Claims
1. A method for use in a system including a user terminal having a user control unit and a user memory unit, and a calculation device having an execution area for performing calculations, the method comprising: a step in which the user control unit generates a first private key, a first public key, and a second private key and a second public key; a step in which the user control unit encrypts the first private key using the second public key through a homomorphic encryption scheme to generate a switch key; a step in which the execution area stores the switch key obtained from the user control unit; a step in which the user memory unit stores at least the first public key and the second private key; a step in which the user control unit encrypts plaintext using the first public key through a homomorphic encryption scheme to generate a ciphertext; a step in which the execution area performs calculation processing based on the ciphertext obtained from the user control unit; and a step in which the execution area performs key switch processing using the switch key on a result of the calculation processing. the user control unit acquiring a result of the key switch process executed by the execution area, and decrypting the result using the second private key.
2. The information processing method according to claim 1, wherein the arithmetic processing includes at least a process related to addition or multiplication of homomorphic ciphertext.
3. The information processing method according to claim 1, wherein the key switch process is a process of switching an encryption key for a homomorphic ciphertext to another encryption key.
4. The information processing method according to claim 1, further comprising the step of: the user control unit deleting the first secret key after generating the switch key.
5. The information processing method according to any one of claims 1 to 4, wherein the execution area includes a trusted execution environment which is a security mechanism of a processor.
6. An information processing method according to any one of claims 1 to 4, wherein the execution area is divided into a key management area and a calculation area.
7. A program used in a system including a user terminal having a user control unit and a user memory unit, and a calculation device having an execution area for performing calculations, the program comprising: a step in which the user control unit generates a first private key, a first public key, and a second private key and a second public key; a step in which the user control unit encrypts the first private key using the second public key by homomorphic encryption to generate a switch key; a step in which the execution area stores the switch key acquired from the user control unit; a step in which the user memory unit stores at least the first public key and the second private key; a step in which the user control unit encrypts plaintext using the first public key by homomorphic encryption to generate ciphertext; a step in which the execution area executes calculation processing based on the ciphertext acquired from the user control unit; and a step in which the execution area executes key switch processing using the switch key on a result of the calculation processing. a step in which the user control unit acquires a result of the key switch process executed by the execution area and decrypts the result using the second private key.
8. An information processing system comprising: a user terminal having a user control unit and a user memory unit; and a calculation device having an execution area for performing calculations, wherein the user control unit generates a first private key, a first public key, and a second private key and a second public key, the user control unit encrypts the first private key using the second public key by a homomorphic encryption method to generate a switch key, the execution area stores the switch key acquired from the user control unit, the user memory unit stores at least the first public key and the second private key, the user control unit encrypts plaintext using the first public key by a homomorphic encryption method to generate a ciphertext, the execution area executes calculation processing based on the ciphertext acquired from the user control unit, the execution area executes key switch processing on a result of the calculation processing using the switch key, and the user control unit acquires a result of the key switch processing executed by the execution area and decrypts it using the second private key.
Citation Information
Patent Citations
Data sharing system, data sharing method, and data sharing program
JP2022151535A
Conversion key generation device, ciphertext conversion device, secret information processing system, conversion key generation method, conversion key generation program, ciphertext conversion method, and ciphertext conversion program
WO2019130528A1
Cited By
Communication method and communication apparatus
WO2026200354A1