Secure computing system, secure computing method, and program

JP2026144328APending Publication Date: 2026-09-09KAWASAKI JUKOGYO KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025031560
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2026-09-09

AI Technical Summary

Benefits of technology

【0010】 この秘密計算システム、秘密計算方法及びプログラムによると、セキュア領域によって秘匿状態で記憶された秘密対象データの復元を容易にできる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026144328000001_ABST
    Figure 2026144328000001_ABST
Patent Text Reader

Abstract

The purpose is to facilitate the recovery of confidential data stored in a secure area in an unencrypted state. [Solution] The secure computation system 20 includes a first processing unit 30 that includes a first secure area 31 and performs secure computation while keeping the confidential data D, Kc1, and Kc2 confidential by the first secure area, and a second processing unit 40 that includes a second secure area 41. When the confidential data is stored confidentially by the first secure area, the first processing unit releases the confidential data from the confidential state by the first secure area and transmits the confidential data in an encrypted state to the second processing unit. The second processing unit stores the confidential data transmitted from the first processing unit as backup data in a confidential state by the second secure area.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a technique for performing secure computation. [Background Art]

[0002] Patent Literature 1 discloses a system in which a data processing apparatus acquires data by decrypting encrypted data with a common key in a secure region, executes a program on the data, encrypts the execution result with a public key or a common key of a data holding apparatus, and the data processing apparatus transmits the encrypted execution result to the data holding apparatus. [Related Art] [Patent Literature]

[0003] [Patent Literature 1] Japanese Unexamined Patent Application Publication No. 2024-53012 [Summary of Invention] [Problem to be Solved by Invention]

[0004] However, according to the technique disclosed in Patent Literature 1, if a trouble occurs in the data processing apparatus, there is a possibility that data stored in the data processing apparatus cannot be restored.

[0005] Therefore, an object of the present disclosure is to facilitate restoration of secret target data stored in a concealed state by a secure region. [Means for Solving Problem]

[0006] The secure computing system comprises a first processing unit that includes a first secure area and performs secure computing while keeping confidential data confidential by the first secure area, and a second processing unit that includes a second secure area. When the confidential data is stored confidentially by the first secure area, the first processing unit releases the confidential data from the confidential state of the first secure area and transmits the confidential data in an encrypted state to the second processing unit. The second processing unit stores the confidential data transmitted from the first processing unit as backup data, in a confidential state by the second secure area.

[0007] The secure computation method is a method that performs secure computation while keeping the confidential data confidential in a confidential state using an encryption method specific to the first secure area, releases the confidential data from the confidential state by the encryption method specific to the first secure area, provides the confidential data in an encrypted state to the second secure area, and stores the confidential data provided to the second secure area while keeping it confidential using an encryption method specific to the second secure area.

[0008] This program causes a computer to perform secure computation while keeping confidential data confidential by a first secure area, release the confidential data from the confidential state of the first secure area, and output the encrypted confidential data to a backup computer equipped with a second secure area.

[0009] Another program retrieves encrypted confidential data from a computer for secure computation that has a first secure area, and then executes a process to store the retrieved confidential data as backup data in a secure state using a second secure area. [Effects of the Invention]

[0010] This secure computation system, secure computation method, and program make it easy to recover confidential data stored in a secure area. [Brief explanation of the drawing]

[0011] [Figure 1] Figure 1 is a block diagram of the secure computing system. [Figure 2] Figure 2 is an explanatory diagram showing the encryption status of data on the analysis server of the secure computing system. [Figure 3] Figure 3 is an explanatory diagram illustrating an example of the process when a client registers input data with the analysis server. [Figure 4] Figure 4 is an explanatory diagram showing an example of the process when performing analysis processing according to the client's instructions. [Figure 5] Figure 5 is an explanatory diagram illustrating an example of the processing that occurs when a client receives result data. [Figure 6] Figure 6 is an explanatory diagram showing the encryption status of data on the analysis server and backup server of the secure computing system. [Figure 7] Figure 7 is an explanatory diagram showing the encryption status of data during backup and restore processes in a secure computing system. [Figure 8] Figure 8 is a sequence diagram showing the processing flow during backup. [Figure 9] Figure 9 is a sequence diagram showing the processing flow during the backup data restoration process. [Figure 10] Figure 10 is an explanatory diagram showing the encryption status of data during backup and restoration processes of a secure computing system according to Modification Example 1. [Figure 11] Figure 11 is a sequence diagram showing the processing flow during backup. [Figure 12] Figure 12 is an explanatory diagram showing the encryption status of data during backup and restoration processes of a secure computing system according to Modification Example 2. [Figure 13]FIG. 13 is a sequence diagram showing the flow of processing during backup processing. [Figure 14] FIG. 14 is an explanatory diagram showing an encrypted state in the secure computation system according to Modification 3. [Figure 15] FIG. 15 is a sequence diagram showing the flow of processing according to Modification 3. [Figure 16] FIG. 16 is a diagram showing the relationship between the storage timing of intermediate results and the synchronization timing by backup. [Figure 17] FIG. 17 is a sequence diagram showing the flow of processing according to Modification 4. MODE FOR CARRYING OUT THE INVENTION

[0012] {Embodiment} Hereinafter, a secure computation system, a secure computation method, and a program according to an embodiment will be described.

[0013] The overall configuration of the secure computation system will be described. FIG. 1 is a block diagram showing a secure computation system 20.

[0014] The secure computation system 20 includes an analysis server 30 and a backup server 40.

[0015] The analysis server 30 includes a first secure area 31, and is an example of a first processing device that executes secure computation while keeping secret target data concealed by the first secure area 31.

[0016] The analysis server 30 is, for example, a computer including a CPU 32, a memory 34, a first external storage device 36, and a communication unit 38.

[0017] A CPU (Central Processing Unit) 32 is an example of a processor including an arithmetic circuit.

[0018] Memory 34 is volatile memory, such as RAM (Random Access Memory). Memory 34 stores programs used by the CPU 32 for processing, and provides a workspace for processing according to those programs. Data stored in memory 34 is easily lost if the analysis server 30 goes down, is powered off, or is restarted.

[0019] The first external storage device 36 is a non-volatile memory, such as an HDD (hard disk drive) or SSD (solid-state drive). Data stored in the first external storage device 36 may remain even if the analysis server 30 goes down, is powered off, or is restarted. The first external storage device 36 may also store an analysis program 36a1 and a backup program 36b1.

[0020] The memory 34 may include a normal space 34a and a first secure space 34b as a memory space. The first secure space 34b is a memory space that stores data encrypted by, for example, a memory encryption processing unit built into the CPU 32. The normal space 34a is a space in which data can be stored without encryption.

[0021] The CPU 32 can temporarily decrypt encrypted data stored in the first secure space 34b, perform various calculations, and encrypt and store the calculation results in the first secure space 34b. The calculations performed on the data stored in the first secure space 34b are executed in a closed area between the CPU 32 and the first secure space 34b. Therefore, confidential calculations can be performed while keeping the confidential data confidential through the first secure area 31. The processing function portion performed by the CPU 32 on the first secure space 34b may be referred to as the first secure processing unit 32b. The first secure processing unit 32b may be implemented by a function of the CPU 32, or by an independent, dedicated CPU. The CPU 32 may also have a processing unit 32a that performs processing using the normal space 34a.

[0022] The first secure processing unit 32b, the first secure space 34b, and the signal path between the first secure processing unit 32b and the first secure space 34b can be a first secure region 31 isolated from the surrounding normal processing environment. Data manipulation and retrieval of the first secure region 31 can only be achieved by special instruction codes. Such a first secure region 31 may be referred to as a TEE (Trusted Execution Environment).

