Information processing device and information processing system

Isolated computation areas with integrity-verified applications and managed encryption keys enhance secure computation systems to defend against malicious models without performance loss.

JP7811224B2Active Publication Date: 2026-02-04NTT DOCOMO INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023576661
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-01-27
Filing Date
2022-11-29
Publication Date
2026-02-04
Estimated Expiration
2042-11-29

AI Technical Summary

Technical Problem

Existing secure computation systems designed for semi-honest models suffer performance degradation when attempting to defend against malicious models due to the need for extensive data verification to ensure integrity.

Method used

Implementing isolated computation areas with integrity verification using data encryption keys managed by a secure management unit, ensuring applications within these areas are authenticated before transmitting encryption keys, thus preventing data and application tampering.

Benefits of technology

Enables secure computation systems to withstand malicious models without performance degradation by authenticating applications and their environments, preventing tampering, and eliminating the need for point-by-point data verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007811224000001
    Figure 0007811224000001
  • Figure 0007811224000002
    Figure 0007811224000002
  • Figure 0007811224000003
    Figure 0007811224000003
Patent Text Reader

Abstract

In response to a data cryptographic key use request from a first device (100), a management unit (300) transmits a data cryptographic key to a first device (100) via a secure environment between the management unit (300) and the first device (100) only when the integrity of a first application running in an isolated calculation region (150) is verified. The first device (100) uses the data cryptographic key to encrypt target data via the first application and transmits the encrypted target data to a second device (200). In response to a data cryptographic key use request from the second device (200), the management unit (300) transmits a data cryptographic key to the second device (200) via a secure environment between the management unit (300) and the second device (200) only when the integrity of a second application running in an isolated calculation region (250) is verified. The second device (200) uses the data cryptographic key to decrypt the encrypted target data via the second application.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to an information processing device in which an isolated calculation area is formed, and an information processing system including a plurality of information processing devices in which isolated calculation areas are formed. [Background technology]

[0002] Secure computation is a general term for technologies that enable various processes to be performed on encrypted data. In particular, technologies that integrate data between two parties (see Patent Document 1, for example) and match data between two parties (secure matching) without disclosing the data to each other are known. In order to address such threat models of secure computation, security is required when participants in the secure computation, rather than external third parties, have malicious intent. Two patterns of attacker models that pose a threat to secure computation are known, broadly classified as "semi-honest models" and "malicious models." Of these, the "semi-honest model" is an attacker that attempts to obtain information about other participants from legitimate input / output without tampering with data, while the "malicious model" is an attacker that attempts to obtain information about other participants by arbitrarily tampering with data. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2011-081301 Summary of the Invention [Problem to be solved by the invention]

[0004] In order to respond to attacks from the above-mentioned malicious model, it is necessary to guarantee that the processing results obtained are the same as those obtained by legitimate participants behaving honestly, regardless of any tampering, and it is necessary to verify each and every data from participants in the secure computation that it is correct (not tampered with). Therefore, in order to make a system designed to be able to respond to attacks from the semi-honest model respond to attacks from the malicious model, the amount of calculation increases by performing each and every data verification process as described above, which leads to performance degradation such as a decrease in processing speed, which is an issue.

[0005] The present disclosure has been made to solve the above-mentioned problems, and aims to enable a system designed to be able to respond to attacks from a semi-honest model to respond to attacks from a malicious model without causing performance degradation. [Means for solving the problem]

[0006] An information processing system according to the present disclosure is an information processing system including a first information processing device in which a first isolated computation area is formed as an isolated computation area, and a second information processing device in which a second isolated computation area is formed as an isolated computation area, wherein a management unit that generates and manages a data encryption key for encrypting data transmitted and received between the first information processing device and the second information processing device is provided inside the first information processing device or the second information processing device, or outside the first information processing device and the second information processing device, wherein the first information processing device includes a first processing unit that transmits, to the management unit, a data encryption key use request accompanied by first authentication information used by the management unit to verify the integrity of the first application, by a first application running in the first isolated computation area, and the management unit verifies the integrity of the first application using the first authentication information and first verification information stored in advance, and only when the integrity is verified, transmits the data encryption key to the first information processing device via a secure environment between the management unit and the first information processing device. the first information processing device further comprises a first encryption unit that encrypts target data to be processed using the received data encryption key by the first application and transmits the encrypted target data to the second information processing device; the second information processing device further comprises a second processing unit that transmits a data encryption key usage request to the management unit, accompanied by second authentication information used by the management unit to verify the integrity of the second application by a second application running in the second isolated computing area; the management unit further comprises a second management unit that verifies the integrity of the second application using the second authentication information and pre-stored second verification information, and transmits the data encryption key to the second information processing device via a secure environment between the management unit and the second information processing device only if the integrity is verified; and the second information processing device further comprises a second encryption unit that decrypts the encrypted target data received from the first information processing device using the received data encryption key by the second application.

