Data processing method and apparatus, and device and storage medium
By deploying agent components and computing task components in a trusted execution environment, the problem of low efficiency in business data circulation under the closed domain approach is solved, and efficient and secure data circulation and shared management of computing results are achieved.
Patent Information
- Application Number
- PCT/CN2025/106153
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-05
- Filing Date
- 2025-06-30
- Publication Date
- 2026-02-12
AI Technical Summary
The existing business data circulation platform has low circulation efficiency in a closed domain mode, requiring manual approval and dedicated hardware support, resulting in a cumbersome circulation process.
By deploying agent components and computing task components in a trusted execution environment, business data can be decrypted and computed. Encryption, decryption, and computation are performed using agent components and computing task components in the trusted execution environment, avoiding independent clusters and dedicated hardware. Public keys are used for aggregate encryption to ensure security.
It improves the convenience and efficiency of business data flow, ensures the security and controllability of calculation results, reduces flow costs, and reduces manual intervention.
Smart Images

Figure CN2025106153_12022026_PF_FP_ABST
Abstract
Description
Data processing method, device, equipment and storage medium
[0001] The present application claims priority to the Chinese patent application No. 2024110638347, filed on August 5, 2024, entitled "Data processing method, device, equipment and storage medium", the whole content of which is incorporated herein by reference. TECHNICAL FIELD
[0002] The present application relates to the fields of Internet technology, and particularly relates to a data processing method, device, equipment and storage medium. BACKGROUND
[0003] With the global wide recognition of business data as a new production factor and resource, countries are accelerating the top-level design, laws and regulations, cross-border flow and platform construction of business data circulation. In terms of top-level design, global layout and policy making are continuously carried out. On the other hand, at the market level, the release of data value urgently needs to build a safe and reliable business data circulation platform, which is a platform that assists multiple business parties to realize the circulation (such as calling) of business data under the condition of ensuring the security of business data.
[0004] At present, the business data circulation platform ensures the security of business data through a closed domain mode. Specifically, an independent cluster needs to be created for each business party, which is used to execute the business data of the business party and store the business data and the calculation result of the business data. When a business party needs to call the data in the cluster of another business party, a manual approval process is required, and a professional personnel needs to operate a specified permission jump machine (a network security device or a computer device) to realize the calling. It can be seen that in the closed domain mode, the flow process of business data is relatively cumbersome, which leads to a relatively low efficiency of business data circulation. SUMMARY
[0005] The embodiments of the present application provide a data processing method, device, equipment and storage medium, which improve the convenience of the flow process of business data and the efficiency of business data circulation.
[0006] In an aspect, the embodiments of the present application provide a data processing method, comprising:
[0007] The proxy component running in the trusted execution environment receives a calculation task request sent by a first device, the calculation task request comprising an execution file used for performing a calculation operation on first business data in a second device, and a first data identifier of first encrypted business data corresponding to the first business data;
[0008] According to the first data identifier, the proxy component acquires the first encrypted service data from the second device, decrypts the first encrypted service data, and obtains the first service data.
[0009] According to the execution file, the computing task component running in the trusted execution environment performs a computing operation on the first service data, and obtains a computing result.
[0010] According to the first public key of the first device and the second public key of the second device, the proxy component aggregates and encrypts the computing result, and obtains an encrypted result, which is sent to the first device and the second device, so that the first device and the second device aggregate and decrypt the encrypted result, and obtain the computing result.
[0011] The embodiment of the application provides a data processing method, comprising:
[0012] A computing task request is sent to a proxy component running in a trusted execution environment, the computing task request comprising an execution file used for performing a computing operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data, the proxy component being configured to acquire the first encrypted service data from the second device according to the first data identifier, decrypt the first encrypted service data, and obtain the first service data.
[0013] An encrypted result sent by the proxy component is received, the encrypted result being obtained by the proxy component by aggregating and encrypting a computing result according to a first public key of a first device and a second public key of the second device, the computing result being obtained by a computing task component running in the trusted execution environment by performing a computing operation on the first service data according to the execution file.
[0014] The encrypted result is aggregated and decrypted with the second device, and the computing result is obtained.
[0015] The embodiment of the application provides a data processing method, comprising:
[0016] According to a first data identifier carried in a computing task request, first encrypted service data is sent to a proxy component running in a trusted execution environment, the computing task request being sent by a first device to the proxy component, the computing task request comprising an execution file used for performing a computing operation on first service data and a first data identifier of first encrypted service data corresponding to the first service data, the proxy component being configured to decrypt the first encrypted service data and obtain the first service data.
[0017] receive the encryption result sent by the agent component; the encryption result is obtained by the agent component by performing aggregated encryption on the calculation result according to the first public key of the first device and the second public key of the second device, and the calculation result is obtained by a calculation task component running in the trusted execution environment by performing the calculation operation on the first service data according to the execution file;
[0018] perform aggregated decryption on the encryption result with the first device to obtain the calculation result.
[0019] The embodiment of the application provides a data processing apparatus, comprising:
[0020] a receiving module configured to receive a calculation task request sent by a first device through an agent component running in a trusted execution environment, wherein the calculation task request comprises an execution file used for performing a calculation operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data;
[0021] a decryption module configured to acquire the first encrypted service data from the second device according to the first data identifier through the agent component to decrypt the first encrypted service data and obtain the first service data;
[0022] an execution module configured to perform the calculation operation on the first service data according to the execution file through a calculation task component running in the trusted execution environment to obtain a calculation result;
[0023] an encryption module configured to perform aggregated encryption on the calculation result through the agent component according to a first public key of the first device and a second public key of the second device to obtain an encryption result, wherein the encryption result is used for sending to the first device and the second device to enable the first device and the second device to perform aggregated decryption on the encryption result to obtain the calculation result.
[0024] The embodiment of the application provides a data processing apparatus, comprising:
[0025] a sending module configured to send a calculation task request to an agent component running in a trusted execution environment, wherein the calculation task request comprises an execution file used for performing a calculation operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data, and the agent component is configured to acquire the first encrypted service data from the second device according to the first data identifier, and decrypt the first encrypted service data to obtain the first service data;
[0026] The receiving module is configured to receive an encryption result sent by the agent component; the encryption result is obtained by the agent component by performing aggregated encryption on a calculation result according to a first public key of the first device and a second public key of the second device; the calculation result is obtained by a calculation task component running in the trusted execution environment by performing a calculation operation on the first service data according to the execution file;
[0027] The decryption module is configured to perform aggregated decryption on the encryption result with the second device to obtain the calculation result.
[0028] The application embodiment provides a data processing apparatus, comprising:
[0029] The sending module is configured to send first encrypted service data to the agent component running in the trusted execution environment according to a first data identifier carried in a calculation task request; the calculation task request is sent by the first device to the agent component; the calculation task request comprises an execution file used for performing a calculation operation on first service data and a first data identifier of the first encrypted service data corresponding to the first service data; and the agent component is configured to decrypt the first encrypted service data to obtain the first service data.
[0030] The receiving module is configured to receive an encryption result sent by the agent component; the encryption result is obtained by the agent component by performing aggregated encryption on a calculation result according to a first public key of the first device and a second public key of the second device; the calculation result is obtained by a calculation task component running in the trusted execution environment by performing a calculation operation on the first service data according to the execution file;
[0031] The decryption module is configured to perform aggregated decryption on the encryption result with the first device to obtain the calculation result.
[0032] The application embodiment provides a computer device, comprising a memory and a processor; the memory stores a computer program; and the processor implements the steps of the method when executing the computer program.
[0033] The application embodiment provides a computer readable storage medium, which stores a computer program; and the computer program is executed by a processor to implement the steps of the method.
[0034] The application embodiment provides a computer program product, comprising a computer program; and the computer program is executed by a processor to implement the steps of the method.
[0035] The application has at least the following beneficial effects: (1) The proxy component and the computing task component are deployed in the trusted execution environment of the trusted third party corresponding to each business party. The decryption and the computing process of the first encrypted business data are implemented by the proxy component and the computing task component in the trusted execution environment, that is, the business data circulation of each business party is implemented by the trusted execution environment. No independent cluster needs to be created for each business party, and no special hardware needs to be relied on. The circulation cost of the business data is reduced, the convenience of the business data circulation process is improved, and the circulation efficiency of the business data is improved without manual participation. (2) The computing result is aggregated and encrypted. When the second business party determines that the execution file cannot restore the original data (that is, the business data), the second part of the decryption result obtained by the second business party is sent to the first business party. In this way, the first business party can aggregate and decrypt the encrypted result based on the first part of the decryption result and the received second part of the decryption result to obtain the computing result. The common ownership of the computing result by the first business party and the second business party can be ensured, the security of the computing result can be controlled, and the security of the computing result is improved. The circulation of the business data can refer to that the computing result of the first business data is transmitted to the first business party, that is, the first business party calls the first business data through the trusted third party, and the circulation of the business data is implemented. BRIEF DESCRIPTION OF DRAWINGS
[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the embodiments or the prior art description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0037] FIG. 1 is a schematic diagram of a data processing system provided by the present application;
[0038] FIG. 2 is a schematic diagram of another data processing system provided by the present application;
[0039] FIG. 3 is a flowchart of a data processing method provided by the present application;
[0040] FIG. 4 is a flowchart of a public key exchange process and a business data encryption process provided by the present application;
[0041] FIG. 5 is a flowchart of starting a computing task provided by the present application;
[0042] FIG. 6 is a flowchart of an execution process of a computing task provided by the present application;
[0043] FIG. 7 is a flowchart of another data processing method provided by the present application;
[0044] FIG. 8 is a flow diagram of a decryption process of an encryption result according to an embodiment of the present application;
[0045] FIG. 9 is a flow diagram of another data processing method according to an embodiment of the present application;
[0046] FIG. 10 is a structural diagram of a data processing apparatus according to an embodiment of the present application;
[0047] FIG. 11 is a structural diagram of another data processing apparatus according to an embodiment of the present application;
[0048] FIG. 12 is a structural diagram of another data processing apparatus according to an embodiment of the present application;
[0049] FIG. 13 is a structural diagram of a computer device according to an embodiment of the present application. DETAILED DESCRIPTION
[0050] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all the other embodiments obtained by a person of ordinary skill in the art without any creative work fall within the scope of protection of the present application.
[0051] In order to make the present application more clearly understood, first, a data processing system for implementing the present application is introduced. As shown in FIG. 1, the data processing system includes a server and a terminal cluster. The terminal cluster can include one or more terminals, and the number of terminals is not limited herein. As shown in FIG. 1, four terminals are taken as an example for illustration. The terminal cluster can include a first terminal, a second terminal, a third terminal and a fourth terminal. It can be understood that the first terminal, the second terminal, the third terminal and the fourth terminal can be connected to the server in a network manner, so that each terminal can interact with the server through network connection.
[0052] It can be understood that the server can be an independent physical server, or a server cluster or distributed system composed of at least two physical servers, or a cloud server providing cloud services, cloud knowledge base, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery network (CDN), and basic cloud computing services such as big data and artificial intelligence platforms. The terminal can be a vehicle terminal, a smart phone, a tablet computer, a notebook computer, a desktop computer, a smart speaker, a screen speaker, a smart television, a smart watch, and the like, but is not limited thereto. Each terminal and server can be directly or indirectly connected through wired or wireless communication, and the number of terminals and servers can be one or at least two, which is not limited in the present application.
[0053] Any terminal can be a device corresponding to a business party, and each device can include its own business data and one or more execution files. Any device can call the business data of other business parties through the server. The execution file can be a code file or an image file of the code file for performing a calculation operation on the business data. The calculation operation can be statistical calculation, model training, operation processing, and the like.
[0054] It should be noted that the first business party in the present application can be a business party that initiates a calculation task request, that is, the first business party can be a business party that uses business data, and the first business party can also provide business data. The terminal corresponding to the first business party can be referred to as the first device. The second business party can be a business party that provides business data, and the terminal corresponding to the second business party can be referred to as the second device.
[0055] In a calculation operation process for business data, there can be at least one user of business data and at least one provider of business data. When there is only one provider of business data and one user of business data, the provider of business data is different from the user of business data.
[0056] The server can be a device corresponding to a trusted third party, and the server includes a trusted execution environment, the trusted execution environment runs an agent component and a computing task component, and the trusted execution environment is a mechanism for protecting the privacy of objects and the security of a system. The trusted execution environment can restrict the agent component and the computing task component in a closed running environment to prevent potential threats to the system and other application programs. In addition, the trusted execution environment can provide some virtual hardware and software resources, such as a file system, a network, an operating system, etc., so that the agent component and the computing task component can run in this virtual environment without any adverse effects on the computer system. If the agent component and the computing task component attempt to access resources outside the trusted execution environment or perform dangerous operations (such as transmitting unencrypted business data to other devices), the trusted execution environment will intercept these requests and take appropriate security measures, which can include prohibiting dangerous operations, suspending the application or process that performs dangerous operations.
[0057] The trusted execution environment can be a security technology based on hardware-level system isolation and trusted root, which realizes physical isolation of data operation and storage through an independent secure area to protect the confidentiality, integrity, and authenticity of sensitive data and code. For example, a secure processor. Alternatively, the trusted execution environment can be a software-level isolation environment for running suspicious programs or code to prevent damage to the system, such as a secure sandbox. The trusted execution environment also includes an access restriction tool that restricts network access, directory access, and inter-process access of processes corresponding to the agent component and the computing task component, so that the agent component and the computing task component run in completely isolated environments, the agent component reads and writes data, and each computing task component allows mutual access. The access restriction tool can include gVisor (process-level virtualization), nsjail (process isolation tool), or Kata Container (cloud-native virtualization). The computing task component can include spark (a computing engine or framework) or Ray (a computing engine or framework), and each computing task component needs to communicate with each other to complete distributed computing tasks.
[0058] Specifically, the agent component can be used to read encrypted business data from the second device, decrypt the encrypted business data to obtain business data, and send the business data and an execution file to the computing task component. The computing task component can be used to perform a computing operation on the business data according to the execution file.
[0059] The trusted third party can be an entity trusted by each terminal corresponding to a service provider in the data processing system, such as a certificate authority (CA) management institution.
[0060] The data processing system of the present application can be used to guide the development of a privacy computing system framework. The main product form is in the form of a privacy computing platform, which provides federated learning, joint query, and anonymous query services to the outside in a public cloud or a private cloud. The machine learning model obtained through federated learning, the query result obtained through joint query and anonymous query can be applied to joint marketing, joint advertising, joint risk control and other scenarios.
[0061] The anonymous query can be a private information retrieval (PIR), which is a very practical technology and application in secure multi-party computation, and can be used to protect the query privacy of users, and thus the query result (i.e., business data) of the users. The goal is to ensure that the first service provider submits a query request (i.e., a computing task request) to the trusted third party, and completes the query under the premise that the query process is not perceived and leaked. In the anonymous query, the first service provider is the query party, and the execution file provided by the first service provider can be a code or an image file corresponding to the code for performing a computing operation on the query result. The second service provider can be the queried party, i.e., the first business data can be referred to as the query result, and the number of second service providers is multiple or one.
[0062] The federated learning, also known as federated machine learning or federated learning, joint learning, or alliance learning. Federated learning is a machine learning framework that can effectively help multiple service providers (i.e., first service providers and second service providers) to use data and build machine learning models while meeting user privacy protection, data security, and departmental regulations. In federated learning, the first service provider can be a service provider that needs to build a machine learning model, and the execution file provided by the first service provider can be an initial machine learning model to be trained, which is composed of code or an image file of the code; the second service provider can be a service provider that provides training data, i.e., the first business data can be training data. In particular, the first service provider can also provide training data, and the computing operation on the business data can be identifying the training data through the initial machine learning model to train the initial machine learning model and obtain a computing result, which is a machine learning model trained.
[0063] The machine learning model can be a linear regression model, a logistic regression model, a decision tree model, a neural network model, or the like.
[0064] The machine learning model can be used in a joint risk control scenario, a joint advertising scenario, and a joint marketing scenario. In the joint risk control scenario, the machine learning model can be used to verify whether a user is a qualified investor and whether an individual or an institution has financial abnormal behavior. In the joint advertising scenario, the machine learning model can be used to make advertising content that a user is interested in for a product merchant. In the joint marketing scenario, the machine learning model can be used to make a marketing strategy for a product for a product merchant.
[0065] The joint query can be a special query mode, which mainly functions to combine two or more query results into a result set, eliminate duplicate rows in the query result, sort and calculate the result set of the joint query, and the like. In the joint query, the first business party is a query party, and the execution file provided by the first business party can be a code or an image file corresponding to the code for implementing the joint query. The second business party can be a queried party, that is, the first business data can be referred to as a query result, and the number of the second business parties is multiple.
[0066] The joint risk control scenario can be based on a query result obtained by the joint query or the traceless query, or a machine learning model trained, to implement risk control management of an individual or an institution. The risk control management can refer to verifying whether a user is a qualified investor and whether an individual or an institution has financial abnormal behavior, such as transferring assets to an illegal account, failing to pay taxes, and the like. In the joint risk control scenario, the first business party (i.e., the query party or the business party requiring machine learning modeling) is specifically a risk control management institution, such as a tax authority, an asset supervision institution, and the like. The execution file provided by the first business party can be a code or an image file corresponding to the code for risk control management of an individual or an institution, such as an initial machine learning model to be trained for risk control management. The second business party (i.e., the queried party or the business party providing training data) can include at least one of a bank institution, a trust institution, a fund company, and the like. The business data (e.g., the query result or the training data) can include transaction data of a user in the bank institution, the trust institution, and the fund company.
[0067] In the joint advertising scenario, the first business party (i.e., the query party or the business party requiring machine learning modeling) can be a product merchant, and the execution file provided by the first business party can be a code for generating advertising content or an image file corresponding to the code. The second business party (i.e., the queried party or the business party providing training data) can include a product merchant corresponding to the advertising content and an advertising platform, and the business data provided by the advertising platform is advertising behavior data of the user for the advertising content, which can include the number of clicks, the number of collections, the number of likes, etc. of the advertising content. The business data provided by the product merchant includes purchase behavior data of the user for the product, such as purchase time, product price, purchase frequency, and basic information (production time, use, etc.) of the product. The advertising behavior data and the purchase behavior data can refer to the query result or the training data.
[0068] In the joint marketing scenario, the first business party (i.e., the query party or the business party requiring machine learning modeling) can be a product merchant, and the execution file provided by the first business party can be a code for generating a marketing strategy for the product or an image file corresponding to the code. The second business party (i.e., the queried party or the business party providing training data) can include a product merchant and a marketing agency, and the business data provided by the marketing agency is basic information of the user, such as name and gender. The business data provided by the product merchant is purchase behavior data of the user for the product. The marketing strategy can include a shopping full-reduction strategy, issuance of a coupon, etc. The basic information and the purchase behavior data can refer to the query result or the training data.
[0069] Taking the joint query applied to the joint risk control scene as an example, the first device can be the first terminal in FIG. 1, and the second device can include the second terminal, the third terminal, and the fourth terminal in FIG. 1; the first service party corresponding to the first terminal is an investment institution, and the second service parties corresponding to the second terminal, the third terminal, and the fourth terminal are a bank, a trust institution, and a fund company respectively. When the investment institution needs to verify whether the user u1 is a qualified investor, the first terminal can send a computing task request to the agent component running in the trusted execution environment of the server, the computing task request being used to instruct to verify whether the user u1 is a qualified investor, the computing task request carrying the object information of the investment institution, an execution file used to perform a computing operation on service data, and data identifiers of the respective encrypted service data. The object information of the investment institution can include a credit code, a name of the investment institution, and the like, and the service data can include transaction data corresponding to the user u1 in the bank, the trust institution, and the fund company respectively, and the execution file can be used to verify whether the user u1 is a qualified investor based on the transaction data.
[0070] After the agent component in the server receives the computing task request, the agent component can verify whether the investment institution has the request computing right for the service data according to the object information of the investment institution. For example, the server can query whether the investment institution has abnormal investment behavior according to the object information of the investment institution, and when it is found that the investment institution has abnormal investment behavior, it is determined that the investment institution does not have the request computing right for the service data, and the verification of whether the user u1 is a qualified investor can be rejected. When it is found that the investment institution does not have abnormal investment behavior, it is determined that the investment institution has the request computing right for the service data, and the first encrypted transaction data can be obtained from the second terminal, the second encrypted transaction data can be obtained from the third terminal, and the third encrypted transaction data can be obtained from the fourth terminal according to the computing task request. The first encrypted transaction data is obtained by encrypting the first transaction data of the user u1 in the bank, and the first transaction data can include at least one of a loan record, a deposit record, and a repayment record of the user u1 in the bank; the second encrypted transaction data is obtained by encrypting the second transaction data of the user u1 in the trust institution, and the second transaction data can include a trust product purchased by the user u1 in the trust institution; and the third encrypted transaction data is obtained by encrypting the third transaction data of the user u1 in the fund company, and the third transaction data can include a fund purchased by the user u1 in the fund company.
[0071] Further, the first encrypted transaction data is decrypted by the proxy component to obtain first transaction data, the second encrypted transaction data is decrypted by the proxy component to obtain second transaction data, and the third encrypted transaction data is decrypted by the proxy component to obtain third transaction data. The computing task component running in the trusted execution environment of the server can verify whether the user u1 is a qualified investor according to the execution file, the first transaction data, the second transaction data, and the third transaction data, to obtain a verification result (i.e., a computing result), which can reflect that the user u1 is a qualified investor, or the verification result reflects that the user u1 is not a qualified investor. The proxy component can aggregate and encrypt the verification result according to the public keys corresponding to the investment institutions, the banking institutions, the trust institutions, and the fund companies, to obtain an encrypted verification result (i.e., an encrypted result), and send the encrypted verification result and the execution file to the second terminal, the third terminal, and the fourth terminal, and send the encrypted result to the first terminal. When the second terminal, the third terminal, and the fourth terminal respectively determine that the execution file cannot restore the respective transaction data, the second terminal, the third terminal, and the fourth terminal respectively decrypt the encrypted verification result using the corresponding private keys to obtain a second partial decryption result corresponding to the second terminal, the third terminal, and the fourth terminal. The first terminal can decrypt the encrypted verification result according to the private key corresponding to the investment institution to obtain a first partial decryption result, receive the second partial decryption result sent by the second terminal, the third terminal, and the fourth terminal, and aggregate and decrypt the encrypted verification result according to the first partial decryption result and the second partial decryption result to obtain the verification result.
[0072] It can be seen that the present application can realize joint query of the banking institutions, the trust institutions, and the fund companies, and can realize verification of the user u1, joint risk control of the user u1, and circulation of the transaction data of the banking institutions, the trust institutions, and the fund companies without leaking the unencrypted transaction data of the user u1, thereby improving the security of the transaction data of each business party.
[0073] In one embodiment, the present application provides a structural schematic diagram of another data processing system, as shown in FIG. 2, which includes a third device, a first device, and a second device; wherein the third device can refer to a device corresponding to a trusted third party, i.e., the third device can refer to the server in FIG. 1. The first device can refer to a device corresponding to a first business party, and the first device can refer to any terminal in FIG. 1. The second device can refer to a device corresponding to a second business party, and the second device can refer to a terminal other than the terminal corresponding to the first business party in FIG. 1.
[0074] The first device can include a task submission component, a second task scheduling component, and a first data proxy component; the second device can include a third task scheduling component and a second data proxy component; the third device includes a trusted execution environment and a first task scheduling component, and the trusted execution environment includes a computing task component and a proxy component.
[0075] The task submission component can be configured to generate a computing task request and synchronize the computing task request to the first task scheduling component, the second task scheduling component, and the third task scheduling component.
[0076] The second task scheduling component can be configured to start the first data proxy component after receiving the computing task request, the first data proxy component storing the second business data, the first data proxy component being configured to encrypt the second business data to obtain second encrypted business data and synchronize the second encrypted business data to the proxy component.
[0077] The third task scheduling component can be configured to start the second data proxy component after receiving the computing task request, the second data proxy component storing the first business data, the second data proxy component being configured to encrypt the first business data to obtain first encrypted business data and synchronize the first encrypted business data to the proxy component.
[0078] The encryption of the business data can be negotiated by the trusted third party and the first business party and the second business party, that is, the encryption of the second business data can be negotiated by the first business party and the trusted third party, so that the second encrypted business data can only be decrypted by the trusted third party and the first business party. The encryption of the first business data can be negotiated by the second business party and the trusted third party, so that the first encrypted business data can only be decrypted by the trusted third party and the second business party, which is conducive to ensuring the security of the business data.
[0079] The encryption algorithm includes an asymmetric encryption algorithm and a symmetric encryption algorithm. The asymmetric encryption algorithm can refer to the use of different keys in the encryption process and the decryption process. The asymmetric encryption algorithm has the characteristic that one key (public key) is public, and the other key (private key) is secret. The public key is used to encrypt data, and the private key is used to decrypt data. The asymmetric encryption algorithm includes RSA (a type of asymmetric encryption algorithm), knapsack algorithm, Rabin (which can be regarded as a variant of RSA), public key encryption algorithm in key exchange protocol, and elliptic curve encryption algorithm (Elliptic Curve Cryptography, ECC), etc. The symmetric encryption algorithm can refer to the use of the same key in the encryption process and the decryption process, that is, the key can be referred to as a symmetric key. The symmetric encryption algorithm can include data encryption standard (Data Encryption Standard, DES), advanced encryption standard (Advanced Encryption Standard, AES), etc.
[0080] The first task scheduling component can be configured to start the agent component and the computing task component after receiving the computing task request, and synchronize the computing task request to the agent component. The agent component can be configured to receive the second encrypted service data and the first encrypted service data, decrypt the second encrypted service data and the first encrypted service data to obtain the second service data and the first service data. The computing task component can be configured to obtain the execution file, the second service data and the first service data from a service interface of the agent component, add the second service data and the first service data to the execution file to obtain an added execution file, execute the added execution file to obtain a computing result. The agent component is further configured to obtain the computing result from the computing task component through the service interface, aggregate encrypt the computing result according to the first public key of the first device and the second public key of the second device to obtain an encrypted result, and return the encrypted result to the first data agent component and the second data agent component.
[0081] The service interface can be an interface for data interaction between the agent component and the computing task component.
[0082] The second data agent component is further configured to decrypt the encrypted result according to the second private key of the second service party to obtain a second partial decryption result and send the second partial decryption result to the first data agent component when it is determined that the execution file cannot restore the first service data. The first data agent component is further configured to decrypt the encrypted result according to the first private key of the first service party to obtain a first partial decryption result, aggregate decrypt the encrypted result according to the first partial decryption result and the second partial decryption result, and obtain the computing result.
[0083] In summary, the data processing system has the following advantages: 1. The business data is encrypted by the encryption algorithm negotiated by the trusted third party and the data provider, so that only the trusted third party and the data provider can decrypt the encrypted business data, and the security of the business data is improved.
[0084] 2. The computing result is aggregate encrypted, and any party can only partially decrypt the encrypted result. The parties (i.e., the first service party and the second service party) can obtain the final computing result only after aggregating the results of their respective partial decryption. In other words, the first service party can obtain the final computing result only when the second service party sends the second partial decryption result to the first service party. In other words, the first service party can obtain the computing result only with the authorization of the second service party, which ensures the common ownership of the computing result by the first service party and the second service party, ensures the execution security and controllability, and improves the security of the computing result.
[0085] 3. The decryption process of the encrypted business data is implemented by the proxy component in the trusted execution environment, and the calculation process of the business data is implemented by the calculation task component in the trusted execution environment, that is, a secure isolated data calculation environment is constructed by the trusted execution environment, and the calculation process of the business data is implemented in the secure isolated data environment. The calculation, storage and network of the calculation task are isolated at the process level, without the need for complex independent deployment at the cluster level, and without the need for dependence on special hardware, and the implementation is performed on existing general hardware resources, thereby realizing efficient data collaboration.
[0086] The calculation task here can refer to a calculation operation on the business data, and the calculation, storage and network of the calculation task are isolated at the process level, which means that the calculation, storage and network of the calculation task are all implemented by the processes corresponding to the calculation task component and the proxy component.
[0087] Further, referring to FIG. 3, it is a flow diagram of a data processing method provided by an embodiment of the present application. As shown in FIG. 3, the method can be performed by a device corresponding to a trusted third party, which can be a terminal, a server in FIG. 1, or a terminal and a server. The device corresponding to the trusted third party in the present application can be collectively referred to as a third device. The method can include the following steps:
[0088] S101. A proxy component running in a trusted execution environment receives a calculation task request sent by a first device corresponding to a first business party.
[0089] The calculation task request includes an execution file for performing a calculation operation on first business data in a second device, and a first data identifier of first encrypted business data corresponding to the first business data.
[0090] In one embodiment, as shown in FIG. 4, before step S101 is performed, the third device can perform steps S40-S48 as follows:
[0091] S40. The first device generates a first key pair of the first business party, which includes a first private key and a first public key. The first public key can be used for encrypting data, and the first private key can be used for decrypting data. Specifically, the first device can generate a first random number by using a random algorithm, take the first random number as the first private key, obtain a base data sk a , raise the base data to the power of sk a , and obtain a second public key. That is, the first key pair can be expressed as g is a base data, and PK a is the first public key. The base data can be an elliptic curve group The base point of the elliptic curve group can include an elliptic curve used to generate a key, and the base data can refer to data agreed upon in advance by the first service provider, the second service provider, and a trusted third party. The random algorithm can include any one of a numerical probability algorithm, a Las Vegas algorithm, a Monte Carlo algorithm, and a Sherwood algorithm.
[0092] S41, the second device can generate a second key pair; the second key pair includes a second private key and a second public key; the second public key can be used to encrypt data, and the second private key can be used to decrypt data. Specifically, the second device can generate a second random number using a random algorithm, take the second random number as the second private key, obtain the sk b power of the base data, obtain the second public key, and sk b is the second private key, that is, the second key pair can be represented as PK b is the second public key.
[0093] S42, the third device generates a third key pair; the third key pair includes a third private key and a third public key; the third public key can be used to encrypt data, and the third private key can be used to decrypt data. Specifically, the third device can generate a third random number using a random algorithm, take the third random number as the third private key, obtain the sk c power of the base data, obtain the third public key, and sk c is the third private key, that is, the third key pair can be represented as PK c is the third public key.
[0094] S43, the first device sends the first public key of the first device to the third device.
[0095] S44, the second device sends the second public key of the second device to the third device.
[0096] In steps S43 and S44, the first device can send the first public key of the first device to the third device, and the second device can send the second public key of the second device to the third device; so that the third device can aggregate and encrypt the calculation result of the service data based on the first public key and the second public key. The aggregation encryption here can refer to an encryption mode participated by multiple parties, such as the aggregation encryption of the calculation result can require the first public key of the first device and the second public key of the second device, that is, the aggregation encryption of the calculation result requires the participation of the first service provider and the second service provider.
[0097] S45, the third device sends the third public key of the trusted third party to the first device and the second device; in this way, when the first device can generate the symmetric key between the first device and the third device based on the third public key and the first private key, the symmetric key between the first device and the third device can be used to encrypt the second service data and decrypt the second encrypted service data. Similarly, when the second device can generate the symmetric key between the second device and the third device based on the third public key and the second private key, the symmetric key between the second device and the third device can be used to encrypt the first service data and decrypt the first encrypted service data.
[0098] It should be noted that the symmetric key between the second device and the third device is mainly taken as an example for description in the present application, that is, the symmetric key mentioned hereinafter refers to the symmetric key between the second device and the third device, and the specific generation process of the symmetric key can be referred to the description hereinafter.
[0099] It should be noted that the first encrypted service data can refer to the data obtained by encrypting the first service data, and the first service data can be obtained by decrypting the first encrypted service data. The first service data can refer to the data without encryption.
[0100] The execution file can indicate the code program for performing the calculation operation on the first service data in the second device, or the execution file can refer to the text information for performing the calculation operation on the first service data in the second device.
[0101] S46, the second device encrypts the first service data to obtain the first encrypted service data; the second device can encrypt the first service data by using the third public key to obtain the first encrypted service data; or the second device can encrypt the first service data by using the symmetric key to obtain the first encrypted service data.
[0102] S47, the second device generates a data identifier of the first encrypted service data, which is denoted as a first data identifier; for example, the second device performs a hash operation on the first encrypted service data to obtain a hash value of the first encrypted service data, and the hash value of the first encrypted service data can be determined as the first data identifier. The first data identifier can be used to uniquely identify the first encrypted service data, and the first data identifier is equivalent to an authorization code, that is, the service party with the first data identifier has the request calculation right for the first service data. The request calculation right can refer to the right of requesting the trusted third party to perform the calculation operation on the first service data.
[0103] S48, the second device synchronizes the first data identifier to the first device; the second device can synchronize the first data identifier to the first device to authorize the request calculation right of the first service party for the second service data.
[0104] It should be noted that the second device can also generate an effective period of the first data identifier of the first encrypted business data, and send the first data identifier and the effective period to the third device. That is, the first data identifier is valid within the effective period, and the business party holding the first data identifier has the request calculation right for the business data; the first data identifier is invalid when the time exceeds the effective period, and the business party holding the first data identifier does not have the request calculation right for the business data.
[0105] Similarly, the first device can encrypt the second business data to obtain second encrypted business data, obtain a second data identifier of the second encrypted business data, and synchronize the second data identifier to the second device to authorize the second business party to have the request calculation right for the second business data.
[0106] Based on the above steps S40-S48, the public key exchange is performed among the first business party, the second business party and the trusted third party, which is beneficial to subsequent aggregation encryption of the calculation result and decryption of the encrypted business data.
[0107] After the first device obtains the first data identifier of the first encrypted business data, the first device can send a calculation task request to an agent component running in a trusted execution environment of the trusted third party; the third device can receive the calculation task request through a task scheduling component, and send the calculation task request to the agent component through the task scheduling component. The calculation task request is used to instruct to perform a calculation operation on the first business data, and carries an execution file used to perform the calculation operation on the first business data, and the first data identifier of the first encrypted business data corresponding to the first business data; the calculation task request can also carry object information of the first business party, parameters required for executing the business data, and a second data identifier of the second encrypted business data. When the first business party is an institution, the object information can include the name, credit code, registration time, etc. of the institution, and when the first business party is a user (i.e. an individual), the object information can include the name, etc. of the user.
[0108] The process of the first device sending the calculation task request to the third device is equivalent to the process of starting the calculation task, as shown in FIG. 5, the first device includes a task submission component, a second task scheduling component, and a first data agent component, the second device includes a third task scheduling component and a second data agent component, and the third device includes a first task scheduling component, an agent component, and a calculation task component. The process of starting the calculation task includes the following steps S51-S57:
[0109] S51, the task submission component initiates a computing task request to the second task scheduling component; when the first business party needs to request to perform a computing operation on the first business data, the task submission component can generate a computing task request and initiate the computing task request to the second task scheduling component.
[0110] S52, the second task scheduling component synchronizes the computing task request to the third task scheduling component.
[0111] S53, the second task scheduling component synchronizes the computing task request to the first task scheduling component.
[0112] S54, the second task scheduling component starts the first data proxy component.
[0113] In steps S52-S53, after receiving the computing task request, the second task scheduling component can synchronize the computing task request to the third task scheduling component of the second device and the first task scheduling component of the third device respectively. When the first device also needs to synchronize the second business data to the third device, the second task scheduling component can start the first data proxy component to synchronize the second encrypted business data to the third device. Here, starting the first data proxy component can mean running the first data proxy component so that the first data proxy component is in a working state.
[0114] S55, the third task scheduling component starts the second data proxy component; after the third task scheduling component receives the computing task request, the second data proxy component can be run to synchronize the first encrypted business data to the third device.
[0115] S56, the first task scheduling component starts the security proxy component.
[0116] The security proxy component can mean a proxy component running in a trusted execution environment.
[0117] S57, the first task scheduling component starts the computing task component.
[0118] In steps S56 and S57, after the first task scheduling component receives the computing task request, the proxy component and the computing task component can be run so that the proxy component can receive the encrypted business data synchronized by the second data proxy component and the first data proxy component, and decrypt the encrypted business data, and the computing task component can perform a computing operation on the business data.
[0119] S102, through the above proxy component, the first encrypted business data is obtained from the second device according to the first data identifier, the first encrypted business data is decrypted, and the first business data is obtained.
[0120] In the present application, after receiving the computing task request, the agent component can verify whether the first business party has the request computing right for the business data according to the computing task request. Specifically, the security code component can query the validity period of the first data identifier. When the current time is not within the validity period, it is determined that the first business party does not have the request computing right for the business data. When the current time is within the validity period, it is determined that the first business party has the request computing right for the business data. The computing task request can be sent to the second device, and the second device returns the first encrypted business data to the agent component. The first encrypted business data is decrypted to obtain the first business data. By decrypting the encrypted business data in the trusted execution environment, the business data can be prevented from being leaked, and the security of the business data can be improved.
[0121] In particular, when the first business party is an institution, the agent component can query the operating state of the institution corresponding to the first business party based on the object information in the computing task request. If the operating state is normal, it is determined that the first business party has the request computing right for the business data. If the operating state is abnormal, it is determined that the first business party does not have the request computing right for the business data. The abnormal state can refer to a registered address exception or a situation of tax evasion. The normal state can refer to a situation without registered address exception or tax evasion.
[0122] In one embodiment, the first encrypted business data is obtained by splicing the ciphertext data of the first business data and the first coordinate value. The ciphertext data of the first business data is obtained by encrypting the first business data according to the symmetric key. The first coordinate value is a coordinate value associated with the base data on an elliptic curve group. The first coordinate value is the coordinate value of the point on the horizontal axis of the elliptic curve in the elliptic curve group, which is mapped from the base data.
[0123] The decryption of the first encrypted service data to obtain the first service data includes that the third device can split the first encrypted service data according to the splicing order of the ciphertext data of the first service data and the first coordinate value and the data length of the ciphertext data to obtain the ciphertext data of the first service data and the first coordinate value. The third device can generate the second coordinate value and the third coordinate value associated with the third private key on the elliptic curve group according to the first coordinate value, the second public key, and the third private key of the trusted third party. The symmetric key is generated according to the first coordinate value, the second coordinate value, and the third coordinate value, the first public key, and the third public key corresponding to the third private key. The ciphertext data of the first service data is decrypted according to the symmetric key to obtain the first service data. The encrypted service data is decrypted in the sandbox through the proxy component, which can avoid that the unencrypted service data is obtained by an illegal service party and improve the security of the service data.
[0124] The splicing order of the ciphertext data of the first service data and the first coordinate value and the data length of the ciphertext data of the service data can be predetermined by the second service party and the trusted third party, for example, the first coordinate value is spliced after the ciphertext data of the service data, and the data length of the ciphertext data of the service data is L1. Therefore, the first L1 bits of the first encrypted service data are the ciphertext data of the service data, and the data after the L1 bits is the first coordinate value.
[0125] The second coordinate value is the coordinate value of a point on an elliptic curve in an elliptic curve group mapped by the third private key on a vertical axis, and the third coordinate value is the coordinate value of the point on the elliptic curve in the elliptic curve group mapped by the third private key on a vertical axis. The point on the elliptic curve in the elliptic curve group mapped by the basic data and the point on the elliptic curve in the elliptic curve group mapped by the third private key are the same coordinate point.
[0126] For example, the first encrypted service data can be represented as formula (1) as follows: ct1=X||Enc K (m1)(1)
[0127] In formula (1), ct1 is the first encrypted service data, X is the first coordinate value, Enc K (m1) is the ciphertext data of the service data, and || is splicing. The third device can split ct1 to obtain X and Enc K (m1), and m1 is the first service data. The second coordinate value and the third coordinate value are calculated based on formula (2) as follows:
[0128] In formula (2), Y is the second coordinate value, and Z is the third coordinate value. That is, the second coordinate value is the sk ca third coordinate value is PK b of the sk c power. The symmetric key between the second service provider and the trusted third party is calculated based on the following formula (3): K = Hash (PK c , PK b , X, Y, Z) (3)
[0129] Wherein, K in formula (3) is symmetric key, Hash is hash operation, Dec K (·) is called to decrypt Enc K (m1) to obtain the first service data.
[0130] S103, through the computing task component running in the trusted execution environment, according to the execution file, the first service data is executed to obtain the calculation result.
[0131] In this application, after the agent component obtains the service data and the execution file, the execution file and the service data can be sent to the computing task component running in the trusted execution environment, and the first service data is added to the execution file by the computing task component, and the execution file after addition is executed to obtain the calculation result; The computing task about the service data is run in the completely isolated environment (i.e. trusted execution environment), which improves the security of the service data.
[0132] In one embodiment, the S103 includes that the computing task request further includes a second data identifier of the second encrypted service data, and the third device can obtain the second encrypted service data from the first device based on the second data identifier of the second encrypted service data, decrypt the second encrypted service data to obtain the second service data, add the second service data and the first service data to the execution file to obtain the execution file after addition, and execute the execution file after addition to obtain the calculation result.
[0133] Wherein, the second encrypted service data can be obtained by encrypting the second service data based on the third public key, and the third device can decrypt the second encrypted service data based on the third private key to obtain the second service data. Or, the second encrypted service data can be obtained by encrypting the second service data based on the symmetric key, and the third device can decrypt the second encrypted service data based on the symmetric key to obtain the second service data. The symmetric key here can refer to the symmetric key between the first service provider and the trusted third party, and the decryption process of the second encrypted service data based on the symmetric key can refer to the decryption process of the first encrypted service data based on the symmetric key.
[0134] It should be noted that the mirror file can be obtained by compressing the code for performing the computing operation on the business data; when the execution file is the mirror file corresponding to the code for performing the computing operation on the business data, the trusted third party can decompress the mirror file to obtain the code for performing the computing operation on the business data, add the business data to the code, and obtain the added execution file.
[0135] In one embodiment, in the federated learning described above, the business data is training data, the execution file is an initial machine learning model to be trained, and the computing operation on the business data can be identifying the training data to obtain an identification label of the training data, and the computing result can be a machine learning model trained based on the training data. Specifically, the training data is input into the initial machine learning model, the training data is identified by the initial machine learning model to obtain an identification label, and the initial machine learning model is trained according to the identification label and a labeled label of the training data to obtain a trained machine learning model.
[0136] The identification label can be a label obtained by identifying the training data by the initial machine learning model, and the labeled label can be a label obtained by manually labeling the training data. The identification label and the labeled label can be used to reflect the attribute features of the training data.
[0137] In the joint risk control scenario, the training data can include transaction data of a user in a bank, a trust institution, a fund company, etc., and the identification label and the labeled label of the training data reflect that the user has a financial abnormal behavior or does not have a financial abnormal behavior. The trained machine learning model can be used to implement risk control management, such as identifying whether the user has a financial abnormal behavior.
[0138] In the joint advertising scenario, the training data can include advertising behavior data of a user for advertising content provided by an advertising platform and purchase behavior data of the user for a product provided by a product merchant, and the identification label and the labeled label of the training data include advertising content interested by the user. The trained machine learning model can generate the advertising content interested by the user.
[0139] In the joint marketing scenario, the training data can include basic information of a user provided by a marketing institution and purchase behavior data of the user for a product provided by a product merchant, and the identification label and the labeled label of the training data include a marketing strategy of the product. The trained machine learning model can generate the marketing strategy of the product.
[0140] In the joint query or the anonymous query, the business data is a query result obtained by the joint query or the anonymous query, the execution file can be used to indicate a deduplication processing, a statistical processing, etc. on the query result, the computing operation on the business data can be a deduplication processing, a statistical processing, etc. on the query result, and the computing result can be the processed query result.
[0141] For example, the computing task request of the first business party further carries a query condition, the query condition indicates querying the annual profit of a company in 2023, and the business data includes total income and total expenditure of the company in 2023 obtained by querying the company (the second business party). The computing operation on the business data can be a subtraction processing on the total income and the total expenditure of the company in 2023, and the annual profit of the company in 2023 is obtained, that is, the annual profit of the company in 2023 is the computing result.
[0142] In particular, the query result can be used as the training data to train the initial machine learning model, and the computing result can be the trained machine learning model.
[0143] In S104, the computing result is aggregated and encrypted according to the first public key of the first device and the second public key of the second device, and an encrypted result is obtained.
[0144] In the present application, the computing result is aggregated and encrypted, and only when the first business party and the second business party participate in the decryption process, the final computing result can be obtained, which is beneficial to ensure the common ownership of the data collaboration result (i.e. the computing result), and the security and controllability of the computing result can be ensured without complex manual review.
[0145] The encrypted result is used to be sent to the first device and the second device, so that the first device and the second device aggregate and decrypt the encrypted result to obtain the computing result.
[0146] The first device and the second device are used to aggregate and decrypt the encrypted result to obtain the computing result, and the aggregation and decryption can be a decryption mode in which the first device and the second device participate, that is, the aggregation and decryption can be a decryption mode in which multiple devices participate.
[0147] The first device is configured to decrypt the encrypted result based on the first private key corresponding to the first public key to obtain the first partial decryption result, and decrypt the encrypted result based on the second partial decryption result sent by the second device to obtain the second partial decryption result, wherein the second device is configured to send the second partial decryption result to the first device when it is determined that the first business data cannot be restored based on the execution file.
[0148] The execution file in the second device is sent to the second device by the first device or the agent component. For example, after the first device sends a calculation task request to the agent component of the third device, the calculation task request can be synchronized to the second device. Alternatively, the agent component can synchronize the calculation task request to the second device, and the second device can obtain the execution file from the calculation task request.
[0149] Since the first business party provides the execution file and the second business party provides the business data, the ownership of the calculation result of the business data is jointly owned by the first business party and the second business party. That is, when the second device sends the second partial decryption result to the first device, it is equivalent to the second business party authorizing the first business party to use the calculation result. When the second device determines that the business data can be restored based on the execution file, it can refuse to send the second partial decryption result to the first device, so that the first device cannot decrypt the calculation result, thereby ensuring the security and controllability of the calculation result.
[0150] The aggregation encryption can refer to an encryption method participated by the first business party and the second business party, that is, the aggregation encryption process requires the first public key of the first device and the second public key of the second device. The aggregation decryption can refer to a decryption method participated by the first business party and the second business party, that is, the aggregation decryption process requires the first private key of the first business party and the second private key of the second business party. The private keys of each business party are managed by themselves, and therefore, the aggregation decryption process requires the first partial decryption result of the first business party and the second partial decryption result of the second business party, that is, only one business party cannot decrypt the calculation result.
[0151] The encrypted result can refer to the calculation result after aggregation encryption, and whether the execution file can restore the first business data can be determined according to the calculation complexity of the execution file. For specific descriptions, please refer to the following.
[0152] The first partial decryption result can be data decrypted from the encrypted result based on the first private key, and the second partial decryption result can be data decrypted from the encrypted result based on the second private key. The first partial decryption result and the second partial decryption result are not the final calculation result. For the description of the first partial decryption result and the second partial decryption result, please refer to the following.
[0153] In an embodiment, the aggregation encryption of the calculation result by the proxy component according to the first public key of the first device and the second public key of the second device to obtain the encrypted result includes that the third device can multiply the first public key of the first device and the second public key of the second device to obtain a joint public key, and determine the r-th power of the joint public key as a derived public key. The r-th power of the base data is obtained to obtain extended base data, and r is the first random number, and the base data is data used to calculate the first public key and the second public key. The third device can aggregate encrypt the calculation result according to the extended base data and the derived public key to obtain the encrypted result. The calculation result is aggregated encrypted, so that the encrypted result can be aggregated decrypted only when the first business party and the second business party participate, which is conducive to ensuring the common ownership of the calculation result and realizing the safe and controllable calculation result.
[0154] In an embodiment, the aggregation encryption of the calculation result according to the extended base data and the derived public key to obtain the encrypted result includes that the third device can hash the derived public key and the calculation result to obtain a hash value, and take the hash value as digest data of the calculation result. The derived public key is extended to obtain a random byte stream according to the data length of the calculation result. The random byte stream and the calculation result are XOR processed to obtain an XOR processing result. The extended base data, the digest data and the XOR processing result are spliced to obtain the encrypted result.
[0155] The data length of the random byte stream is the same as the data length of the calculation result, that is, the random byte stream can be obtained by adding a random number in the derived public key according to the data length of the calculation result.
[0156] The XOR processing can be that two data at the same position in the random byte stream and the calculation result are compared, the comparison result of the position is 0 when the two data are the same, and the comparison result of the position is 1 when the two data are different, and the comparison results of all positions are the XOR processing result. For example, the random byte stream is 0101, and the calculation result is 1011; the XOR processing result is 1110.
[0157] For example, the third device can calculate the joint public key based on the following formula (4): PK t = PK a · PK b (4)
[0158] wherein PK t in formula (4) is the joint public key, the r-th power of the joint public key is taken as a derived public key, i.e., the derived public key can be expressed by the following formula (5): PK * = PK t r (5)
[0159] wherein PK * in formula (5) is the derived public key, PK * is expanded by a key derivation function (KDF) into a random byte stream with the same data length as the data length of the calculation result. The random byte stream and the calculation result are subjected to exclusive-OR processing to obtain an exclusive-OR processing result, which can be expressed by the following formula (6):
[0160] wherein c in formula (6) is the exclusive-OR processing result, m2 is the calculation result, k is the random byte stream, is the exclusive-OR processing (i.e., exclusive-OR symbol). The derived public key and the calculation result are subjected to a hash operation to obtain digest data of the calculation result, which can be expressed by the following formula (7): digest = Hash (PK * , m2) (7)
[0161] wherein digest in formula (7) represents the digest data of the calculation result, the r-th power of the base data is taken as expanded base data, and the expanded base data, the digest data and the exclusive-OR processing result are concatenated to obtain an encryption result, which can be expressed by the following formula (8): ct2 = g r ‖digest‖c (8)
[0162] wherein ct2 in formula (8) is the encryption result, and g r is the expanded base data.
[0163] In one embodiment, the third device performs a calculation operation on the second service data and the first service data based on the execution file to perform a calculation task, and the execution process of the calculation task is shown in FIG. 6. The first device includes a first data agent component, the second device includes a second data agent component, and the third device includes an agent component and a calculation task component. The execution process of the calculation task includes the following steps S61-S69:
[0164] S61, the first data agent component sends the second encrypted service data to the security agent component; the first data agent component can encrypt the second service data to obtain the second encrypted service data, for example, the first data agent component can encrypt the second service data according to the third public key to obtain the second encrypted service data. The second encrypted service data is sent to the agent component.
[0165] S62, the second data agent component sends the first encrypted service data to the security agent component; the second data agent component can encrypt the first service data to obtain the first encrypted service data, for example, the second data agent component can encrypt the first service data according to the third public key to obtain the first encrypted service data. The first encrypted service data is sent to the agent component.
[0166] S63, the security agent component sends the decrypted service data and the execution file to the computing task component; for example, the security agent component can decrypt the second encrypted service data and the first encrypted service data to obtain the second service data and the first service data. For example, the second encrypted service data and the first encrypted service data are both encrypted based on the third public key, and the agent component can decrypt the second encrypted service data and the first encrypted service data according to the third private key to obtain the second service data and the first service data. The first service and the first service data and the execution file are sent to the computing task component through the service interface of the security agent component.
[0167] S64, the computing task component can execute the computing operation on the service data according to the execution file to obtain the computing result; the computing task component can add the first service and the first service data to the execution file, execute the added execution file, and obtain the computing result.
[0168] S65, the agent component aggregates and encrypts the computing result to obtain the encrypted result; the computing task component can return the computing result to the security agent component through the service interface, and the security agent component can aggregate and encrypt the computing result according to the first public key of the first device and the second public key of the second device to obtain the encrypted result.
[0169] S66, the agent component sends the encrypted result to the first data agent component.
[0170] S67, the first data agent component receives and stores the encrypted result.
[0171] In step S66-S67, when the security agent component obtains the encryption result, the security agent component can send the encryption result to the first data agent component. The first data agent component can receive the encryption result and store the encryption result, so that the first device can perform aggregated decryption on the encryption result based on the second partial decryption result of the second device and the first partial decryption result of the first device, to obtain the calculation result.
[0172] S68, the security agent component sends the encryption result to the second data agent component.
[0173] S69, the second data agent component receives and stores the encryption result.
[0174] In step S68-S69, when the security agent component obtains the encryption result, the security agent component can send the encryption result to the second data agent component. The second data agent component can receive the encryption result and store the encryption result, so that the second device can perform decryption on the encryption result to obtain the second partial decryption result.
[0175] In one embodiment, the third device can divide the calculation result to obtain a first execution sub-result and a second execution sub-result. For example, when the data length of the calculation result is L3, the first L4 bits of the calculation result can be taken as the first execution sub-result, and the data after the L4th bit of the calculation result can be taken as the second execution sub-result, where L4 is less than L3. The first execution sub-result is encrypted by using the first public key to obtain a first encrypted execution sub-result, and the first encrypted execution sub-result is sent to the first device. The second execution sub-result is encrypted by using the second public key to obtain a second encrypted execution sub-result, and the second encrypted execution sub-result is sent to the second device.
[0176] The first device can decrypt the first encrypted execution sub-result based on the first private key to obtain the first execution sub-result, receive the second execution sub-result sent by the second device, and splice the first execution sub-result and the second execution sub-result to obtain the calculation result. The second execution sub-result sent by the second device is obtained by decrypting the second encrypted execution sub-result based on the second private key.
[0177] The application has at least the following beneficial effects: (1) The proxy component and the computing task component are deployed in the trusted execution environment of the trusted third party corresponding to each business party. The decryption and the computing process of the first encrypted business data are both implemented by the proxy component and the computing task component in the trusted execution environment, that is, the business data circulation of each business party is implemented by the trusted execution environment. No independent cluster needs to be created for each business party, and no special hardware needs to be relied on. The circulation cost of business data is reduced, the convenience of the business data circulation process is improved, and the circulation efficiency of business data is improved without human intervention. (2) The second part of the decryption result obtained by the second business party is sent to the first business party only when the second business party determines that the execution file cannot restore the original data (that is, the business data), so that the first business party can aggregate and decrypt the encrypted result based on the first part of the decryption result and the received second part of the decryption result to obtain the computing result, so as to ensure the common ownership of the first business party and the second business party for the computing result, realize the safe and controllable computing result, and improve the security of the computing result.
[0178] Further, please refer to FIG. 7, which is a flow diagram of another data processing method provided by the application. As shown in FIG. 7, the method can be executed by the device corresponding to the first business party. The device corresponding to the trusted first business party can be the terminal in FIG. 1, can be the server in FIG. 1, or can be the terminal and the server. The device corresponding to the first business party in the application can be collectively referred to as the first device. The method can include the following steps:
[0179] S201, sending a computing task request to a proxy component running in a trusted execution environment.
[0180] The computing task request includes an execution file for performing a computing operation on the first business data, and a first data identifier of the first encrypted business data corresponding to the first business data. The proxy component is configured to obtain the first encrypted business data from the second device corresponding to the second business party according to the first data identifier, and decrypt the first encrypted business data to obtain the first business data.
[0181] In the application, the task submission component in the first device can generate a computing task request and send the computing task request to the task scheduling component in the first device. The task scheduling component in the first device synchronizes the computing task request to the task scheduling component in the third business party. The task scheduling component in the third business party forwards the computing task request to the proxy component.
[0182] S202, receiving the encrypted result sent by the proxy component.
[0183] The encryption result is aggregated and encrypted by the proxy component according to the first public key of the first device and the second public key of the second device, and the calculation result is obtained by the calculation task component running in the trusted execution environment according to the execution file and the first business data.
[0184] In S203, the encryption result is aggregated and decrypted by the first device and the second device to obtain the calculation result.
[0185] In the present application, the first device and the second device can jointly aggregate and decrypt the encryption result to obtain the calculation result, which is beneficial to ensure the common ownership of the first business party and the second business party to the calculation result and realize the security and controllability of the calculation result.
[0186] In one embodiment, the step S203 comprises: decrypting the encryption result according to the first private key corresponding to the first public key to obtain a first partial decryption result, receiving a second partial decryption result sent by the second device corresponding to the second business party, and aggregating and decrypting the encryption result according to the first partial decryption result and the second partial decryption result to obtain the calculation result.
[0187] The second partial decryption result is sent by the second device to the first device corresponding to the first business party when it is determined that the first business data cannot be restored based on the execution file, and the second partial decryption result is obtained by decrypting the encryption result based on the second private key corresponding to the second public key. The encryption result is sent by the proxy component to the second device, and the execution file in the second device is sent by the first device or the proxy component to the second device.
[0188] In an embodiment, the first device decrypts the encrypted result according to the first private key corresponding to the first public key to obtain a first partial decryption result. Since the encrypted result is obtained by splicing the extended base data, the digest data of the calculation result, and the XOR processing result, the first device can extract the extended base data from the encrypted result according to the splicing order and the data length of each data (i.e., the extended base data, the digest data of the calculation result, and the XOR processing result). For example, the splicing order is, from left to right, the extended base data, the digest data of the calculation result, and the XOR processing result; that is, the digest data of the calculation result is spliced after the extended base data, and the XOR processing result is spliced after the digest data of the calculation result. Assuming that the data length of the extended base data is L2, the first L2 bits of the encrypted result are the extended base data. The extended base data is rth power of the base data, r is the first random number, and the base data is data used to calculate the first public key and the second public key. The first device obtains the extended base data sk a rth power to obtain the first partial decryption result; and sk a is the first private key corresponding to the first public key.
[0189] For example, the first device can calculate the first partial decryption result by using the following formula (9):
[0190] In the formula (9), R a is the first partial decryption result.
[0191] Similarly, the second device decrypts the encrypted result according to the second private key corresponding to the second public key to obtain a second partial decryption result. The second device can extract the extended base data from the encrypted result according to the splicing order and the data length of each data (i.e., the extended base data, the digest data of the calculation result, and the XOR processing result). The extended base data is rth power of the base data, r is the first random number, and the base data is data used to calculate the first public key and the second public key. The second device obtains the extended base data sk b rth power to obtain the second partial decryption result; and sk b is the second private key corresponding to the second public key.
[0192] For example, the second device can calculate the second partial decryption result by using the following formula (10):
[0193] In the formula (10), R b is the second partial decryption result.
[0194] In an embodiment, the aggregating and decrypting the encrypted result according to the first partial decryption result and the second partial decryption result to obtain the calculation result can include that the first device can extract the digest data of the calculation result and the XOR processing result from the encrypted result according to the splicing order and the data length of each data (i.e., the extended basic data, the digest data of the calculation result, and the XOR processing result). The XOR processing result is obtained by XOR processing the random byte stream and the calculation result. For example, the splicing order from left to right is: the extended basic data, the digest data of the calculation result, and the XOR processing result. That is, the digest data of the calculation result is spliced after the extended basic data, and the XOR processing result is spliced after the digest data of the calculation result. Assuming that the data length of the extended basic data is 5, the data length of the digest data of the calculation result is 10, and the data length of the XOR processing result is 10; the first 5 bits of the encrypted result are the extended basic data, the 6th to 15th bits of the encrypted result are the digest data of the calculation result, and the 16th to 25th bits of the encrypted result are the XOR processing result. The first partial decryption result and the second partial decryption result are multiplied to obtain a derived public key. The derived public key is extended according to the data length of the XOR processing result to obtain the random byte stream; the data length of the XOR processing result is the same as the data length of the calculation result. The calculation result is determined according to the XOR processing result, the random byte stream, the derived public key, and the digest data of the calculation result. By participating in the aggregating and decrypting process of the encrypted result by the first business party and the second business party, the common ownership of the calculation result is ensured, the security of the calculation result is controllable, and the security of the calculation result is improved.
[0195] In an embodiment, the determining the calculation result according to the XOR processing result, the random byte stream, the derived public key, and the digest data of the calculation result can include that the first device XOR processes the XOR processing result and the random byte stream to obtain an initial calculation result; performs a hash operation on the initial calculation result and the derived public key to obtain a hash operation result; when the hash operation result matches the digest data of the calculation result, the initial calculation result is determined as the calculation result of the business data. When the hash operation result does not match the digest data of the calculation result, the calculation result decryption fails, and the decryption failure is returned to the second device to return the second partial decryption result again. Alternatively, the decryption failure can be returned to a third device corresponding to a trusted third party to re-aggregate and encrypt the calculation result to obtain the encrypted result. By participating in the aggregating and decrypting process of the encrypted result by the first business party and the second business party, the common ownership of the calculation result is ensured, the security of the calculation result is controllable, and the security of the calculation result is improved.
[0196] For example, the first device can calculate the derived public key based on the following formula (11):
[0197] Further, the PK * is extended into a random byte stream with the same data length as the calculation result, and the XOR processing result and the random byte stream are XOR processed to obtain an initial calculation result, which can be represented by the following formula (12):
[0198] wherein m3 in formula (12) is the initial calculation result, k is the random byte stream, and c is the XOR processing result. The initial calculation result and the derived public key are subjected to a hash operation to obtain a hash operation result, which can be represented by the following formula (13): * H = Hash (PK
[0199] wherein H in formula (13) represents the hash operation result, i.e., the hash operation result is a hash value, and when the hash operation result is the same as the digest, m3 is determined as the calculation result.
[0200] For example, the decryption process for the encryption result is shown in FIG. 8, which includes the following steps S81-S84:
[0201] S81, the first device decrypts to obtain a first partial decryption result; that is, the first device can decrypt the encryption result according to the first private key of the first service party to obtain a first partial decryption result, and the specific implementation process can be referred to the description above.
[0202] S82, the second device decrypts to obtain a second partial decryption result; that is, the second device can decrypt the encryption result according to the second private key of the second service party to obtain a second partial decryption result, and the specific implementation process can be referred to the description above.
[0203] S83, the second device sends the second partial decryption result to the first device; when the second device determines that the business data cannot be restored based on the execution file, the second device can send the second partial decryption result to the first device to authorize the first service party to use the calculation result.
[0204] S84, the first device aggregates and decrypts the encryption result according to the first partial decryption result and the second partial decryption result to obtain the calculation result.
[0205] In summary, the first device can aggregate and decrypt the encrypted result to obtain the calculation result based on the first partial decryption result and the second partial decryption result, in the case that the second business party authorizes the first business party to use the calculation result. The common ownership of the first business party and the second business party to the calculation result can be ensured, the security of the calculation result can be controlled, and the security of the business data and the calculation result can be improved.
[0206] In the present application, the first device obtains the second partial decryption result from the second device, decrypts the encrypted result based on the first partial decryption result and the second partial decryption result to obtain the calculation result, and can ensure the common ownership of the first business party and the second business party to the calculation result, control the security of the calculation result, and improve the security of the calculation result.
[0207] Further, please refer to FIG. 9, which is a flow diagram of another data processing method provided by the present application. As shown in FIG. 9, the method can be executed by a device corresponding to a second business party. The device corresponding to the second business party can be a terminal in FIG. 1, a server in FIG. 1, or a terminal and a server. The device corresponding to the second business party in the present application can be collectively referred to as a second device. The method can include the following steps:
[0208] S301, according to the first data identifier carried in the calculation task request, sending the first encrypted business data to the proxy component running in the trusted execution environment.
[0209] The calculation task request is sent by the first device corresponding to the first business party to the proxy component. The calculation task request includes an execution file for performing a calculation operation on the first business data, and a first data identifier of the first encrypted business data corresponding to the first business data. The proxy component is used to decrypt the first encrypted business data to obtain the first business data.
[0210] In the present application, the second device can receive the calculation task request sent by the first device, or receive the calculation task request sent by the third device. According to the first data identifier in the calculation task request, the first encrypted business data is sent to the proxy component running in the trusted execution environment of the trusted third party.
[0211] S302, receiving the encrypted result sent by the proxy component.
[0212] The encrypted result is obtained by the proxy component based on the first public key of the first device and the second public key of the second device. The calculation result is obtained by the calculation task component running in the trusted execution environment based on the execution file and the first business data.
[0213] S303, the first device, the encryption result is aggregated decryption, get the calculation result.
[0214] In this application, the second device can be common with the first device, the encryption result is aggregated decryption, get the calculation result, so as to ensure the first business party, the second business party common ownership of the calculation result, realize the safe and controllable calculation result.
[0215] In one embodiment, the step S303 comprises: when it is determined that the first business data cannot be restored based on the execution file, the encryption result is decrypted according to the second private key corresponding to the second public key, and the second part of the decryption result is obtained. The second part of the decryption result is sent to the first device corresponding to the first business party.
[0216] The first device is used to aggregate decryption of the first part of the decryption result and the second part of the decryption result based on the encryption result, and the calculation result is obtained. The first part of the decryption result is obtained by decrypting the encryption result based on the first private key corresponding to the first public key.
[0217] The execution file in the second device corresponding to the second business party is sent to the second device by the first device or the proxy component.
[0218] In one embodiment, the determination that the first business data cannot be restored based on the execution file comprises: the second device can obtain the calculation information corresponding to the calculation operation of the first business data from the execution file. The calculation information can include the calculation method of the first business data, the calculation time, etc. The second device can determine the calculation complexity corresponding to the calculation operation of the first business data according to the calculation information. When the calculation complexity is greater than the complexity threshold, it is determined that the first business data cannot be restored based on the execution file. By judging the calculation complexity of the first business data, it is determined whether the first business data can be restored from the execution file, which avoids the first business party obtaining the unencrypted business data of the second business party and improves the security of the business data.
[0219] The complexity threshold can be preset, or the complexity threshold can be determined according to the application scenario. For example, in the application scenario, the privacy of the first business data is relatively high, and the first value is determined as the complexity threshold. In the application scenario, the privacy of the first business data is relatively low, and the second value is determined as the complexity threshold. The first value is greater than the second value.
[0220] When the calculation information includes calculation duration, the computational complexity of the calculation operation corresponding to the aforementioned business data can be determined based on this duration. That is, the longer the calculation duration, the higher the computational complexity; conversely, the shorter the calculation duration, the lower the computational complexity. When the calculation information includes calculation methods and the corresponding calculation duration for each method, the second device can obtain the weight corresponding to each calculation method. Using the weights of the calculation methods, the calculation duration corresponding to that method is weighted to obtain a weighted calculation duration. The weighted calculation durations for each calculation method are then summed to obtain the computational complexity of the calculation operation corresponding to the aforementioned business data. The weights corresponding to the calculation methods can be pre-set; for example, the weights corresponding to multiplication and division calculation methods are greater than the weights corresponding to subtraction and addition calculation methods.
[0221] In one embodiment, the second device can encrypt the first business data according to the object key to obtain the first encrypted business data. Specifically, the second device can generate a symmetric key based on the basic data, the third public key of the trusted third party, and the aforementioned second private key; determine the x-th power of the basic data as the first coordinate value associated with the basic data on the elliptic curve group, where x is a second random number. The first business data is encrypted according to the symmetric key and the first coordinate value to obtain the first encrypted business data; a hash operation is performed on the first encrypted business data to obtain the data identifier of the first encrypted business data. The data identifier of the encrypted business data is sent to the first device corresponding to the first business party to authorize the first business party to request computation permissions for the business data. Encrypting the business data through the second device can prevent the business data from being leaked during transmission and improve the security of the business data.
[0222] In one embodiment, generating a symmetric key based on the basic data, the third public key of the trusted third party, and the second private key includes: the second device can determine the x-th power of the third public key of the trusted third party as the second coordinate value associated with the third public key on the elliptic curve group. The sk-value of the third public key of the trusted third party... b The power of this power yields the third coordinate value associated with the third public key on the aforementioned elliptic curve group; sk b The second private key is used as described above. A hash operation is performed on the third public key, the second public key, the first coordinate value, the second coordinate value, and the third coordinate value to obtain a symmetric key. This symmetric key is used to encrypt business data, allowing a third device to decrypt the encrypted data using the same symmetric key, thus improving decryption convenience.
[0223] It should be noted that the second coordinate value here is the coordinate value of the point on the vertical axis of the elliptic curve in the elliptic curve group to which the third public key is mapped, and the third coordinate value is the coordinate value of the point on the vertical axis of the elliptic curve in the elliptic curve group to which the third public key is mapped. Since the third public key is calculated based on the base data and the third private key, the second coordinate value associated with the third private key on the elliptic curve group is the same as the second coordinate value associated with the third public key on the elliptic curve group. The third coordinate value associated with the third private key on the elliptic curve group is the same as the third coordinate value associated with the third public key on the elliptic curve group.
[0224] In one embodiment, the encryption of the first service data according to the symmetric key and the first coordinate value to obtain the first encrypted service data includes that the second device can encrypt the first service data according to the symmetric key to obtain the ciphertext data of the service data; and the ciphertext data of the service data and the first coordinate value are spliced to obtain the first encrypted service data. In this way, the third device can calculate the symmetric key based on the first coordinate value in the encrypted service data and its own private key to decrypt the ciphertext data of the service data to obtain the first service data, thereby improving the convenience of decryption.
[0225] For example, the second device can generate a random number according to a random algorithm, calculate the first coordinate value, the second coordinate value and the third coordinate value according to the random number, the second private key and the third public key, and the first coordinate value, the second coordinate value and the third coordinate value can be expressed by the following formula (14):
[0226] wherein, the relationship between the third private key and the third public key is: The relationship between the second public key and the second private key is: Therefore, Y in formula (14) is the same value as Y in formula (2), and Z in formula (14) is the same value as Z in formula (2). The second device can perform a hash operation on the third public key, the second public key, the first coordinate value, the second coordinate value and the third coordinate value to obtain the symmetric key, which can be expressed by the above formula (3). The symmetric encryption algorithm Enc K (·) encrypt the first service data m1 to obtain the ciphertext data of the service data, and splice the first coordinate value and the ciphertext data of the service data to obtain the first encrypted service data, which can be expressed by the above formula (1).
[0227] It should be noted that in the second service party, the symmetric key is generated according to the third public key, the second private key, and the second random number and the like. Therefore, if the second private key is disclosed at a certain time T, since the second random number is unknown, the first encrypted service data cannot be decrypted, and the forward security of the first service data can be ensured. The forward security refers to ensuring that the encrypted service data of the second service party before the time T is not disclosed.
[0228] In the present application, the second device can avoid the leakage of unencrypted service data in the transmission process by transmitting the encrypted service data to the proxy component, and improve the security of the service data. By returning the second part of the decryption result to the first device only when it is determined that the first service data cannot be restored based on the execution file, the first service party can be prevented from restoring the service data based on the execution file, and the security of the service data can be improved. The common ownership of the first service party and the second service party with respect to the calculation result can be ensured, the security and controllability of the calculation result can be realized, and the security of the calculation result and the service data can be improved.
[0229] Please refer to FIG. 10, which is a structural schematic diagram of a data processing apparatus provided in an embodiment of the present application. As shown in FIG. 10, the data processing apparatus can include:
[0230] The receiving module 1010 is configured to receive a calculation task request sent by a first device through a proxy component running in a trusted execution environment, wherein the calculation task request includes an execution file used for performing a calculation operation on first service data in a second device, and a first data identifier of first encrypted service data corresponding to the first service data.
[0231] The decryption module 1011 is configured to acquire the first encrypted service data from the second device according to the first data identifier through the proxy component, and decrypt the first encrypted service data to obtain the first service data.
[0232] The execution module 1012 is configured to perform a calculation operation on the first service data according to the execution file through a calculation task component running in the trusted execution environment, and obtain a calculation result.
[0233] The encryption module 1013 is configured to aggregate and encrypt the calculation result according to a first public key of the first device and a second public key of the second device through the proxy component, and obtain an encrypted result. The encrypted result is used for sending to the first device and the second device, so that the first device and the second device aggregate and decrypt the encrypted result to obtain the calculation result.
[0234] The first device is configured to perform aggregated decryption on the encrypted result according to a first partial decryption result and a second partial decryption result to obtain the calculation result, the first partial decryption result is obtained by decrypting the encrypted result based on a first private key corresponding to the first public key, the second partial decryption result is sent by the second device to the first device when it is determined that the first business data cannot be restored based on the execution file, and the second partial decryption result is obtained by decrypting the encrypted result based on a second private key corresponding to the second public key, and the execution file in the second device is sent by the first device or the proxy component to the second device.
[0235] Optionally, the encryption module 1013 is specifically configured to:
[0236] The first public key of the first device and the second public key of the second device are multiplied by the proxy component to obtain a joint public key.
[0237] The joint public key is derived based on a first random number to obtain a derived public key.
[0238] The r-th power of the basic data is obtained to obtain extended basic data; r is the first random number, and the basic data is data used to calculate the first public key and the second public key.
[0239] The calculation result is aggregated encrypted based on the extended basic data and the derived public key to obtain an encrypted result.
[0240] Optionally, the encryption module 1013 is specifically configured to:
[0241] The derived public key and the calculation result are subjected to a hash operation to obtain digest data of the calculation result.
[0242] The derived public key is extended based on the data length of the calculation result to obtain a random byte stream.
[0243] The random byte stream and the calculation result are subjected to an exclusive or operation to obtain an exclusive or operation result.
[0244] The extended basic data, the digest data, and the exclusive or operation result are spliced to obtain the encrypted result.
[0245] Optionally, the first encrypted business data is obtained by splicing the ciphertext data of the first business data and a first coordinate value, the ciphertext data of the first business data is obtained by encrypting the first business data based on a symmetric key, and the first coordinate value is a coordinate value associated with the basic data on an elliptic curve group.
[0246] Optionally, the decryption module 1011 is specifically configured to:
[0247] The first encrypted service data is split to obtain the first coordinate value and the ciphertext data of the first service data;
[0248] According to the first coordinate value, the second public key, and the third private key of the trusted third party, the second coordinate value and the third coordinate value associated with the third private key on the elliptic curve group are generated;
[0249] According to the first coordinate value, the second coordinate value, and the third coordinate value, the second public key, and the third public key corresponding to the third private key, a symmetric key is generated;
[0250] According to the symmetric key, the ciphertext data of the first service data is decrypted to obtain the first service data.
[0251] Optionally, the computing task request further carries a second data identifier of the second encrypted service data;
[0252] Optionally, the execution module 1012 is specifically configured to:
[0253] According to the second data identifier, the second encrypted service data is obtained from the first device through the proxy component;
[0254] The second encrypted service data is decrypted to obtain the second service data;
[0255] According to the execution file, the second service data and the second service party are executed by the computing task component running in the trusted execution environment to obtain a computing result.
[0256] The application has at least the following beneficial effects: (1) The proxy component and the computing task component are deployed in the trusted execution environment of the trusted third party corresponding to each business party. The decryption of the first encrypted business data and the computing process are both implemented by the proxy component and the computing task component in the trusted execution environment, that is, the business data circulation of each business party is implemented by the trusted execution environment. No independent cluster needs to be created for each business party, and no special hardware needs to be relied on. The circulation cost of business data is reduced, the convenience of the business data circulation process is improved, and the circulation efficiency of business data is improved without human intervention. (2) The computing result is aggregated and encrypted. When the second business party determines that the execution file cannot restore the original data (that is, the business data), the second business party sends the second part of the decryption result obtained by the second business party to the first business party. In this way, the first business party can aggregate and decrypt the encrypted result based on the first part of the decryption result obtained by the first business party and the second part of the decryption result received by the first business party to obtain the computing result. The common ownership of the computing result by the first business party and the second business party can be ensured, the security of the computing result can be controlled, and the security of the computing result can be improved.
[0257] Please refer to FIG. 11, which is a structural schematic diagram of another data processing apparatus provided by the application. As shown in FIG. 11, the data processing apparatus can include:
[0258] The sending module 1111 is configured to send a computing task request to a proxy component running in a trusted execution environment. The computing task request includes an execution file used to perform a computing operation on first business data and a first data identifier of first encrypted business data corresponding to the first business data. The proxy component is configured to obtain the first encrypted business data from a second device corresponding to the second business party according to the first data identifier, and decrypt the first encrypted business data to obtain the first business data.
[0259] The receiving module 1112 is configured to receive an encrypted result sent by the proxy component. The encrypted result is obtained by aggregating and encrypting a computing result according to a first public key of the first device and a second public key of the second device by the proxy component. The computing result is obtained by performing a computing operation on the first business data according to the execution file by a computing task component running in the trusted execution environment.
[0260] The decryption module 1113 is configured to aggregate and decrypt the encrypted result with the second device to obtain the computing result.
[0261] Optionally, the decryption module 1113 is specifically configured to decrypt the encryption result according to a first private key corresponding to the first public key to obtain a first partial decryption result, and receive a second partial decryption result sent by a second device corresponding to a second business party; the second partial decryption result is sent by the second device to the first device corresponding to the first business party when it is determined that the first business data cannot be restored based on the execution file, and the second partial decryption result is obtained by decrypting the encryption result based on a second private key corresponding to the second public key, the encryption result being sent by the proxy component to the second device, and the execution file in the second device being sent by the first device or the proxy component to the second device;
[0262] The decryption module 1113 is further configured to aggregate decrypt the encryption result based on the first partial decryption result and the second partial decryption result to obtain the calculation result.
[0263] Optionally, the decryption module 1113 is specifically configured to:
[0264] extract the digest data of the calculation result and the XOR processing result from the encryption result; the XOR processing result is obtained by performing XOR processing on a random byte stream and the calculation result;
[0265] multiply the first partial decryption result and the second partial decryption result to obtain a derived public key;
[0266] extend the derived public key according to the data length of the XOR processing result to obtain the random byte stream;
[0267] determine the calculation result according to the XOR processing result, the random byte stream, the derived public key, and the digest data of the calculation result;
[0268] Optionally, the decryption module 1113 is specifically configured to:
[0269] perform XOR processing on the XOR processing result and the random byte stream to obtain an initial calculation result;
[0270] perform a hash operation on the initial calculation result and the derived public key to obtain a hash operation result;
[0271] when the hash operation result matches the digest data of the calculation result, determine the initial calculation result as the calculation result of the business data.
[0272] Optionally, the decryption module 1113 is specifically configured to:
[0273] extract extended base data from the encryption result; the extended base data is rth power of base data, r is a first random number, and the base data is data used to calculate the first public key and the second public key;
[0274] obtain sk of the extended base data a th power to obtain a first partial decryption result; sk a is a first private key corresponding to the first public key.
[0275] In the present application, the second partial decryption result is obtained from the second device by the first device, the encryption result is decrypted based on the first partial decryption result and the second partial decryption result to obtain a calculation result, the common ownership of the first business party and the second business party to the calculation result is ensured, the security and controllability of the calculation result are realized, and the security of the calculation result is improved.
[0276] Please refer to FIG. 12, which is a structural schematic diagram of another data processing apparatus provided by an embodiment of the present application. As shown in FIG. 12, the data processing apparatus can include:
[0277] The sending module 1211 is configured to send, according to a first data identifier carried in a calculation task request, first encrypted business data to a proxy component running in a trusted execution environment; the calculation task request is sent by a first device to the proxy component, the calculation task request includes an execution file used to perform a calculation operation on first business data, and a first data identifier of the first encrypted business data corresponding to the first business data; the proxy component is configured to decrypt the first encrypted business data to obtain the first business data;
[0278] The receiving module 1212 is configured to receive an encryption result sent by the proxy component; the encryption result is obtained by the proxy component by aggregately encrypting a calculation result according to a first public key of the first device and a second public key of a second device; the calculation result is obtained by a calculation task component running in the trusted execution environment by performing a calculation operation on the first business data according to the execution file;
[0279] The decryption module 1213 is configured to, together with the first device, aggregate-decrypt the encryption result to obtain the calculation result.
[0280] Optionally, the decryption module 1213 is specifically configured to, when it is determined that the first business data cannot be restored based on the execution file, decrypt the encryption result according to a second private key corresponding to the second public key to obtain a second partial decryption result; the execution file in the second device corresponding to the second business party is sent to the second device by the first device or the proxy component;
[0281] The sending module 1211 is further configured to send the second partial decryption result to a first device corresponding to the first service provider; and the first device is configured to perform aggregated decryption on the encrypted result according to the first partial decryption result and the second partial decryption result, to obtain the calculation result, wherein the first partial decryption result is obtained by decrypting the encrypted result based on a first private key corresponding to the first public key by the first device.
[0282] Optionally, the decryption module 1213 is specifically configured to:
[0283] extract extended basic data from the encrypted result, wherein the extended basic data is rth power of the basic data, r is a first random number, and the basic data is data used to calculate the first public key and the second public key;
[0284] obtain sk b th power of the extended basic data to obtain the second partial decryption result; sk b is a second private key corresponding to the second public key.
[0285] Optionally, the decryption module 1213 is specifically configured to:
[0286] obtain, from the execution file, calculation information corresponding to the calculation operation for the first service data;
[0287] determine calculation complexity corresponding to the calculation operation for the first service data according to the calculation information;
[0288] when the calculation complexity is greater than a complexity threshold, determine that the first service data cannot be restored based on the execution file.
[0289] Optionally, the sending module 1211 is specifically configured to generate a symmetric key according to the basic data, a third public key of the trusted third party, and the second private key.
[0290] determine xth power of the basic data as a first coordinate value associated with the basic data on an elliptic curve group; x is a second random number;
[0291] encrypt the first service data according to the symmetric key and the first coordinate value to obtain the first encrypted service data;
[0292] perform a hash operation on the first encrypted service data to obtain a data identifier of the first encrypted service data;
[0293] send the data identifier of the first encrypted service data to the first device corresponding to the first service provider.
[0294] Optionally, the sending module 1211 is specifically configured to:
[0295] determining a third coordinate value associated with the third public key on the elliptic curve group by raising the third public key of the trusted third party to the power of x;
[0296] obtaining a third coordinate value associated with the third public key on the elliptic curve group by raising the third public key of the trusted third party to the power of x; b b the second private key is sk
[0297] performing a hash operation on the third public key, the second public key, the first coordinate value, the second coordinate value and the third coordinate value to obtain a symmetric key.
[0298] In the present application, the second device can avoid the unencrypted service data being leaked in the transmission process by transmitting the encrypted service data to the proxy component, and improve the security of the service data. By returning the second part of the decryption result to the first device only when it is determined that the first service data cannot be restored based on the execution file, the first service party can be prevented from restoring the service data based on the execution file, and the security of the service data can be improved. The common ownership of the calculation result by the first service party and the second service party can be ensured, the security and controllability of the calculation result can be realized, and the security of the calculation result and the service data can be improved.
[0299] Please refer to FIG. 13, which is a structural schematic diagram of a computer device provided in an embodiment of the present application. As shown in FIG. 13, the computer device 1000 can refer to a terminal or a server, and includes a processor 1001, a network interface 1004 and a memory 1005. In addition, the computer device 1000 can further include a user interface 1003 and at least one communication bus 1002. The communication bus 1002 is used to realize the connection and communication among the components. In some embodiments, the user interface 1003 can include a display (Display), a keyboard (Keyboard), and can optionally include a standard wired interface, a wireless interface. The network interface 1004 can optionally include a standard wired interface, a wireless interface (such as a WI-FI interface). The memory 1005 can be a high-speed RAM memory, or a non-volatile memory (non-volatile Memory), such as at least one disk storage. The memory 1005 can also be at least one storage device away from the aforementioned processor 1001. As shown in FIG. 13, the memory 1005 as a computer readable storage medium can include an operating system, a network communication module, a user interface module and a computer program.
[0300] In the computer device 1000 shown in FIG. 13, the network interface 1004 can provide network communication functions; the user interface 1003 is mainly used to provide an input interface; and the processor 1001 can be used to invoke a computer program stored in the memory 1005 to implement the steps in the method embodiments of the present application.
[0301] The present application has at least the following beneficial effects: (1) The proxy component and the computing task component are deployed in the trusted execution environment of the trusted third party corresponding to each business party. The decryption and the computing process of the first encrypted business data are both implemented by the proxy component and the computing task component in the trusted execution environment, that is, the business data circulation of each business party is implemented by the trusted execution environment. No independent cluster needs to be created for each business party, and no special hardware needs to be relied on. The circulation cost of business data is reduced, the convenience of the business data circulation process is improved, and the business data circulation efficiency is improved without human intervention. (2) The second part of the decryption result obtained by the second business party is sent to the first business party only when the second business party determines that the execution file cannot restore the original data (i.e., business data), so that the first business party can aggregate and decrypt the encrypted result based on the first part of the decryption result obtained by itself and the second part of the decryption result received, to obtain the computing result. The common ownership of the computing result by the first business party and the second business party can be ensured, the security and controllability of the computing result can be realized, and the security of the computing result can be improved.
[0302] It should be understood that the computer device described in the embodiments of the present application can perform the description of the above-mentioned data processing method in the corresponding embodiments of the foregoing, and can also perform the description of the above-mentioned data processing device in the corresponding embodiments of the foregoing. Here, no further description is given. In addition, the beneficial effects of using the same method are not described again.
[0303] In the application, the collection and processing of related data should strictly comply with the requirements of relevant laws and regulations, obtain the informed consent or separate consent of the personal information subject, and carry out subsequent data use and processing behavior within the scope of authorization of laws and regulations and the personal information subject.
[0304] In addition, it should be noted here that the embodiments of the present application also provide a computer readable storage medium, and the above-mentioned computer readable storage medium stores the computer program executed by the data processing device mentioned in the foregoing, and the above-mentioned computer program includes program instructions, which can execute the description of the above-mentioned data processing method in the corresponding embodiments of the foregoing when the above-mentioned processor executes the above-mentioned program instructions. Therefore, no further description is given here. In addition, the beneficial effects of using the same method are not described again. For technical details not disclosed in the computer readable storage medium embodiments of the present application, please refer to the description of the method embodiments of the present application.
[0305] By way of example, the aforementioned program instructions can be deployed on a computer device to perform, or on at least two computer devices in one place to perform, or on at least two computer devices distributed in at least two places and interconnected through a communication network to perform. The at least two computer devices distributed in at least two places and interconnected through a communication network can constitute a blockchain network.
[0306] The aforementioned computer readable storage medium can be a data processing apparatus provided by any of the foregoing embodiments or a middle storage unit of the aforementioned computer device, such as a hard disk or a middle storage of the computer device. The computer readable storage medium can also be an external storage device of the computer device, such as a plug-in hard disk, an SMC (SMart Media card), an SD (Secure digital) card, a flash card, etc. equipped on the computer device. Further, the computer readable storage medium can include both the middle storage unit and the external storage device of the computer device. The computer readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer readable storage medium can also be used to temporarily store data that has been output or will be output.
[0307] The terms "first", "second", etc. in the description and claims of the embodiments of the present application and the drawings are used to distinguish different media, rather than to describe a specific order. In addition, the term "comprising" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, device, product or equipment including a series of steps or units is not limited to the listed steps or units, but can optionally include steps or units not listed, or can optionally include other steps or units inherent to the process, method, device, product or equipment.
[0308] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined target, and can be implemented entirely or partially by using software, hardware (such as a processing circuit or a memory) or a combination thereof. Similarly, one processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an integral module or unit that includes the functions of the module or unit.
[0309] In the present application, the relevant data collection and processing should strictly comply with the requirements of relevant laws and regulations, obtain the informed consent or separate consent of the personal information subject, and within the scope of authorization of laws and regulations and the personal information subject, carry out subsequent data use and processing behavior.
[0310] The embodiments of the present application further provide a computer program product comprising a computer program, which, when executed by a processor, implements the description of the data processing method and the decoding method in the foregoing corresponding embodiments. Therefore, the description will not be repeated here. In addition, the description of the beneficial effects of using the same method will also not be repeated. For technical details not disclosed in the embodiments of the computer program product involved in the present application, please refer to the description of the method embodiments of the present application.
[0311] Those skilled in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized in electronic hardware, computer software or a combination of both. In order to clearly illustrate the interchangeability of hardware and software, the components and steps of each example have been described in the above description in general terms. Whether the functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. A person skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0312] The method and related apparatus provided by the embodiments of the present application are described with reference to the method flowchart and / or structural schematic diagram provided by the embodiments of the present application. The combination of each flow and / or block of the method flowchart and / or structural schematic diagram and the combination of the flows and / or blocks in the flowchart and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to a general-purpose computer, a special-purpose computer, an embedded processor or other programmable network-connected devices to produce a machine, so that the instructions executed by the processor of the computer or other programmable network-connected devices produce an apparatus for realizing the functions specified in one or more flows of the flowchart and / or one or more blocks of the structural schematic diagram. These computer program instructions can also be stored in a computer readable memory that can guide the computer or other programmable network-connected devices to work in a specific way, so that the instructions stored in the computer readable memory produce a product comprising instruction apparatus, which realizes the functions specified in one or more flows of the flowchart and / or one or more blocks of the structural schematic diagram. These computer program instructions can also be loaded into a computer or other programmable network-connected devices, so that a series of operation steps are performed on the computer or other programmable devices to produce a computer-implemented process, so that the instructions executed on the computer or other programmable devices provide steps for realizing the functions specified in one or more flows of the flowchart and / or one or more blocks of the structural schematic diagram.
[0313] The above descriptions are only the preferred embodiment of the application, of course, cannot be used to limit the scope of the application, thus the equivalent variations made by the claims of the application, still belongs to the scope of the application covered.
Claims
1. A data processing method, characterized by, The method is performed by a third device, and the method comprises: receiving, by a proxy component running in a trusted execution environment, a computing task request sent by a first device, the computing task request comprising an execution file for performing a computing operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data; obtaining, by the proxy component, the first encrypted service data from the second device according to the first data identifier, to decrypt the first encrypted service data to obtain the first service data; performing, by a computing task component running in the trusted execution environment, the computing operation on the first service data according to the execution file to obtain a computing result; performing, by the proxy component, aggregated encryption on the computing result according to a first public key of the first device and a second public key of the second device to obtain an encrypted result, the encrypted result being used for sending to the first device and the second device to enable the first device and the second device to perform aggregated decryption on the encrypted result to obtain the computing result.
2. The method of claim 1, wherein: the first device is further configured to perform aggregated decryption on the encrypted result according to a first partial decryption result and a second partial decryption result to obtain the computing result; the first partial decryption result is obtained by the first device by decrypting the encrypted result based on a first private key corresponding to the first public key; the second partial decryption result is sent by the second device to the first device when it is determined that the first service data cannot be restored based on the execution file, and the second partial decryption result is obtained by decrypting the encrypted result based on a second private key corresponding to the second public key, the execution file in the second device being sent to the second device by the first device or the proxy component.
3. The method of claim 1 or 2, wherein, the performing, by the proxy component, aggregated encryption on the computing result according to a first public key of the first device and a second public key of the second device to obtain an encrypted result comprises: multiplying, by the proxy component, the first public key of the first device and the second public key of the second device to obtain a joint public key; deriving, according to a first random number, the joint public key to obtain a derived public key; obtaining rth power of base data to obtain extended base data; r is the first random number, and the base data is data used for calculating the first public key and the second public key; performing aggregated encryption on the computing result according to the extended base data and the derived public key to obtain an encrypted result.
4. The method of claim 3, wherein, the performing aggregated encryption on the computing result according to the extended base data and the derived public key to obtain an encrypted result comprises: performing a hash operation on the derived public key and the computing result to obtain digest data of the computing result; extending the derived public key according to a data length of the computing result to obtain a random byte stream; performing an exclusive or operation on the random byte stream and the computing result to obtain an exclusive or operation result; The expansion base data, the summary data and the XOR processing result are spliced to obtain an encryption result.
5. The method according to any one of claims 1 to 4, characterized in that, The first encrypted service data is obtained by splicing ciphertext data of the first service data and a first coordinate value, the ciphertext data of the first service data is obtained by encrypting the first service data according to a symmetric key, and the first coordinate value is a coordinate value associated with base data on an elliptic curve group; The first encrypted service data is decrypted to obtain the first service data, including: The first encrypted service data is split to obtain the first coordinate value and the ciphertext data of the first service data; A second coordinate value and a third coordinate value associated with the third private key on the elliptic curve group are generated according to the first coordinate value, the second public key, the third private key of the trusted third party; A symmetric key is generated according to the first coordinate value, the second coordinate value and the third coordinate value, the second public key and the third public key corresponding to the third private key; The ciphertext data of the first service data is decrypted according to the symmetric key to obtain the first service data.
6. The method according to any one of claims 1 to 5, wherein, The computing task request further carries a second data identifier of second encrypted service data in the first device; The computing task component running in the trusted execution environment performs a computing operation on the first service data according to the execution file to obtain a computing result, including: The second encrypted service data is decrypted to obtain second service data. The computing task component running in the trusted execution environment performs a computing operation on the second service data and a second service party according to the execution file to obtain a computing result. The method is performed by a first device, and the method includes:
7. A data processing method, characterized by, sending a computing task request to a proxy component running in a trusted execution environment, the computing task request including an execution file for performing a computing operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data, the proxy component being configured to acquire the first encrypted service data from the second device according to the first data identifier and decrypt the first encrypted service data to obtain the first service data; receiving an encryption result sent by the proxy component, the encryption result being obtained by the proxy component by aggregately encrypting a computing result according to a first public key of the first device and a second public key of the second device, the computing result being obtained by a computing task component running in the trusted execution environment by performing a computing operation on the first service data according to the execution file; aggregately decrypting the encryption result with the second device to obtain the computing result. The aggregately decrypting the encryption result with the second device to obtain the computing result includes:
8. The method of claim 7, wherein, decrypt the encrypted result according to a first private key corresponding to the first public key to obtain a first partial decryption result, and receive a second partial decryption result sent by the second device; the second partial decryption result is sent by the second device when it is determined that the first business data cannot be restored based on the execution file, and the second partial decryption result is obtained by decrypting the encrypted result based on a second private key corresponding to the second public key, the encrypted result being sent by the proxy component to the second device, and the execution file in the second device being sent by the first device or the proxy component to the second device; aggregate decrypt the encrypted result according to the first partial decryption result and the second partial decryption result to obtain the calculation result.
9. The method of claim 8, wherein, The aggregation decryption of the encrypted result according to the first partial decryption result and the second partial decryption result to obtain the calculation result comprises: extracting the summary data of the calculation result and the XOR processing result from the encrypted result; the XOR processing result is obtained by XOR processing a random byte stream and the calculation result; multiplying the first partial decryption result and the second partial decryption result to obtain a derived public key; extending the derived public key according to the data length of the XOR processing result to obtain the random byte stream; determining the calculation result according to the XOR processing result, the random byte stream, the derived public key, and the summary data of the calculation result.
10. The method of claim 9, wherein, The determination of the calculation result according to the XOR processing result, the random byte stream, the derived public key, and the summary data of the calculation result comprises: XOR processing the XOR processing result and the random byte stream to obtain an initial calculation result; hashing the initial calculation result and the derived public key to obtain a hash result; when the hash result matches the summary data of the calculation result, determining the initial calculation result as the calculation result of the business data.
11. The method according to any one of claims 7 to 10, wherein, The decryption of the encrypted result according to the first private key corresponding to the first public key to obtain the first partial decryption result comprises: extracting extended base data from the encrypted result; the extended base data is r times of base data, r being a first random number, and the base data being data used to calculate the first public key and the second public key; sk, which obtains the extended basic data a The power of sk yields the first part of the decryption result; a This is the first private key corresponding to the first public key.
12. A data processing method, characterized by, The method is performed by a second device, and the method comprises: sending first encrypted business data to a proxy component running in a trusted execution environment according to a first data identifier carried in a calculation task request; the calculation task request is sent by a first device to the proxy component, the calculation task request comprising an execution file used to perform a calculation operation on first business data and a first data identifier of the first encrypted business data corresponding to the first business data, and the proxy component being used to decrypt the first encrypted business data to obtain the first business data; receive the encryption result sent by the agent component; the encryption result is obtained by the agent component by aggregately encrypting a calculation result according to a first public key of the first device and a second public key of the second device, and the calculation result is obtained by a calculation task component running in the trusted execution environment by performing a calculation operation on the first service data according to the execution file; perform aggregately decryption on the encryption result with the first device to obtain the calculation result.
13. The method of claim 12, wherein, The aggregately decryption on the encryption result with the first device to obtain the calculation result comprises: when it is determined that the first service data cannot be restored based on the execution file, perform decryption on the encryption result according to a second private key corresponding to the second public key to obtain a second part of the decryption result; the execution file in the second device is sent to the second device by the first device or the agent component; send the second part of the decryption result to the first device; the first device is configured to perform aggregately decryption on the encryption result according to a first part of the decryption result and the second part of the decryption result to obtain the calculation result, and the first part of the decryption result is obtained by performing decryption on the encryption result based on a first private key corresponding to the first public key.
14. The method of claim 13, wherein, The decryption on the encryption result according to the second private key corresponding to the second public key to obtain the second part of the decryption result comprises: extract an extended base data from the encryption result; the extended base data is r times of a base data, r is a first random number, and the base data is data used for calculating the first public key and the second public key; sk b sk b is a second private key corresponding to the second public key.
15. The method of claim 13, wherein, The determination that the first service data cannot be restored based on the execution file comprises: obtain calculation information corresponding to the calculation operation on the first service data from the execution file; determine a calculation complexity corresponding to the calculation operation on the first service data according to the calculation information; when the calculation complexity is greater than a complexity threshold, determine that the first service data cannot be restored based on the execution file.
16. The method according to any one of claims 12 to 15, wherein, The method further comprises: generate a symmetric key according to a base data, a third public key of a trusted third party and the second private key; determine x times of the base data as a first coordinate value associated with the base data on an elliptic curve group; x is a second random number; encrypt the first service data according to the symmetric key and the first coordinate value to obtain the first encrypted service data; perform a hash operation on the first encrypted service data to obtain a data identifier of the first encrypted service data; send the data identifier of the first encrypted service data to the first device.
17. The method of claim 16, wherein, The generation of the symmetric key according to the base data, the third public key of the trusted third party and the second private key comprises: determine x times of the third public key of the trusted third party as a second coordinate value associated with the third public key on the elliptic curve group; sk b a third coordinate value associated with the third public key on the elliptic curve group; and b the second private key; perform a hash operation on the third public key, the second public key, the first coordinate value, the second coordinate value and the third coordinate value to obtain the symmetric key.
18. A data processing apparatus, characterized by The data processing apparatus is arranged in a third device, comprising: a receiving module, configured to receive a computing task request sent by a first device through a proxy component running in a trusted execution environment, the computing task request comprising an execution file for performing a computing operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data; a decrypting module, configured to acquire the first encrypted service data from the second device according to the first data identifier through the proxy component, to decrypt the first encrypted service data to obtain the first service data; an executing module, configured to perform a computing operation on the first service data according to the execution file through a computing task component running in the trusted execution environment to obtain a computing result; an encrypting module, configured to aggregate encrypt the computing result according to a first public key of the first device and a second public key of the second device through the proxy component to obtain an encrypted result, the encrypted result being used for sending to the first device and the second device to make the first device and the second device aggregate decrypt the encrypted result to obtain the computing result.
19. A data processing apparatus, characterized by The data processing apparatus is arranged in a first device, comprising: a sending module, configured to send a computing task request to a proxy component running in a trusted execution environment; the computing task request comprising an execution file for performing a computing operation on first service data in a second device and a first data identifier of first encrypted service data corresponding to the first service data, the proxy component being configured to acquire the first encrypted service data from the second device according to the first data identifier, to decrypt the first encrypted service data to obtain the first service data; a receiving module, configured to receive an encrypted result sent by the proxy component; the encrypted result being obtained by the proxy component by aggregating encrypting a computing result according to a first public key of the first device and a second public key of the second device, the computing result being obtained by a computing task component running in the trusted execution environment by performing a computing operation on the first service data according to the execution file; a decrypting module, configured to aggregate decrypt the encrypted result with the second device to obtain the computing result.
20. A data processing apparatus, characterized in that, The data processing apparatus is arranged in a second device, comprising: a sending module, configured to send first encrypted service data to a proxy component running in a trusted execution environment according to a first data identifier carried in a computing task request; the computing task request being sent by a first device to the proxy component, the computing task request comprising an execution file for performing a computing operation on first service data and a first data identifier of the first encrypted service data corresponding to the first service data, the proxy component being configured to decrypt the first encrypted service data to obtain the first service data; a receiving module, configured to receive an encrypted result sent by the proxy component; the encrypted result being obtained by the proxy component by aggregating encrypting a computing result according to a first public key of the first device and a second public key of the second device, the computing result being obtained by a computing task component running in the trusted execution environment by performing a computing operation on the first service data according to the execution file; a decrypting module, configured to aggregate decrypt the encrypted result with the second device to obtain the computing result. receive the encryption result sent by the agent component; the encryption result is obtained by the agent component by performing aggregated encryption on a calculation result according to a first public key of the first device and a second public key of the second device, and the calculation result is obtained by a calculation task component running in the trusted execution environment by performing a calculation operation on the first service data according to the execution file; decrypt the encryption result with the first device to obtain the calculation result. 21.A computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the computer device is configured to perform the method according to any one of claims 1-20. The processor executes the computer program to implement the steps of the method in any one of claims 1 to 17.
22. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the method in any one of claims 1 to 17.
23. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the method in any one of claims 1 to 17.
Citation Information
Patent Citations
Data query method and system based on trusted execution environment
CN117033448A
Privacy joint computing method and device based on trusted execution environment
CN117874806A
Block chain data processing method and device, computer equipment, medium and product
CN118172058A
Financial risk control method and system based on privacy calculation and joint modeling
CN118313911A
Data processing method and device, equipment and storage medium
CN118585991A