WO2023116147A1 - 获取数据授权的方法、装置及系统 - Google Patents
获取数据授权的方法、装置及系统 Download PDFInfo
- Publication number
- WO2023116147A1 WO2023116147A1 PCT/CN2022/125724 CN2022125724W WO2023116147A1 WO 2023116147 A1 WO2023116147 A1 WO 2023116147A1 CN 2022125724 W CN2022125724 W CN 2022125724W WO 2023116147 A1 WO2023116147 A1 WO 2023116147A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computing
- trusted
- provider
- computing node
- center
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Definitions
- One or more embodiments of this specification relate to the field of security technology, and in particular to a method, device and system for obtaining data authorization.
- the dense-state hosting calculation refers to that the data provider uploads the data to a certain center, and the center performs dense-state calculation on the data, and the data provider does not need to participate in the calculation process.
- Encrypted escrow computing can be applied to multiple scenarios. For example, the data provider provides the data to the trading center in the form of encrypted state, and the trading center calculates valuable results in the form of encrypted state, and then sells the results to the data requester , so that the data provider and the transaction center can share the revenue obtained.
- the data provider usually cannot control the computing logic used by the center.
- the data provider may only want the data to be used for less leaky logic such as machine learning training, rather than for more leaky logic such as quantiles and segmented statistics.
- the center since the center may use intentionally constructed and different logic to calculate the data and deduce the original data from the calculation results, it is necessary to provide a solution to constrain the calculation logic used by the trusted computing center.
- One or more embodiments of this specification describe a method, device and system for obtaining data authorization, which can constrain the computing logic used by the trusted computing center, thereby ensuring the security of the data of the data provider.
- a method for obtaining data authorization including:
- Any first computing node among the plurality of trusted computing nodes receives an authentication request from the first provider
- the target encryption key among the encryption keys corresponding to the plurality of encrypted slices is received, so as to obtain the target encryption key corresponding to the target encryption key based on the first calculation logic. Permission to perform calculations on shards.
- a method for obtaining data authorization including:
- Each of the proxy nodes obtains each encryption key corresponding to the plurality of encrypted slices from the first provider
- Any first proxy node among the proxy nodes sends an authentication request to the corresponding first computing node, and receives authentication information returned by the first computing node, which at least includes the first Calculate the first code hash of the logic;
- the first proxy node performs credible authentication on the first computing node based on the authentication information, and judges whether the first code hash has been stored;
- the first proxy node When the trusted authentication passes and the first code hash has been stored, the first proxy node establishes a first trusted channel with the first computing node;
- the first proxy node sends the received target encryption key to the first computing node through the first trusted channel
- the first calculation node obtains the authority to perform calculations on the target encryption shard corresponding to the target encryption key based on the first calculation logic.
- a method for obtaining data authorization including:
- a device for obtaining data authorization including:
- a receiving unit configured to receive an authentication request from the first provider
- a sending unit configured to return authentication information to the first provider, including at least a first code hash of the first computing logic running in the first computing node;
- the receiving unit is further configured to receive a channel establishment request sent by the first provider after determining that the first computing node has passed the trusted authentication and the first code hash has passed the correctness verification;
- An establishment unit configured to establish a first trusted channel with the first provider according to the channel establishment request
- the receiving unit is further configured to receive a target encryption key among the encryption keys corresponding to the plurality of encrypted slices through the first trusted channel, so as to obtain the The authority to perform calculations on the target encrypted shard corresponding to the target encrypted key.
- a system for obtaining data authorization including:
- the proxy nodes are configured to obtain, from the first provider, encryption keys corresponding to the plurality of encrypted slices;
- Any first proxy node among the proxy nodes is configured to send an authentication request to the corresponding first computing node, and receive authentication information returned by the first computing node, which at least includes the first code hash of the first computational logic of ;
- the first proxy node is further configured to perform credible authentication on the first computing node based on the authentication information, and determine whether the first code hash has been stored;
- the first proxy node is further configured to establish a first trusted channel with the first computing node when the trusted authentication passes and the first code hash has been stored;
- the first proxy node is further configured to send the received target encryption key to the first computing node through the first trusted channel;
- the first calculation node is configured to obtain permission to perform calculations on the target encryption slice corresponding to the target encryption key based on the first calculation logic.
- a device for obtaining data authorization including:
- an obtaining unit configured to obtain a target encryption key among the encryption keys corresponding to the plurality of encrypted slices from the first provider
- a sending unit configured to send an authentication request to a corresponding first computing node
- a receiving unit configured to receive the authentication information returned by the first computing node, which at least includes the first code hash of the first computing logic running in the first computing node;
- a judging unit configured to perform credible authentication on the first computing node based on the authentication information, and judge whether the first code hash has been certified;
- An establishing unit configured to establish a first trusted channel with the first computing node when the trusted authentication passes and the first code hash has been stored;
- the sending unit is further configured to send the target encryption key to the first computing node through the first trusted channel; so that the first computing node obtains the The target encrypted shard corresponding to the target encrypted key is authorized to perform calculations.
- a computer storage medium on which a computer program is stored, and when the computer program is executed in a computer, it causes the computer to execute the method of the first, second or third aspect.
- a computing device including a memory and a processor, wherein executable code is stored in the memory, and when the processor executes the executable code, the implementation of the first, second or third aspect method.
- the method, device, and system for obtaining data authorization propose two ways to constrain the computing logic used by the trusted computing center.
- One of the ways is that the data provider pre-configures the computing logic Do a review, then save a code hash of the reviewed computation logic. Afterwards, the data provider can obtain the code hash of the computing logic running in the trusted computing node, and provide the encrypted secret of the data to the trusted computing node when the obtained code hash is consistent with the saved code hash. key to achieve the corresponding data authorization.
- Another way is that the trusted computing node deposits the code hash of the computing logic running in the certificate deposit center in advance.
- the proxy node of the trusted computing node can obtain the code hash of the computing logic running in the trusted computing node, and when the obtained code hash is consistent with the stored code hash, send the trusted computing node Provide the encryption key of the data obtained from the data provider in advance to realize the corresponding data authorization.
- the data provider can obtain the code hash from the certificate depository center, and based on the code hash, pull the corresponding calculation logic from the trusted computing center for legality review.
- Figure 1 shows a schematic diagram of a TECC according to an embodiment
- Figure 2 is a schematic diagram of an implementation scenario disclosed in an embodiment of this specification.
- Fig. 3 is a schematic diagram of an implementation scenario disclosed in another embodiment of this specification.
- FIG. 4 shows an interaction diagram of a method for uploading encrypted data according to an embodiment
- Fig. 5 shows an interaction diagram of a method for obtaining data authorization according to an embodiment
- Fig. 6 shows an interaction diagram of a method for obtaining data authorization according to another embodiment
- Fig. 7 shows a schematic diagram of an apparatus for obtaining data authorization according to an embodiment
- Fig. 8 shows a schematic diagram of a system for obtaining data authorization according to an embodiment
- Fig. 9 shows a schematic diagram of an apparatus for obtaining data authorization according to another embodiment.
- the scheme provided by the embodiment of this specification proposes a scheme in which the center constrains the calculation logic used by the center when calculating the data of the data provider through Trusted Cryptographic Computing (TECC for short) .
- TECC Trusted Cryptographic Computing
- TECC is a safe and efficient secret-state computing method, which can calculate a common result for multiple data providers without disclosing any party's data.
- Trusted secret-state computing combines two technologies of system security and cryptography, which balances security and performance better than using only one technology, and finally achieves the ideal state of "adequate security and very fast performance".
- TEE Trusted Execution Environment
- TECC combines the two, so that when the TEE is compromised, the security is still guaranteed, which meets the needs of most scenarios.
- TECC also inherits the high-performance characteristics of trusted technology, and can achieve the performance of approximate plaintext calculation under reasonable resource expansion.
- Fig. 1 shows a schematic diagram of a TECC according to one embodiment.
- the data provider U randomly splits the data locally into multiple data fragments: U1, U2, and U3.
- the data provider U establishes secure channels with multiple TEEs, and divides each data fragment are passed to a TEE respectively. For example, provide U1, U2, and U3 to TEEX, TEEY, and TEEZ, respectively. Other data providers can also pass each of their own data fragments to a TEE.
- Each TEE executes the MPC (Secure Multi-Party Computation, Secure Multi-Party Computation) protocol based on secret sharing after obtaining the data fragments of all data providers to complete the calculation.
- MPC Secure Multi-Party Computation
- TECC the data provider can ensure that its data only exists in the TEE through the TEE technology, and the host and owner of the TEE cannot obtain the plaintext of the data (in the case that the TEE is not compromised).
- each TEE has only been exposed to data fragments from the beginning to the end, that is to say, even if an attacker breaks through a TEE and steals or modifies it for a long time, no valid information can be obtained. In practice, this level of defense is nearly impossible to break through.
- the high performance of TECC is mainly due to its very little public network interaction, which generally only needs to be performed once. In the case of pre-uploaded data, public network interaction may not be required. Another reason is that TECC supports high concurrency, making it possible to achieve performance similar to plaintext under reasonable resource expansion.
- Fig. 2 is a schematic diagram of an implementation scenario disclosed by an embodiment of this specification.
- the data provider U can upload encrypted data to the trusted computing center, and the trusted computing center can calculate the encrypted data based on computing logic.
- the data provider U here can be implemented as any device, platform, server or device cluster with computing and processing capabilities.
- the trusted computing center may include a data storage center and three trusted computing nodes, respectively denoted as: TEEX, TEEY and TEEZ.
- the trusted computing center may also include a code storage center and a management center. Among them, the code storage center is used to store the calculation logic of the operation in each trusted computing node.
- the management center is used to manage each trusted computing node.
- the data provider U can split the corresponding private data into three private slices, denoted as: U1, U2 and U3 respectively, and correspondingly generate three random encryption keys for the three private slices : K1, K2 and K3. Afterwards, the data provider U can use three encryption keys to encrypt three privacy slices correspondingly, and obtain three encrypted slices, respectively expressed as: ENC(K1,U1), ENC(K2,U2), ENC(K3 , U3), and upload the three encrypted slices to the data storage center in the trusted computing center respectively.
- the data provider U can review any calculation logic, and then save the code hash of the reviewed calculation logic. Afterwards, the data provider U can obtain the code hash of the calculation logic running in TEEX, TEEY, and TEEZ respectively, and when the obtained code hash is consistent with the saved code hash, send data to TEEX, TEEY, and TEEZ respectively.
- TEEX, TEEY, and TEEZ can also use their own exclusive keys to encrypt K1, K2, and K3 to obtain Seal(K1), Seal(K2) and Seal(K3), and encrypt their encrypted
- the secret key is stored in the data storage center for use in subsequent joint calculations.
- Fig. 2 is only an exemplary illustration, and in practical applications, the number of TEEs can also be two or more, and correspondingly, the data can also be split into two privacy slices or more A privacy slice and so on.
- the number of encryption keys may not be equal to the number of TEEs, but equal to the number of role categories of TEEs, so that TEEs belonging to the same role category share the same encryption key.
- Fig. 3 is a schematic diagram of an implementation scenario disclosed in another embodiment of this specification.
- the data provider U can upload encrypted data to the trusted computing center, and the trusted computing center can calculate the encrypted data based on computing logic.
- the data provider U here can be implemented as any device, platform, server or device cluster with computing and processing capabilities.
- the trusted computing center may include a data storage center, three trusted computing nodes and respective proxy nodes.
- the three trusted computing nodes here are represented as: TEEX, TEEY, and TEEZ, and the corresponding proxy nodes are respectively represented as: TEEA, TEEB, and TEEC.
- the trusted computing center may also include a code storage center and a management center. Among them, the code storage center is used to store the calculation logic of the operation in each trusted computing node.
- the management center is used to manage each trusted computing node.
- the data provider U can split the corresponding private data into three private slices, denoted as: U1, U2 and U3 respectively, and correspondingly generate three random encryption keys for the three private slices : K1, K2 and K3. Afterwards, the data provider U can use three encryption keys to encrypt three privacy slices correspondingly, and obtain three encrypted slices, respectively expressed as: ENC(K1,U1), ENC(K2,U2), ENC(K3 , U3), and upload the three encrypted slices to the data storage center in the trusted computing center respectively.
- the data provider U can also send encryption keys K1, K2, and K3 to TEEA, TEEB, and TEEC respectively, so that TEEA, TEEB, and TEEC can respectively use their own exclusive keys to encrypt K1, K2, and K3 correspondingly, thereby obtaining Seal(K1), Seal(K2) and Seal(K3), and store their respective encrypted encryption keys in the data storage center for subsequent data authorization to the corresponding trusted computing nodes.
- TEEX, TEEY, and TEEZ can deposit the code hash of the calculation logic running in the certificate deposit center in advance.
- each proxy node can obtain the code hash of the computing logic running in it and the code hash of its stored evidence from the corresponding trusted computing nodes, and the running code hash is consistent with the code hash of the stored evidence
- the data encryption keys K1, K2, and K3 are respectively provided to TEEX, TEEY, and TEEZ, so that TEEX, TEEY, and TEEZ obtain the authority to perform calculations on U1, U2, and U3 based on the calculation logic running in them. That is, each trusted computing node has obtained the corresponding data authorization.
- the data provider U can obtain the stored code hash of each trusted computing node from the certificate storage center at any time, and then pull the corresponding calculation logic from the code storage center based on the obtained code hash for review. That is to say, the data provider U checks the computing logic used by the trusted computing center after the fact, so that the restriction or control on the computing logic used by the trusted computing center can also be realized. Moreover, the post-examination method can avoid frequent interactions between the data provider and the trusted computing center.
- Fig. 3 is only an exemplary illustration, and in practical applications, the number of trusted computing nodes may also be two or more, and correspondingly, the data may also be split into two privacy shards or more Multiple privacy shards and more.
- the number of proxy nodes and the number of trusted computing nodes may not be equal, for example, each trusted computing node corresponds to one proxy node.
- the trusted computing node and the proxy node can also be combined into one, so that the judgment of the code hash certificate is performed by the data provider U, etc., which is not limited in this specification.
- Fig. 4 shows an interaction diagram of a method for uploading encrypted data according to an embodiment.
- the method may at least include the following steps.
- Step 402 the first provider splits the first private data to be stored into several private slices.
- the number of privacy shards can be determined in combination with the number of trusted computing nodes participating in multi-party secure computing. For example, in the scenarios shown in Figure 2 or Figure 3, assuming that TEEX, TEEY, and TEEZ all participate in multi-party security calculations, the first private data can be split into three private slices, denoted as: U1, U2, and U3.
- Step 404 the first provider generates corresponding encryption keys for each privacy slice.
- the first provider correspondingly generates three random encryption keys: K1, K2 and K3 for the above three privacy shards: U1, U2 and U3.
- step 406 the first provider uses each encryption key to correspondingly encrypt each privacy segment, and provides each obtained encrypted segment to the trusted computing center.
- K1 to encrypt U1 to obtain ENC(K1,U1) use K2 to encrypt U2 to obtain ENC(K2,U2), and use K3 to encrypt U3 to obtain ENC(K3,U3).
- the first provider may also provide the key identifiers corresponding to the encryption keys to the first provider.
- the key identifier of any encryption key may be obtained through a hash operation, so that the key identifier is the hash value of the corresponding encryption key.
- Step 408 the trusted computing center stores each encrypted segment in the data storage center.
- the trusted computing center When the trusted computing center also receives each key identification, it can store each encrypted slice and each key identification correspondingly.
- the corresponding relationship may be as shown in Table 1.
- Table 1 may also include the identifier of the data provider and the identifier of the data, etc., which are not limited in this specification.
- the first provider can control the computing logic used by the trusted computing center in two ways.
- the first type is the autonomous control level.
- the second is the post-event accountability level.
- the implementation scenario shown in FIG. 2 is taken as an example to describe the first way (ie, the autonomous control level).
- Fig. 5 shows an interaction diagram of a method for obtaining data authorization according to an embodiment. As shown in Fig. 5, the method may at least include the following steps.
- any first computing node among the trusted computing nodes receives an authentication request from a first provider.
- the first computing node here may be a computing module or a computing device that has a certain isolation capability to ensure computing security.
- the first computing node is implemented as a trusted enclave. More specifically, the trusted enclave enclave is implemented using technologies such as SGX or Trust Zone, for example. In other examples, the first computing node may be implemented in other forms, such as virtual machines or running instances using security isolation means.
- the above-mentioned first computing node may be any one of TEEX, TEEY, and TEEZ.
- Step 504 return the authentication information to the first provider, including at least the first code hash of the first computing logic running in the first computing node.
- the first calculation logic here is the program code, which can be used, for example, to calculate the average, calculate the maximum and minimum values, or calculate the square difference and the like. Normally, if any line of code in the first calculation logic changes, its corresponding code hash will be different, so based on the first code hash, it can be judged whether the first calculation logic meets expectations.
- the above authentication information may also include signature information of the first computing node, a public key in a public-private key pair generated by the first computing node, and the like.
- the signature information can be obtained through various signature methods, such as a hash algorithm, an encryption algorithm, and the like.
- the first provider may perform trusted authentication on the first computing node based on the authentication information.
- the trusted authentication here may include verifying the signature information and/or verifying the public key in the public-private key pair. key and so on.
- the first provider may also perform a correctness check on the first code hash.
- the correctness check may include comparing the first code hash with the pre-stored target calculation logic that has been reviewed by the first provider. The target code hashes are compared, and if the comparison is consistent, the first code hash passes the correctness check, otherwise it fails.
- the first provider compares the received first code hash with the pre-saved target code hash, which can realize real-time review of the first calculation logic, and then can realize the calculation of the trusted computing center. Logic to constrain or control.
- Step 506 receiving the channel establishment request sent by the first provider after determining that the first computing node has passed the trusted authentication and the first code hash has passed the correctness verification.
- Step 508 Establish a first trusted channel with the first provider according to the channel establishment request.
- the first trusted channel here is usually also called an encrypted channel, which is usually established based on a common connection.
- Step 510 through the first trusted channel, receive the target encryption key among the encryption keys corresponding to several encrypted segments, so as to obtain the calculation method based on the first calculation logic for the target encrypted segment corresponding to the target encrypted key. permission.
- the target encryption key it receives may be K1; and when the first computing node is TEEY, the target encryption key it receives may be K2.
- the first computing node may also determine a second computing node that belongs to the same role category as the first computing node from several trusted computing nodes.
- the target encryption key is shared with the second computing node, so that the second computing node obtains the authority to perform calculation on the target encrypted slice based on the first computing logic. This can avoid the problem that the first provider needs to send the encryption key to each trusted computing node, thereby wasting communication resources.
- the first computing node may encrypt the target encryption key with a dedicated key corresponding to the first computing node and the first computing logic.
- the data storage center can record the corresponding relationship between each trusted computing node and its encrypted encryption key.
- the first computing node described in this specification provides a Seal capability, where the Seal capability refers to encryption using a trusted computing node's private key. This private key is inaccessible outside the TEE.
- the above-mentioned exclusive secret key is usually related to the device environment (such as CPU and memory) and computing logic, that is to say, the corresponding exclusive secret key is also inconsistent with the different device environment or computing logic. This can ensure that when each trusted computing node runs the same computing logic, each trusted computing node can only decrypt the encryption key encrypted by it, and then only obtain the privacy shard corresponding to the encryption key for calculation permissions, thus ensuring data security.
- the first computing node may not store it in the data storage center, but directly keep it in the memory.
- each trusted computing node modifies the computing logic, it repeats step 502 to step 510 to obtain data authorization for the current computing logic.
- each trusted computing node obtains data authorization, it can jointly perform calculations for their respective authorized privacy slices, and the calculation process will be described below.
- the first computing node may receive a computing request from the management center.
- the encrypted target encryption key is read from the data storage center, and the decryption key corresponding to the exclusive key is used to key to decrypt it to obtain the target encryption key.
- the target encryption key Based on the key identification of the target encryption key, read the corresponding target encrypted fragment from the data storage center, and use the target encryption key to decrypt it to obtain the corresponding target plaintext fragment.
- the target plaintext fragment and other plaintext fragments are calculated.
- the first computing node may read the encrypted target encryption key from the data storage center according to the corresponding node identifier.
- the first computing node may also obtain the identities of other trusted computing nodes in some way, and then obtain the encrypted encryption key uploaded by other trusted computing nodes, but because the first computing node cannot know The private key of other trusted computing nodes, so it cannot be decrypted. That is to say, in this solution, the first computing node uses a dedicated key to encrypt the corresponding target encryption key, which can ensure the security of the encryption key.
- the above key identification of the target encryption key may be calculated by the first computing node for the target encryption key by using a hash algorithm agreed with the first provider.
- the first computing node may receive a computing request from the management center.
- the corresponding target encrypted segment is read from the data storage center, and is decrypted by using the target encryption key to obtain the corresponding target plaintext segment.
- the target plaintext fragment and other plaintext fragments are calculated.
- TEEX can read the corresponding encrypted fragment ENC(U1, K1) from Table 1 based on K1’s key identifier K1_ID, and then use K1 to its Decrypt to obtain the privacy slice U1.
- TEEY can be decrypted to obtain the private segment U2
- TEEZ can be decrypted to obtain the private segment U3.
- TEEX, TEEY and TEEZ can jointly calculate the privacy slices U1, U2 and U3 based on the first calculation logic.
- TEEX, TEEY and TEEZ also obtain the encryption key of the privacy slice of other data providers, each TEE can also perform calculations based on secret sharing.
- the data provider interacts with the trusted computing center in real time to review the computing logic used by the trusted computing center, that is, to restrict the data used by the trusted computing center. Calculation logic, whereby the data security of the data provider can be ensured.
- the second way ie, the level of post-event accountability
- the data provider and the trusted computing center can agree on the computing logic allowed by the contract, so that the trusted computing center does not need to interact with the data provider when changing the computing logic, but requires the trusted computing center to use Calculation logic can be tracked in real time by data providers. The details will be described below.
- Fig. 6 shows an interaction diagram of a method for obtaining data authorization according to another embodiment. As shown in FIG. 6, the method may at least include the following steps.
- Step 602 any first proxy node among the proxy nodes obtains the target encryption key among the encryption keys corresponding to several encrypted slices from the first provider.
- the first provider may perform credible authentication and correctness verification of the code hash on the first proxy node.
- the program code corresponding to the code hash here refers to the verification logic running in the first proxy node.
- the verification logic is used to determine whether the first code hash of the first computing logic running in the corresponding first computing node has been certified.
- step 502 and step 504 For the specific methods of the above-mentioned trusted authentication and correctness verification, refer to the above-mentioned step 502 and step 504, and this description will not repeat them here.
- the first provider can establish a trusted channel with the first proxy node, and send the target encryption key to the first proxy node through the trusted channel .
- the first provider can establish trusted channels with other proxy nodes and send encryption keys to other proxy nodes.
- the first provider can send the encryption keys K1, K2 and K3. Therefore, when the first proxy node is TEEA, the target encryption key it receives is K1; and when the first proxy node is TEEB, the target encryption key it receives is K2.
- the first proxy node may also encrypt the target encryption key by using a dedicated key corresponding to the first proxy node and verification logic.
- the data storage center can record the corresponding relationship between each agent node and its encrypted encryption key.
- the first proxy node may not store it in the data storage center, but directly keep it in memory.
- Step 604 the first proxy node sends an authentication request to the corresponding first computing node.
- the first proxy node when it is TEEA, it may send an authentication request to the corresponding first computing node TEEX.
- Step 606 the first proxy node receives the authentication information returned by the first computing node, which at least includes the first code hash of the first computing logic running in the first computing node.
- the first calculation logic here is the program code, which can be used, for example, to calculate the average, calculate the maximum and minimum values, or calculate the square difference and the like. Normally, if any line of code in the first calculation logic changes, its corresponding code hash will be different, so based on the first code hash, it can be judged whether the first calculation logic meets expectations.
- the above authentication information may also include signature information of the first computing node, a public key in a public-private key pair generated by the first computing node, and the like.
- the signature information can be obtained through various signature methods, such as a hash algorithm, an encryption algorithm, and the like.
- Step 608 based on the authentication information, the first proxy node performs credible authentication on the first computing node, and judges whether the first code hash has been stored.
- the credible authentication here may include verifying the signature information and/or verifying the public key in the public-private key pair, and so on.
- the foregoing determination of whether the first code hash has been deposited may include obtaining a pre-stored certificate from the first computing node, which includes at least the second code hash of the first computing logic.
- the first code hash is compared with the second code hash, and if the comparison is consistent, it is determined that the first code hash has been stored.
- the process for the first computing node to obtain the certificate deposit certificate may be: a third party (can be any device or role) or an administrator approved by the trusted computing center provides the second code hash of the first computing logic To the certificate depository center, and receive the certificate deposit certificate returned by the certificate deposit center, the certificate deposit certificate contains the second code hash. Afterwards, a third party or an administrator approved by the trusted computing center provides the deposit credential to the first computing node, and the first computing node stores it.
- a third party can be any device or role
- an administrator approved by the trusted computing center provides the second code hash of the first computing logic To the certificate depository center, and receive the certificate deposit certificate returned by the certificate deposit center, the certificate deposit certificate contains the second code hash.
- a third party or an administrator approved by the trusted computing center provides the deposit credential to the first computing node, and the first computing node stores it.
- Step 610 when the trusted authentication passes and the first code hash has been stored, the first proxy node establishes a first trusted channel with the first computing node.
- the first trusted channel here is usually also called an encrypted channel, which is usually established based on a common connection.
- Step 612 the first proxy node sends the target encryption key to the first computing node through the first trusted channel, so that the first computing node obtains the target encrypted segment corresponding to the target encryption key based on the first computing logic. computing permissions.
- the first proxy node can query the correspondence between each proxy node and the respective encrypted encryption key, so as to read the target encryption key encrypted by it from the data storage center, And use the decryption key corresponding to the exclusive key to decrypt it to obtain the target encryption key in plaintext. Thereafter, the target encryption key is provided to the first computing node.
- the first proxy node can directly read the target encryption key from the memory and provide it to the first computing node.
- the target encryption key K1 can be sent to the first calculation node TEEX; and when the first proxy node is TEEB, the target encryption key K2 can be sent to to the first computing node TEEY.
- the first computing node may share it with other trusted computing nodes belonging to the same role category as the first computing node.
- the first computing node can keep the target encryption key in memory, or store the target encryption key in the data storage center.
- the specific storage method refer to the storage method of the first agent node for the target encryption key. This specification I won't repeat them here.
- the data provider distributes each encryption key to the proxy node in advance, so that in the process of obtaining data authorization, the amount of transmission between the proxy node and the trusted computing node is different from that of the data provider's data.
- the amount is irrelevant, and is usually a small constant, so that this scheme can save the cost of using data for the data provider.
- each trusted computing node obtains data authorization, it can jointly perform calculations for their respective authorized privacy slices, and the calculation process will be described below.
- the first computing node may receive a computing request from the management center.
- the calculation request based on the key identification of the target encryption key received from the first proxy node, read the corresponding target encrypted segment from the data storage center, and use the target encryption key to decrypt it, and obtain The corresponding target plaintext fragment.
- the target plaintext fragment and other plaintext fragments are calculated.
- the other plaintext fragments here can be obtained by decrypting the corresponding encrypted fragments by using the encryption key received by other trusted computing nodes.
- the above description is for the case where the target encryption key is directly stored in memory.
- the first computing node stores the target encryption key in the data storage center, first read the encrypted target encryption key from the data storage center and decrypt it, and then based on the key identifier of the target encryption key obtained through decryption, Read the target encrypted shard.
- TEEX can read the corresponding encrypted fragment ENC(U1, K1) from Table 1 based on K1’s key identifier K1_ID, and then use K1 to its Decrypt to obtain the privacy slice U1.
- TEEY can be decrypted to obtain the private fragment U2
- TEEZ can be decrypted to obtain the private fragment U3.
- TEEX, TEEY and TEEZ can jointly calculate the privacy slices U1, U2 and U3 based on the first calculation logic.
- TEEX, TEEY and TEEZ also obtain the encryption key of the privacy slice of other data providers, each TEE can also perform calculations based on secret sharing.
- the first provider does not conduct a real-time review of the computing logic used by the trusted computing center, but judges whether the code hash is stored as evidence, and the review process is performed after the fact Yes, the specific process of the post-mortem review is as follows:
- the first provider obtains the second code hash stored by the first computing node from the certificate deposit center, and sends a data acquisition request to the code storage center, which at least includes the above-mentioned second code hash.
- the code storage center provides the corresponding first computing logic to the first provider, so that the first provider can conduct a legality review on the first computing logic.
- the first provider may conduct the aforementioned legality review based on the contract it signed with the Trusted Computing Center.
- the contract is used to record the calculation logic that can be negotiated by both parties.
- the data provider can review the computing logic used by the trusted computing center afterwards, so that the trusted computing center only needs to upload data fragments on the data provider
- Two interactions are performed with the secret key, and then when the calculation logic is changed in the trusted computing center (that is, each trusted computing node), only the interaction between the proxy node and the trusted computing node is sufficient, that is, only in the trusted computing node Communication is carried out within the computing center, and the interaction within the trusted computing center is usually based on a high-speed network, which can greatly improve the efficiency of data authorization and achieve the purpose of saving communication resources.
- the proxy node can obtain the encryption key of the data provider.
- the proxy node will only send the encryption key to the trusted computing node after verifying the certificate of the trusted computing node and the code hash of the trusted computing node is correct.
- a trusted computing node In order to obtain a certificate of deposit, a trusted computing node must go to the certificate deposit center to store its own code hash certificate. Then, the data provider can obtain the code hashes of all trusted computing nodes from the certificate depository center, and can also know whether the computing logic conforms to the original agreement.
- an embodiment of this specification further provides a device for obtaining data authorization, which is set at any first computing node in the trusted computing center.
- the trusted computing center includes a data storage center and several trusted computing nodes, and the data storage center maintains at least several encrypted slices of the first private data of the first provider.
- the device may include:
- the receiving unit 702 is configured to receive an authentication request from the first provider.
- a sending unit 704 configured to return authentication information to the first provider, at least including the first code hash of the first computing logic running in the first computing node.
- the receiving unit 702 is further configured to receive the channel establishment request sent by the first provider after determining that the first computing node has passed the trusted authentication and the first code hash has passed the correctness verification.
- the correctness verification includes comparing the first code hash with the pre-stored target code hash of the target computing logic reviewed by the first provider.
- the establishment unit 706 is configured to establish a first trusted channel with the first provider according to the channel establishment request.
- the receiving unit 702 is further configured to receive, through the first trusted channel, the target encryption key among the encryption keys corresponding to several encrypted slices, so as to obtain the target encryption key corresponding to the target encryption key based on the first calculation logic. permission to perform calculations on slices.
- the device may also include:
- the encryption unit 708 is configured to encrypt the target encryption key by using the exclusive key corresponding to the first computing node and the first computing logic.
- the storage unit 710 is configured to store the encrypted target encryption key in the data storage center.
- the above-mentioned trusted computing center further includes a management center, which is used to manage several trusted computing nodes.
- the above-mentioned data storage center also maintains the identifiers of each key corresponding to several encrypted slices.
- the device also includes: a reading unit 712 and a computing unit 714 .
- the receiving unit 702 is also configured to receive a calculation request from the management center.
- the reading unit 712 is configured to read the encrypted target encryption key from the data storage center in response to the calculation request, and decrypt it with a decryption key corresponding to the exclusive key to obtain the target encryption key.
- the reading unit 712 is further configured to read the corresponding target encrypted fragment from the data storage center based on the key identification of the target encryption key, and decrypt it by using the target encryption key to obtain the corresponding target plaintext fragment.
- the calculation unit 714 is configured to calculate the target plaintext fragment and other plaintext fragments based on the first calculation logic.
- the device may also include:
- the determining unit 716 is configured to determine a second computing node that belongs to the same role classification as the first computing node from among several trusted computing nodes.
- the sharing unit 718 is configured to share the target encryption key with the second computing node, so that the second computing node obtains the authority to perform computation on the target encrypted slice based on the first computing logic.
- the device for obtaining data authorization provided by an embodiment of this specification can obtain corresponding data authorization from a data provider while saving communication costs.
- an embodiment of this specification further provides a system for obtaining data authorization.
- the system includes a data storage center 802 , several trusted computing nodes 804 and corresponding proxy nodes 806 .
- the data storage center 802 maintains at least several encrypted slices of the first private data of the first provider.
- Each proxy node 806 is configured to obtain each encryption key corresponding to several encrypted slices from the first provider.
- Any first proxy node 806 among the proxy nodes 806 is configured to send an authentication request to the corresponding first computing node 804 and receive the authentication information returned by the first computing node 804, which at least includes the A first code hash of the first computational logic.
- the first proxy node 806 is further configured to perform credible authentication on the first computing node 804 based on the authentication information, and determine whether the first code hash has been stored.
- the first proxy node 806 is specifically used for:
- the first code hash is compared with the second code hash, and if the comparison is consistent, it is determined that the first code hash has been stored.
- the certificate of deposit is received by the third party or administrator from the deposit center and forwarded to the first computing node 804 after the third party or administrator approved by the system provides the second code hash to the deposit center.
- the first proxy node 806 is further configured to establish a first trusted channel with the first computing node 804 when the trusted authentication passes and the first code hash has been stored.
- the first proxy node 806 is further configured to send the received target encryption key to the first computing node 804 through the first trusted channel.
- the first calculation node 804 is configured to obtain permission to perform calculations on the target encryption slice corresponding to the target encryption key based on the first calculation logic.
- system further includes a code storage center, wherein at least the first calculation logic is maintained;
- the code storage center is configured to receive a data acquisition request from the first provider, which at least includes the second code hash obtained by the first provider from the certificate storage center.
- the code storage center is further configured to provide the first computing logic to the first provider in response to the data acquisition request, so that the first provider can check the legality of the first computing logic.
- the system for obtaining data authorization provided by an embodiment of this specification can obtain corresponding data authorization from a data provider while saving communication costs.
- an embodiment of this specification further provides a device for obtaining data authorization, which is set at any first proxy node in the trusted computing center.
- the trusted computing center includes a data storage center, several trusted computing nodes and corresponding agent nodes.
- the data storage center maintains at least several encrypted slices of the first private data of the first provider.
- the device includes:
- the obtaining unit 902 is configured to obtain a target encryption key among the encryption keys corresponding to several encrypted slices from the first provider.
- a sending unit 904 configured to send an authentication request to a corresponding first computing node.
- the receiving unit 906 is configured to receive the authentication information returned by the first computing node, which at least includes the first code hash of the first computing logic running in the first computing node.
- the judging unit 908 is configured to perform credible authentication on the first computing node based on the authentication information, and judge whether the first code hash has been stored.
- the establishment unit 910 is configured to establish a first trusted channel with the first computing node when the trusted authentication passes and the first code hash has been stored.
- the sending unit 904 is further configured to send the target encryption key to the first computing node through the first trusted channel, so that the first computing node obtains the target encryption segment corresponding to the target encryption key based on the first computing logic. computing permissions.
- the device for obtaining data authorization provided by an embodiment of this specification can obtain corresponding data authorization from a data provider while saving communication costs.
- a computer-readable storage medium on which a computer program is stored.
- the computer program is executed in a computer, the computer is made to execute the computer program described in conjunction with any one of FIGS. 4 to 6 . described method.
- a computing device including a memory and a processor, wherein executable code is stored in the memory, and when the processor executes the executable code, the implementation in conjunction with FIG. 4 to FIG. 6 is realized. any one of the methods described.
- each embodiment in this specification is described in a progressive manner, the same and similar parts of each embodiment can be referred to each other, and each embodiment focuses on the differences from other embodiments.
- the description is relatively simple, and for relevant parts, please refer to part of the description of the method embodiment.
- the steps of the methods or algorithms described in conjunction with the disclosure of this specification can be implemented in the form of hardware, or can be implemented in the form of a processor executing software instructions.
- the software instructions can be composed of corresponding software modules, and the software modules can be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, mobile hard disk, CD-ROM or any other form of storage known in the art medium.
- An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium.
- the storage medium may also be a component of the processor.
- the processor and storage medium can be located in the ASIC.
- the ASIC may be located in the server.
- the processor and the storage medium can also exist in the server as discrete components.
- the functions described in the present invention may be implemented by hardware, software, firmware or any combination thereof.
- the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
- Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
- a storage media may be any available media that can be accessed by a general purpose or special purpose computer.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
| ENC(K1,U1) | K1_ID |
| ENC(K2,U2) | K2_ID |
| ENC(K3,U3) | K3_ID |
Claims (22)
- 一种获取数据授权的方法,由可信计算中心执行;所述可信计算中心包括数据存储中心和若干可信计算节点,所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法包括:所述若干可信计算节点中任意的第一计算节点,从所述第一提供方接收认证请求;向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈希通过正确性验证后发送的通道建立请求;根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
- 根据权利要求1所述的方法,还包括:所述第一计算节点利用对应于所述第一计算节点以及所述第一计算逻辑的专属秘钥,加密所述目标加密秘钥;将经过加密的目标加密秘钥存储至所述数据存储中心。
- 根据权利要求2所述的方法,其中,所述可信计算中心还包括管理中心,所述管理中心用于管理所述若干可信计算节点;所述数据存储中心还维护有所述若干加密分片对应的各秘钥标识;所述方法还包括:所述第一计算节点从所述管理中心接收计算请求;响应于所述计算请求,从所述数据存储中心读取所述经过加密的目标加密秘钥,并利用对应于所述专属秘钥的解密秘钥对其进行解密,得到所述目标加密秘钥;基于所述目标加密秘钥的秘钥标识,从所述数据存储中心读取对应的目标加密分片,并利用所述目标加密秘钥对其进行解密,得到对应的目标明文分片;基于所述第一计算逻辑,对所述目标明文分片和其它明文分片进行计算。
- 根据权利要求1所述的方法,还包括:所述第一计算节点从所述若干可信计算节点中,确定出与所述第一计算节点属于同一角色分类的第二计算节点;将所述目标加密秘钥共享给所述第二计算节点,以使得所述第二计算节点获得基 于所述第一计算逻辑,对所述目标加密分片进行计算的权限。
- 根据权利要求1所述的方法,其中,所述正确性验证包括,将所述第一代码哈希与预先存储的、经过所述第一提供方审查的目标计算逻辑的目标代码哈希进行比对。
- 一种获取数据授权的方法,由可信计算中心执行;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法包括:所述各代理节点从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;所述各代理节点中任意的第一代理节点向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;所述第一代理节点基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;在所述可信认证通过,且所述第一代码哈希已存证的情况下,所述第一代理节点建立与所述第一计算节点之间的第一可信通道;所述第一代理节点通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
- 根据权利要求6所述的方法,其中,所述判断所述第一代码哈希是否已存证,包括:从所述第一计算节点获取其预先存储的存证凭证,其中至少包括所述第一计算逻辑的第二代码哈希;将所述第一代码哈希与所述第二代码哈希进行比对,若比对一致,则确定所述第一代码哈希已存证。
- 根据权利要求7所述的方法,其中,所述存证凭证是在所述可信计算中心认可的第三方或管理员将所述第二代码哈希提供给存证中心后,由所述第三方或管理员从所述存证中心接收并转发至所述第一计算节点的。
- 根据权利要求8所述的方法,其中,所述可信计算中心还包括代码存储中心,其中至少维护有所述第一计算逻辑;所述方法还包括:所述代码存储中心从所述第一提供方接收数据获取请求,其中至少包括所述第一 提供方从所述存证中心获取的所述第二代码哈希;响应于所述数据获取请求,所述代码存储中心将所述第一计算逻辑提供给所述第一提供方,以供所述第一提供方对所述第一计算逻辑进行合法性审查。
- 一种获取数据授权的方法,涉及可信计算中心;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法通过所述各代理节点中任意的第一代理节点执行,包括:从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;向对应的第一计算节点发送认证请求;接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
- 一种获取数据授权的装置,设置于可信计算中心中任意的第一计算节点;所述可信计算中心包括数据存储中心和若干可信计算节点,所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述装置包括:接收单元,用于从所述第一提供方接收认证请求;发送单元,用于向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;所述接收单元,还用于接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈希通过正确性验证后发送的通道建立请求;建立单元,用于根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;所述接收单元,还用于通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥 对应的目标加密分片进行计算的权限。
- 根据权利要求11所述的装置,还包括:加密单元,用于利用对应于所述第一计算节点以及所述第一计算逻辑的专属秘钥,加密所述目标加密秘钥;存储单元,用于将经过加密的目标加密秘钥存储至所述数据存储中心。
- 根据权利要求12所述的装置,其中,所述可信计算中心还包括管理中心,所述管理中心用于管理所述若干可信计算节点;所述数据存储中心还维护有所述若干加密分片对应的各秘钥标识;所述装置还包括:读取单元和计算单元;所述接收单元,还用于从所述管理中心接收计算请求;所述读取单元,用于响应于所述计算请求,从所述数据存储中心读取所述经过加密的目标加密秘钥,并利用对应于所述专属秘钥的解密秘钥对其进行解密,得到所述目标加密秘钥;所述读取单元,还用于基于所述目标加密秘钥的秘钥标识,从所述数据存储中心读取对应的目标加密分片,并利用所述目标加密秘钥对其进行解密,得到对应的目标明文分片;所述计算单元,用于基于所述第一计算逻辑,对所述目标明文分片和其它明文分片进行计算。
- 根据权利要求11所述的装置,还包括:确定单元,用于从所述若干可信计算节点中,确定出与所述第一计算节点属于同一角色分类的第二计算节点;共享单元,用于将所述目标加密秘钥共享给所述第二计算节点,以使得所述第二计算节点获得基于所述第一计算逻辑,对所述目标加密分片进行计算的权限。
- 根据权利要求11所述的装置,其中,所述正确性验证包括,将所述第一代码哈希与预先存储的、经过所述第一提供方审查的目标计算逻辑的目标代码哈希进行比对。
- 一种获取数据授权的系统,包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述各代理节点,用于从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;所述各代理节点中任意的第一代理节点,用于向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;所述第一代理节点,还用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;所述第一代理节点,还用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;所述第一代理节点,还用于通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;所述第一计算节点,用于获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
- 根据权利要求16所述的系统,其中,所述第一代理节点具体用于:从所述第一计算节点获取其预先存储的存证凭证,其中至少包括所述第一计算逻辑的第二代码哈希;将所述第一代码哈希与所述第二代码哈希进行比对,若比对一致,则确定所述第一代码哈希已存证。
- 根据权利要求17所述的系统,其中,所述存证凭证是在所述系统认可的第三方或管理员将所述第二代码哈希提供给存证中心后,由所述第三方或管理员从所述存证中心接收并转发至所述第一计算节点的。
- 根据权利要求18所述的系统,其中,所述系统还包括代码存储中心,其中至少维护有所述第一计算逻辑;所述代码存储中心,用于从所述第一提供方接收数据获取请求,其中至少包括所述第一提供方从所述存证中心获取的所述第二代码哈希;所述代码存储中心,还用于响应于所述数据获取请求,将所述第一计算逻辑提供给所述第一提供方,以供所述第一提供方对所述第一计算逻辑进行合法性审查。
- 一种获取数据授权的装置,设置于可信计算中心中任意的第一代理节点;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述装置包括:获取单元,用于从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;发送单元,用于向对应的第一计算节点发送认证请求;接收单元,用于接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;判断单元,用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;建立单元,用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;所述发送单元,还用于通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
- 一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项所述的方法。
- 一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22909465.1A EP4343597B1 (en) | 2021-12-23 | 2022-10-17 | Method, apparatus and system for acquiring data authorization |
| US18/400,402 US20240135008A1 (en) | 2021-12-23 | 2023-12-29 | Methods, apparatuses and systems for obtaining data authorization |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111585885.2A CN113987554B (zh) | 2021-12-23 | 2021-12-23 | 获取数据授权的方法、装置及系统 |
| CN202111585885.2 | 2021-12-23 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/400,402 Continuation US20240135008A1 (en) | 2021-12-23 | 2023-12-29 | Methods, apparatuses and systems for obtaining data authorization |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023116147A1 true WO2023116147A1 (zh) | 2023-06-29 |
Family
ID=79734125
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/125724 Ceased WO2023116147A1 (zh) | 2021-12-23 | 2022-10-17 | 获取数据授权的方法、装置及系统 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240135008A1 (zh) |
| EP (1) | EP4343597B1 (zh) |
| CN (1) | CN113987554B (zh) |
| WO (1) | WO2023116147A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116561820A (zh) * | 2023-07-03 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 可信数据处理方法及相关装置 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113987554B (zh) * | 2021-12-23 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
| CN114726512B (zh) * | 2022-03-08 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
| CN114944960B (zh) * | 2022-06-20 | 2023-07-25 | 成都卫士通信息产业股份有限公司 | 一种密码应用方法、装置、设备及存储介质 |
| CN115396091B (zh) * | 2022-08-25 | 2025-05-13 | 太保科技有限公司 | 一种基于sgx技术的安全计算方法及装置 |
| CN115766003B (zh) * | 2022-11-15 | 2025-11-07 | 太保科技有限公司 | 一种秘密信息恢复的方法、装置、设备及存储介质 |
| CN115550070B (zh) * | 2022-11-29 | 2023-05-16 | 粤港澳大湾区数字经济研究院(福田) | 一种多方协作方法及相关装置 |
| CN115913545B (zh) * | 2022-12-08 | 2026-02-27 | 联想(北京)有限公司 | 一种处理方法和电子设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110677240A (zh) * | 2019-08-29 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 通过证书签发提供高可用计算服务的方法及装置 |
| CN110750803A (zh) * | 2019-10-18 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | 数据提供和融合的方法及装置 |
| WO2020098377A1 (zh) * | 2018-11-16 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
| CN111737724A (zh) * | 2020-08-26 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、智能设备及存储介质 |
| CN113987554A (zh) * | 2021-12-23 | 2022-01-28 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7263608B2 (en) * | 2003-12-12 | 2007-08-28 | Lenovo (Singapore) Pte. Ltd. | System and method for providing endorsement certificate |
| US8788805B2 (en) * | 2008-02-29 | 2014-07-22 | Cisco Technology, Inc. | Application-level service access to encrypted data streams |
| CN109493042A (zh) * | 2018-10-24 | 2019-03-19 | 南京邮电大学 | 一种拥有访问控制功能的智能合约可信存证方法和系统 |
| CN110034924B (zh) * | 2018-12-12 | 2022-05-13 | 创新先进技术有限公司 | 一种数据处理方法和装置 |
| CN110011956B (zh) * | 2018-12-12 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
| CN111064569B (zh) * | 2019-12-09 | 2021-04-20 | 支付宝(杭州)信息技术有限公司 | 可信计算集群的集群密钥获取方法及装置 |
| US11212265B2 (en) * | 2020-01-09 | 2021-12-28 | Cisco Technology, Inc. | Perfect forward secrecy (PFS) protected media access control security (MACSEC) key distribution |
| CN111222165B (zh) * | 2020-01-10 | 2022-09-23 | 北京百度网讯科技有限公司 | 基于区块链的多方计算方法、装置、设备和介质 |
| CN111291381A (zh) * | 2020-01-17 | 2020-06-16 | 山东超越数控电子股份有限公司 | 一种基于tcm构建信任链的方法、设备及介质 |
| US11627116B2 (en) * | 2020-03-02 | 2023-04-11 | Fortanix, Inc. | Secure computation of multiparty data |
| CN113449292B (zh) * | 2020-03-27 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 一种可信应用的运行方法、装置及设备 |
-
2021
- 2021-12-23 CN CN202111585885.2A patent/CN113987554B/zh active Active
-
2022
- 2022-10-17 EP EP22909465.1A patent/EP4343597B1/en active Active
- 2022-10-17 WO PCT/CN2022/125724 patent/WO2023116147A1/zh not_active Ceased
-
2023
- 2023-12-29 US US18/400,402 patent/US20240135008A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020098377A1 (zh) * | 2018-11-16 | 2020-05-22 | 阿里巴巴集团控股有限公司 | 可信应用程序的远程证明方法及装置、电子设备 |
| CN110677240A (zh) * | 2019-08-29 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 通过证书签发提供高可用计算服务的方法及装置 |
| CN110750803A (zh) * | 2019-10-18 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | 数据提供和融合的方法及装置 |
| CN111737724A (zh) * | 2020-08-26 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、智能设备及存储介质 |
| CN113987554A (zh) * | 2021-12-23 | 2022-01-28 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4343597A4 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116561820A (zh) * | 2023-07-03 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 可信数据处理方法及相关装置 |
| CN116561820B (zh) * | 2023-07-03 | 2024-04-02 | 腾讯科技(深圳)有限公司 | 可信数据处理方法及相关装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240135008A1 (en) | 2024-04-25 |
| CN113987554A (zh) | 2022-01-28 |
| CN113987554B (zh) | 2022-04-08 |
| EP4343597A4 (en) | 2024-12-18 |
| EP4343597A1 (en) | 2024-03-27 |
| EP4343597B1 (en) | 2026-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023116147A1 (zh) | 获取数据授权的方法、装置及系统 | |
| JP7544357B2 (ja) | セキュア・ダイナミック閾値署名スキームのための方法、記憶媒体及び電子デバイス | |
| US11575501B2 (en) | Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator | |
| CN107959567B (zh) | 数据存储方法、数据获取方法、装置及系统 | |
| JP6547079B1 (ja) | 登録・認可方法、装置及びシステム | |
| WO2021179743A1 (zh) | 区块链中账户隐私信息的查询方法及装置 | |
| US20210111875A1 (en) | Secure shared key establishment for peer to peer communications | |
| WO2021073170A1 (zh) | 数据提供和融合的方法及装置 | |
| CN108390876A (zh) | 支持撤销外包可验证多授权中心访问控制方法、云服务器 | |
| CN113079132B (zh) | 海量物联网设备认证方法、存储介质、信息数据处理终端 | |
| WO2019110018A1 (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
| Kravitz | Transaction immutability and reputation traceability: Blockchain as a platform for access controlled iot and human interactivity | |
| Puthal et al. | DPBSV--an efficient and secure scheme for big sensing data stream | |
| CN115834067A (zh) | 一种边云协同场景中密文数据共享方法 | |
| US11496287B2 (en) | Privacy preserving fully homomorphic encryption with circuit verification | |
| Liu et al. | A cross-domain authentication scheme for vehicular networks based on mobile edge computing | |
| CN115913677A (zh) | 一种基于区块链的协作边缘存储数据隐私保护系统及方法 | |
| CN114866244A (zh) | 基于密文分组链接加密的可控匿名认证方法、系统及装置 | |
| Song et al. | A group key exchange and secure data sharing based on privacy protection for federated learning in edge‐cloud collaborative computing environment | |
| CN114826702B (zh) | 数据库访问密码加密方法、装置和计算机设备 | |
| Mishra et al. | MPoWS: Merged proof of ownership and storage for block level deduplication in cloud storage | |
| CN111865568B (zh) | 面向数据传输的存证方法、传输方法及系统 | |
| Tan et al. | A secure cloud-assisted certificateless group authentication scheme for VANETs in big data environment | |
| CN114143055A (zh) | 一种基于区块链的数据分发方法和可信溯源方法 | |
| Arya et al. | An authentication approach for data sharing in cloud environment for dynamic group |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22909465 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022909465 Country of ref document: EP Ref document number: 22909465.1 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2022909465 Country of ref document: EP Effective date: 20231222 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 11202309946Y Country of ref document: SG |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2022909465 Country of ref document: EP |