[0007] In the above information processing system, when a first processing unit of a first information processing device transmits a data encryption key use request accompanied by first authentication information used by the management unit to verify the integrity of the first application to the management unit by a first application running in a first isolated computation space, the first management unit in the management unit verifies the integrity of the first application using the first authentication information and pre-stored first verification information, and transmits the data encryption key to the first information processing device via a secure environment between the management unit and the first information processing device only if the integrity of the first application running in the first isolated computation space is verified. As described above, the data encryption key is transmitted to the first information processing device via the secure environment between the management unit and the first information processing device only if the integrity of the first application running in the first isolated computation space is verified. Note that the above "integrity of the first application running in the first isolated computation space" is a concept that includes the integrity of the first application itself and the integrity of the first isolated computation space, which is its operating environment.

[0008] Then, the first encryption unit of the first information processing device encrypts the target data to be processed using the data encryption key received by the first application via the secure environment, and transmits the encrypted target data to the second information processing device.

[0009] Then, when the second processing unit of the second information processing device transmits a data encryption key use request accompanied by second authentication information used by the management unit to verify the integrity of the second application to the management unit by the second application running in the second isolated computation space, the second management unit in the management unit verifies the integrity of the second application using the second authentication information and the pre-stored second verification information, and transmits the data encryption key to the second information processing device via the secure environment between the management unit and the second information processing device only if the integrity is verified. As described above, the data encryption key is transmitted to the second information processing device via the secure environment between the management unit and the second information processing device only if the integrity of the second application running in the second isolated computation space is verified. Note that the above-mentioned "integrity of the second application running in the second isolated computation space" is a concept that includes the integrity of the second application itself and the integrity of the second isolated computation space, which is its operating environment.

[0010] Furthermore, the second encryption unit of the second information processing device decrypts the encrypted target data received from the first information processing device using the data encryption key received by the second application via the secure environment. In this way, in the second information processing device, the plaintext target data is obtained by decryption using the data encryption key received by the second application, whose integrity is authenticated and which runs in the second isolated computing domain.

[0011] In the series of processes described above, on the condition that the integrity of the first application running in the first isolated computation space has been authenticated, a data encryption key used to encrypt the target data is transmitted to the first information processing device via a secure environment between the management unit and the first information processing device. Similarly, on the condition that the integrity of the second application running in the second isolated computation space has been authenticated, a data encryption key used to decrypt the target data is transmitted to the second information processing device via a secure environment between the management unit and the second information processing device. In this way, because the integrity of the applications running in the first and second isolated computation space (i.e., the integrity of the application itself and the integrity of the isolated computation space in which it runs) is the condition that the applications are authenticated, it is possible to prevent tampering with the applications by participants in the processes.

[0012] The secure environment between the management unit and the first information processing device and the secure environment between the management unit and the second information processing device may be a secure communication environment, or a mechanism for preventing data tampering (e.g., envelope encryption, in which a data key used for encrypting and decrypting data is encrypted with an encryption key, or an encryption method using a public key and a private key pair) may be used; an example of the latter will be described in an embodiment of the invention. Because the data encryption key used for encrypting target data is transmitted and received between the management unit and the first information processing device via such a secure environment between the management unit and the first information processing device, data tampering by other participants (in this case, the second information processing device) can be prevented. Similarly, because the data encryption key used for decrypting target data is transmitted and received between the management unit and the second information processing device via the secure environment between the management unit and the second information processing device, data tampering by other participants (in this case, the first information processing device) can be prevented.

[0013] In other words, since it is possible to prevent both "data tampering" and "application tampering" by participants in the process, the conventional point-by-point data verification process is no longer necessary, and a system designed to be able to withstand attacks from a semi-honest model can be made to be able to withstand attacks from a malicious model without causing any degradation in performance. [Effects of the Invention]

[0014] According to the present disclosure, a system designed to be able to withstand attacks from a semi-honest model can be made to be able to withstand attacks from a malicious model without causing performance degradation. [Brief explanation of the drawings]

[0015] [Figure 1] 1 is a configuration diagram of an information processing system according to an embodiment of the present invention. [Figure 2] FIG. 1 is a first flowchart showing processing executed in an information processing system according to an embodiment of the invention. [Figure 3] FIG. 2 is a second flowchart showing the processing executed in the information processing system according to the embodiment of the invention. [Figure 4] FIG. 3 is a third flowchart showing the processing executed in the information processing system according to the embodiment of the invention. [Figure 5] FIG. 10 is a configuration diagram showing a first modified example of the information processing system. [Figure 6] FIG. 10 is a configuration diagram showing a second modified example of the information processing system. [Figure 7] FIG. 2 is a diagram illustrating an example of a hardware configuration of an information processing device. DETAILED DESCRIPTION OF THE INVENTION

[0016] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.