[0023] For example, when the analysis server 30 performs analysis processing based on the analysis program 36a1, at least a portion of the analysis program 36a1 is deployed in the first secure space 34b as analysis program 36a2. For example, the code portion of the analysis program 36a1 that performs calculations using the data to be analyzed in the first secure space 34b is deployed in the first secure space 34b as analysis program 36a2.

[0024] The first secure processing unit 32b of the CPU 32 executes analysis processing on the data to be analyzed within the first secure area 31 based on the analysis program 36a2. In other words, it performs secure computation using the TEE method. Since the analysis processing within the first secure area 31 can be performed on temporarily decrypted data, it is possible to process the data more quickly compared to performing secure computation while each data item remains encrypted. The data to be analyzed and the calculation formulas used for the analysis are kept secure within the first secure area 31, while the analysis results can be extracted externally using special instruction codes.

[0025] Furthermore, for example, when the analysis server 30 performs backup processing based on the backup program 36b1, at least a portion of the backup program 36b1 is deployed in the first secure space 34b as backup program 36b2. For example, the code portion of the backup program 36b1 that processes data in the first secure space 34b is deployed in the first secure space 34b as backup program 36b2. The first secure processing unit 32b of the CPU 32 can execute backup processing on the data to be analyzed in the first secure area 31 based on the backup program 36b2 within the first secure area 31. The data used for backup can be extracted externally by special instruction codes. Note that the secure space processed by the analysis program 36a2 and the secure space processed by the backup program 36b2 may be different. In this case, data encrypted with encryption methods including well-known encryption methods may be sent and received in both spaces, or data may be sent and received via a limited communication path.

[0026] The communication unit 38 includes a communication circuit and connects the analysis server 30 to the client terminal 10 or the backup server 40 so that data can be communicated between them.

[0027] The client terminal 10 is a computer operated by a user of the secure computing system 20. The user can save the data to be analyzed to the analysis server 30 via the client terminal 10, instruct the analysis server 30 to perform analysis on the data to be analyzed, and receive the analysis results from the analysis server 30.

[0028] Multiple users may exist in the secure computing system 20. In each figure and the following description, users may be assigned numbers to distinguish them, such as Client 1, Client 2, etc.

[0029] Communication between the analysis server 30 and the client terminal 10 may be conducted via a communication network. The communication network may be wired, wireless, or a combination of both. Furthermore, the communication network may be a public communication network or a dedicated line communication network.

[0030] The backup server 40 is an example of a second processing unit that includes a second secure area 41.

[0031] The backup server 40 may be a computer that, like the analysis server 30, includes a CPU 42 corresponding to the CPU 32, memory 44 corresponding to the memory 34, a second external storage device 46 corresponding to the first external storage device 36, and a communication unit 48 corresponding to the communication unit 38.

[0032] The backup server program 46b1 may be stored in the second external storage device 46.

[0033] Similar to the analysis server 30, the memory 44 may have a normal space 44a and a second secure space 44b, and the CPU 42 may have a processing unit 42a and a second secure processing unit 42b.

[0034] Similar to the first secure area 31, the second secure processing unit 42b, the second secure space 44b, and the signal path between the second secure processing unit 42b and the second secure space 44b may be a second secure area 41 isolated from the surrounding normal processing environment. Such a second secure area 41 may be called a TEE (Trusted Execution Environment).

[0035] The communication unit 48 includes a communication circuit and connects the backup server 40 to the analysis server 30 so that data can be communicated between them.

[0036] For example, when the backup server 40 performs backup server processing based on the backup server program 46b1, at least a portion of the backup server program 46b1 is deployed in the second secure space 44b as backup server program 46b2. For example, the code portion of the backup server program 46b1 that processes data in the second secure space 44b is deployed in the second secure space 44b as backup server program 46b2. The second secure processing unit 42b can execute processing to save the data to be backed up within the second secure area 41 based on the backup server program 46b2.

[0037] In other words, different programs 36a1, 36b1, and 46b1 may be implemented on virtual or real computers with the same or similar hardware configurations, which may function as analysis servers 30 or backup servers 40.

[0038] The analysis server 30 and the backup server 40 may each be implemented by a cloud server. A cloud server is a system in which a virtual environment is built on a physical computer to run a virtual computer.

[0039] It is not mandatory for both the analysis server 30 and the backup server 40 to be implemented as cloud servers. The analysis server 30 may be implemented as a single computer or as a dedicated system in which multiple computers work together. Similarly, the backup server 40 may be implemented as a single computer or as a dedicated system in which multiple computers work together.

[0040] This section describes an example of processing for secure computation in the secure computation system 20.

[0041] Figure 2 is an explanatory diagram showing the encryption status of data in the analysis server 30 of the secure computing system 20. In the following figures, the key icon represents a key for encryption or decryption, and the lock icon indicates an encrypted state.

[0042] Client 1 possesses input data D related to Client 1 and a common key Kc1. The common key Kc1 and the lock Lc1 indicating that the data has been encrypted with the common key Kc1 are indicated by white marks.

[0043] Client 2 possesses input data D related to Client 2 and a common key Kc2. The common key Kc2 and the lock Lc2 indicating that the data has been encrypted with the common key Kc2 are indicated by a mark with a diagonal line running from the bottom left to the top right.

[0044] The data provided by the client and used for analysis is the data to be analyzed. This data is sometimes referred to as input data (D), and the data obtained as a result of the analysis is referred to as result data (Dr).

[0045] The analysis server 30 securely holds the unique symmetric key Ks1 issued by the CPU 32. The first secure space 34b is a space encrypted using the unique symmetric key Ks1. The unique symmetric key Ks1 and the lock Ls1 indicating the encrypted state using the unique symmetric key Ks1 are represented by a halftone pattern mark.

[0046] The unique shared key Ks1 is a key specific to CPU32, and even the system administrator managing this secure computing system 20 cannot know this unique shared key Ks1. Lock Ls1 indicates a state encrypted with the unique shared key Ks1 or a key generated using the unique shared key Ks1.

[0047] The shared keys Kc1 and Kc2 are stored in the first secure space 34b.

[0048] The TEE public key Pu1 and TEE private key Pr1 are held in the first secure space 34b. The TEE public key Pu1 and TEE private key Pr1 may be keys generated in the first secure area 31. For example, the TEE public key Pu1 and TEE private key Pr1 may be randomly generated using the unique common key Ks1. The TEE public key Pu1 and TEE private key Pr1 generated using the unique common key Ks1 will not be known to the outside as long as they are stored in the first secure space 34b. The TEE public key Pu1 and TEE private key Pr1 are indicated by marks with round key heads. The TEE public key Pu1 is indicated by a white mark, and the TEE private key Pr1 is indicated by a black mark. The lock L1, which is encrypted with the TEE public key Pu1 and encrypted in a way that it can be decrypted with the TEE private key Pr1, is indicated by a black mark.

[0049] As described above, since the system administrator does not know the unique shared key Ks1, even the system administrator cannot decrypt and obtain the contents of the shared keys Kc1 and Kc2, the TEE public key Pu1, and the TEE private key Pr1 as long as they are stored within the first secure space 34b.

[0050] The input data D is stored in the first external storage device 36, encrypted with a common key Kc1 or Kc2. The input data D may also be further encrypted using a unique common key Ks1.

[0051] Furthermore, the lock Ls1 that keeps the first secure space 34b encrypted and the lock Ls1 that keeps the data encrypted in the first external storage device 36 do not need to be encrypted with the same key; they may be encrypted with a unique common key Ks1 or separate keys generated using the unique common key Ks1.

