Information processing device and information processing system
Patent Information
- Application Number
- JP2023576661
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-11-29
- Filing Date
- 2022-11-29
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2042-11-29
AI Technical Summary
Existing information processing systems face performance degradation when trying to adapt to attacks from malicious models, as they require extensive data verification processes to ensure integrity, which increases calculation overhead and decreases processing speed.
An information processing system with isolated computation areas and a management unit that verifies the integrity of applications using authentication information and pre-stored verification data, allowing secure data encryption and decryption keys to be shared only when integrity is confirmed, thereby preventing data and application tampering without the need for one-by-one verification.
The system effectively prevents data and application tampering by participants, enabling it to withstand attacks from both semi-honest and malicious models without causing performance degradation, ensuring secure data processing and communication.
Abstract
Description
Information processing device and information processing system
[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.
[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, for example, Patent Document 1) 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 known attacker models that pose a threat to secure computation are broadly classified into a "semi-honest model" and a "malicious model." 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, and the "malicious model" is an attacker that attempts to obtain information about other participants by arbitrarily tampering with data.
[0003] JP 2011-081301 A
[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.
[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, by a first application running in the first isolated computation area, 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, 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 to the management unit, the request including first authentication information used by the management unit to verify the integrity of the first application, via a first application running in a first isolated computation area. 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 only if 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. As described above, only if the integrity of the first application running in the first isolated computation area is verified, is the data encryption key transmitted to the first information processing device via the secure environment between the management unit and the first information processing device. Note that the above "integrity of the first application running in the first isolated computation area" is a concept that includes the integrity of the first application itself and the integrity of the first isolated computation area, 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 to the management unit, via the second application running in the second isolated computation area, including second authentication information used by the management unit to verify the integrity of the second application, 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 only if the integrity is verified, 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. As described above, only if the integrity of the second application running in the second isolated computation area is verified, is the data encryption key transmitted to the second information processing device via the secure environment between the management unit and the second information processing device. Note that the above-mentioned "integrity of the second application running in the second isolated computation area" is a concept that includes the integrity of the second application itself and the integrity of the second isolated computation area, 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 second application, whose integrity is authenticated and running in the second isolated computing domain, decrypts the encrypted target data using the data encryption key received via the secure environment to obtain the plaintext target data.
[0011] In the series of processes described above, a data encryption key used to encrypt target data is transmitted to the first information processing device via a secure environment between the management unit and the first information processing device, provided that the integrity of the first application running in the first isolated computation area has been authenticated. Similarly, a data encryption key used to decrypt target data is transmitted to the second information processing device via a secure environment between the management unit and the second information processing device, provided that the integrity of the second application running in the second isolated computation area has been authenticated. In this way, since the integrity of the applications running in the first and second isolated computation areas (i.e., the integrity of the application itself and the integrity of the isolated computation areas in which it operates) is authenticated, tampering with the applications by participants in the processes can be prevented.
[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 utilize 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 / private key pair). An example of the latter is described in an embodiment of the invention. Because the data encryption key used for encrypting the 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 the 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.
[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.
[0015] FIG. 1 is a configuration diagram of an information processing system according to an embodiment of the invention. FIG. 2 is a first flow chart showing processing executed in the information processing system according to an embodiment of the invention. FIG. 3 is a third flow chart showing processing executed in the information processing system according to an embodiment of the invention. FIG. 4 is a configuration diagram showing a first modified example of an information processing system. FIG. 5 is a configuration diagram showing a second modified example of an information processing system. FIG. 6 is a diagram showing an example of the hardware configuration of an information processing device.
[0016] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.
[0017] (Configuration of Information Processing System) 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 outside 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, although such modifications will be described later. The first isolated computation area 150 and the second isolated computation area 250 may both be formed using physical isolation or logical isolation. An example of a configuration using logical isolation is a Trusted Execution Environment (TEE), which is a secure execution environment that allows the use of some of the resources of the information processing device, such as the memory and CPU, 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 domain 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 domain 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 of FIGS. 2 to 4 described below are executed on the premise that the reliability of the application running in such first and second isolated computation domains has been verified. Meanwhile, the integrity of the application running in the first and second isolated computation domains (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 domains that are its operating environment) is verified in the processes of FIGS. 2 to 4 described below.
[0019] The functional block diagram of FIG. 1 clearly shows a first isolated calculation area 150 formed in the first information processing device 100, and describes various functional units (e.g., a first authentication information acquisition unit 153) realized by an application running in the first isolated calculation area 150. The same is true for a second isolated calculation area 250 formed in the second information processing device 200, and also describes various functional units realized by an application running in a management unit 300. The functions of each functional unit will be outlined below.
[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 performs communication between 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 applications 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 area 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 area 150 and also generates 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). The 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 the 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 function. 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, including 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 authority for 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 authentication information (e.g., a hash value of the application) transmitted from each of the first and second information processing devices with authentication information (e.g., an 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 Executed in the Information Processing System) The information processing system 1 of FIG. 1 executes the processing shown in FIGS. 2 to 4. As described above, the processing shown in FIGS. 2 to 4 is executed on the premise that the reliability of the applications running in the first and second isolated computation areas has been verified. Note that in FIGS. 2 to 4, processing by functional units running in the first isolated computation area 150 is listed in the vertical column labeled "First Isolated Computation Area," and processing by functional units running in the second isolated computation area 250 is listed in the vertical column labeled "Second Isolated Computation Area." Symbol A1 in FIG. 2 indicates that processing continues at 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 not from the first information processing device 100 but from the secure computation participant operating the first information processing device 100. 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 a result of the 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 usage 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 usage authority (step S7). Here, for example, for an application running in the first isolated computation area 150, first authentication information including an initial value of the 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 area 150 itself is registered, and for an application running in the second isolated computation area 250, second authentication information including an initial value of the 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 area 250 itself is registered. The authority management unit 303 also sets a method for changing the usage authority (step S8). Examples of methods for changing the usage authority include making the usage authority unchangeable by any of the secure computation participants or changing the usage authority with the consent of both the secure computation participants. 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 usage authority for the encryption key and the method for changing the usage authority, and also registers the authentication information used to confirm the usage authority.
[0028] Next, data to be stored (data to be processed or referenced later by a secure computing 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 area 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 of 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 ), and 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 the 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 for 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 send a cryptographic 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 area, 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 hash value and initial value of the test result data registered in step S7 of Fig. 2. Here, if the application running in the first isolated computation area 150 has not been tampered with and the first isolated computation area 150, which is the operating environment, has not been altered, the hash value and 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 area 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 area that is paired with the public key of the first isolated computation area (step S22). The first encryption unit 154 then 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 area 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 area 250 using a predetermined hash function, obtains test result data output from an operation test for verifying the integrity of the second isolated computation area 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 area (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 area 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 transmitting / receiving unit 301 receives the second authentication information and the encryption key use request including the public key of the second isolated computation area, the authentication information verifying 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 hash value and initial value 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 verifying 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 receives 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, which then verifies the decrypted plaintext target data (step S35). If the verification result indicates no problem, the plaintext target data (i.e., the target data from the first information processing device 100) is processed by the secure computing 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 domain 150 and the integrity of the application running in the second isolated computation domain 250 are authenticated, the data key is decrypted using the “encryption key” required to decrypt the data key used in encrypting and decrypting the target data, 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 domains (i.e., the integrity of the application itself and the integrity of the isolated computation domains that are 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 area 150, and is decrypted in the first isolated computation area 150 using the first private key that can only be used in the first isolated computation area 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 should be noted that the use of the above-mentioned mechanisms for preventing data tampering (for example, envelope encryption, in which the data key used for encrypting and decrypting data is encrypted with an encryption key, or an encryption method using a public key / private key pair) is not a mandatory requirement for 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 calculation region 150 and the second isolated calculation region 250 may be formed using physical isolation or logical isolation, and an example of formation using logical isolation is the above-mentioned example of formation using TEE. Since TEE is an existing technology, the above-mentioned isolated calculation region can be formed relatively easily while suppressing development costs by effectively utilizing existing technology.
[0042] (Modifications of Information Processing System) In the above embodiment, an example configuration in which the management unit 300 is provided outside the first information processing device 100 and the second information processing device 200 as shown in Fig. 1 has been described, but a configuration in which the management unit 300 is provided inside either of the information processing devices may be adopted 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 (Modification 1) in which the management unit 300 is provided inside the first information processing device 100 may be adopted, or as shown in Fig. 6, a configuration (Modification 2) in which the management unit 300 is provided inside the second information processing device 200 may be adopted, and effects similar to those of the above embodiment may be obtained.
[0043] (Explanation of terms, explanation of hardware configuration (Figure 7), etc.) Note that the block diagrams used in explaining the above embodiments and variant examples show functional blocks. These functional blocks (components) are realized by any combination of at least one of hardware and software. Furthermore, the method of 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 connected directly or indirectly (for example, using wires, wirelessly, etc.) and these multiple devices. A functional block may be realized by combining software with the single device or multiple devices.
[0044] Functions include, but are not limited to, judgment, determination, assessment, calculation, computation, processing, derivation, investigation, search, confirmation, reception, transmission, output, access, resolution, selection, selection, establishment, comparison, assumption, expectation, consideration, broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocating, 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, the 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. 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 and memory 1002, causing the processor 1001 to perform calculations, control communication via the communication device 1004, and control 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 by, for example, 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 (registered trademark) disk), a smart card, a flash memory (e.g., a card, a stick, a key drive), a floppy (registered trademark) 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 other appropriate 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 (e.g., a keyboard, a mouse, a microphone, a switch, a button, a sensor, etc.) that accepts input from the outside. The output device 1006 is an output device (e.g., 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 (e.g., 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] The aspects / embodiments described in this disclosure may be used alone, in combination, or switched depending on the implementation. Notification of predetermined information (e.g., notification that "X is true") is not limited to explicit notification, but may be implicit (e.g., 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 transmitted 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 the terms "include," "including," and variations thereof are used in this disclosure, these terms are intended to be inclusive, similar to the term "comprising." Furthermore, when the term "or" is used in this disclosure, it 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."
[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 storage 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. A management department, a first application running in an isolated computation domain of a first information processing device; a second application running in an isolated computation 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 or the second application, 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; The transmission / reception unit transmits the encrypted data key to an application that is a source of the data encryption key use request; Each of the first application and the second application a communication unit that transmits a 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 unit that communicates with a first application running in an isolated computation area of a first information processing device and a second application running in an isolated computation area of a 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; Equipped with when receiving a first data encryption key use request from the first application, 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 transceiver transmits the first encrypted data key to the first application; when receiving 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 authentication information management unit encrypts the data key using a public key included in the second data encryption key usage request to generate a second encrypted data key; The transceiver transmits the second encrypted data key to the second application. Information processing device.