[0017] (About the configuration of information processing systems) As shown in FIG. 1 , the information processing system 1 according to this embodiment includes a first information processing device 100 having a first isolated computation area 150 formed as an isolated computation area, and a second information processing device 200 having a second isolated computation area 250 formed as an isolated computation area. A management unit 300 that generates and manages encryption keys and encrypted data keys encrypted with the encryption keys is provided externally to the first information processing device 100 and the second information processing device 200. The management unit 300 may be provided inside the first information processing device 100 or the second information processing device 200; such a modification will be described later. The first isolated computation area 150 and the second isolated computation area 250 may be formed using physical isolation or logical isolation. An example of logical isolation is a Trusted Execution Environment (TEE), which is a secure execution environment that allows the use of some resources, such as the memory and CPU, of an information processing device and is logically isolated from the host OS.

[0018] In the first information processing device 100, the reliability of the application running in the first isolated computation space 150 (i.e., a guarantee that the application is correctly implemented) has been verified by the secure computation participant operating the first information processing device 100, and in the second information processing device 200, the reliability of the application running in the second isolated computation space 250 has been verified by the secure computation participant operating the second information processing device 200. Note that, methods for verifying the reliability of the application include, for example, source code review and verification by an external organization, but are not limited to a specific method. The processes shown in FIGS. 2 to 4, which will be described later, are executed on the premise that the reliability of the application running in the first and second isolated computation space has been verified. Meanwhile, the integrity of the application running in the first and second isolated computation space (i.e., the integrity of the application itself (e.g., a guarantee that the application has not been tampered with since a certain point in time) and the integrity of the isolated computation space, which is the operating environment of the application) are verified in the processes shown in FIGS. 2 to 4, which will be described later.

[0019] The functional block diagram in Fig. 1 clearly shows the first isolated computation area 150 formed in the first information processing device 100, and describes various functional units (such as a first authentication information acquisition unit 153) realized by an application running in the first isolated computation area 150. The same is true for the second isolated computation area 250 formed in the second information processing device 200, and also describes various functional units realized by an application running in the management unit 300. Below, the functions of each functional unit will be outlined.

[0020] The first information processing device 100 includes a first transmission / reception control unit 101 realized by an application running outside the first isolated computation domain 150. The first transmission / reception control unit 101 serves as an input / output interface with the secure computation participants operating the first information processing device 100, and is also a functional unit that communicates with the functional units running in the first isolated computation domain 150, the second information processing device 200, and the management unit 300. The content of communication here broadly includes authentication information, data, notifications, and the like.

[0021] The first information processing device 100 has functional units realized by an application running in the first isolated calculation area 150, including a first internal data communication unit 151, a first data processing unit 152, a first authentication information acquisition unit 153, a first encryption unit 154, a first verification unit 155, and a first memory unit 156.

[0022] Among these, the first internal data communication unit 151 is a functional unit that communicates between the first transmission / reception control unit 101 and the following functional units of the first isolated computation domain 150, and the first data processing unit 152 is a functional unit that executes arbitrary data processing and calls other functional units depending on the processing content. The first authentication information acquisition unit 153 is a functional unit that generates first authentication information used by the management unit 300 to verify the integrity of an application running in the first isolated computation domain 150, as well as a public key pair (a first public key and a first private key). The first authentication information includes, for example, a hash value of the application calculated by a predetermined hash function. This hash value is calculated at an initial stage by the hash function and is compared with the initial hash value stored in the management unit 300, allowing the management unit 300 to verify the integrity of the application itself. The first authentication information also includes test result data output from a predetermined operational test to verify the integrity of the first isolated computation area 150 itself (such as the hardware of the operating environment and the firmware to be run). This test result data is also compared with the initial value of the test result data obtained at an initial stage and stored in the management unit 300, thereby verifying the integrity of the first isolated computation area 150 itself. The first encryption unit 154 is a functional unit that decrypts the encrypted data key from the management unit 300 using the first private key generated by the first authentication information acquisition unit 153, and encrypts and decrypts target data to be processed using the obtained plaintext data key. The first verification unit 155 is a functional unit that verifies whether the decrypted target data is correct, and the first storage unit 156 is a functional unit that stores various data, authentication information, and the like.

[0023] 1, the second information processing device 200 has the same functional block configuration as the first information processing device 100 described above, and includes various functional units in which the prefix of the name of each functional unit included in the first information processing device 100 has been changed from "first" to "second." That is, the second internal data communication unit 251 corresponds to the first internal data communication unit 151 described above, and has the same functions. Since the other functional units are similar, redundant explanations will be omitted.

[0024] The management unit 300 includes functional units implemented by applications running on the management unit 300: an authentication information transmission / reception unit 301, an authentication information management unit 302, an authority management unit 303, and an authentication information verification unit 304. Among these, the authentication information transmission / reception unit 301 is a functional unit that communicates with the first and second information processing devices, while the authentication information management unit 302 is a functional unit that generates, manages, and deletes encryption keys and data keys, encrypts data keys using a public key, encrypts and decrypts data keys using an encryption key, and manages authentication information used to confirm encryption key usage authority. The authority management unit 303 is a functional unit that manages the authority of the encryption keys of the authentication information management unit 302, specifically, sets usage authority, such as who can use the keys. The authority management unit 303 also manages operation authority for the authority management function, specifically, sets operation authority, such as who can operate the usage authority. The authentication information verification unit 304 is a functional unit that verifies the integrity of the application by comparing the authentication information (e.g., hash value of the application) transmitted from each of the first and second information processing devices with the authentication information (e.g., initial value of the hash value of the application) stored in the authority management unit 303. The authentication information transmission / reception unit 301, authentication information management unit 302, authority management unit 303, and authentication information verification unit 304 described above work together to fulfill the functions of the "first management unit" and "second management unit" recited in the claims.