[0052] Since the input data D in the first external storage device 36 is also encrypted using the unique common key Ks1, even the system administrator cannot decrypt and obtain the input data D in the first external storage device 36.

[0053] Since the unique shared key Ks1 is held within the first secure area 31, an attacker cannot decrypt and obtain the contents of the shared keys Kc1 and Kc2, the TEE public key Pu1 and the TEE private key Pr1, or the input data D in the first external storage device 36, as long as they are within the first secure space 34b.

[0054] Figure 3 is an explanatory diagram illustrating an example of the process when a client registers input data D with the analysis server 30.

[0055] Client 1 can provide special commands to the first secure area 31 by using the TEE API (Application Programming Interface). This enables the saving of data within the first secure area 31, the execution of specific processing commands, and the output of processing results.

[0056] When client 1 registers input data D with analysis server 30, first, terminal 10 on client 1 receives the TEE public key Pu1 from analysis server 30. Terminal 10 on client 1 encrypts the input data D to be analyzed with its own shared key Kc1, and also encrypts the shared key Kc1 with the TEE public key Pu1. The encrypted input data D and the encrypted shared key Kc1 are then sent to analysis server 30.

[0057] The encrypted input data D and the encrypted common key Kc1 are temporarily stored in the first secure space 34b.

[0058] The shared key Kc1, encrypted with the TEE public key Pu1, is decrypted using the TEE private key Pr1, which is held in the first secure space 34b. The decrypted shared key Kc1 is stored in the first secure space 34b.

[0059] The input data D, encrypted with the common key Kc1, is further encrypted using the unique common key Ks1. The double-encrypted input data D is stored in the first external storage device 36.

[0060] It is assumed that the input data D to be analyzed is larger than the shared key Kc1. By encrypting the shared key Kc1 using a public key scheme and the input data D using a shared key scheme, data can be transmitted securely while reducing the overall computational load. Furthermore, by storing the shared key Kc1 in the first secure space 34b and the input data D in the first external storage device 36, the first secure space 34b, which tends to have greater capacity constraints than the first external storage device 36, can be effectively utilized. Encrypting data with a key unique to the first secure area 31 and storing it in a storage device outside the first secure area 31 may be called "sealing". Decrypting the sealed data by returning it to the first secure space 34b may be called "unsealing".

[0061] Other clients can also register data for analysis with the analysis server 30 using their own unique shared key.

[0062] Figure 4 is an explanatory diagram illustrating an example of the process when the analysis server 30 performs analysis processing on input data D based on instructions from client 3.

[0063] Client 3 is assumed to possess a public key Pu and a private key Pr. The public key Pu and private key Pr are used when receiving the analysis results.

[0064] Client 3 issues an execution command to perform analysis on the data of multiple clients to the analysis server 30 via the TEE API, and this command is sent to the first secure area 31.

[0065] Then, analysis processing based on the input data D is executed according to the analysis program 36a2. Note that the analysis program 36a2 deployed in the first secure area 31 may also be stored in the first secure space 34b. The analysis program 36a2 may be stored in the first external storage device 36 in a sealed state, and when the code is executed, it may be unsealed and stored in the first secure space 34b. This allows the analysis program 36a2 to perform analysis processing on the input data D within the first secure area 31, which is kept secure.

[0066] For example, the first external storage device 36 stores input data D encrypted with lock Lc1 and sealed with lock Ls1. This double-encrypted input data D is read into the first secure space 34b, unsealed using the unique common key Ks1, and decrypted using the client's common key Kc1 held within the first secure space 34b. This allows obtaining the unencrypted raw input data D.

[0067] The analysis program 36a2 performs analysis on the raw input data D. The analyzed result data Dr is encrypted using the TEE calculation result common key Kcr, and then encrypted again using the unique common key Ks1, and stored in the first external storage device 36. In other words, the result data Dr is encrypted using the TEE calculation result common key Kcr and then stored in the first external storage device 36 in a sealed state.

[0068] The TEE calculation result common key Kcr and the lock Lcr, which indicates the state encrypted by the TEE calculation result common key Kcr, are represented by a pattern of diagonal lines in two directions.

[0069] Furthermore, the analysis process on the input data D and the encryption process on the result data Dr may be performed in separate secure areas.

[0070] Figure 5 is an explanatory diagram showing an example of the process when client 3 receives the result data Dr.

[0071] The public key Pu is sent from client 3 to analysis server 30. At analysis server 30, the result data Dr, which was stored in a double-encrypted state in the first external storage device 36, is read into the first secure space 34b and unsealed by decrypting it with the unique common key Ks1. As a result, the result data Dr encrypted with the TEE calculation result common key Kcr is stored in the first secure space 34b. The TEE calculation result common key Kcr is encrypted with the public key Pu. In Figure 5, the lock Lc2, which is encrypted with the public key Pu and encrypted in a way that it can be decrypted with the private key Pr, is shown as a light black mark.

[0072] The result data Dr, encrypted with the TEE calculation result common key Kcr, and the TEE calculation result common key Kcr, encrypted with the public key Pu, are sent to client 3.

[0073] Client 3 decrypts the TEE calculation result shared key Kcr, which is encrypted with the public key Pu, using the private key Pr, and then decrypts the result data Dr, which is encrypted with the TEE calculation result shared key Kcr, using the TEE calculation result shared key Kcr. As a result, Client 3 can display the unencrypted result data Dr in a visible format.

[0074] As described above, the input data D is held within the first secure area 31 and used for analysis processing within that first secure area 31. Therefore, the analysis processing is performed while keeping the input data D confidential.

[0075] In the analysis server 30 described above, the input data D, which is to be kept secret, is stored in a confidential state by the first secure area 31. The confidential state by the first secure area 31 is maintained by encryption using, for example, a unique common key Ks1 or a key randomly generated based on the unique common key Ks1. However, if the analysis server 30 goes down or restarts, the keys randomly generated based on the unique common key Ks1, such as the TEE public key, TEE private key, and the key for unsealing the sealed input data D, may be lost. Furthermore, if the computer comprising the analysis server 30 is replaced, or if the physical CPU that makes up the analysis server 30 on the cloud server is replaced due to a downtime or restart of the cloud server, the unique common key Ks1 may also change. In addition, if the analysis server 30 goes down or restarts, the client's common key Kc1 may also be lost.

[0076] In such a case, even if sealed input data D exists in the first external storage device 36, it becomes impossible to recover the input data D. For example, if the unique common key Ks1 or the key based on the unique common key Ks1 is lost, it becomes impossible to decrypt the input data D. Furthermore, even if the unique common key Ks1 or the key based on the unique common key Ks1 is backed up, if the common key Kc1 is lost, the analysis server 30 alone will be unable to decrypt the input data D. In such a case, the client will be asked to resend the common key Kc1. This may make it difficult to operate the analysis server 30 stably over the long term. This disclosure discloses a technology that facilitates the long-term operation of the secure computing system 20 by backing up the data of the analysis server 30 with one or more backup servers 40, thereby facilitating data recovery even if the analysis server 30 goes down.

[0077] The following describes the process of backing up the data in the analysis server 30.

[0078] Figure 6 is an explanatory diagram showing the encryption status of data in the analysis server 30 and backup server 40 of the secure computing system 20.

[0079] The analysis server 30 possesses a unique shared key Ks1, and stores the TEE public key Pu1, TEE private key Pr1, and shared keys Kc1 and Kc2 within the first secure space 34b, which is kept encrypted using the unique shared key Ks1.

[0080] Within the first external storage device 36, input data (hereinafter sometimes referred to as client data in the explanation of the backup process) D is encrypted with a common key Kc1 or Kc2, and is also encrypted and sealed using a unique common key Ks1.

