WO2023116147A1 - 获取数据授权的方法、装置及系统 - Google Patents

获取数据授权的方法、装置及系统 Download PDF

Info

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
Application number
PCT/CN2022/125724
Other languages
English (en)
French (fr)
Inventor
潘无穷
韦韬
李婷婷
钱中天
李天一
卫振强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to EP22909465.1A priority Critical patent/EP4343597B1/en
Publication of WO2023116147A1 publication Critical patent/WO2023116147A1/zh
Priority to US18/400,402 priority patent/US20240135008A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network 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

获取数据授权的方法、装置及系统
本申请要求于2021年12月23日提交中国国家知识产权局、申请号为202111585885.2、申请名称为“获取数据授权的方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本说明书一个或多个实施例涉及安全技术领域,尤其涉及一种获取数据授权的方法、装置及系统。
背景技术
密态托管计算,指的是数据提供方将数据上传至某个中心,中心对数据进行密态计算,计算的过程中不需要数据提供方参与。密态托管计算可以应用到多场景中,例如,数据提供方将数据以密态的形式提供到交易中心,交易中心以密态的形式计算出有价值的结果,再将结果售卖给数据请求方,从而数据提供方和交易中心可以对获得的收入进行分成。
在目前的密态托管计算方案中,数据提供方通常无法控制中心使用的计算逻辑。但是,数据提供方可能只希望数据被用于机器学习训练等泄露较少的逻辑,而不是希望数据被用于分位数、分段统计等泄露较多的逻辑。此外,由于中心可能会使用有意构造的、不同的逻辑对数据进行计算,并通过计算结果反推出原数据,因此,需要提供一种方案,以便能够约束可信计算中心使用的计算逻辑。
发明内容
本说明书一个或多个实施例描述了一种获取数据授权的方法、装置及系统,可以约束可信计算中心使用的计算逻辑,由此可以确保数据提供方的数据的安全性。
第一方面,提供了一种获取数据授权的方法,包括:
所述若干可信计算节点中任意的第一计算节点,从所述第一提供方接收认证请求;
向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈 希通过正确性验证后发送的通道建立请求;
根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;
通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第二方面,提供了一种获取数据授权的方法,包括:
所述各代理节点从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;
所述各代理节点中任意的第一代理节点向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
所述第一代理节点基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
在所述可信认证通过,且所述第一代码哈希已存证的情况下,所述第一代理节点建立与所述第一计算节点之间的第一可信通道;
所述第一代理节点通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;
所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第三方面,提供了一种获取数据授权的方法,包括:
从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;
向对应的第一计算节点发送认证请求;
接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第四方面,提供了一种获取数据授权的装置,包括:
接收单元,用于从所述第一提供方接收认证请求;
发送单元,用于向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
所述接收单元,还用于接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈希通过正确性验证后发送的通道建立请求;
建立单元,用于根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;
所述接收单元,还用于通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第五方面,提供了一种获取数据授权的系统,包括:
所述各代理节点,用于从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;
所述各代理节点中任意的第一代理节点,用于向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
所述第一代理节点,还用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
所述第一代理节点,还用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
所述第一代理节点,还用于通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;
所述第一计算节点,用于获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第六方面,提供了一种获取数据授权的装置,包括:
获取单元,用于从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;
发送单元,用于向对应的第一计算节点发送认证请求;
接收单元,用于接收所述第一计算节点返回的认证信息,其中至少包括所述第一 计算节点中运行的第一计算逻辑的第一代码哈希;
判断单元,用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
建立单元,用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
所述发送单元,还用于通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
第七方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一、第二或第三方面的方法。
第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一、第二或第三方面的方法。
本说明书一个或多个实施例提供的获取数据授权的方法、装置及系统,提出了两种约束可信计算中心使用的计算逻辑的方式,其中的一种方式是,数据提供方预先对计算逻辑进行审查,然后保存经过审查的计算逻辑的代码哈希。之后,数据提供方可以获取可信计算节点中运行的计算逻辑的代码哈希,并在获取的代码哈希与保存的代码哈希相一致的情况下,向可信计算节点提供数据的加密秘钥,以实现相应的数据授权。另一种方式是,可信计算节点预先在存证中心对其中运行的计算逻辑的代码哈希进行存证。之后,可信计算节点的代理节点可以获取可信计算节点中运行的计算逻辑的代码哈希,并在获取的代码哈希与存证的代码哈希相一致的情况下,向可信计算节点提供其预先从数据提供方获取的数据的加密秘钥,以实现相应的数据授权。在该种方式下,数据提供方可以从存证中心获取代码哈希,并基于该代码哈希,从可信计算中心拉取对应的计算逻辑进行合法性审查。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的TECC示意图;
图2为本说明书一个实施例披露的实施场景示意图;
图3为本说明书另一个实施例披露的实施场景示意图;
图4示出根据一个实施例的上传加密数据的方法交互图;
图5示出根据一个实施例的获取数据授权的方法交互图;
图6示出根据另一个实施例的获取数据授权的方法交互图;
图7示出根据一个实施例的获取数据授权的装置示意图;
图8示出根据一个实施例的获取数据授权的系统示意图;
图9示出根据另一个实施例的获取数据授权的装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
本说明书实施例提供的方案提出了一种中心在通过可信密态计算(TrustEd Cryptographic Computing,简称TECC)的方式,对数据提供方的数据进行计算时,对中心使用的计算逻辑进行约束的方案。
TECC是一种安全高效的密态计算方法,能够为多个数据提供方计算一个共同的结果,而不泄露任何一方的数据。可信密态计算结合了系统安全和密码学两种技术,比只使用一种技术更好地平衡了安全性和性能,最终达到了“安全性足够、性能非常快”的理想状态。
使用密码学能够构建数学上可证明安全的方案,但是这种方案的计算性能较差。因为数学的固有性质,很难提升到理想的状态,即满足大部分场景的需求。因此,我们寻求一种“足够的、但不强求数学上可证的”方案。以TEE(Trusted Execution Environment,可信执行环境)为代表构建的可信安全技术,因其安全所依赖的代码量少,安全性较常见的操作系统有大幅提升,是一种可选的思路。但是实验证明,TEE等仍然存在被攻破的可能。TECC将两者结合,使得当TEE被攻破时,安全性仍然有保障,满足绝大多数场景的需求。另一方面,TECC也继承了可信技术高性能的特点,在合理的资源膨胀下,能够达到近似明文计算的性能。
图1示出根据一个实施例的TECC示意图。图1中,数据提供方U在本地将数据随机地拆分成多个数据分片:U1、U2和U3。2)数据提供方U与多个TEE建立安全信道,并将每个数据分片分别传递给一个TEE。比如,将U1、U2和U3分别提供给TEEX、TEEY和TEEZ。其它数据提供方也可以将各自的每个数据分片分别传递给一个TEE。3)各TEE在获取到所有的数据提供方的数据分片后,执行基于秘密共享的MPC(Secure Multi-Party Computation,安全多方计算)协议,完成计算。
需要说明,在TECC中,数据提供方通过TEE技术能够确保其数据只在TEE中存在,TEE的宿主、拥有者等都无法获取数据明文(在TEE不被攻破的情况)。另一方面,每个TEE从始至终都只接触过数据分片,也就说,即便攻击者攻破一个TEE,并长期窃取或修改它,也不能获得有效信息。在实践中,这种防御程度几乎无法突破。TECC的高性能主要得益于它的公网交互非常少,一般只需要一次,在数据预先上传的情况,也可以不进行公网交互。另一个原因是,TECC支持高并发,使得其在合理的资源膨胀下,可以达到近似明文的性能。
图2为本说明书一个实施例披露的实施场景示意图。图2中,数据提供方U可以向可信计算中心上传加密数据,可信计算中心可以基于计算逻辑,对该加密数据进行计算。这里的数据提供方U可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。可信计算中心可以包括数据存储中心和三个可信计算节点,分别表示为:TEEX、TEEY以及TEEZ。此外,可信计算中心还可以包括代码存储中心以及管理中心。其中,代码存储中心用于存储各可信计算节点中运算的计算逻辑。管理中心用于管理各可信计算节点。
具体地,数据提供方U可以将对应的隐私数据拆分成三个隐私分片,分别表示为:U1、U2和U3,以及针对该三个隐私分片,对应生成三个随机的加密秘钥:K1、K2和K3。之后,数据提供方U可以使用三个加密秘钥,对应加密三个隐私分片,获得三个加密分片,分别表示为:ENC(K1,U1)、ENC(K2,U2)、ENC(K3,U3),以及将该三个加密分片分别上传至可信计算中心中的数据存储中心。
在完成各加密分片上传之后,数据提供方U可以对任一计算逻辑进行审查,然后保存经过审查的计算逻辑的代码哈希。之后,数据提供方U可以分别获取TEEX、TEEY以及TEEZ中运行的计算逻辑的代码哈希,并在获取的代码哈希与保存的代码哈希相一致的情况下,向TEEX、TEEY以及TEEZ分别提供数据的加密秘钥K1、K2和K3,从而TEEX、TEEY以及TEEZ获得基于其中运行的计算逻辑,对U1、U2和U3进行计算的权限。也即各TEE获得了对应的数据授权。
此外,TEEX、TEEY以及TEEZ还可以分别利用各自的专属秘钥,对应加密K1、K2和K3,从而得到Seal(K1)、Seal(K2)和Seal(K3),以及将各自的经过加密的加密秘钥存储到数据存储中心,以供后续进行联合计算时使用。
需要说明,由于数据提供方U在获取的代码哈希与保存的代码哈希相一致的情况下,才向各TEE提供各加密秘钥,而因为保存的代码哈希对应的计算逻辑已通过数据提供方U审查,从而可以实现针对可信计算中心使用的计算逻辑的约束或者控制。
同理,其它数据提供方也可以将各自的加密分片上传至可信计算中心,且在获取的代码哈希与保存的代码哈希相一致的情况下,向各TEE提供对应的加密秘钥,本说明书在此不复赘述。
此外,应理解,图2只是一种示例性说明,在实际应用中,TEE的数目也可以为两个或更多个,相应地,也可以将数据拆分成两个隐私分片或者更多个隐私分片等等。此外,加密秘钥的数目也可以与TEE的数目不相等,而与TEE的角色分类数目相等,从而属于同一角色分类的各TEE之间共享同一加密秘钥。
图3为本说明书另一个实施例披露的实施场景示意图。图3中,数据提供方U可以向可信计算中心上传加密数据,可信计算中心可以基于计算逻辑,对该加密数据进行计算。这里的数据提供方U可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。可信计算中心可以包括数据存储中心和三个可信计算节点以及各自的代理节点。这里的三个可信计算节点分别表示为:TEEX、TEEY以及TEEZ,以及对应的各代理节点分别表示为:TEEA、TEEB以及TEEC。此外,可信计算中心还可以包括代码存储中心以及管理中心。其中,代码存储中心用于存储各可信计算节点中运算的计算逻辑。管理中心用于管理各可信计算节点。
具体地,数据提供方U可以将对应的隐私数据拆分成三个隐私分片,分别表示为:U1、U2和U3,以及针对该三个隐私分片,对应生成三个随机的加密秘钥:K1、K2和K3。之后,数据提供方U可以使用三个加密秘钥,对应加密三个隐私分片,获得三个加密分片,分别表示为:ENC(K1,U1)、ENC(K2,U2)、ENC(K3,U3),以及将该三个加密分片分别上传至可信计算中心中的数据存储中心。
此外,数据提供方U还可以分别向TEEA、TEEB以及TEEC发送加密秘钥K1、K2和K3,从而TEEA、TEEB以及TEEC可以分别利用各自的专属秘钥,对应加密K1、K2和K3,从而得到Seal(K1)、Seal(K2)和Seal(K3),以及将各自的经过加密的加密秘钥存储到数据存储中心,以供后续对对应的可信计算节点进行数据授权时使用。以及TEEX、TEEY以及TEEZ可以预先在存证中心对其中运行的计算逻辑的代码哈希进行存证。
之后,各代理节点可以分别从对应的各可信计算节点获取其中运行的计算逻辑的代码哈希以及其存证的代码哈希,并在运行的代码哈希与存证的代码哈希相一致的情况下,向TEEX、TEEY以及TEEZ分别提供数据的加密秘钥K1、K2和K3,从而TEEX、TEEY以及TEEZ获得基于其中运行的计算逻辑,对U1、U2和U3进行计算的权限。也即各可信计算节点获得了对应的数据授权。
数据提供方U随时可以从存证中心获取各可信计算节点已存证的代码哈希,然后基于获取的代码哈希从代码存储中心拉取对应的计算逻辑进行审查。也就是说,数据提供方U是在事后对可信计算中心使用的计算逻辑进行审查的,由此也可以实现对可信计算中心使用的计算逻辑的约束或者控制。且该事后审查的方法,可以避免数据提供方与可信计算中心进行频繁的交互。
同理,其它数据提供方也可以将各自的加密分片上传至可信计算中心,且在获取的代码哈希与存证的代码哈希相一致的情况下,向各可信计算节点提供对应的加密秘钥,本说明书在此不复赘述。
应理解,图3只是一种示例性说明,在实际应用中,可信计算节点的数目也可以为两个或更多个,相应地,也可以将数据拆分成两个隐私分片或者更多个隐私分片等等。此外,代理节点的数目与可信计算节点的数目也可以不相等,比如,各可信计算节点共同对应一个代理节点。最后,也可以将可信计算节点和代理节点合并成一种,从而代码哈希存证的判断由数据提供方U来执行等等,本说明书对此不作限定。
总之,在上述两种场景下,均可实现对可信计算中心使用的计算逻辑进行约束和控制,由此可以确保数据提供方的数据的安全性。
通过上述两种实施场景可以看出,数据提供方是针对其预先上传的加密数据来进行授权的,因此以下先对数据提供方上传加密数据的方法进行说明。
图4示出根据一个实施例的上传加密数据的方法交互图。图4中,该方法至少可以包括如下步骤。
步骤402,第一提供方将待存储的第一隐私数据拆分成若干隐私分片。
在一个示例中,可以结合参与多方安全计算的各可信计算节点的数目,确定隐私分片的数目。比如,在图2或图3的场景下,假设TEEX、TEEY以及TEEZ均参与多方安全计算,那么可以将第一隐私数据拆分成三个隐私分片,分别表示为:U1、U2和U3。
步骤404,第一提供方针对各隐私分片,对应生成各加密秘钥。
比如,第一提供方针对上述三个隐私分片:U1、U2和U3,对应生成三个随机的加密秘钥:K1、K2和K3。
步骤406,第一提供方利用各加密秘钥,对应加密各隐私分片,并将得到的各加密分片提供给可信计算中心。
比如,利用K1加密U1,从而得到ENC(K1,U1),利用K2加密U2,从而得到ENC(K2,U2),以及利用K3加密U3,从而得到ENC(K3,U3)。
当然,在实际应用中,第一提供方还可以将各加密秘钥对应的各秘钥标识提供给第一提供方。在一个例子中,任一加密秘钥的秘钥标识可以是通过哈希运算得到的,从而该秘钥标识即为对应加密秘钥的哈希值。
步骤408,可信计算中心将各加密分片保存在数据存储中心。
当可信计算中心还接收到各秘钥标识时,可以对各加密分片与各秘钥标识进行对应保存。在一个例子中,该对应关系可以如表1所示。
表1
ENC(K1,U1) K1_ID
ENC(K2,U2) K2_ID
ENC(K3,U3) K3_ID
类似地,其它数据提供方也可以将各自的加密分片上传至可信计算中心进行保存。以及每个数据提供方可以上传多个数据对应的加密分片。因此,上述表1还可以包括数据提供方的标识以及数据的标识等等,本说明书对此不作限定。
在第一提供方将任意的第一隐私数据的加密分片上传至可信计算中心后,第一提供方可以通过两种方式控制可信计算中心使用的计算逻辑。第一种,自主控制级。第二种,事后追责级。
以下先以图2示出的实施场景为例,对第一种方式(即自主控制级)进行说明。
在第一种方式中,可信计算中心每次更改计算逻辑的时候,均需要与数据提供方进行交互,以获得数据授权。以下进行详细说明。
图5示出根据一个实施例的获取数据授权的方法交互图。如图5所示,该方法至少可以包括如下步骤。
步骤502,若干可信计算节点中任意的第一计算节点,从第一提供方接收认证请求。
这里的第一计算节点可以是具有一定隔离能力从而保证计算安全性的计算模块或计算设备。在一个示例中,第一计算节点实现为可信围圈enclave。更具体的,可信围圈enclave例如采用SGX或Trust Zone等技术而实现。在其它示例中,第一计算节点可以通过其他形式实现,例如采用了安全隔离手段的虚拟机或者运行实例。
以图2为例来说,上述第一计算节点可以为TEEX、TEEY以及TEEZ中的任一节点。
步骤504,向第一提供方返回认证信息,其中至少包括第一计算节点中运行的第 一计算逻辑的第一代码哈希。
这里的第一计算逻辑即为程序代码,其例如可以用于求平均、求最大最小值或者求平方差等等。通常情况下,第一计算逻辑中的任何一行代码发生变化,其对应的代码哈希就会不同,从而基于第一代码哈希,可以针对第一计算逻辑进行是否符合预期的判断。
此外,上述认证信息还可以包括第一计算节点的签名信息以及由第一计算节点生成的公私钥对中的公钥等等。其中,该签名信息可以通过各种签名方式得到,例如哈希算法、加密算法等。
第一提供方在接收到上述认证信息之后,可以基于该认证信息对第一计算节点进行可信认证,这里的可信认证可以包括,校验签名信息和/或校验公私钥对中的公钥等等。
此外,第一提供方还可以对第一代码哈希进行正确性校验,该正确性校验可以包括,将第一代码哈希与预先存储的、经过第一提供方审查的目标计算逻辑的目标代码哈希进行比对,若比对一致,则该第一代码哈希通过正确性校验,否则不通过。
应理解,这里第一提供方将接收的第一代码哈希与预先保存的目标代码哈希进行比对,可以实现对第一计算逻辑的实时审查,进而可以实现对可信计算中心使用的计算逻辑进行约束或者控制。
步骤506,接收第一提供方在确定第一计算节点通过可信认证,且第一代码哈希通过正确性验证后发送的通道建立请求。
步骤508,根据通道建立请求,建立与第一提供方之间的第一可信通道。
这里的第一可信通道通常也称为加密通道,其通常是基于普通连接而建立的。
步骤510,通过第一可信通道,接收若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于第一计算逻辑,对目标加密秘钥对应的目标加密分片进行计算的权限。
以图2为例来说,在第一计算节点为TEEX时,其接收的目标加密秘钥可以为K1;而在第一计算节点为TEEY时,其接收的目标加密秘钥可以为K2。
应理解,第一计算节点在接收到目标加密秘钥之后,还可以从若干可信计算节点中,确定出与第一计算节点属于同一角色分类的第二计算节点。将目标加密秘钥共享给第二计算节点,以使得第二计算节点获得基于第一计算逻辑,对目标加密分片进行计算的权限。由此可以避免第一提供方需要向每个可信计算节点发送加密秘钥,进而 浪费通信资源的问题。
此外,第一计算节点在接收到目标加密秘钥之后,可以利用对应于第一计算节点以及第一计算逻辑的专属秘钥,加密目标加密秘钥。将经过加密的目标加密秘钥存储至数据存储中心。数据存储中心可以记录各可信计算节点与各自加密的加密秘钥之间的对应关系。
本说明书所述的第一计算节点提供Seal能力,这里的Seal能力是指使用可信计算节点的专属秘钥进行加密。该专属秘钥在TEE外部是无法访问的。
需要说明,上述专属秘钥通常与设备环境(如,CPU和内存等)和计算逻辑相关,也就是说,随着设备环境或者计算逻辑的不同,对应的专属秘钥也不一致。由此可以确保在各可信计算节点运行相同的计算逻辑时,每个可信计算节点只能解密通过其加密的加密秘钥,进而只能获得针对该加密秘钥对应的隐私分片进行计算的权限,由此可以确保数据的安全性。
还以图2为例来说,当TEEX、TEEY以及TEEZ均运行相同的计算逻辑时,其针对各自接收的加密秘钥K1、K2和K3进行加密所使用的专属秘钥不同。原因在于,不同的可信计算节点其设备环境通常是不同的。
当然,第一计算节点在接收到目标加密秘钥之后,也可以不存储到数据存储中心,而直接将其保留在内存当中。
应理解,上述是针对各可信计算节点获取数据授权的过程的说明。
需要说明,可信计算中心(即各可信计算节点)每更改一次计算逻辑,就重复执行一次步骤502-步骤510,以获得针对当前计算逻辑的数据授权。
此外,由于在获取数据授权的过程中,数据提供方与可信计算节点之间的传输量与数据提供方的数据量无关,通常是一个较小的常数,从而本方案可以在节约针对数据提供方的数据的使用成本。
应理解,在各可信计算节点获得数据授权之后,就可以针对各自的授权隐私分片联合进行计算,以下对该计算过程进行说明。
先针对目标加密秘钥保存到数据存储中心进行说明。
还以上述第一计算节点为例来说,第一计算节点可以从管理中心接收计算请求。响应于该计算请求,通过查询各可信计算节点与各自加密的加密秘钥之间的对应关系,从数据存储中心读取经过加密的目标加密秘钥,并利用对应于专属秘钥的解密秘钥对其进行解密,得到目标加密秘钥。基于目标加密秘钥的秘钥标识,从数据存储中心读 取对应的目标加密分片,并利用该目标加密秘钥对其进行解密,得到对应的目标明文分片。基于第一计算逻辑,对目标明文分片和其它明文分片进行计算。
首先,在一个示例中,第一计算节点可以根据对应的节点标识,从数据存储中心读取通过其加密的目标加密秘钥。
当然,第一计算节点也可能通过某种方式会获取到其它可信计算节点的标识,进而可以获取到其它可信计算节点上传的经过加密的加密秘钥,但是由于该第一计算节点无法获知其它可信计算节点的专属秘钥,从而其并不能进行解密。也就是说,本方案中,第一计算节点使用专属秘钥,对对应的目标加密秘钥进行加密,可以确保加密秘钥的安全性。
此外,上述目标加密秘钥的秘钥标识可以是由第一计算节点,利用与第一提供方约定的哈希算法针对目标加密秘钥计算得到的。
再针对目标加密秘钥直接保留在内存中进行说明。
第一计算节点可以从管理中心接收计算请求。响应于该计算请求,基于目标加密秘钥的秘钥标识,从数据存储中心读取对应的目标加密分片,并利用该目标加密秘钥对其进行解密,得到对应的目标明文分片。基于第一计算逻辑,对目标明文分片和其它明文分片进行计算。
以第一计算节点为图2中的TEEX为例来说,TEEX可以基于K1的秘钥标识K1_ID,从表1中读取对应的加密分片ENC(U1,K1),之后可以利用K1对其进行解密,从而得到隐私分片U1。类似地,TEEY可以解密得到隐私分片U2,TEEZ可以解密得到隐私分片U3。之后,TEEX、TEEY以及TEEZ可以基于第一计算逻辑,联合对隐私分片U1、U2和U3进行计算。
应理解,在TEEX、TEEY以及TEEZ还获取到其它数据提供方的隐私分片的加密秘钥时,各TEE还可以进行基于秘密分享的计算。
综上,本说明书实施例提供的获取数据授权的方法,数据提供方通过与可信计算中心进行实时地交互,对可信计算中心使用的计算逻辑进行审查,也即约束可信计算中心使用的计算逻辑,由此可以确保数据提供方的数据的安全性。
以下再以图3示出的实施场景为例,对第二种方式(即事后追责级)进行说明。
在第二种方式中,数据提供方和可信计算中心可以通过合同约定允许使用的计算逻辑,从而可信计算中心在更改计算逻辑时无需与数据提供方交互,但要求可信计算中心使用的计算逻辑可被数据提供者实时追查。以下进行详细说明。
图6示出根据另一个实施例的获取数据授权的方法交互图。如图6所示,该方法至少可以包括如下步骤。
步骤602,各代理节点中任意的第一代理节点,从第一提供方获得若干加密分片对应的各加密秘钥中的目标加密秘钥。
可选地,在步骤602之前,第一提供方可以先对第一代理节点进行可信认证以及代码哈希的正确性验证。这里的代码哈希对应的程序代码,是指第一代理节点中运行的验证逻辑。该验证逻辑用于判断对应的第一计算节点中运行的第一计算逻辑的第一代码哈希是否已存证。
上述可信认证和正确性验证的具体方法可以参见上述步骤502和步骤504,本说明书在此不复赘述。
在确定第一代理节点通过可信认证,验证逻辑通过正确性验证后,第一提供方可以与第一代理节点建立可信通道,并通过该可信通道向第一代理节点发送目标加密秘钥。
类似地,第一提供方可以与其它代理节点建立可信通道,并向其它代理节点发送加密秘钥。
以图3为例来说,第一提供方在对各代理节点TEEA、TEEB以及TEEC进行可信认证和代码哈希的正确性验证后,可以分别向各代理节点发送加密秘钥K1、K2和K3。从而在上述第一代理节点为TEEA时,其接收的目标加密秘钥为K1;以及在上述第一代理节点为TEEB时,其接收的目标加密秘钥为K2。
此外,第一代理节点在接收到目标加密秘钥之后,还可以利用对应于第一代理节点以及验证逻辑的专属秘钥,加密目标加密秘钥。将经过加密的目标加密秘钥存储至数据存储中心。数据存储中心可以记录各代理节点与各自加密的加密秘钥之间的对应关系。
当然,第一代理节点在接收到目标加密秘钥之后,也可以不存储到数据存储中心,而直接将其保留在内存当中。
步骤604,第一代理节点向对应的第一计算节点发送认证请求。
比如,在第一代理节点为TEEA时,其可以向对应的第一计算节点TEEX发送认证请求。
步骤606,第一代理节点接收第一计算节点返回的认证信息,其中至少包括第一计算节点中运行的第一计算逻辑的第一代码哈希。
这里的第一计算逻辑即为程序代码,其例如可以用于求平均、求最大最小值或者求平方差等等。通常情况下,第一计算逻辑中的任何一行代码发生变化,其对应的代码哈希就会不同,从而基于第一代码哈希,可以针对第一计算逻辑进行是否符合预期的判断。
此外,上述认证信息还可以包括第一计算节点的签名信息以及由第一计算节点生成的公私钥对中的公钥等等。其中,该签名信息可以通过各种签名方式得到,例如哈希算法、加密算法等。
步骤608,第一代理节点基于认证信息,对第一计算节点进行可信认证,以及判断第一代码哈希是否已存证。
这里的可信认证可以包括,校验签名信息和/或校验公私钥对中的公钥等等。
上述判断第一代码哈希是否已存证可以包括,从第一计算节点获取其预先存储的存证凭证,其中至少包括第一计算逻辑的第二代码哈希。将第一代码哈希与第二代码哈希进行比对,若比对一致,则确定第一代码哈希已存证。
在一个示例中,第一计算节点获取存证凭证过程可以为:可信计算中心认可的第三方(可以为任一设备或角色)或管理员,将第一计算逻辑的第二代码哈希提供给存证中心,并接收存证中心返回的存证凭证,该存证凭证包含第二代码哈希。之后,可信计算中心认可的第三方或管理员,将存证凭证提供给第一计算节点,并由第一计算节点对其保存。
步骤610,在可信认证通过,且第一代码哈希已存证的情况下,第一代理节点建立与第一计算节点之间的第一可信通道。
这里的第一可信通道通常也称为加密通道,其通常是基于普通连接而建立的。
步骤612,第一代理节点通过第一可信通道,将目标加密秘钥发送给第一计算节点,从而第一计算节点获得基于第一计算逻辑,对目标加密秘钥对应的目标加密分片进行计算的权限。
在目标加密秘钥存储到数据存储中心时,第一代理节点可以查询各代理节点与各自加密的加密秘钥之间的对应关系,以从数据存储中心读取由其加密的目标加密秘钥,并利用对应于专属秘钥的解密秘钥对其进行解密,得到明文的目标加密秘钥。之后,向第一计算节点提供目标加密秘钥。
在目标加密秘钥直接保存在内存时,第一代理节点可以直接从内存中读取目标加密秘钥,并将其提供给第一计算节点。
以图3为例来说,在第一代理节点为TEEA时,可以将目标加密秘钥K1发送给第一计算节点TEEX;而在第一代理节点为TEEB时,可以将目标加密秘钥K2发送给第一计算节点TEEY。
同样地,第一计算节点在接收到目标加密秘钥之后,可以将其共享给与第一计算节点属于同一角色分类的其它可信计算节点。
此外,第一计算节点可以将该目标加密秘钥保留在内存当中,也可以将目标加密秘钥存储到数据存储中心,具体存储方法参照第一代理节点针对目标加密秘钥的存储方法,本说明书在此不复赘述。
至此,完成了针对各可信计算节点的数据授权。
需要说明,可信计算中心每更改一次计算逻辑,就重复执行一次步骤604-步骤612,以获得针对当前计算逻辑的数据授权。
此外,在该实施例中,数据提供方预先将各加密秘钥分发给代理节点,可以使得在获取数据授权的过程中,代理节点与可信计算节点之间的传输量与数据提供方的数据量无关,通常是一个较小的常数,从而本方案可以在节约针对数据提供方的数据的使用成本。
应理解,在各可信计算节点获得数据授权之后,就可以针对各自的授权隐私分片联合进行计算,以下对该计算过程进行说明。
还以上述第一计算节点为例来说,第一计算节点可以从管理中心接收计算请求。响应于该计算请求,基于其从第一代理节点接收的目标加密秘钥的秘钥标识,从数据存储中心读取对应的目标加密分片,并利用该目标加密秘钥对其进行解密,得到对应的目标明文分片。基于第一计算逻辑,对目标明文分片和其它明文分片进行计算。这里的其它明文分片可以是其它可信计算节点利用其接收的加密秘钥,对对应的加密分片进行解密得到的。
应理解,上述是针对目标加密秘钥直接保留在内存的情况的说明。当然,如果第一计算节点将目标加密秘钥存储到数据存储中心,那么先从数据存储中心读取经过加密的目标加密秘钥并解密,之后基于解密得到的目标加密秘钥的秘钥标识,读取目标加密分片。
以第一计算节点为图3中的TEEX为例来说,TEEX可以基于K1的秘钥标识K1_ID,从表1中读取对应的加密分片ENC(U1,K1),之后可以利用K1对其进行解密,从而得到隐私分片U1。类似地,TEEY可以解密得到隐私分片U2,TEEZ可以解密得到隐私 分片U3。之后,TEEX、TEEY以及TEEZ可以基于第一计算逻辑,联合对隐私分片U1、U2和U3进行计算。
应理解,在TEEX、TEEY以及TEEZ还获取到其它数据提供方的隐私分片的加密秘钥时,各TEE还可以进行基于秘密分享的计算。
应理解,在本实施例提供的授权方法中,第一提供方并没有对可信计算中心使用的计算逻辑进行实时审查,而进行了代码哈希是否存证的判断,其审查过程是事后进行的,该事后审查的具体过程如下:
第一提供方从存证中心获取第一计算节点已存证的第二代码哈希,向代码存储中心发送数据获取请求,其中至少包括上述第二代码哈希。响应于数据获取请求,代码存储中心将对应的第一计算逻辑提供给第一提供方,以供第一提供方对第一计算逻辑进行合法性审查。
在一个示例中,第一提供方可以基于其与可信计算中心签署的合同来进行上述合法性审查。该合同用于记录双方共同协商的能够进行的计算逻辑。
综上,本说明书实施例提供的获取数据授权的方法,数据提供方可以事后对可信计算中心使用的计算逻辑进行审查,由此可以使得可信计算中心仅需在数据提供方上传数据分片和秘钥时进行两次交互,之后在可信计算中心(即各可信计算节点)更改计算逻辑时,仅在代理节点与可信计算节点之间进行交互即可,也即仅在可信计算中心内部进行通信,而可信计算中心内部的交互通常是基于高速网进行的,由此可以大大提升数据授权的效率,且可以达到节约通信资源的目的。
此外,在该实施例中,只有代理节点才能获得数据提供方的加密密钥。代理节点只有验证了可信计算节点的存证凭证过之后,并且可信计算节点的代码哈希正确,才会将加密密钥发给可信计算节点。而可信计算节点为了获得存证凭证,就必须去存证中心将自己的代码哈希存证。那么,数据提供方就能够从存证中心,获得所有可信计算节点的代码哈希,也就能够知道计算逻辑是否符合最初的约定。
与上述获取数据授权的方法对应地,本说明书一个实施例还提供的一种获取数据授权的装置,设置于可信计算中心中任意的第一计算节点。该可信计算中心包括数据存储中心和若干可信计算节点,数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片。如图7所示,该装置可以包括:
接收单元702,用于从第一提供方接收认证请求。
发送单元704,用于向第一提供方返回认证信息,其中至少包括第一计算节点中 运行的第一计算逻辑的第一代码哈希。
接收单元702,还用于接收第一提供方在确定第一计算节点通过可信认证,且第一代码哈希通过正确性验证后发送的通道建立请求。
其中,该正确性验证包括,将第一代码哈希与预先存储的、经过第一提供方审查的目标计算逻辑的目标代码哈希进行比对。
建立单元706,用于根据通道建立请求,建立与第一提供方之间的第一可信通道。
接收单元702,还用于通过第一可信通道,接收若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于第一计算逻辑,对目标加密秘钥对应的目标加密分片进行计算的权限。
可选地,该装置还可以包括:
加密单元708,用于利用对应于第一计算节点以及第一计算逻辑的专属秘钥,加密目标加密秘钥。
存储单元710,用于将经过加密的目标加密秘钥存储至数据存储中心。
可选地,上述可信计算中心还包括管理中心,该管理中心用于管理若干可信计算节点。上述数据存储中心还维护有若干加密分片对应的各秘钥标识。该装置还包括:读取单元712和计算单元714。
接收单元702,还用于从管理中心接收计算请求。
读取单元712,用于响应于计算请求,从数据存储中心读取经过加密的目标加密秘钥,并利用对应于专属秘钥的解密秘钥对其进行解密,得到目标加密秘钥。
读取单元712,还用于基于目标加密秘钥的秘钥标识,从数据存储中心读取对应的目标加密分片,并利用目标加密秘钥对其进行解密,得到对应的目标明文分片。
计算单元714,用于基于第一计算逻辑,对目标明文分片和其它明文分片进行计算。
可选地,该装置还可以包括:
确定单元716,用于从若干可信计算节点中,确定出与第一计算节点属于同一角色分类的第二计算节点。
共享单元718,用于将目标加密秘钥共享给第二计算节点,以使得第二计算节点获得基于第一计算逻辑,对目标加密分片进行计算的权限。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的获取数据授权的装置,可以在节约通信成本的情况下,从数据提供方获取对应的数据授权。
与上述获取数据授权的方法对应地,本说明书一个实施例还提供的一种获取数据授权的系统。如图8所示,该系统包括数据存储中心802、若干可信计算节点804以及对应的各代理节点806。数据存储中心802至少维护有第一提供方的第一隐私数据的若干加密分片。
各代理节点806,用于从第一提供方,获得若干加密分片对应的各加密秘钥。
各代理节点806中任意的第一代理节点806,用于向对应的第一计算节点804发送认证请求,并接收第一计算节点804返回的认证信息,其中至少包括第一计算节点804中运行的第一计算逻辑的第一代码哈希。
第一代理节点806,还用于基于认证信息,对第一计算节点804进行可信认证,以及判断第一代码哈希是否已存证。
第一代理节点806具体用于:
从第一计算节点804获取其预先存储的存证凭证,其中至少包括第一计算逻辑的第二代码哈希;
将第一代码哈希与第二代码哈希进行比对,若比对一致,则确定第一代码哈希已存证。
该存证凭证是在系统认可的第三方或管理员将第二代码哈希提供给存证中心后,由第三方或管理员从存证中心接收并转发至第一计算节点804的。
第一代理节点806,还用于在可信认证通过,且第一代码哈希已存证的情况下,建立与第一计算节点804之间的第一可信通道。
第一代理节点806,还用于通过第一可信通道,将其接收的目标加密秘钥发送给第一计算节点804。
第一计算节点804,用于获得基于第一计算逻辑,对目标加密秘钥对应的目标加密分片进行计算的权限。
可选地,该系统还包括代码存储中心,其中至少维护有第一计算逻辑;
代码存储中心,用于从第一提供方接收数据获取请求,其中至少包括第一提供方从存证中心获取的第二代码哈希。
代码存储中心,还用于响应于数据获取请求,将第一计算逻辑提供给第一提供方,以供第一提供方对第一计算逻辑进行合法性审查。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的获取数据授权的系统,可以在节约通信成本的情况下,从数据提供方获取对应的数据授权。
与上述获取数据授权的方法对应地,本说明书一个实施例还提供的一种获取数据授权的装置,设置于可信计算中心中任意的第一代理节点。该可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点。该数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片。如图9所示,该装置包括:
获取单元902,用于从第一提供方获得若干加密分片对应的各加密秘钥中的目标加密秘钥。
发送单元904,用于向对应的第一计算节点发送认证请求。
接收单元906,用于接收第一计算节点返回的认证信息,其中至少包括第一计算节点中运行的第一计算逻辑的第一代码哈希。
判断单元908,用于基于认证信息,对第一计算节点进行可信认证,以及判断第一代码哈希是否已存证。
建立单元910,用于在可信认证通过,且第一代码哈希已存证的情况下,建立与第一计算节点之间的第一可信通道。
发送单元904,还用于通过第一可信通道,将目标加密秘钥发送给第一计算节点,从而第一计算节点获得基于第一计算逻辑,对目标加密秘钥对应的目标加密分片进行计算的权限。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的获取数据授权的装置,可以在节约通信成本的情况下,从数据提供方获取对应的数据授权。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4至图6中任一项所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4至图6中任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (22)

  1. 一种获取数据授权的方法,由可信计算中心执行;所述可信计算中心包括数据存储中心和若干可信计算节点,所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法包括:
    所述若干可信计算节点中任意的第一计算节点,从所述第一提供方接收认证请求;
    向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈希通过正确性验证后发送的通道建立请求;
    根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;
    通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
  2. 根据权利要求1所述的方法,还包括:
    所述第一计算节点利用对应于所述第一计算节点以及所述第一计算逻辑的专属秘钥,加密所述目标加密秘钥;
    将经过加密的目标加密秘钥存储至所述数据存储中心。
  3. 根据权利要求2所述的方法,其中,所述可信计算中心还包括管理中心,所述管理中心用于管理所述若干可信计算节点;所述数据存储中心还维护有所述若干加密分片对应的各秘钥标识;所述方法还包括:
    所述第一计算节点从所述管理中心接收计算请求;
    响应于所述计算请求,从所述数据存储中心读取所述经过加密的目标加密秘钥,并利用对应于所述专属秘钥的解密秘钥对其进行解密,得到所述目标加密秘钥;
    基于所述目标加密秘钥的秘钥标识,从所述数据存储中心读取对应的目标加密分片,并利用所述目标加密秘钥对其进行解密,得到对应的目标明文分片;
    基于所述第一计算逻辑,对所述目标明文分片和其它明文分片进行计算。
  4. 根据权利要求1所述的方法,还包括:
    所述第一计算节点从所述若干可信计算节点中,确定出与所述第一计算节点属于同一角色分类的第二计算节点;
    将所述目标加密秘钥共享给所述第二计算节点,以使得所述第二计算节点获得基 于所述第一计算逻辑,对所述目标加密分片进行计算的权限。
  5. 根据权利要求1所述的方法,其中,所述正确性验证包括,将所述第一代码哈希与预先存储的、经过所述第一提供方审查的目标计算逻辑的目标代码哈希进行比对。
  6. 一种获取数据授权的方法,由可信计算中心执行;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法包括:
    所述各代理节点从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;
    所述各代理节点中任意的第一代理节点向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    所述第一代理节点基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
    在所述可信认证通过,且所述第一代码哈希已存证的情况下,所述第一代理节点建立与所述第一计算节点之间的第一可信通道;
    所述第一代理节点通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;
    所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
  7. 根据权利要求6所述的方法,其中,所述判断所述第一代码哈希是否已存证,包括:
    从所述第一计算节点获取其预先存储的存证凭证,其中至少包括所述第一计算逻辑的第二代码哈希;
    将所述第一代码哈希与所述第二代码哈希进行比对,若比对一致,则确定所述第一代码哈希已存证。
  8. 根据权利要求7所述的方法,其中,所述存证凭证是在所述可信计算中心认可的第三方或管理员将所述第二代码哈希提供给存证中心后,由所述第三方或管理员从所述存证中心接收并转发至所述第一计算节点的。
  9. 根据权利要求8所述的方法,其中,所述可信计算中心还包括代码存储中心,其中至少维护有所述第一计算逻辑;所述方法还包括:
    所述代码存储中心从所述第一提供方接收数据获取请求,其中至少包括所述第一 提供方从所述存证中心获取的所述第二代码哈希;
    响应于所述数据获取请求,所述代码存储中心将所述第一计算逻辑提供给所述第一提供方,以供所述第一提供方对所述第一计算逻辑进行合法性审查。
  10. 一种获取数据授权的方法,涉及可信计算中心;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述方法通过所述各代理节点中任意的第一代理节点执行,包括:
    从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;
    向对应的第一计算节点发送认证请求;
    接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
    在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
    通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
  11. 一种获取数据授权的装置,设置于可信计算中心中任意的第一计算节点;所述可信计算中心包括数据存储中心和若干可信计算节点,所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述装置包括:
    接收单元,用于从所述第一提供方接收认证请求;
    发送单元,用于向所述第一提供方返回认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    所述接收单元,还用于接收所述第一提供方在确定所述第一计算节点通过可信认证,且所述第一代码哈希通过正确性验证后发送的通道建立请求;
    建立单元,用于根据所述通道建立请求,建立与所述第一提供方之间的第一可信通道;
    所述接收单元,还用于通过所述第一可信通道,接收所述若干加密分片对应的各加密秘钥中的目标加密秘钥,从而获得基于所述第一计算逻辑,对所述目标加密秘钥 对应的目标加密分片进行计算的权限。
  12. 根据权利要求11所述的装置,还包括:
    加密单元,用于利用对应于所述第一计算节点以及所述第一计算逻辑的专属秘钥,加密所述目标加密秘钥;
    存储单元,用于将经过加密的目标加密秘钥存储至所述数据存储中心。
  13. 根据权利要求12所述的装置,其中,所述可信计算中心还包括管理中心,所述管理中心用于管理所述若干可信计算节点;所述数据存储中心还维护有所述若干加密分片对应的各秘钥标识;所述装置还包括:读取单元和计算单元;
    所述接收单元,还用于从所述管理中心接收计算请求;
    所述读取单元,用于响应于所述计算请求,从所述数据存储中心读取所述经过加密的目标加密秘钥,并利用对应于所述专属秘钥的解密秘钥对其进行解密,得到所述目标加密秘钥;
    所述读取单元,还用于基于所述目标加密秘钥的秘钥标识,从所述数据存储中心读取对应的目标加密分片,并利用所述目标加密秘钥对其进行解密,得到对应的目标明文分片;
    所述计算单元,用于基于所述第一计算逻辑,对所述目标明文分片和其它明文分片进行计算。
  14. 根据权利要求11所述的装置,还包括:
    确定单元,用于从所述若干可信计算节点中,确定出与所述第一计算节点属于同一角色分类的第二计算节点;
    共享单元,用于将所述目标加密秘钥共享给所述第二计算节点,以使得所述第二计算节点获得基于所述第一计算逻辑,对所述目标加密分片进行计算的权限。
  15. 根据权利要求11所述的装置,其中,所述正确性验证包括,将所述第一代码哈希与预先存储的、经过所述第一提供方审查的目标计算逻辑的目标代码哈希进行比对。
  16. 一种获取数据授权的系统,包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;
    所述各代理节点,用于从所述第一提供方,获得所述若干加密分片对应的各加密秘钥;
    所述各代理节点中任意的第一代理节点,用于向对应的第一计算节点发送认证请求,并接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    所述第一代理节点,还用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
    所述第一代理节点,还用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
    所述第一代理节点,还用于通过所述第一可信通道,将其接收的目标加密秘钥发送给所述第一计算节点;
    所述第一计算节点,用于获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
  17. 根据权利要求16所述的系统,其中,所述第一代理节点具体用于:
    从所述第一计算节点获取其预先存储的存证凭证,其中至少包括所述第一计算逻辑的第二代码哈希;
    将所述第一代码哈希与所述第二代码哈希进行比对,若比对一致,则确定所述第一代码哈希已存证。
  18. 根据权利要求17所述的系统,其中,所述存证凭证是在所述系统认可的第三方或管理员将所述第二代码哈希提供给存证中心后,由所述第三方或管理员从所述存证中心接收并转发至所述第一计算节点的。
  19. 根据权利要求18所述的系统,其中,所述系统还包括代码存储中心,其中至少维护有所述第一计算逻辑;
    所述代码存储中心,用于从所述第一提供方接收数据获取请求,其中至少包括所述第一提供方从所述存证中心获取的所述第二代码哈希;
    所述代码存储中心,还用于响应于所述数据获取请求,将所述第一计算逻辑提供给所述第一提供方,以供所述第一提供方对所述第一计算逻辑进行合法性审查。
  20. 一种获取数据授权的装置,设置于可信计算中心中任意的第一代理节点;所述可信计算中心包括数据存储中心、若干可信计算节点以及对应的各代理节点;所述数据存储中心至少维护有第一提供方的第一隐私数据的若干加密分片;所述装置包括:
    获取单元,用于从所述第一提供方获得所述若干加密分片对应的各加密秘钥中的目标加密秘钥;
    发送单元,用于向对应的第一计算节点发送认证请求;
    接收单元,用于接收所述第一计算节点返回的认证信息,其中至少包括所述第一计算节点中运行的第一计算逻辑的第一代码哈希;
    判断单元,用于基于所述认证信息,对所述第一计算节点进行可信认证,以及判断所述第一代码哈希是否已存证;
    建立单元,用于在所述可信认证通过,且所述第一代码哈希已存证的情况下,建立与所述第一计算节点之间的第一可信通道;
    所述发送单元,还用于通过所述第一可信通道,将所述目标加密秘钥发送给所述第一计算节点;从而所述第一计算节点获得基于所述第一计算逻辑,对所述目标加密秘钥对应的目标加密分片进行计算的权限。
  21. 一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项所述的方法。
  22. 一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
PCT/CN2022/125724 2021-12-23 2022-10-17 获取数据授权的方法、装置及系统 Ceased WO2023116147A1 (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561820A (zh) * 2023-07-03 2023-08-08 腾讯科技(深圳)有限公司 可信数据处理方法及相关装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 支付宝(杭州)信息技术有限公司 一种可信应用的运行方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
See also references of EP4343597A4

Cited By (2)

* Cited by examiner, † Cited by third party
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