[0025] (Regarding processing performed by the information processing system) The information processing system 1 of Fig. 1 executes the processes shown in Fig. 2 to Fig. 4. As described above, the processes of Fig. 2 to Fig. 4 are executed on the premise that the reliability of the applications running in the first and second isolated computation areas has been verified. In Fig. 2 to Fig. 4, the processes by the functional units running in the first isolated computation area 150 are listed in the vertical column of "first isolated computation area," and the processes by the functional units running in the second isolated computation area 250 are listed in the vertical column of "second isolated computation area." Symbol A1 in Fig. 2 means that the process continues to the same symbol A1 in the next drawing (Fig. 3). The same applies to the other symbols A2, B1, B2, ..., E2.

[0026] First, the first transmission / reception control unit 101 of the first information processing device 100 receives an instruction from a secure computation participant operating the first information processing device 100 and transmits an encryption key generation request to the management unit 300 (step S1 in FIG. 2). Note that the encryption key generation request may be transmitted to the management unit 300 from the secure computation participant operating the first information processing device 100, rather than from the first information processing device 100 itself. In the management unit 300, the authentication information transmission / reception unit 301 receives the encryption key generation request, and the authentication information management unit 302 generates an encryption key in response to the request (step S2), and further generates a data key and encrypts the data key with the encryption key to obtain an encrypted data key (step S3). Thereafter, the authentication information transmission / reception unit 301 transmits a generation completion notification to the first transmission / reception control unit 101 (step S4). As described above, the encryption key and the encrypted data key are generated in the management unit 300 and stored by the authentication information management unit 302.

[0027] Next, the first transmission / reception control unit 101 receives an instruction from the secure computation participant operating the first information processing device 100 and transmits an authority setting request for the encryption key to the management unit 300 (step S5). Note that the authority setting request may be transmitted to the management unit 300 from the secure computation participant operating the first information processing device 100, rather than from the first information processing device 100. In the management unit 300, the authentication information transmission / reception unit 301 receives the authority setting request, the authority management unit 303 sets the use authority for the encryption key in response to the request (step S6), and the authentication information management unit 302 registers authentication information to be used when confirming the use authority (step S7). Here, for example, for an application running in the first isolated computation domain 150, first authentication information including an initial value of a hash value of the application calculated using a predetermined hash function and an initial value of test result data output from a predetermined operational test for verifying the integrity of the first isolated computation domain 150 itself is registered, and for an application running in the second isolated computation domain 250, second authentication information including an initial value of a hash value of the application calculated using a predetermined hash function and an initial value of test result data output from a predetermined operational test for verifying the integrity of the second isolated computation domain 250 itself is registered. The authority management unit 303 also sets a method for changing the usage authority (step S8). Examples of the method for changing the usage authority include making the usage authority unchangeable by any of the secure computation participants, changing the usage authority with the consent of both the secure computation participants, and so on. Then, the authentication information transmission / reception unit 301 transmits a setting completion notification to the first transmission / reception control unit 101 (step S9). As a result of the above, the management unit 300 sets the use authority for the encryption key and the method for changing the use authority, and also registers the authentication information used when confirming the use authority.

[0028] Next, data to be stored (data to be processed or referenced later by a secure computation application) is input and stored as follows. The first transmission / reception control unit 101 transfers the data to be stored in the first information processing device 100 to the first internal data communication unit 151 operating in the first isolated computation domain 150 (step S10A). The data received by the first internal data communication unit 151 is sent to the first data processing unit 152 and stored in the first storage unit 156 called by the first data processing unit 152 (step S11A). Upon completion of storage, the first data processing unit 152 causes the called first internal data communication unit 151 to transmit a storage completion notification to the first transmission / reception control unit 101 (step S12A). Similarly, data to be stored in the second information processing device 200 is stored in the second storage unit 256 by the processes of steps S10B to S12B in FIG. 2. As described above, data to be stored (data to be processed or referenced later by a secure computing application) is input and stored in each of the first and second information processing devices.