[0081] In this embodiment, the confidential data and the backup data each include the data to be computed and a shared key for encrypting and decrypting the data to be computed. The client data D is an example of the data to be computed during the analysis process. The client's shared keys Kc1 and Kc2 are examples of shared keys for encrypting and decrypting the data to be computed.

[0082] The confidential data may include multiple partitioned data sets D, D, ... separated by the client providing the data. In this case, the client's common keys Kc1 and Kc2 may be set in multiple ways, depending on the partitioned data sets D, D, ... In other words, each client's data D may be encrypted separately with the common keys Kc1 and Kc2 associated with that client.

[0083] Before the backup starts, the backup server 40 possesses a unique shared key Ks2, and stores the backup server's TEE public key Pu2 and backup server TEE private key Pr2 within the second secure space 44b, which is kept encrypted using the unique shared key Ks2.

[0084] The unique common key Ks2 and the lock Ls2, which indicates the encrypted state using the unique common key Ks2, are indicated by a diagonal line mark running from the upper left to the lower right. The backup server's TEE public key Pu2, the backup server's TEE private key Pr2, and the lock L2, which indicates the encrypted state that can be encrypted with the TEE public key Pu2 and decrypted with the TEE private key Pr2, are indicated by a thinner line or lighter mark than the TEE public key Pu1, TEE private key Pr1, and lock L1 mentioned above.

[0085] The data to be backed up is confidential data stored in a secure state by the first secure area 31. Data kept confidential or stored in the first secure area 31 refers to data kept confidential by an encryption function unique to the first secure area 31. For example, this could be data encrypted using a unique common key Ks1 specific to the CPU 32, or data encrypted with a key generated within the first secure area 31 that is not output externally. Such data may become unrecoverable if the hardware configuration of the analysis server 30 is changed, or if the first secure area 31 is lost due to a failure of the analysis server 30, etc.

[0086] Data kept confidential by the first secure area 31 may or may not be stored in the storage area within the first secure area 31. Data kept confidential by the first secure area 31 only needs to be kept confidential by utilizing the functions of the first secure area 31.

[0087] For example, client data D stored in the first external storage device 36 is encrypted and sealed using the unique common key Ks1. The key used for sealing is either the unique common key Ks1 itself or a key generated using the unique common key Ks1, and is an example of a first unique key specific to the first secure area 31.

[0088] In other words, based on the client data D as the data to be computed, a first double-encrypted data Dd1 is generated, which is double-encrypted using the common key Kc1 and a first unique key using the unique common key Ks1. This first double-encrypted data Dd1 is then stored in the first external storage device 36 outside the first secure area 31.

[0089] The client data D stored in the first external storage device 36 can remain stored in the first external storage device 36 even if the analysis server 30 goes down or if the hardware configuration constituting the first secure area 31 of the analysis server 30 is changed. However, if the unique common key Ks1 of the first secure area 31 or the key generated using said unique common key Ks1 is lost, the lock Ls1 on the client data D cannot be unlocked, and the client data D cannot be decrypted.

[0090] Furthermore, for example, the client's shared keys Kc1 and Kc2, stored in the first secure space 34b of the first secure area 31, are an example of data that is kept confidential by being held within the first secure area 31.

[0091] If the analysis server 30 goes down or the hardware configuration of the analysis server 30 is changed, the common keys Kc1 and Kc2 in the first secure area 31 will also be lost.

[0092] Through the backup process described below, the confidential data, including client data D, is transmitted to the backup server 40 in an encrypted state. The confidential data, including client data D, is kept confidential and backed up by the backup server 40 using the second secure area 41.

[0093] Figure 7 is an explanatory diagram showing the encryption status of data during backup and restoration processes of the secure computing system 20. Figure 8 is a sequence diagram showing the processing flow during backup.

[0094] As shown in Figures 7 and 8, the backup server 40 sends its TEE public key Pu2 to the analysis server 30. The TEE public key Pu2 is an example of a backup communication key that the backup server 40 sends to the analysis server 30.

[0095] Next, in the first secure area 31 of the analysis server 30, the client data D in the first external storage device 36 is read into the first secure space 34b and unsealed using the unique common key Ks1. In other words, the first double-encrypted data Dd1 is decrypted from its encryption using the first unique key. The client data D is then encrypted using the client's common key Kc1, and encrypted client data De encrypted with the common key Kc1 is generated. The client's common key Kc1 is encrypted using the public key Pu2 of the backup server 40.

[0096] Note that the order in which the above processes are executed is arbitrary.

[0097] From the analysis server 30, encrypted client data De, encrypted with the client's shared key Kc1, and the client's shared key Kc1, encrypted with the backup server 40's TEE public key Pu2, are sent to the backup server 40.

[0098] When client data D is unsealed and retrieved from the first secure space 34b, the client data D is released from the confidential state imposed by the first secure area 31. Similarly, when the client's shared key Kc1, etc., is retrieved from the first secure space 34b, it is released from the confidential state imposed by the first secure area 31.

[0099] Although the client data D and the shared key Kc1 are released from the confidential state of the first secure area 31, they are sent to the backup server 40 in an encrypted state using another method, as described above.

[0100] In the second secure area 41 of the backup server 40, encrypted client data De, encrypted with the client's common key Kc1, is further encrypted using the unique common key Ks2 and stored in the second external storage device 46 in a sealed state. In other words, based on the client data D as the data to be computed, a second double-encrypted data Dd2 is generated, which is double-encrypted using the common key Kc1 and a second unique key using the unique common key Ks2, and this second double-encrypted data Dd2 is stored in the second external storage device 46 outside the second secure area 41.

[0101] The client's shared key Kc1, encrypted with the backup server 40's public key Pu2, is decrypted using the backup server 40's TEE private key Pr2, and stored in the second secure space 44b.

[0102] Note that the order of the above processes is arbitrary.

[0103] The key used to seal client data D is either the unique shared key Ks2 itself or a key generated using the unique shared key Ks2, and is an example of a second unique key specific to the second secure area 41. The client's shared key Kc1 is stored in a confidential state by being held within the second secure area 41.

[0104] The above processing is performed for each of the data and shared keys of multiple clients. As a result, the second external storage device 46 stores the multiple client data D encrypted with client-specific shared keys Kc1 and Kc2, and further encrypted and sealed using the unique shared key Ks2. In addition, the second secure space 44b stores the multiple client-specific shared keys Kc1 and Kc2, encrypted using the unique shared key Ks2.

[0105] As a result, the backup server 40 stores the confidential data, including the client data D and the common key Kc1 transmitted from the first processing unit, as backup data in a confidential state within the second secure area 41.

[0106] Here, the data kept confidential by the second secure area 41 refers to data kept secret by an encryption function specific to the second secure area 41, similar to the case of the first secure area 31.

[0107] Furthermore, the data to be backed up as described above may include not only data D provided by the client, but also intermediate calculation data during the analysis or calculation formulas used in the analysis.

[0108] Figure 9 is a sequence diagram showing the processing flow during the backup data restoration process.

[0109] The analysis server 30 is, for example, a newly constructed analysis server 30 that serves as the destination for restoring backup data. For instance, if the analysis server 30 that was running when the backup data was generated goes down or its hardware configuration is changed, a new analysis server 30 is constructed, and the backup data is restored to this new analysis server 30.

[0110] In its initial state, the analysis server 30 possesses a unique shared key Ks1, a TEE public key Pu1, and a TEE private key Pr1. Note that these unique shared keys Ks1, Pu1, and Pr1 may differ from those of the analysis server 30 that was running at the time of backup.