[0029] Next, upon receiving an instruction from the secure computation participant operating the first information processing device 100, the first transmission / reception control unit 101 transmits a secure computation application execution instruction to the first internal data communication unit 151 operating in the first isolated computation domain 150 (step S13 in FIG. 3 ). The first data processing unit 152, which has received the instruction from the first internal data communication unit 151, starts secure computation application processing (step S14), starts communication between isolated computation domains (step S15), and calls the first authentication information acquisition unit 153. The first authentication information acquisition unit 153 calculates a hash value of the application operating in the first isolated computation domain 150 using a predetermined hash function, obtains test result data output from an operation test for verifying the integrity of the first isolated computation domain 150 itself, generates or acquires first authentication information including the hash value and the test result data, and generates a public key pair of the first isolated computation domain (step S16). Then, the first data processing unit 152 calls the first internal data communication unit 151 and causes the first internal data communication unit 151 to transmit an encryption key usage request including the first authentication information and the public key of the first isolated calculation area to the management unit 300 via the first transmission / reception control unit 101 (step S17).

[0030] In the management unit 300, after the authentication information transmitting / receiving unit 301 receives the first authentication information and the encryption key use request accompanied by the public key of the first isolated computation space, the authentication information verifying unit 304 verifies the first authentication information by checking whether the hash value and test result data included in the received first authentication information match the initial values ​​of the hash value and the initial values ​​of the test result data registered in step S7 of Fig. 2. Here, if the application running in the first isolated computation space 150 has not been tampered with and the first isolated computation space 150, which is the operating environment, has not been altered, the hash value and the test result data included in the first authentication information match their respective initial values, and the integrity of the application (i.e., the integrity of the application itself and the integrity of the isolated computation space itself) is verified (authentication is successful), and the authentication information verifying unit 304 permits the authentication information management unit 302 to use the encryption key (step S18).

[0031] Upon receiving the permission, the authentication information management unit 302 uses the encryption key to decrypt the encrypted data key obtained in step S3 (step S19) to obtain a plaintext data key, and then encrypts the plaintext data key using the public key of the first isolated computation domain (step S20) to obtain an encrypted data key. Furthermore, the authentication information management unit 302 causes the authentication information transmission / reception unit 301 to transmit an encryption key use request response including the encrypted data key to the requesting first data processing unit 152 via the first transmission / reception control unit 101 (step S21).

[0032] The first data processing unit 152, which has received the encryption key use request response including the encrypted data key via the first internal data communication unit 151, calls the first encryption unit 154 and has the first encryption unit 154 decrypt the encrypted data key using the private key of the first isolated computation domain that is paired with the public key of the first isolated computation domain (step S22). Furthermore, the first encryption unit 154 encrypts the target data (corresponding to part or all of the data to be stored) using the decrypted plaintext data key (step S23), and then deletes the plaintext data key (step S24). The first data processing unit 152 then calls the first internal data communication unit 151 and has the first internal data communication unit 151 transmit the encrypted target data obtained in step S23 to the second internal data communication unit 251 operating in the second isolated computation domain 250 via the first transmission / reception control unit 101 and the second transmission / reception control unit 201 (step S25).

[0033] The second data processing unit 252, which has received the encrypted target data from the second internal data communication unit 251, calls the second authentication information acquisition unit 253. The second authentication information acquisition unit 253 calculates a hash value of the application running in the second isolated computation space 250 using a predetermined hash function, obtains test result data output from an operation test for verifying the integrity of the second isolated computation space 250 itself, generates or acquires second authentication information including the hash value and the test result data, and generates a public key pair for the second isolated computation space (step S26 in FIG. 4). The second data processing unit 252 then calls the second internal data communication unit 251 and causes the second internal data communication unit 251 to transmit an encryption key use request including the second authentication information and the public key of the second isolated computation space to the management unit 300 via the second transmission / reception control unit 201 (step S27).

[0034] In the management unit 300, after the authentication information transceiver unit 301 receives the second authentication information and the encryption key use request accompanied by the public key of the second isolated computation area, the authentication information verification unit 304 verifies the second authentication information by checking whether the hash value and test result data included in the received second authentication information match the initial values ​​of the hash value and the initial values ​​of the test result data registered in step S7 of Fig. 2. Here, if the application running in the second isolated computation area 250 has not been tampered with and the second isolated computation area 250, which is the operating environment, has not been altered, the hash value and test result data included in the second authentication information match their respective initial values, and the integrity of the application (i.e., the integrity of the application itself and the integrity of the isolated computation area itself) is verified (authentication is successful), and the authentication information verification unit 304 permits the authentication information management unit 302 to use the encryption key (step S28).

[0035] Upon receiving the permission, the authentication information management unit 302 uses the encryption key to decrypt the encrypted data key obtained in step S3 (step S29) to obtain a plaintext data key, and then encrypts the plaintext data key using the public key of the second isolated computation domain (step S30) to obtain an encrypted data key. Furthermore, the authentication information management unit 302 causes the authentication information transmission / reception unit 301 to transmit an encryption key use request response including the encrypted data key to the requesting second data processing unit 252 via the second transmission / reception control unit 201 (step S31).

[0036] The second data processing unit 252, which has received the encryption key use request response including the encrypted data key via the second internal data communication unit 251, calls the second encryption unit 254 and causes the second encryption unit 254 to decrypt the encrypted data key using the private key of the second isolated computation area that is paired with the public key of the second isolated computation area (step S32). Furthermore, the second encryption unit 254 uses the decrypted plaintext data key to decrypt the encrypted target data transmitted in step S25 (step S33), and then deletes the plaintext data key (step S34). The second data processing unit 252 then transfers the plaintext target data decrypted in step S33 to the second verification unit 255, and the second verification unit 255 verifies the decrypted plaintext target data (step S35). If the verification result shows no problem, the plaintext target data (i.e., the target data from the first information processing device 100) is subjected to processing by the secure computation application together with the target data stored in the second information processing device 200. Thereafter, the next process of the secure computation application is started (step S36), and the process returns to step S15, where the same process is repeated.

[0037] It should be noted that the generation of the public key pair in steps S16 and S26 does not need to be performed for each processing loop of steps S15 to S36, and may be performed only the first time.

[0038] According to the embodiment described above, on the condition that the integrity of the application running in the first isolated computation space 150 and the integrity of the application running in the second isolated computation space 250 are authenticated, the "encryption key" required to decrypt the data key used in encrypting and decrypting the target data is used to decrypt the data key, and the obtained plaintext data key is used to encrypt and decrypt the target data. In this way, since the integrity of the applications running in the first and second isolated computation space (i.e., the integrity of the application itself and the integrity of the isolated computation space that is its operating environment) is authenticated, it is possible to prevent tampering with the application by a secure computation participant.

[0039] Furthermore, the "data key" used to encrypt the target data is transmitted from the management unit 300 to the first information processing device 100 in a secure encrypted format using a pair of a first public key and a first private key generated by an application running in the first isolated computation domain 150, and is decrypted in the first isolated computation domain 150 using the first private key that can only be used in the first isolated computation domain 150. In this way, the data encryption key used to encrypt the target data is transmitted and received between the management unit 300 and the first information processing device 100 via the secure environment between the management unit 300 and the first information processing device 100, thereby preventing data tampering by other participants (in this case, the second information processing device 200). Similarly, the "data key" used to decrypt the target data is transmitted from the management unit 300 to the second information processing device 200 in an encrypted, secure format using a pair of a second public key and a second private key generated by an application running in the second isolated computation area 250, and is decrypted in the second isolated computation area 250 using the second private key that can only be used in the second isolated computation area 250. In this way, the data encryption key used to decrypt the target data is transmitted and received between the management unit 300 and the second information processing device 200 via the secure environment between the management unit 300 and the second information processing device 200, thereby preventing data tampering by other participants (in this case, the first information processing device 100). It is not essential to use the above-mentioned mechanisms for preventing data tampering (for example, envelope encryption, in which a data key used for encrypting and decrypting data is encrypted with an encryption key, or an encryption method using a public key and private key pair) as a secure environment between the management unit 300 and each information processing device, and a secure communication environment between the management unit 300 and each information processing device may also be used.

[0040] In this way, both "data tampering" and "application tampering" from secure computing participants can be prevented, eliminating the need for the conventional one-by-one data verification process, and enabling a system designed to withstand attacks from the semi-honest model to also withstand attacks from the malicious model without causing performance degradation.

[0041] Furthermore, both the first isolated computing area 150 and the second isolated computing area 250 may be formed using physical isolation or logical isolation, and an example of forming them using logical isolation is the above-mentioned TEE. Since the TEE is an existing technology, the above-mentioned isolated computing area can be formed relatively easily while suppressing development costs by effectively utilizing existing technology.

[0042] (Modification of Information Processing System) In the above embodiment, an example of a configuration in which the management unit 300 is provided outside the first information processing device 100 and the second information processing device 200 has been described as shown in Fig. 1, but the management unit 300 may be provided inside either of the information processing devices based on an agreement between the secure computation participant on the first information processing device 100 side and the secure computation participant on the second information processing device 200 side. For example, as shown in Fig. 5, a configuration (Variation 1) in which the management unit 300 is provided inside the first information processing device 100 may be used, or as shown in Fig. 6, a configuration (Variation 2) in which the management unit 300 is provided inside the second information processing device 200 may be used, and the same effects as those of the above embodiment can be obtained.

[0043] (Explanation of terms, explanation of hardware configuration (Fig. 7), etc.) The block diagrams used to explain the above embodiments and modifications show functional blocks. These functional blocks (components) are realized by any combination of at least one of hardware and software. Furthermore, the method for realizing each functional block is not particularly limited. That is, each functional block may be realized using a single device that is physically or logically coupled, or may be realized using two or more physically or logically separated devices that are directly or indirectly connected (for example, using wires, wirelessly, etc.) and these multiple devices. The functional block may also be realized by combining the single device or multiple devices with software.

[0044] Functions include, but are not limited to, judgment, determination, judgment, calculation, computation, processing, derivation, investigation, search, confirmation, reception, transmission, output, access, resolution, selection, election, establishment, comparison, assumption, expectation, consideration, broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocation, mapping, and assignment. For example, a functional block (component) that performs transmission is called a transmitting unit or transmitter. As mentioned above, there are no particular limitations on how these functions are implemented.