[0111] As shown in Figures 7 and 9, when the backup data restoration process is started according to predetermined restoration conditions, the analysis server 30 sends the TEE public key Pu1 of the analysis server 30 to the backup server 40.

[0112] The predetermined restoration conditions include, for example, the case when a backup data restoration command is given to the analysis server 30. For example, the backup data restoration command may be given by an input operation by an administrator, or it may be given to the analysis server 30 as a command written to be executed when the reconstructed backup program 36b2 is first run.

[0113] Next, in the second secure area 41 of the backup server 40, the client data D in the second external storage device 46 is read into the second secure space 44b and unsealed using the unique common key Ks2. The client data D is then encrypted using the client's common key Kc1. The client's common key Kc1 is encrypted using the TEE public key Pu1 of the analysis server 30. The execution order of the above processes is arbitrary.

[0114] From the backup server 40, client data D encrypted with the client's shared key Kc1 and the client's shared key Kc1 encrypted with the analysis server 30's TEE public key Pu1 are sent to the analysis server 30.

[0115] When client data D is unsealed and retrieved from the second secure space 44b, the client data D is released from the confidential state imposed by the second secure area 41. Similarly, when the client's shared key Kc1, etc., is retrieved from the second secure space 44b, it is released from the confidential state imposed by the second secure area 41.

[0116] In the first secure area 31 of the analysis server 30, client data D encrypted with the client's common key Kc1 is further encrypted using the unique common key Ks1 and stored in the first external storage device 36 in a sealed state. The client's common key Kc1, encrypted with the analysis server 30's TEE public key Pu1, is decrypted with the analysis server 30's TEE private key Pr1 and stored in the first secure space 34b. The order of the above processes is arbitrary.

[0117] The above processing is performed for each of the data and shared keys of multiple clients. As a result, the first external storage device 36 stores the multiple client data D encrypted with client-specific shared keys Kc1 and Kc2, and further encrypted and sealed using the unique shared key Ks1. In addition, the first secure space 34b stores the multiple client-specific shared keys Kc1 and Kc2, encrypted using the unique shared key Ks1.

[0118] As a result, the backup data transmitted from the backup server 40 is stored in a confidential state by the first secure area 31 as confidential data.

[0119] Furthermore, the data restored using the above backup data may include not only data D provided by the client, but also intermediate calculation data or calculation formulas used in the analysis.

[0120] As a result, the data to be computed and the shared keys Kc1 and Kc2 in the analysis server 30 are restored in a confidential state, and the analysis server 30 is restored to a state where it can perform analysis processing while maintaining confidentiality.

[0121] With the secure computation system 20 and secure computation method configured as described above, the confidential data D, Kc1, and Kc2 in the analysis server 30 are released from the confidential state by the first secure area 31 and transmitted to the backup server 40 in an encrypted state. The confidential data D, Kc1, and Kc2 are stored as backup data in the backup server 40 in a confidential state by the second secure area 41. Therefore, in a system that performs secure computation processing in the first secure area 31, the data used for secure computation processing can be easily restored based on the backup data stored in the backup server 40.

[0122] This enables the long-term operation of secure computing servers using the TEE method. Furthermore, it allows for the stable long-term retention of client data and the results of client analyses.

[0123] Furthermore, by preparing servers with the same structure and synchronizing them, backup and restoration are possible, making implementation, operation, and maintenance easy.

[0124] For example, the backup server 40 releases backup data D, Kc1, and Kc2 from the confidential state of the second secure area 41 and sends the backup data D, Kc1, and Kc2 in an encrypted state to the analysis server 30. The analysis server 30 stores the backup data D, Kc1, and Kc2 as confidential data D, Kc1, and Kc2 in a confidential state using the first secure area 31. As a result, the backup data D, Kc1, and Kc2 are restored in a confidential state as confidential data on the analysis server 30.

[0125] If the shared keys Kc1 and Kc2 are backed up, it is not necessary to obtain the shared key from the client during restoration, thus saving the client extra work.

[0126] Furthermore, the analysis server 30 stores the confidential data D, Kc1, and Kc2 in a confidential state by either keeping them in the first secure area 31 or by encrypting them with a first unique key specific to the first secure area 31. Similarly, the backup server 40 stores the confidential data D, Kc1, and Kc2 in a confidential state by either keeping them in the second secure area 41 or by encrypting them with a second unique key specific to the second secure area 41. Thus, the confidential data D, Kc1, and Kc2 are kept secure.

[0127] Furthermore, both the confidential data and the backup data each have client data D, which is the data to be computed, and shared keys Kc1 and Kc2. The analysis server 30 generates first double-encrypted data Dd1 by encrypting client data D with a first unique key unique to the first secure area 31, and stores the first double-encrypted data Dd1 in the first external storage device 36. The backup server 40 generates second double-encrypted data Dd2 by encrypting client data D with a second unique key unique to the second secure area 41, and stores the second double-encrypted data Dd2 in the second external storage device 46. Thus, client data D, which tends to be large, is stored outside of secure areas 31 and 41. Secure spaces 34b and 44b, which are often subject to capacity constraints, can be effectively utilized. In addition, in the external storage devices 36 and 46, client data D is securely protected because it is encrypted with keys unique to secure areas 31 and 41.

[0128] Furthermore, the shared keys Kc1 and Kc2 are stored in either the first secure area 31 or the second secure area 41. Shared keys Kc1 and Kc2 that are considered smaller than the client data D are stored in the more secure secure areas 31 and 41. In addition, the shared keys Kc1 and Kc2 in secure area 31 are easily used to decrypt the client data D for analysis within secure areas 31 and 41.

[0129] Furthermore, the confidential data D is distinguished for each client, and a shared key Kc1 and Kc2 are set for each client. Therefore, the confidential data D can be protected on a per-client basis, depending on the client providing the data.

[0130] Furthermore, the analysis server 30 sends encrypted client data De, in which the confidential data D is encrypted with the common key Kc1 or Kc2, and the common key Kc1 or Kc2, encrypted with the TEE public key Pu2 of the backup server 40, to the backup server 40. The backup server 40 encrypts the confidential data D with the second unique key to generate second double-encrypted data Dd2, and decrypts the common key Kc1 with the TEE private key Pr2 to obtain the common key Kc1 or Kc2.

[0131] Therefore, client data D is securely transmitted encrypted with the shared key Kc1 or Kc2. The shared key Kc1 or Kc2 is also securely transmitted encrypted with the TEE public key Pu1.

[0132] Client data D, which tends to be large in size, is encrypted and decrypted using the shared key Kc1. This speeds up the computational processing required for encrypting and decrypting client data D. Furthermore, shared keys Kc1 and Kc2 are encrypted using the TEE public key Pu1 and decrypted using the TEE private key. This provides greater security protection for shared keys Kc1 and Kc2.

[0133] By employing a hybrid approach that protects the client data D, which tends to be large in size, with a symmetric key scheme, and protects the symmetric keys Kc1 and Kc2 with a public key scheme, it becomes easier to maintain a secure state while reducing the computational cost required for encryption and decryption of the entire data.

[0134] Note that the key scheme for each data is not limited to the example above. For example, both client data D and the shared keys Kc1 and Kc2 may be encrypted with the TEE public key Pu1.

[0135] Furthermore, the client data D, which is kept confidential by the second secure area 41, is released from its confidential state by the program including the analysis program 36a1 and the backup program 36b1, and then output in an encrypted state to the backup server 40, which is a backup computer. This makes it easy to restore the client data D.

[0136] Furthermore, according to the backup program 36b2 described above, the acquired confidential data D, Kc1, and Kc2 are stored as backup data in a confidential state within the second secure area 41. This makes it easy for the analysis server 30 to restore the data being calculated.