[0045] For example, an information processing device according to an embodiment of the present disclosure may function as a computer that performs the processing according to this embodiment. Fig. 7 is a diagram illustrating an example hardware configuration of a first information processing device 100 according to an embodiment of the present disclosure. The above-described first information processing device 100 may be physically configured as a computer device including a processor 1001, a memory 1002, a storage 1003, a communication device 1004, an input device 1005, an output device 1006, a bus 1007, and the like. Note that the second information processing device 200 may also be configured similarly to the first information processing device 100.

[0046] In the following description, the term "apparatus" can be read as a circuit, a device, a unit, etc. The hardware configuration of the first information processing device 100 may be configured to include one or more of the apparatuses shown in the drawings, or may be configured to exclude some of the apparatuses.

[0047] Each function in the first information processing device 100 is realized by loading specified software (programs) onto hardware such as the processor 1001, memory 1002, etc., so that the processor 1001 performs calculations, controls communication via the communication device 1004, and controls at least one of reading and writing data in the memory 1002 and storage 1003.

[0048] The processor 1001 controls the entire computer by running, for example, an operating system, and may be configured as a central processing unit (CPU) including an interface with peripheral devices, a control device, an arithmetic unit, a register, etc.

[0049] The processor 1001 also reads programs (program codes), software modules, data, etc. from at least one of the storage 1003 and the communication device 1004 into the memory 1002, and executes various processes in accordance with these. The programs used are those that cause a computer to execute at least some of the operations described in the above-described embodiments. While the above-described various processes have been described as being executed by one processor 1001, they may be executed simultaneously or sequentially by two or more processors 1001. The processor 1001 may be implemented by one or more chips. The programs may be transmitted from a network via a telecommunications line.

[0050] The memory 1002 is a computer-readable recording medium and may be configured, for example, by at least one of a read-only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a random access memory (RAM), etc. The memory 1002 may also be called a register, a cache, a main memory (primary storage device), etc. The memory 1002 can store executable programs (program codes), software modules, etc. for implementing a wireless communication method according to an embodiment of the present disclosure.

[0051] Storage 1003 is a computer-readable recording medium, and may be composed of at least one of, for example, an optical disk such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, a magneto-optical disk (e.g., a compact disk, a digital versatile disk, a Blu-ray disc), a smart card, a flash memory (e.g., a card, a stick, a key drive), a floppy disk, a magnetic strip, etc. Storage 1003 may also be referred to as an auxiliary storage device. The above-mentioned storage medium may be, for example, a database including at least one of memory 1002 and storage 1003, or any other suitable medium.

[0052] The communication device 1004 is hardware (transmission / reception device) for communicating between computers via at least one of a wired network and a wireless network, and is also called, for example, a network device, a network controller, a network card, or a communication module.

[0053] The input device 1005 is an input device (for example, a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that receives input from the outside. The output device 1006 is an output device (for example, a display, a speaker, an LED lamp, etc.) that performs output to the outside. The input device 1005 and the output device 1006 may be integrated into one device (for example, a touch panel). Furthermore, each device, such as the processor 1001 and the memory 1002, is connected by a bus 1007 for communicating information. The bus 1007 may be configured using a single bus, or may be configured using different buses for each device.

[0054] Each aspect / embodiment described in this disclosure may be used alone, in combination, or switched depending on the implementation. Furthermore, notification of predetermined information (e.g., notification that "X is true") is not limited to being done explicitly, but may be done implicitly (e.g., by not notifying the predetermined information).

[0055] Although the present disclosure has been described in detail above, it is clear to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure can be implemented in modified and altered forms without departing from the spirit and scope of the present disclosure as defined by the claims. Therefore, the description of the present disclosure is intended to be illustrative and does not have any limiting meaning on the present disclosure.

[0056] The order of the procedures, sequences, flowcharts, etc. of each aspect / embodiment described in this disclosure may be changed unless it is consistent. For example, the methods described in this disclosure present elements of various steps using an example order, and are not limited to the particular order presented.

[0057] Input and output information may be stored in a specific location (for example, memory) or may be managed using a management table. Input and output information may be overwritten, updated, or added to. Output information may be deleted. Input information may be sent to another device.

[0058] As used in this disclosure, the phrase "based on" does not mean "based only on," unless expressly stated otherwise. In other words, the phrase "based on" means both "based only on" and "based at least on."

[0059] When used in this disclosure, the terms "include," "including," and variations thereof are intended to be inclusive, similar to the term "comprising." Furthermore, when used in this disclosure, the term "or" is not intended to be an exclusive or.

[0060] In this disclosure, where articles are added by translation, such as a, an, and the in English, the disclosure may include that the nouns following these articles are in the plural form.

[0061] In the present disclosure, the term "A and B are different" may mean "A and B are different from each other." The term may also mean "A and B are each different from C." Terms such as "separate" and "coupled" may also be interpreted in the same way as "different." [Explanation of symbols]

[0062] 1...information processing system, 100...first information processing device, 101...first transmission / reception control unit, 150...first isolated calculation area, 151...first internal data communication unit, 152...first data processing unit, 153...first authentication information acquisition unit, 154...first encryption unit, 155...first verification unit, 156...first memory unit, 200...second information processing device, 201...second transmission / reception control unit, 250...second isolated calculation area, 251...second internal data communication unit, 25 2...second data processing unit, 253...second authentication information acquisition unit, 254...second encryption unit, 255...second verification unit, 256...second memory unit, 300...management unit, 301...authentication information transmission / reception unit, 302...authentication information management unit, 303...authority management unit, 304...authentication information verification unit, 1001...processor, 1002...memory, 1003...storage, 1004...communication device, 1005...input device, 1006...output device, 1007...bus.

Claims

1. The management department and a first application running in an isolated computational domain of a first information processing device; a second application running in the isolated computational domain of the second information processing device; Equipped with The management unit a transceiver unit for communicating with the first application and the second application; an authentication information management unit that generates and stores a data key used to encrypt target data transmitted and received between the first application and the second application; Including, When the transmitting / receiving unit receives a data encryption key use request from the first application, the management unit verifies the integrity of the first application based on the data encryption key use request; If the integrity is verified, the authentication information management unit encrypts the data key using a public key included in the data encryption key use request to generate an encrypted data key, and the transmission / reception unit transmits the encrypted data key to the first application; When the transmitting / receiving unit receives a data encryption key use request from the second application, the management unit verifies the integrity of the second application based on the data encryption key use request; If the integrity is verified, the authentication information management unit encrypts the data key using a public key included in the data encryption key use request to generate an encrypted data key, and the transmission / reception unit transmits the encrypted data key to the second application; Each of the first application and the second application a communication unit that transmits the data encryption key usage request to the management unit when encrypted target data is received from another application; an encryption unit that decrypts the encrypted data key received from the management unit to obtain a data key and decrypts the encrypted target data using the data key; Including, Information processing system.

2. a transceiver that communicates with a first application running in an isolated computation area of ​​the first information processing device and a second application running in an isolated computation area of ​​the second information processing device; an authentication information management unit that generates and stores a data key used to encrypt target data transmitted and received between the first application and the second application; a management unit including: When the transmitting / receiving unit receives a first data encryption key use request from the first application, the management unit verifies the integrity of the first application based on the first data encryption key use request; If the integrity is verified, the authentication information management unit encrypts the data key using a public key included in the first data encryption key use request to generate a first encrypted data key; the transmitting / receiving unit transmits the first encrypted data key to the first application; When the transmitting / receiving unit receives a second data encryption key usage request from the second application after the first application has encrypted the target data using the data key and transmitted the encrypted target data to the second application, the management unit verifies the integrity of the second application based on the second data encryption key usage request; If the integrity is verified, the authentication information management unit encrypts the data key using the public key included in the second data encryption key use request to generate a second encrypted data key; the transmitting / receiving unit transmits the second encrypted data key to the second application; Information processing device.

3. the data keys managed by the management unit include an encryption key and an encrypted data key encrypted with the encryption key; the first application generates a pair of a first public key and a first private key, and transmits to the management unit a request to use the first data encryption key, the request including first authentication information and the first public key, the first authentication information being used by the management unit to verify the integrity of the first application; only when the integrity is verified, the management unit decrypts the first encrypted data key using the encryption key to obtain a plaintext data key, encrypts the plaintext data key with the first public key, and transmits the obtained first encrypted data key to the first application; the first application decrypts the received first encrypted data key with the first private key to obtain a plaintext data key, encrypts the target data with the plaintext data key, and transmits the encrypted target data to the second application; The information processing device according to claim 2 .

4. the second application generates a pair of a second public key and a second private key, and transmits to the management unit a request to use the second data encryption key, the request including second authentication information and the second public key, the second authentication information being used by the management unit to verify the integrity of the second application; only when the integrity is verified, the management unit decrypts the second encrypted data key using the encryption key to obtain a plaintext data key, encrypts the plaintext data key with the second public key, and transmits the obtained second encrypted data key to the second application; the second application decrypts the received second encrypted data key with the second private key to obtain a plaintext data key, and decrypts the encrypted target data with the plaintext data key; The information processing device according to claim 3 .

5. The isolated computing area of ​​the first information processing device is formed by utilizing physical isolation or logical isolation, The isolated computing area of ​​the second information processing device is formed by utilizing physical isolation or logical isolation. The information processing device according to claim 2 .

6. The information processing device according to claim 2 , wherein the target data is a target for secure computation processing.

Citation Information

Patent Citations

  • Secret calculation system and secret calculation method

    JP2011081301A

  • Cryptographic communication system, secure element, device, server, computer program, and cryptographic communication method

    JP2020202505A

  • Data security using request-supplied keys

    JP2021022945A