[0137] {Example} Based on the above embodiment, various modifications will be described.

[0138] Figure 10 is an explanatory diagram showing the encryption status of data during backup and restoration processes of the secure computing system according to Modification 1. Figure 11 is a sequence diagram showing the processing flow during backup.

[0139] In this modified example 1, client data D, which is divided into multiple segments depending on the data provider, is protected not by client-specific common keys Kc1 and Kc2, but by a single common key Kce that is common to all client data D.

[0140] The common key Kce may be a TEE common key Kce specific to the first secure area 31. In Figures 10 and 11, the TEE common key Kce and the lock Le indicating the encrypted state by the TEE common key Kce are represented by a mark with multiple diagonal lines.

[0141] In this modified example, in both the first external storage device 36 and the second external storage device 46, the client data D is encrypted with the TEE common key Kce and then sealed and stored by further encryption using the unique common key Ks1 or Ks2.

[0142] The client data D and TEE shared key Kce of the analysis server 30 are backed up as follows: The TEE public key Pu2 of the backup server 40 is sent from the backup server 40 to the analysis server 30. The analysis server 30 unseals the client data D in the first external storage device 36. It also encrypts the TEE shared key Kce with the TEE public key Pu2. These processes may be performed in any order.

[0143] From the analysis server 30, client data D encrypted with the TEE symmetric key Kce and the TEE symmetric key Kce encrypted with the TEE public key Pu2 are sent to the backup server 40.

[0144] The backup server 40 stores the client data D, encrypted with the TEE common key Kce, in the second external storage device 46, sealing it using the unique common key Ks2. It also decrypts the TEE common key Kce, encrypted with the TEE public key Pu2, using the TEE private key Pr2, and stores it in the second secure space 44b. Note that these processes may be performed in any order.

[0145] The process of restoring backup data can be achieved by performing the above steps in reverse.

[0146] According to this modified example 1, client data D can be managed using a TEE common key Kce that is common to multiple clients, making it easier to manage the TEE common key Kce.

[0147] Figure 12 is an explanatory diagram showing the encryption status of data during backup and restoration processes of the secure computing system according to Modification 2. Figure 13 is a sequence diagram showing the processing flow during backup.

[0148] In the above embodiment, an example was described in which the client's common keys Kc1 and Kc2 are stored in the first secure space 34b and the second secure space 44b, respectively.

[0149] In this modified version, the common keys Kc1 and Kc2 are encrypted using the unique common key Ks1 of the first secure area 31 and stored in the first external storage device 36 in a sealed state. When decrypting client data D for the analysis server, and when sending the common keys Kc1 and Kc2 to the backup server 40, the common keys Kc1 and Kc2 are read from the first external storage device 36 and unsealed.

[0150] In the backup server 40, the common keys Kc1 and Kc2 are encrypted using the unique common key Ks2 of the second secure area 41 and stored in the second external storage device 46 in a sealed state.

[0151] When the shared keys Kc1 and Kc2 are sent to the analysis server 30, the shared keys Kc1 and Kc2 are read from the second external storage device 46 and unsealed.

[0152] Therefore, the first secure space 34b and the second secure space 44b, which are more limited in capacity than the first external storage device 36 and the second external storage device 46, can be effectively utilized.

[0153] The backup process in this embodiment may be performed at any time. For example, backups may be performed before and after performing secure computation for analysis, or even during secure computation.

[0154] As shown in Modification 3 in Figures 14 and 15, the confidential data transmitted before, after, and during the secure computation may include an analysis program 36a2 for performing the secure computation and intermediate result data Da indicating the execution status information of the analysis program 36a2 during the secure computation.

[0155] The analysis program 36a2 for performing secure computation may be a program that reflects a mathematical formula set by the client or administrator. In other words, the program 36a2 for performing secure computation may be a program that derives at least one analysis result by applying the value of client data D to the mathematical formula described by program 36a2 and performing calculations.

[0156] Intermediate result data Da of the analysis program 36a2 during the secure computation includes, for example, information including the execution position of the analysis program 36a2 and the value of the calculation result at that execution position. For example, the intermediate result data Da may also include information including the execution line of the analysis program 36a2 and the value of each variable at that execution line.

[0157] Since the analysis program 36a2 is executed in the first secure area 31, the analysis program 36a2 and the intermediate result data Da are kept confidential by the first secure area 31. The analysis program 36a2 and the intermediate result data Da may be stored in the first secure space 34b, or they may be stored in the first external storage device 36 in a sealed state.

[0158] If the analysis program 36a2 is stored in the first external storage device 36 with a seal, it is preferable that it be read into the first secure space 34b and unsealed.

[0159] The analysis program 36a2 and the intermediate result data Da are encrypted, for example, with the TEE common key Kce of the first secure space 34b and sent to the backup server 40. The TEE common key Kce is encrypted with the TEE public key Pu2 of the backup server 40 and sent to the backup server 40, where it is decrypted with the TEE private key Pr2.

[0160] In the backup server 40, the analysis program 36a2 and the intermediate result data Da may be stored in the second secure space 44b, or they may be sealed using the unique common key Ks2 and stored in the second external storage device 46.

[0161] The timing of the backup may be each time the analysis program 36a2 saves the intermediate result data Da, or it may be each time the intermediate result data Da is saved multiple times.

[0162] For example, as shown in Figure 16, the analysis program 36a2 saves the data before and after calculation, as well as at predetermined timings for saving the intermediate result data Da. The saving timing may be at regular intervals, or at the start or end of each batch of processing.

[0163] If an error occurs in the analysis program 36a2 itself, rather than a problem with the analysis server 30, the analysis program 36a2 can resume processing from where it left off by reading the intermediate result data Da from one step prior to the point in time when the error occurred.

[0164] Backups may be performed at each of the above intermediate result saving points, or at multiple saving points.

[0165] Assume that backups are performed at multiple save timings. In this case, if a problem occurs with the analysis server 30, the rebuilt analysis server 30 can read the intermediate result data Da from the last synchronization timing based on the previous backup and resume processing from that timing.

[0166] If the intermediate result data Da in the analysis server 30 is backed up in the backup server 40, any intermediate result data Da prior to the backed-up intermediate result data Da may be deleted from the analysis server 30. Similarly, any data identical to the intermediate result data Da backed up in the backup server 40 may also be deleted from the analysis server 30.

[0167] If intermediate result data Da is backed up on the backup server 40, any intermediate result data Da prior to that intermediate result data Da may be deleted.

[0168] In this way, by performing backup processes before, after, and during secure computation, it becomes easier to address problems that may occur during secure computation. For example, it is possible to revert to the backed-up state and resume processing from where it left off.

[0169] The confidential data includes a program 36a2 for performing confidential computation and intermediate result data Da, which is information about the execution status of the program during the confidential computation. This makes it easy to resume the computation from where it left off even if a problem occurs during the computation.

[0170] The confidential data may include calculation results. These calculation results may be, for example, calculated statistical results or learning parameters in machine learning.

[0171] As shown in Modification 4 in Figure 17, if periodic backups are performed, the identity of the confidential data and the backup can be confirmed by comparing their hash values, and a backup may be performed only if they are not identical.

[0172] In other words, when confidential data is stored in a confidential state by the first secure area 31, the analysis server 30 calculates a first hash value based on the confidential data. For data present in the first external storage device 36, the first hash value is calculated within the first secure area 31 after unsealing.

[0173] If existing backup data exists, the backup server 40 calculates a second hash value based on the existing backup data.

[0174] Then, the first hash value and the second hash value are compared between the analysis server 30 and the backup server 40. For example, the first hash value is sent from the analysis server 30 to the backup server 40 as hashed data. The first hash value may be sent without encryption. The comparison may be performed on the analysis server 30.

[0175] Depending on the comparison results, the confidential data from the analysis server 30 is sent to the backup server 40 and stored in the backup server 40 as backup data.

[0176] For example, if the first hash value and the second hash value are different and the hashed data is different, a backup process is performed and the data is synchronized. However, if certain conditions are met, it is also acceptable to perform a backup process even if both hash values ​​are the same. For example, at the start of the analysis process, or after a predetermined time has elapsed since the previous backup timing, a backup process may be performed regardless of whether the two hash values ​​are the same or different.

[0177] In this way, depending on the comparison result between the first hash value and the second hash value, the confidential data from the analysis server 30 is sent to the backup server 40 and stored as backup data. This reduces the amount of data transmitted from the analysis server 30 to the backup server 40 while maintaining data consistency.

[0178] Furthermore, since the original data cannot be recovered from hashed data, data consistency can be verified through secure data transmission.

[0179] The data units used for comparison by hashed data are arbitrary. Hashed data may be obtained for each client's data D, shared keys Kc1 and Kc2, and intermediate result data Da at each of the above timings. Alternatively, a single hashed data may be obtained for all data.

[0180] {Note} This disclosure discloses the following aspects:

[0181] The first embodiment is a secure computing system comprising: a first processing unit including a first secure area, which performs secure computation while keeping confidential data confidential by the first secure area; and a second processing unit including a second secure area, wherein when the confidential data is stored confidentially by the first secure area, the first processing unit releases the confidential data from the confidential state by the first secure area and transmits the confidential data in an encrypted state to the second processing unit, and the second processing unit stores the confidential data transmitted from the first processing unit as backup data confidentially by the second secure area.

[0182] According to this secure computation system, confidential data is stored in a secure state by a second secure area in the second processing unit. Therefore, in a system that performs secure computation in a secure area, the data used for secure computation can be easily restored based on the backup data stored in the second processing unit.

[0183] As in the second embodiment, in a secure computing system according to the first embodiment, the second processing unit may, in accordance with predetermined restoration conditions, release the backup data from the confidential state by the second secure area, transmit the backup data to the first processing unit in an encrypted state, and the first processing unit may store the backup data transmitted from the second processing unit as confidential data in a confidential state by the first secure area.

[0184] As a result, the backup data is restored as confidential data in the first processing unit.

[0185] A third embodiment is a secure computing system according to the first or second embodiment, wherein the first processing unit stores the confidential data in a secure state by holding it in the first secure area or by encrypting it with a first unique key specific to the first secure area, and the second processing unit stores the backup data in a secure state by holding it in the second secure area or by encrypting it with a second unique key specific to the second secure area.

[0186] This ensures that sensitive data and backups are kept secure by either storing the data within a secure area or encrypting it with a key unique to that area.

[0187] As in the fourth embodiment, a secure computation system according to any one of the first to third embodiments, wherein each of the confidential target data and the backup data has computation target data and a common key for encrypting and decrypting the computation target data, the first processing unit generates first double-encrypted data in which the computation target data is double-encrypted with the common key and a first unique key unique to the first secure area, and stores the first double-encrypted data in a first external storage area outside the first secure area, and the second processing unit generates second double-encrypted data in which the computation target data is double-encrypted with the common key and a second unique key unique to the second secure area, and stores the second double-encrypted data in a second external storage area outside the second secure area.

[0188] This ensures that computational data, which tends to be large, is stored outside the secure area. Outside the secure area, the computational data is encrypted with a key unique to the secure area, thus protecting the computational data securely.

[0189] As in the fifth embodiment, a secure computing system according to the fourth embodiment, wherein the first processing unit stores the common key in the first secure area, and the second processing unit stores the common key in the second secure area.

[0190] This allows shared keys smaller than the data being computed to be stored within the secure area.

[0191] As in the sixth embodiment, a secure computing system according to the fourth or fifth embodiment, wherein the first processing unit encrypts the common key with the first unique key and stores it in the first external storage area, and the second processing unit encrypts the common key with the second unique key and stores it in the second external storage area.

[0192] This allows for effective utilization of the storage capacity within the secure area.

[0193] The seventh aspect is a secure computing system relating to any one of the fourth to sixth aspects, wherein the confidential data includes a plurality of partitioned data divided according to the data provider, and the common key may be set in multiple ways according to the plurality of partitioned data.

[0194] In this case, since multiple shared keys are set up according to the different types of data, confidential data is protected according to the data provider.

[0195] As in the eighth aspect, a secure computation system according to any one of the fourth to seventh aspects, wherein the confidential data includes a plurality of partitioned data divided according to the data provider, and the common key may be set to be common to the plurality of partitioned data.

[0196] In this case, since the common key is set to be common to multiple data sets, managing the common key becomes easier.

[0197] As in the ninth embodiment, a secure computation system according to any one of the fourth to eighth embodiments, wherein the second processing unit transmits a backup communication key to the first processing unit; the first processing unit generates encrypted computation data encrypted with the common key by decrypting the encryption of the first double-encrypted data with the first unique key within the first secure area; the first processing unit encrypts the common key with the backup communication key within the first secure area and transmits the encrypted computation data and the common key encrypted with the backup communication key to the second processing unit; the second processing unit generates second double-encrypted data by encrypting the encrypted computation data with the second unique key within the second secure area and obtains the common key by decrypting the encryption of the common key with the backup communication key within the second secure area.

[0198] In this case, the data to be calculated is sent to the second processing unit in an encrypted state using a shared key. Since the shared key is encrypted with a backup communication key, the shared key is also transmitted securely.

[0199] The tenth embodiment is a secure computation system according to any one embodiment from the first to the ninth, wherein when the confidential data is stored in a secure state by the first secure area, the first processing unit calculates a first hash value based on the confidential data, and the second processing unit calculates a second hash value based on the existing backup data if existing backup data exists, and the first hash value and the second hash value are compared between the first and second processing units, and depending on the comparison result, the confidential data of the first processing unit may be stored in the second processing unit as the backup data.

[0200] Depending on the comparison result between the first hash value and the second hash value, the confidential data of the first processing unit is stored in the second processing unit as backup data, thereby reducing the transmission time.

[0201] The eleventh embodiment is a secure computation system relating to any one of the first to tenth embodiments, wherein the first processing unit transmits the confidential data to the second processing unit in an encrypted state, and the second processing unit stores the confidential data transmitted from the first processing unit as backup data in a secure state by the second secure area, the process of which may be performed before, after, and during the secure computation by the first processing unit.

[0202] By performing backup processing before, after, and during the secure computation, it becomes easier to respond even if a problem occurs during the secure computation.

[0203] The twelfth aspect is a secure computation system according to the eleventh aspect, wherein the secure data may include a program for performing the secure computation and execution status information of the program during the secure computation.

[0204] By including both the program for performing the secure computation and the execution status information of the program during the secure computation, it becomes easier to resume the computation from where it left off even if a problem occurs during the computation.

[0205] The thirteenth aspect is a secure computation method that performs secure computation while keeping confidential data confidential by an encryption method specific to the first secure area, releases the confidential data from the confidential state by the encryption method specific to the first secure area, provides the confidential data in an encrypted state to the second secure area, and stores the confidential data provided to the second secure area while keeping it confidential by an encryption method specific to the second secure area.

[0206] According to this secure computation method, confidential data is kept confidential by an encryption method specific to the second secure area. Therefore, even if a problem occurs in the first secure area, the data necessary for secure computation can be easily recovered based on the confidential data stored in the second secure area, which is kept confidential by an encryption method specific to the second secure area.

[0207] The 14th aspect is a program that causes a computer to perform a secure computation while keeping confidential data confidential by a first secure area, release the confidential data from the confidential state by the first secure area, and output the confidential data, in an encrypted state, to a backup computer equipped with a second secure area.

[0208] According to this program, the computation data, which is kept confidential by the first secure area, is temporarily released from its confidential state by the first secure area, and then output to a backup computer in an encrypted state. This makes it easier to recover the computation data.

[0209] The 15th aspect is a program that causes a computer to obtain encrypted confidential data from a computer for secure computation processing that has a first secure area, and to store the obtained confidential data as backup data in a confidential state using a second secure area.

[0210] In this case, confidential data is stored securely as backup data in a second secure area. This facilitates the recovery of the computation data on the computer used for confidential computation.

[0211] Furthermore, the configurations described in the above embodiments and each of the modified examples can be combined as appropriate, as long as they do not contradict each other.

[0212] The functions of the elements disclosed herein can be performed using circuits or processing circuits, including general-purpose processors, dedicated processors, integrated circuits, ASICs (Application Specific Integrated Circuits), conventional circuits, and / or combinations thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuits. In this disclosure, a circuit, unit, or means is hardware that performs the enumerated functions, or hardware programmed to perform the enumerated functions. The hardware may be hardware disclosed herein, or other known hardware that is programmed or configured to perform the enumerated functions. If the hardware is a processor, which is considered a type of circuit, then the circuit, means, or unit is a combination of hardware and software, and the software is used to configure the hardware and / or the processor.

[0213] The above description is illustrative in all respects, and the invention is not limited thereto. It is understood that countless variations not illustrated can be conceivable without falling outside the scope of this invention. [Explanation of Symbols]

[0214] 10 client terminals 20. Secure Computing Systems 30 Analysis Servers 31. First Secure Area 32 CPU 32a Processing Unit 32b First Secure Processing Unit 34 memory 34a Normal space 34b First Secure Space 36 1st external storage device 36a1, 36a2 Analysis Program 36b1, 36b2 Program 40 Backup Servers 41. Second Secure Area 42 CPU 42a Processing Unit 42b Second Secure Processing Unit 44 memory 44a Normal space 44b Second Secure Space 46 2nd external storage device 46b1, 46b2 Backup Server Program D. Client data (backup data, confidential data) Da Interim Results Data Dd1 First Double Encrypted Data Dd2 Second-Double Encrypted Data De Encrypted Client Data Dr. Result Data Kc1, Kc2 shared key (backup data, confidential data) Kce TEE Common Key Kcr TEE calculation result common key Ks1 and Ks2 are unique shared keys. Pr1, Pr2 TEE private key Pu1, Pu2 TEE public key

Claims

1. A first processing unit that includes a first secure area and performs secure computation while keeping confidential data confidential in the first secure area, A second processing unit including a second secure area, Equipped with, If the confidential data is stored in a confidential state by the first secure area, the first processing unit releases the confidential data from the confidential state by the first secure area and transmits the confidential data to the second processing unit in an encrypted state. The second processing unit is a secure computing system that stores the confidential data transmitted from the first processing unit as backup data in a secure state by the second secure area.

2. A secure computing system according to claim 1, In accordance with predetermined restoration conditions, the second processing unit releases the backup data from the confidential state of the second secure area and transmits the backup data to the first processing unit in an encrypted state. A secure computing system in which the first processing unit stores the backup data transmitted from the second processing unit as confidential data in a secure state by the first secure area.

3. A secure computing system according to claim 1 or claim 2, The first processing device stores the confidential data in a confidential state by holding it in the first secure area or by encrypting it with a first unique key specific to the first secure area. The second processing unit is a secure computing system that stores the backup data in a secure state by either holding it in the second secure area or by encrypting it with a second unique key specific to the second secure area.

4. A secure computing system according to claim 1 or claim 2, Each of the confidential data and the backup data comprises data to be computed and a common key for encrypting and decrypting the data to be computed. The first processing unit generates first double-encrypted data in which the data to be calculated is double-encrypted with the common key and a first unique key specific to the first secure area, and stores the first double-encrypted data in a first external storage area outside the first secure area. The second processing unit generates second double-encrypted data in which the data to be computed is double-encrypted with the common key and a second unique key specific to the second secure area, and stores the second double-encrypted data in a second external storage area outside the second secure area, making it a secure computing system.

5. A secure computing system according to claim 4, The first processing unit stores the common key in the first secure area. The second processing unit is a secure computing system that stores the common key in the second secure area.

6. A secure computing system according to claim 4, The first processing unit encrypts the common key with the first unique key and stores it in the first external storage area. The second processing unit is a secure computing system that encrypts the common key with the second unique key and stores it in the second external storage area.

7. A secure computing system according to claim 4, The aforementioned confidential data includes multiple segmented data, which are divided into multiple segments according to the data provider. The aforementioned shared key is set in multiple locations according to the multiple partitioned data in a secure computing system.

8. A secure computing system according to claim 4, The aforementioned confidential data includes multiple segmented data, which are divided into multiple segments according to the data provider. A secure computation system in which the aforementioned common key is set to be common to the plurality of partitioned data.

9. A secure computing system according to claim 4, The second processing unit transmits a backup communication key to the first processing unit. The first processing unit generates encrypted data to be encrypted with the common key by decrypting the encryption of the first double-encrypted data with the first unique key within the first secure area, encrypts the common key with the backup communication key within the first secure area, and transmits the encrypted data to be encrypted and the common key encrypted with the backup communication key to the second processing unit. The second processing unit generates the second double-encrypted data by encrypting the data to be encrypted within the second secure area with the second unique key, and obtains the common key by decrypting the encryption with the backup communication key against the common key within the second secure area, thereby creating a secure computing system.

10. A secure computing system according to claim 1 or claim 2, When the confidential data is stored in a confidential state by the first secure area, the first processing unit obtains a first hash value based on the confidential data. The second processing unit, if existing backup data exists, obtains a second hash value based on the existing backup data. A secure computing system in which the first processing unit and the second processing unit compare the first hash value and the second hash value, and according to the comparison result, the secret data of the first processing unit is stored in the second processing unit as backup data.

11. A secure computing system according to claim 1 or claim 2, The first processing unit transmits the confidential data in an encrypted state to the second processing unit, and the second processing unit stores the confidential data transmitted from the first processing unit as backup data in a confidential state using the second secure area. A secure computation system that is executed before, after, and during the secure computation performed by the first processing unit.

12. A secure computing system according to claim 11, A secure computation system in which the confidential data includes a program for performing the secure computation and information on the execution status of the program during the secure computation.

13. By using an encryption method specific to the first secure area, confidential data is kept confidential while performing secure computations. The confidential data is released from the state of confidentiality by the encryption method specific to the first secure area, The aforementioned confidential data is provided to the second secure area in an encrypted state. A secure computation method for storing the confidential data provided in the second secure area in a secure state using an encryption method specific to the second secure area.

14. On the computer, The first secure area allows for the execution of confidential computations while keeping confidential data confidential. The confidential data is released from the confidential state by the first secure area, A program that executes a process to output the aforementioned confidential data, in an encrypted state, to a backup computer equipped with a second secure area.

15. On the computer, From a computer for secure computation that has a first secure area, encrypted confidential data is obtained. A program that executes a process to store the acquired confidential data as backup data in a confidential state within a second secure area.

Citation Information

Patent Citations

  • Program execution system, data processing device, data holding device, program execution method, and program

    JP2024053012A