Data processing method and data processing engine based on trusted execution environment
By creating an isolated area on the server side of the data processor and using the ciphertext computing interpreter to process the data, the security problem of data during the delegated processing is solved, and the confidentiality and credibility of the data are achieved, which is suitable for various data processing scenarios.
Patent Information
- Application Number
- CN202311454722.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-01
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2043-11-01
AI Technical Summary
In the prior art, when the data owner entrusts a data processing platform for data processing, there are data security concerns, especially the problem that data may be leaked during the processing process.
Using a data processing method based on a trusted execution environment, by creating an isolated area on the server side of the data processor, and using a ciphertext computing interpreter to process the data, ensuring the security of the data during transmission and processing.
It realizes the "available but invisible" state of data during processing, ensures the confidentiality and credibility of data, avoids the risk of data leakage, and is suitable for a wide range of data processing scenarios.
Smart Images

Figure CN117708842B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this specification relate to the field of computer technology, and in particular to a data processing method based on a trusted execution environment, a data processing engine based on a trusted execution environment, a computing device, a computer-readable storage medium, and a computer program. Background Art
[0002] Currently, many data owners do not have the data processing capabilities or are unwilling to participate in the data processing process. Therefore, they will entrust other data processing platforms to process the data in order to process the data they hold.
[0003] In existing technical solutions, when other data processing platforms process data, they need to fully obtain the information in the data to realize data processing. That is, the data owner's data needs to be in a "visible" state on other data processing platforms. This state makes the data owner have data security concerns about other data processing platforms. Therefore, a safer and more reliable technical solution is urgently needed to solve the above technical problems. Summary of the Invention
[0004] In view of this, embodiments of this specification provide a data processing method based on a trusted execution environment. One or more embodiments of this specification also relate to a data processing engine based on a trusted execution environment, a computing device, a computer-readable storage medium, and a computer program to address technical deficiencies in the prior art.
[0005] According to a first aspect of an embodiment of this specification, a data processing method based on a trusted execution environment is provided. The method is applied to a data processing engine based on the trusted execution environment. The data processing engine is built on a server of a data processor. The server of the data processor is configured with a trusted execution environment. The trusted execution environment creates an isolated area. The data processing engine executes the method in the isolated area, including:
[0006] In response to a data processing request sent by a data client, determining ciphertext data carried in the data processing request and encrypted by a key;
[0007] decrypting the ciphertext data according to a key corresponding to the ciphertext data to obtain plaintext data corresponding to the ciphertext data, wherein the key is returned by the data entrusting party when the verification result of the signed environmental verification report of the isolated area is determined to be passed;
[0008] Determining, according to the data processing request, a computing function written in an encryption programming language for processing the plaintext data;
[0009] The calculation function is parsed using a ciphertext calculation interpreter to generate a data processing execution plan, and the plaintext data is processed according to the data processing execution plan to obtain a data processing result, wherein the ciphertext calculation interpreter is loaded into the isolation area.
[0010] According to a second aspect of an embodiment of this specification, a data processing engine based on a trusted execution environment is provided. The data processing engine is built on a server side of a data processor. The server side of the data processor is configured with a trusted execution environment. The trusted execution environment creates an isolated area. The data processing engine is executed in the isolated area. The data processing engine includes an interface unit, an encryption and decryption unit, a ciphertext data processing unit, and a data management unit, wherein:
[0011] The interface unit is configured to respond to a data processing request sent by a data client, determine ciphertext data encrypted by a key carried in the data processing request, and load the ciphertext data into the encryption and decryption unit;
[0012] the encryption and decryption unit is configured to decrypt the ciphertext data according to a key corresponding to the ciphertext data, obtain plaintext data corresponding to the ciphertext data, and store the plaintext data in the data management unit, wherein the key is returned by the data entrusting party when the verification result of the signed environmental verification report of the isolated area is determined to be passed;
[0013] The interface unit is further configured to obtain, according to the data processing request, a calculation function written in an encryption programming language for processing the plaintext data, and send the calculation function to the ciphertext data processing unit;
[0014] The ciphertext data processing unit is used to obtain the plaintext data from the data management unit using a ciphertext calculation interpreter, parse the calculation function to generate a data processing execution plan, and process the plaintext data according to the data processing execution plan to obtain a data processing result.
[0015] According to a third aspect of an embodiment of this specification, a computing device is provided, including:
[0016] memory and processor;
[0017] The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the above-mentioned data processing method based on the trusted execution environment are implemented.
[0018] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores computer-executable instructions, which, when executed by a processor, implement the steps of the above-mentioned data processing method based on a trusted execution environment.
[0019] According to a fifth aspect of the embodiments of this specification, a computer program is provided, wherein when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned data processing method based on a trusted execution environment.
[0020] A data processing method based on a trusted execution environment in one embodiment of the present specification is applied to a data processing engine based on a trusted execution environment, the data processing engine being built on a server side of a data processor, the server side of the data processor being configured with a trusted execution environment, the trusted execution environment creating an isolated area, the data processing engine executing the method in the isolated area comprising: responding to a data processing request sent by a data entrusting party, determining ciphertext data carried in the data processing request and encrypted by a key; decrypting the ciphertext data according to the key corresponding to the ciphertext data to obtain plaintext data corresponding to the ciphertext data, wherein the key is returned by the data entrusting party when determining that the verification result of the signed environment verification report of the isolated area is passed; determining a calculation function written in an encryption programming language to process the plaintext data according to the data processing request; parsing the calculation function using a ciphertext calculation interpreter to generate a data processing execution plan, and performing data processing on the plaintext data according to the data processing execution plan to obtain a data processing result, wherein the ciphertext calculation interpreter is loaded into the isolated area.
[0021] Specifically, the method processes the ciphertext data encrypted by the key sent by the data entrustor in an isolated area created in a trusted execution environment using a ciphertext calculation interpreter that can parse calculation functions written in an encryption programming language and has passed trusted verification, so as to obtain a data processing result. This method not only ensures the security of the sensitive data sent by the data entrustor during transmission, and the "available but invisible" data during the data processing process to avoid data leakage at the data processor, but also transfers trust to the ciphertext calculation interpreter. When it is confirmed that the ciphertext calculation interpreter has passed the verification, the ciphertext calculation interpreter executes the sensitive data processing program, so that the confidentiality of the data processing becomes independent of the calculation logic, further ensuring the security and credibility of the data processing. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 This is a schematic diagram of a secure delegated calculation of data provided by one embodiment of this specification;
[0023] Figure 2 This is a flowchart of secure delegation data processing based on a trusted execution environment provided by one embodiment of this specification;
[0024] Figure 3 This is a flow chart of a data processing method based on a trusted execution environment provided by one embodiment of this specification;
[0025] Figure 4 This is a diagram of a computation flow based on a directed acyclic graph in a data processing method based on a trusted execution environment provided by one embodiment of this specification;
[0026] Figure 5 This is a schematic diagram of the structure of a data processing engine based on a trusted execution environment provided by an embodiment of this specification;
[0027] Figure 6 This is a structural block diagram of a computing device provided by one embodiment of this specification. DETAILED DESCRIPTION
[0028] The following description sets forth many specific details to facilitate a thorough understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the scope of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.
[0029] The terms used in one or more embodiments of this specification are for the purpose of describing specific embodiments only and are not intended to limit one or more embodiments of this specification. The singular forms "a," "the," and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0030] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0031] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0032] First, the terms involved in one or more embodiments of this specification are explained.
[0033] General-purpose data processing (GDP) refers to the broad and flexible processing of data using computing systems or software. This includes manipulating, analyzing, and transforming data to extract useful information, make decisions, and support various project or research objectives. In contrast to specialized data processing, GDP refers to software systems used for data processing that are not task-specific; in this context, GDP refers to systems that can perform arbitrary computable functions on data.
[0034] Computable Function: For any given input, a computable function can calculate the corresponding output through a series of clear and mechanical steps.
[0035] TEE (Trusted Execution Environment) is a highly secure execution environment composed of a special combination of software and hardware for securely running sensitive applications. It protects data and code from unauthorized access and modification through isolation, encryption, secure boot and other technologies.
[0036] SDDP (Secure Delegated Data Processing) refers to secure delegated data processing. Specifically, delegated data processing means that the data owner (also known as the data entrustor) entrusts its data to a third party for data processing, such as data value extraction or other downstream applications. Secure delegated data processing requires the third party not to disclose the data content (and any information that can be inferred from the content) during the data processing process to ensure the confidentiality of the data.
[0037] Secure Computation Outsourcing (SCO) is a computing model designed to ensure data security and privacy when outsourcing specific data computations to an untrusted third party, such as a cloud service provider. SCO encompasses a variety of techniques, such as random transformations, encrypted circuits, partially homomorphic encryption, secret sharing, and combinations thereof.
[0038] OS: (Operating System) A set of interrelated system software programs that manage and control computer operations, utilize and run hardware and software resources, and provide public services to organize user interactions; for example, operating systems can include desktop operating systems, mobile operating systems, server operating systems, embedded operating systems, etc.
[0039] SGX: (Software Guard Extensions), SGX extends a set of new instruction sets and memory access mechanisms. These extensions can provide a trusted isolated execution space security area (the following Enclave) on the computing platform. SGX allows applications to use isolated execution space security areas to ensure the confidentiality and integrity of user critical code and data, and protect them from damage by special privileged malware.
[0040] EPC: (Enclave Page Cache) A physical memory area used to store and manage at least one enclave.
[0041] Enclave: An isolated execution space security area deployed in the EPC. Trusted programs running in the enclave can prevent infringement by ordinary applications, operating systems (OS), and even virtual machine supervisors (Hypervisors).
[0042] CPU: (Central Processing Unit), the computing and control core of a computer system, is the final execution unit for information processing, program execution, etc. in a computer system.
[0043] EPL: (Encrypted Programming Language) is an encryption programming language used in the TGCB (Trusted Computing Engine) to express ciphertext computation logic.
[0044] AST: (Abstract Syntax Tree): An abstract representation of source code. AST represents the grammatical structure of the source code in a tree-like form, where each node of the tree represents a structure in the source code.
[0045] UUID (Universally Unique Identifier) is a software-constructed standard number that allows all elements in a distributed computer system to have unique identification information, without requiring the central processor to assign specific identification information to each element.
[0046] DAG: Directed Acyclic Graph (DAG) is a graph structure consisting of a set of nodes and directed edges, but without cycles. DAG is widely used in task scheduling, compiler optimization, data flow analysis, and other fields.
[0047] TGCB: (TEE-based General-purpose Computational Backend, encrypted computing engine) is a computing engine that can process encrypted data and obtain encrypted data processing results.
[0048] With the rapid development of data science, more and more tools are capable of extracting valuable information from data; however, this comes with increasing data security threats. For example, in traditional data processing, data as input is inevitably exposed to entities involved in data calculations, as they require a full understanding of the information contained in the data to extract meaningful knowledge. However, because data can be easily copied, data leaks are difficult to detect, and once a data leak occurs, it is irreversible because there is no guarantee that all copies of the leaked data have been destroyed.
[0049] Then, data leakage will lead to serious consequences, such as promoting fraudulent activities, causing significant losses to corporate assets, and threatening public safety. The huge data security issues brought about by data leakage have hindered the further application of data science. Therefore, it has become an urgent need to propose novel technical means to protect the security of data during the computing process.
[0050] In real-world scenarios, data owners desire to utilize their data but are concerned about the risk of data leakage. However, data owners often lack the ability to utilize the data or are unwilling to participate in the specific data processing. For example, a clinic may wish to analyze its patient medical records using advanced analytics to obtain richer medical information and more accurate treatment recommendations, but it lacks the technical capabilities to develop its own information platform. One solution is to delegate computing, handing over the clinic's patient medical records to a data service provider (a third party that performs data analysis and processing) for analysis. However, this delegation process creates the potential for data leakage by the data service provider gaining access to the data. Given the high privacy concerns of patient data and the significant liability consequences of a data leak, the clinic may have significant security concerns about delegated computing and therefore reject the solution.
[0051] However, this seriously reduces the possibility of clinics providing better medical services to patients; at the same time, it also hinders the project implementation of data service providers, even if these data service providers are relatively honest and cautious; in addition, as data processing tasks become more and more complex, data are usually processed in pipelines between different entities (for example, sub-departments, project partners or software suppliers). The security of the entrusted data depends on the reliability of any entity in the complex pipeline, but this assumption is often not always true in reality.
[0052] See also Figure 1 , Figure 1 This is a schematic diagram of a secure delegated calculation of data provided by an embodiment of this specification.
[0053] Figure 1 It includes data owners (i.e., customers in secure computing outsourcing in a trusted alliance, data owners and coordinators belong to the trusted alliance), coordinators, and executors (i.e., entrusting parties in secure delegated data processing, coordinators and executors belong to an untrusted alliance). Among them, data owners are responsible for providing data for analysis and computing (such as sensitive data) and have a real concern for ensuring data security; executors are responsible for actual data computing, usually referring to allocable computing resources, such as servers, computing clusters, or cloud services; coordinators are responsible for effectively connecting the two roles of data owners and executors, managing the entire computing process, and handling all tasks except pure computing capabilities.
[0054] SCO is a common technology choice to alleviate security concerns associated with data being processed outside the domain. In SCO, the coordinator plays a crucial role, responsible for developing and driving data processing tasks for private data (data provided by the data owner). Its primary responsibilities include:
[0055] First: Design functions for processing data, targeting specific data processing tasks to meet the data owner's project goals, such as extracting data value or supporting downstream applications;
[0056] Second: Select and deploy appropriate outsourcing protocols for designated data processing tasks to ensure that confidentiality assumptions are maintained and sensitive information is not exposed to untrusted actors;
[0057] Third: Based on the selected outsourcing solution, the data owner’s plaintext data should be obfuscated as a prerequisite for outsourcing.
[0058] Therefore, SCO solutions are usually customized for specific applications, and the corresponding data obfuscation depends on the specific task. The coordinator is responsible for obfuscating the plaintext according to the selected outsourcing solution before outsourcing the data computation. However, the limitation of SCO lies in its reliance on trust in the coordinator, that is, the need for a trustworthy entity to be deeply involved in the data processing without engaging in malicious activities or making mistakes. Usually, this role can only be assumed by the data owner himself; that is, the combination of the data owner and the coordinator is regarded as the client of SCO to offset the risks that may be posed by potential malicious executors. As mentioned above, in a wide range of data processing scenarios, the data owner is usually unable or unwilling to assume the role of coordinator, so SCO technology cannot meet these data delegated computing requirements.
[0059] Based on this, a secure delegated data processing (SDDP) method should be provided to eliminate the credibility assumption of the coordinator in secure computing and regard the coordinator as an untrusted entity, that is, the data owner no longer forms a trusted alliance with the coordinator, to solve the above technical problems.
[0060] That is, data owners simply delegate their data to an untrusted coalition of coordinators and executors, such as SDDP trustees (data processors), for subsequent data mining or other downstream applications, without having to personally participate. The concept of SDDP decouples data disclosure from its computational feasibility. Data owners are solely concerned with data confidentiality and project objectives, and are not interested in the detailed computational tasks performed by the coordinator, thus overcoming their reliance on trusted entities. In SDDP, data obfuscation and computational tasks are independent of each other. Once established, the entire data processing workflow, including transmission, storage, and computation, is no longer vulnerable to data breaches.
[0061] In this context, "universality" refers to the autonomy that the SDDP framework provides to trusted parties when performing computations on obfuscated inputs. Universal SDDP allows trusted parties to execute arbitrary computable functions on given inputs (rather than pre-defined and vetted functions) while guaranteeing data confidentiality—that is, both the input and output remain unintelligible throughout the entire process). This universality eliminates the need for tedious purity verification procedures for each individual task. More importantly, this universal SDDP can be widely applied to existing traditional computing tasks to enhance data confidentiality. Furthermore, by eliminating the data leakage risks inevitably introduced by traditional computing processes, it can also enable sensitive computing tasks that were previously infeasible due to privacy concerns. It can also be easily applied to existing computing frameworks, mitigating the data leakage risks already encountered in traditional computing applications. Consequently, sensitive applications previously infeasible due to privacy concerns can now be realized.
[0062] The data processing method based on a trusted execution environment provided in the embodiments of this specification can be understood as a secure delegated data processing method that solves the above-mentioned technical problems. The data processing method based on a trusted execution environment uses its technical means to maintain a "usable but invisible" state of data during the delegated calculation process, that is, to separate the "processability" and "understandability" of the data; specifically, the data owner obfuscates the original data (i.e., sensitive data) in a "irrelevant to subsequent calculations" manner so that it cannot be understood, but this obfuscation does not prevent the data trustee (i.e., the third party that specifically performs data processing, the data processing method) from performing any calculation on the data; during the calculation process, the obfuscated state is always maintained, that is, the input data, intermediate results, and final calculation results are all incomprehensible; only the data owner can remove the obfuscation of the final calculation result to obtain the required data processing result. This means that once this obfuscation is established, the data owner does not intervene in the data processing process. During the delegated calculation process, the storage, transmission, and calculation of the data will not introduce data leakage risks, thereby ensuring the secure delegation of data.
[0063] Specifically, in this specification, a data processing method based on a trusted execution environment is provided. This specification also involves a data processing engine based on a trusted execution environment, a computing device, and a computer-readable storage medium to solve the above-mentioned technical problems, which are described in detail one by one in the following embodiments.
[0064] See also Figure 2 , Figure 2 This is a flowchart of secure delegated data processing based on a trusted execution environment provided by an embodiment of this specification.
[0065] Figure 2Shown is a schematic diagram of secure delegated data processing implemented through a hardware-assisted approach using a TEE (Trusted Execution Environment). TEE-based secure delegated data processing compromises security properties, meaning the data owner's plaintext data is visible only to trusted hardware. TEEs rely on the protection and verification guarantees provided by the hardware vendor to securely access plaintext data and execute regular programs in a hardware-protected mode. This approach places virtually no restrictions on how tasks can be expressed, significantly improving usability and achieving orders of magnitude improvements in computational and storage efficiency.
[0066] like Figure 2 As shown, when the delegated computing executor (i.e., the data processor that performs data processing) receives a data processing request sent by the data owner (i.e., the data delegator), it creates an Enclave within the EPC of the TEE in response to the data processing request and loads the trusted code (i.e., the trusted code) into it to start the data processing process.
[0067] Specifically, the delegated computing executor creates an Enclave in the EPC of the TEE, and the specific implementation of loading the trusted code into it is as follows: the delegated computing executor realizes the communication between the user space and the operating system through the interface between the user space and the operating system provided by the system call in the server-side OS, that is, the delegated computing executor creates an Enclave in the EPC of the TEE by executing the Intel SGX instruction, and loads the trusted code of the user space into the created Enclave by calling the SGX driver. Among them, the trusted code can be understood as the code that has been verified and passed the untrusted code.
[0068] During the data processing process, in order to decrypt the ciphertext data sent by the data owner, the Enclave needs to request the data key for the ciphertext data from the data owner. The specific steps are as follows:
[0069] 1. The enclave requests the CPU to generate an environment report for the current enclave and signs the report using the CPU's built-in key through the REPORT instruction. The report contains information about the current execution environment and a summary of the loaded trusted code. The enclave then sends a key acquisition request with the environment report to the data owner.
[0070] 2. After receiving the key acquisition request, the data owner forwards the environment report to the Intel SGX Attestation Service (i.e. Figure 2 to verify that the environment report was generated by a valid CPU.
[0071] 3. The Intel SGX attestation service relies on the CPU to sign the environment report, verify the environment report, and return the verification conclusion to the data owner.
[0072] 4. The data owner decides whether to send the data key to the Enclave for decryption and re-encryption of data based on the degree of conformity between the trusted code and the code summary contained in the environment report (i.e., if the degree of conformity between the trusted code and the code summary is high, it can be considered that the trusted code has not been tampered with).
[0073] After the Enclave receives the data key corresponding to the ciphertext data, it can decrypt the ciphertext data to obtain the plaintext data, and input the plaintext data into the calculation function, call the calculation function (that is, the trusted code) to operate on the plaintext data, output the plaintext data after the operation, and then use the same data key to re-encrypt the plaintext data after the operation to obtain the encrypted data processing result for output. The behavior of the trust code (that is, the trusted code) within the Enclave is controlled and guaranteed by the code integrity. Therefore, it can be guaranteed that the data key and decrypted data will be destroyed after use and will not be transmitted out of the EPC. In addition, during the execution process, the Enclave appears as a black box to any party except the authenticated CPU, thereby meeting the requirements of data confidentiality.
[0074] However, the TEE itself cannot truly implement SDDP computing. The hardware can only restrict the program (i.e., code) executed within the TEE from being tampered with, but it does not impose any restrictions on the program's semantic level (i.e., the TEE can only ensure the security of the program during execution, preventing tampering or data snooping, but it has no control over what the protected program does. Therefore, the program must be trusted to be non-malicious). This means that the program itself can freely copy sensitive plaintext protected by the TEE to external memory or files. Programs executed by the TEE cannot defend against improper behavior by developers, who may intentionally or unintentionally expose sensitive data protected by the processor outside the TEE. Therefore, the data owner needs to explicitly trust the program, i.e., the trusted code, to not violate the confidentiality of the data.
[0075] In other words, data confidentiality depends on the reliability of programs that can "see" plaintext in the TEE, meaning they won't leak data maliciously or accidentally. This is difficult to implement. Data owners must thoroughly review the code of each computing task before it can be deployed and executed. The complexity of this task determines the manual effort required for the verification process. Especially when computing tasks are frequently created, patched, and upgraded, the verification process can become extremely cumbersome, significantly limiting the universal applicability of this solution.
[0076] Building on this foundation, the embodiments of this specification provide another data processing method based on a trusted execution environment (TEE), alleviating the burden of trust placed on data owners during data processing. This approach, referred to as "trust transfer," fundamentally changes the dynamics of delegated computing; previously, data owners had to trust that the data processing program would adequately maintain data confidentiality. This method transfers trust to the ciphertext computation interpreter, which is responsible for executing the data processing program. Once trust in the secure computation interpreter is established during data processing, reliable data confidentiality can be provided for any acceptable program.
[0077] Specifically, this approach transfers trust to the programming language interpreter (i.e., the ciphertext computation interpreter, also known as the EPL interpreter, which is designed as a functionally restricted language based on security considerations. The computation logic described by the EPL, i.e., the computation functions, is guaranteed to prevent malicious code logic execution during TGCB-based data processing.) This makes data processing confidentiality independent of the computation logic, thereby satisfying general SDDP requirements. In practice, trusted verification of the interpreter relies on a limited code base, which offers cost-effectiveness compared to the unlimited computation logic inherent in data processing. Once established, this trust transfer mechanism persists, providing truly universal secure data processing and suitable for handling real-world data processing applications.
[0078] See also Figure 3 , Figure 3 This is a flowchart of a data processing method based on a trusted execution environment provided by an embodiment of this specification.
[0079] Specifically, the data processing method based on a trusted execution environment is applied to a data processing engine based on a trusted execution environment. The data processing engine is built on a server side of a data processor. The server side of the data processor is configured with a trusted execution environment. The trusted execution environment creates an isolated area. The data processing engine executes the method in the isolated area, including:
[0080] Step 302: In response to a data processing request sent by a data client, determine the ciphertext data encrypted by the key and carried in the data processing request.
[0081] In actual applications, this data processing method based on a trusted execution environment can be used to process (calculate or analyze, etc.) sensitive data of any technical field, any type, and any amount of data, such as the analysis of medical diagnostic data in the medical field, or the analysis of consumption habits of online shoppers in the online shopping field; this specification does not impose any restrictions on this.
[0082] Among them, the trusted execution environment can be understood as the TEE of the above-mentioned embodiment, the isolation area can be understood as the Enclave of the above-mentioned embodiment, and the data processing engine based on the trusted execution engine can be understood as the computing engine TGCB based on TEE, which is designed as a trusted code executed in the TEE.
[0083] The data entrustor can be understood as the data owner in the above embodiment, that is, the data owner who needs to perform data analysis or data calculation; the key can be understood as any key determined by the data entrustor that can encrypt the plaintext data to be processed.
[0084] During the specific data processing process, the data entrusting party sends a data processing request to the data processor, and the data processing request carries ciphertext data encrypted by a key. After receiving the data processing request, the data processor responds to the data processing request through the data processing engine based on the trusted execution environment of the server, and obtains the ciphertext data encrypted by the key carried in the data processing request, so that the ciphertext data can be decrypted according to the key sent by the data processor for the ciphertext data, and then the decrypted plaintext data can be processed to execute the data processing request.
[0085] In specific implementations, the data processing engine based on the trusted execution environment needs to receive the key for the ciphertext data from the data entrustor before decrypting the ciphertext data using the key corresponding to the ciphertext data. The premise for the data entrustor to send the key for the ciphertext data to the data processing engine is to trust the trusted execution environment where the computing engine is located and the ciphertext computing interpreter running in the isolated area of the trusted execution environment. The specific implementation steps are as follows:
[0086] The specific implementation steps for the data entrusting party to determine that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy are as follows:
[0087] The data entrusting party receives a key acquisition request for the ciphertext data sent by the isolated area, wherein the key acquisition request is an environment verification report with a signature generated by the isolated area in response to the data processing request and sent to the data entrusting party, and the key acquisition request carries the environment verification report, wherein the environment verification report includes current execution environment information of the isolated area and code information of the ciphertext calculation interpreter;
[0088] The data entrusting party sends the environment verification report to a third-party authentication service according to the key acquisition request, so that the third-party authentication service verifies the signature of the environment verification report and obtains a verification result;
[0089] The data entruster determines that the verification result is passed, the current execution environment information of the isolation area meets the preset environment requirements, and the code information of the ciphertext calculation interpreter meets the preset code verification conditions, then determines that the isolation area and the ciphertext calculation interpreter loaded into the isolation area are trustworthy.
[0090] Among them, the ciphertext computing interpreter can be understood as an interpreter that can parse and execute any computing program written in a specific programming language called EPL (Encryption Programming Language).
[0091] Specifically, the isolated area generates a signed environment verification report for the isolated area in response to a data processing request sent by a data client, wherein the environment verification report includes information about the current execution environment of the isolated area and code information of the ciphertext calculation interpreter, i.e., the code of the ciphertext calculation interpreter written in the EPL language;
[0092] Then, a key acquisition request for the ciphertext data is sent to the data entrusting party, and the key acquisition request carries the environment verification report. After receiving the key acquisition request, the data entrusting party sends the environment verification report carried in the key acquisition request to a third-party authentication service (such as Intel SGX in the above embodiment). After the third-party authentication service successfully verifies the signature of the environment verification report, it sends a signature verification success message for the environment report to the data entrusting party.
[0093] After receiving the verification result of the signature verification of the environment verification report sent by the third-party authentication service, the data entruster verifies the current execution environment information of the isolation area included in the environment verification report to determine whether the current execution environment of the isolation area meets the preset environment requirements. That is, the data owner can use the current execution environment information of the isolation area in the environment verification report to confirm whether the current execution environment of the isolation area meets expectations, such as a specific TEE version (for example, Intel SGX will periodically upgrade its version because there are always some vulnerabilities discovered). This verification step can ensure that the real computing engine is running in a compliant execution environment in the isolation area to prevent the key from being stolen; while the current execution environment of the isolation area meets the preset environment requirements, the code information of the ciphertext computing interpreter and the code summary of the ciphertext computing interpreter are judged to be consistent. If the consistency is met, the isolation area and the ciphertext computing interpreter loaded into the isolation area can be confirmed to be trustworthy. At this time, the data entruster can return the key corresponding to the ciphertext data to the data processing engine running in the isolation area.
[0094] In the data processing method based on a trusted execution environment provided in the embodiments of this specification, the data entrusting party will send the key corresponding to the ciphertext data to the data processor only when it determines that the data processor's environment verification report has passed the verification of a third-party certification service, so that the data processor can subsequently decrypt the ciphertext data according to the key in the secure isolation area of the computing engine, thereby ensuring the security of the data.
[0095] In actual applications, the environment verification report with a signature is generated by the CPU using its built-in key according to the REPORT instruction to verify the security of the identity of the data processor and further ensure the confidentiality of data processing. The specific implementation method is as follows:
[0096] The isolation area generates, in response to the data processing request, an environment verification report carrying a signature, including:
[0097] The isolated area sends, in response to the data processing request, a request to generate an environment report for the isolated area to the central processor of the server;
[0098] receiving a signed environmental verification report generated and returned by the central processor according to the environmental report generation request,
[0099] Among them, the environment verification report carrying the signature is generated by the central processor by signing the initial environment verification report, and the initial environment verification report is generated based on the current execution environment information of the isolation area and the code information of the ciphertext calculation interpreter.
[0100] Step 304: Decrypt the ciphertext data according to the key corresponding to the ciphertext data to obtain the plaintext data corresponding to the ciphertext data.
[0101] Among them, the key is returned by the data entrusting party when it determines that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy; and the specific method of obtaining the key can be referred to the above embodiment and will not be repeated here.
[0102] Specifically, after determining the ciphertext data encrypted by the key carried in the data processing request, it can be decrypted according to the key corresponding to the ciphertext data to obtain the plaintext data corresponding to the ciphertext data, so that data calculations can be performed on the plaintext data in the isolated area of the trusted execution environment.
[0103] Step 306: Determine a calculation function written in an encryption programming language for processing the plaintext data according to the data processing request.
[0104] Among them, the encryption programming language can be understood as the EPL language, that is, the secret programming language; and the calculation functions written in the encryption programming language can be understood as calculation programs written in the EPL language. Subsequently, these calculation functions can be parsed and executed by the EPL interpreter.
[0105] In practical applications, the calculation function written in the encryption programming language can be called to the EPL interpreter for parsing and execution through the calculation function input interface during subsequent data processing. The specific implementation method is as follows:
[0106] The step of determining, based on the data processing request, a computing function written in an encryption programming language for processing the plaintext data comprises:
[0107] According to the data processing request, a calculation function input interface is used to call a calculation function written in an encryption programming language for processing the plaintext data.
[0108] The calculation function input interface can be understood as an external interface provided by the calculation engine TGCB based on the feasible execution environment, which is used to implement the call of the EPL script (that is, the calculation program written in the EPL language).
[0109] Specifically, TGCB uses the calculation function input interface to call the EPL script that processes the plaintext data based on the data processing request.
[0110] The data processing method based on a trusted execution environment provided in the embodiments of this specification writes calculation logic in the EPL language, then uses the calculation function input interface to call the corresponding EPL script, and implements data processing through parsing and execution through the EPL interpreter. By using this restricted language function, no data or calculation results can be leaked when executing programs written in EPL, thereby ensuring the security of the entire data processing.
[0111] Step 308: Utilize the ciphertext calculation interpreter to parse the calculation function to generate a data processing execution plan, and perform data processing on the plaintext data according to the data processing execution plan to obtain a data processing result.
[0112] Wherein, the ciphertext calculation interpreter is loaded into the isolation area.
[0113] Among them, the ciphertext calculation interpreter can be understood as the above-mentioned EPL interpreter, which is used to parse and execute data processing requests.
[0114] The ciphertext calculation interpreter includes a parser and an executor. The parser is used to parse the EPL script written in the EPL language, while the executor is used to execute the parsed EPL script to process the decrypted plaintext data and obtain the data processing results. The specific implementation method is as follows:
[0115] The ciphertext calculation interpreter includes a parser and an executor;
[0116] Accordingly, the ciphertext calculation interpreter is used to parse the calculation function to generate a data processing execution plan, and the plaintext data is processed according to the data processing execution plan to obtain a data processing result, including:
[0117] parsing the calculation function using the parser to generate a data processing execution plan, and sending the data processing execution plan to the executor;
[0118] The executor is used to process the plaintext data according to the data processing execution plan to obtain a data processing result.
[0119] Specifically, the parser is used to parse the calculation function and generate a data processing execution plan. It can be understood that the parser is used to parse the calculation function written in the EPL language to generate a corresponding abstract syntax tree, and then a corresponding data execution plan is generated according to the abstract syntax tree; then the executor is used to process the decrypted plaintext data according to the data execution plan to obtain the data processing result.
[0120] The data processing method based on a trusted execution environment provided in the embodiments of this specification uses an EPL interpreter running in the TEE to parse and execute the called EPL script, so that when executing the EPL script, the decrypted sensitive data in the EPC can be directly accessed. Due to the limitations of the language structure, no sensitive data can be leaked during the script execution, thereby ensuring data security.
[0121] After obtaining the data processing results, before returning them to the data client, the computing engine will encrypt the data processing results using the key to ensure their security and confidentiality, and then return the encrypted data processing results to the data client. The specific implementation is as follows:
[0122] After processing the plaintext data according to the data processing execution plan and obtaining the data processing result, the method further includes:
[0123] The data processing result is encrypted according to the key to obtain an encrypted data processing result, and the encrypted data processing result is sent to the data entrusting party.
[0124] In actual applications, when data is passed in as an encrypted byte array, after decrypting the ciphertext data, the decrypted data needs to be deserialized before it can be used as input for EPL script execution. Correspondingly, when returning the data processing results to the data client, the data processing results must also be encrypted and serialized to obtain the final encrypted data processing results to return to the data client. This serialization and deserialization process can process any type of data sent by the data owner from different data platforms, thereby ensuring the versatility of data processing. The specific implementation method is as follows:
[0125] The decrypting the ciphertext data according to the key corresponding to the ciphertext data to obtain the plaintext data corresponding to the ciphertext data includes:
[0126] When it is determined that the ciphertext data is input in the form of an encrypted byte array, decrypting the ciphertext data according to a key corresponding to the ciphertext data, and performing deserialization processing to obtain plaintext data corresponding to the ciphertext data;
[0127] Accordingly, encrypting the data processing result according to the key to obtain the encrypted data processing result includes:
[0128] The data processing result is encrypted according to the key and serialized to obtain an encrypted data processing result.
[0129] In practical applications, in order to improve data processing efficiency, during the input and output of encrypted data, data input and output can be implemented in the form of data blocks, and a corresponding block identifier (i.e., UUID) can be set for each data block for specific implementation in the data processing process.
[0130] In addition, the computing engine can record the three elements of input, computing process, and output in a trusted log in a reliable manner. This allows the computing engine to support reliable recording, source tracking, and playback of all operations performed on encrypted data, which is conducive to improving post-audit, tracing the data processing process, and verifying security. The specific implementation method is as follows:
[0131] After processing the plaintext data according to the data processing execution plan and obtaining the data processing result, the method further includes:
[0132] According to the plaintext data, the calculation function, and the data processing result, triple log information is generated, and the triple log information is recorded in a trusted log implemented by a directed acyclic graph.
[0133] Specifically, when data is input and output in the form of data blocks, the triple log information can be composed of the block identifier of the data block corresponding to the plaintext data, the EPL script, and the block identifier of the data block corresponding to the data processing result; and then the triple log information composed of the block identifier of the data block corresponding to the plaintext data, the EPL script, and the block identifier of the data block corresponding to the data processing result is recorded in the trusted log implemented by the directed acyclic graph.
[0134] See also Figure 4 , Figure 4 This is a diagram of a computational flow based on a directed acyclic graph in a data processing method based on a trusted execution environment provided in one embodiment of this specification.
[0135] Figure 4 The following shows an example of an EPL script that executes a transformation logic, that is, a one-to-one calculation task that takes a data block UUID as input and returns a data block UUID as output.
[0136] In this example, given a data block (UUID: 1234) containing (name, age; such as name alice, age 19, name bob, age 15, name carol, age 23) pairs, the goal is to run an EPL script to select the data of all adults (age ≥ 18). Therefore, the EPL script execution will generate a data block with another UUID (for example, UUID: 5678) and record the output result (name alice, age 19, name carol, age 23) in the EPC. The execution behavior of the EPL script can then be mapped to a triple consisting of the following three elements: the UUID of the input data block, the EPL script string, and the UUID of the output data block.
[0137] This triple is then recorded in a trustworthy manner, i.e., the log is persisted in a verifiable database to ensure that every EPL execution is recorded (i.e. Figure 4 Specifically, the choice of verifiable database is orthogonal to the computing engine, including but not limited to blockchain-based and TEE-based, to ensure that all logs are successfully persisted and cannot be tampered with. At this point, if the data blocks are regarded as nodes and the EPL scripts as edges, then the trusted log composed of triples will form a directed acyclic graph (DAG). A special case is that when the data owner encrypts the data into a block, the TGCB will assign a UUID to the block and record this encryption behavior in the trusted log as a node with no in-degree.
[0138] Specifically, in the data processing method based on the trusted execution environment provided in the embodiments of this specification, the design of the DAG computing flow mode of the computing engine is very critical. First, the complete history of any operation on the ciphertext is secure, which provides complete data source support. More precisely, the combination of trusted execution and trusted logs ensures that any data operation performed through the EPL is truly recorded. This further enables the confidential computing performed by the computing engine to have post-audit capabilities based on undeniable evidence. In addition, it is direct to support reachability queries on the DAG; therefore, in SDDP, this makes all dependencies and consumption of a specific ciphertext clear. Finally, since all EPL scripts are recorded in the trusted log in the form of edges, the DAG computing process model of TGCB also has the ability to replay / restore, thereby realizing data integrity verification.
[0139] The data processing method based on a trusted execution environment provided in the embodiments of this specification processes the ciphertext data encrypted by the key sent by the data entrustor in an isolated area created in the trusted execution environment by utilizing a ciphertext computation interpreter that can parse computation functions written in an encryption programming language and has passed trusted verification, thereby obtaining a data processing result. This method not only ensures the security of the sensitive data sent by the data entrustor during transmission, and the "available but invisible" nature of the data processing process to avoid data leakage at the data processor, but also transfers trust to the ciphertext computation interpreter. When it is confirmed that the ciphertext computation interpreter has passed verification, the ciphertext computation interpreter executes the processing program for the sensitive data, thereby making the confidentiality of the data processing independent of the computation logic, thereby further ensuring the security and credibility of the data processing.
[0140] Specifically, the security and authentication mechanism of the data processing method based on the trusted execution environment mainly includes the following three aspects:
[0141] Built-in attestation mechanism: TEE has a built-in attestation mechanism to ensure the integrity and trusted execution of trusted code. This lays the foundation for the security and authentication mechanism of the computing engine that applies this data processing method. It ensures that the code running on the computing engine has not been tampered with and is executed in a trusted environment, thus preventing the injection and execution of malicious code.
[0142] Trusted Configurable Startup: After creating a TEE-enabled enclave, the compute engine needs to load a configuration file to complete initialization and subsequently respond to compute tasks. The configuration file contains metadata about all extensions that the executor wants to load, including a pair of the provider's public key (i.e., the compute engine's provider) and a random number signed by the private key. This is used to verify the provider's identity when requesting a decryption key from the data owner, providing unforgeable evidence. When remotely attesting to the data owner, the compute engine truthfully states the configuration information, including the executor's identity and loaded extensions. Through extension management in the TEE, only declared functional extensions can be correctly loaded, increasing security and ensuring that the compute engine only responds to legitimate EPL executions.
[0143] EPL extension support: The compute engine allows EPL extensions. These extensions embed native code for the EPL interpreter to call, allowing the compute engine to call more native functions within the TEE. EPL extensions include functional extensions and audit extensions, including authentication information, symbol tables, and binary libraries. These extensions enhance the functionality and security of the compute engine.
[0144] Based on the security and authentication mechanism of the above-mentioned data processing method based on a trusted execution environment, the security assurance aspects of the data processing method based on a trusted execution environment provided by the embodiments of this specification are as follows:
[0145] When requesting access to the key for ciphertext (i.e., encrypted data), the compute engine can provide the data owner with a hardware-signed code integrity certificate. This ensures that the compute engine's code has not been tampered with and is executed within a TEE-compliant environment, thus ensuring that the data key is reliably provided and not vulnerable to hijacking or spoofing. Ciphertext decryption is performed only within the constraints of the TEE, and the decrypted information is completely encapsulated in a secure isolation zone to prevent the leakage of sensitive information. The ownership of data used as input during the execution of the EPL interpreter is guaranteed to be propagated to the corresponding output, ensuring that sensitive information does not lose the control of the original owner during processing and preventing improper use of the data. The compute engine will use all relevant data owner keys to encrypt any data exported from the TEE, ensuring that the results can only be decrypted with the joint participation of all relevant data owners, strengthening data confidentiality and control. All operations performed by the compute engine on ciphertext support reliable recording, source tracking, and playback, which facilitates post-audit, traceability of data processing, and security verification. The encryption system selected by the compute engine is independent of the compute engine itself, and the TEE can support most encryption frameworks, providing flexibility and adaptability.
[0146] In summary, the TEE-based data processing method has a series of security guarantees in terms of security and authentication mechanisms to ensure the confidentiality, integrity and compliance of data; this makes this data processing method a trustworthy solution when handling sensitive computing tasks.
[0147] See also Figure 5 , Figure 5 This is a structural diagram of a data processing engine based on a trusted execution environment provided by an embodiment of this specification.
[0148] Combine Figure 5 In one or more embodiments of this specification, the data processing engine is built on the server side of the data processing party. The server side of the data processing party is configured with a trusted execution environment. The trusted execution environment creates an isolated area. The data processing engine is executed in the isolated area. The data processing engine includes an interface unit 502, an encryption and decryption unit 504, a ciphertext data processing unit 506, and a data management unit 508, wherein:
[0149] The interface unit 502 is configured to respond to a data processing request sent by a data client, determine ciphertext data encrypted by a key carried in the data processing request, and load the ciphertext data into the encryption / decryption unit 504;
[0150] The encryption and decryption unit 504 is configured to decrypt the ciphertext data according to the key corresponding to the ciphertext data, obtain the plaintext data corresponding to the ciphertext data, and store the plaintext data in the data management unit 508, wherein the key is returned by the data entrusting party when the isolated area and the ciphertext calculation interpreter loaded into the isolated area are determined to be trustworthy;
[0151] The interface unit 502 is further configured to obtain a calculation function written in an encryption programming language for processing the plaintext data according to the data processing request, and send the calculation function to the ciphertext data processing unit 506;
[0152] The ciphertext data processing unit 506 is used to obtain the plaintext data from the data management unit 508 using the ciphertext calculation interpreter, parse the calculation function to generate a data processing execution plan, and process the plaintext data according to the data processing execution plan to obtain a data processing result.
[0153] Specifically, the technical solution of the data processing engine based on a trusted execution environment belongs to the same concept as the technical solution of the data processing method based on a trusted execution environment provided in the above-mentioned embodiment. The details not described in detail in the technical solution of the data processing engine based on a trusted execution environment can be found in the description of the technical solution of the data processing method based on a trusted execution environment, and will not be repeated here.
[0154] Among them, the interface unit 502 includes but is not limited to the init interface: startup function interface, load_blob interface: data input interface, dump_blob interface: data output interface, transform interface: calculation function input interface, split interface: one-to-multi-function interface, mcrge interface: multiple-to-one function interface, release_blob interface: data deletion function interface, etc.
[0155] Specifically, the computing engine receives and responds to the data processing request sent by the data entruster. This process is specifically implemented by the interface unit 502. Afterwards, the ciphertext data carried by the data processing request and encrypted by the data entruster using the key is extracted from the data processing request, and the ciphertext data is loaded into the encryption and decryption unit 504.
[0156] During the decryption process of the ciphertext data, the encryption and decryption unit 504 needs to use the key used by the above-mentioned data entruster to encrypt the plaintext data. In order to obtain the key, the isolation area first generates an environment verification report for the isolation area, signs the environment verification report, and sends the signed environment verification report to the data entruster. When the data entruster confirms that the verification result of the signed environment verification report is passed, that is, when the data entruster believes that the isolation area of the data processor is safe and trustworthy, the data entruster returns the above-mentioned key to the data processor.
[0157] The encryption and decryption unit 504 uses the key returned by the above-mentioned database client to decrypt the ciphertext data and obtain the plaintext data corresponding to the ciphertext data. The plaintext data is also the plaintext data held by the above-mentioned data client. The encryption and decryption unit then stores the decrypted plaintext data in the data management unit 508.
[0158] In order to realize data processing, the interface unit 502 determines the functional requirements of data processing based on the data processing request sent by the above-mentioned data entrusting party, and calls the EPL code written in EPL (Encrypted Programming Language) for processing plaintext data according to the functional requirements of data processing, and sends the EPL code to the EPL interpreter.
[0159] After receiving the EPL code, the EPL interpreter parses the EPL code to obtain the parsed AST (Abstract Syntax Tree), and executes the parsed AST. During the execution of the AST, data processing of the plaintext data is implemented to obtain the final data processing result corresponding to the plaintext data.
[0160] It should be noted that the interface unit 502, the encryption and decryption unit 504, the ciphertext data processing unit 506, and the data management unit 508 are all units of the data processing engine, and the data processing engine is executed in the isolated area created by the trusted execution environment. Therefore, it can ensure that the above-mentioned data processing process, the plaintext data generated during the data processing process, and the intermediate data, etc. are not leaked, realizing the "available but invisible" data, ensuring the security of the plaintext data of the data entruster and the credibility of the data processor.
[0161] In one or more embodiments of this specification, in order to reduce the possibility of the data entrusting party's key being leaked, the data entrusting party may verify the accuracy of the environment verification report through a third party. The specific implementation method is as follows:
[0162] The isolated area is configured to generate, in response to the data processing request, a signed environment verification report for the isolated area, wherein the environment verification report includes current execution environment information of the isolated area and code information of the ciphertext calculation interpreter;
[0163] Sending a key acquisition request for the ciphertext data to the data entrusting party, wherein the key acquisition request carries the environment verification report;
[0164] The data entrusting party receives the key corresponding to the ciphertext data returned when it determines that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy.
[0165] The specific implementation steps of the data entrusting party in determining that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy are as follows:
[0166] The data entrusting party receives a key acquisition request for the ciphertext data sent by the isolated area, wherein the key acquisition request carries the environment verification report, and the environment verification report includes current execution environment information of the isolated area and code information of the ciphertext calculation interpreter;
[0167] The data entrusting party sends the environment verification report to a third-party authentication service according to the key acquisition request, so that the third-party authentication service verifies the signature of the environment verification report and obtains a verification result;
[0168] The data entruster determines that the verification result is passed, the current execution environment information of the isolation area meets the preset environment requirements, and the code information of the ciphertext calculation interpreter meets the preset code verification conditions, then determines that the isolation area and the ciphertext calculation interpreter loaded into the isolation area are trustworthy.
[0169] Furthermore, the isolated area is further configured to send a request for generating an environmental report for the isolated area to the central processor of the server in response to the data processing request;
[0170] receiving a signed environmental verification report generated and returned by the central processor according to the environmental report generation request,
[0171] Among them, the environment verification report carrying the signature is generated by the central processor by signing the initial environment verification report, and the initial environment verification report is generated based on the current execution environment information of the isolation area and the code information of the ciphertext calculation interpreter.
[0172] Furthermore, the interface unit 502 includes a data input interface;
[0173] The data input interface is used to respond to a data processing request sent by a data entrusting party, determine the ciphertext data encrypted by the key carried in the data processing request, and load the ciphertext data into the encryption and decryption unit 504.
[0174] Furthermore, the computing engine further includes a serialization unit 510;
[0175] The encryption / decryption unit 504 is further configured to, when determining that the ciphertext data is input in the form of an encrypted byte array, decrypt the ciphertext data according to the key corresponding to the ciphertext data, and send the decrypted ciphertext data to the serialization unit 510;
[0176] The serialization unit 510 is used to deserialize the decrypted ciphertext data to obtain the plaintext data corresponding to the ciphertext data, store the plaintext data in the form of a first data block to the data management unit 508, and send the first block identifier corresponding to the first data block to the ciphertext data processing unit 506.
[0177] Furthermore, the interface unit 502 also includes a calculation function input interface;
[0178] The calculation function input interface is used to obtain a calculation function written in an encryption programming language for processing the plaintext data according to the data processing request, and send the calculation function to the ciphertext data processing unit 506.
[0179] Furthermore, the ciphertext data processing unit 506 includes a ciphertext calculation interpreter, which includes a parser and an executor;
[0180] the parser is configured to obtain, from the data management unit 508, a first data block corresponding to the plaintext data according to the first block identifier, parse the calculation function, generate a data processing execution plan, and send the first data block corresponding to the plaintext data and the data processing execution plan to the executor;
[0181] The executor is used to perform data processing on the first data block corresponding to the plaintext data according to the data processing execution plan to obtain a data processing result.
[0182] Furthermore, the executor is further configured to store the data processing result in the form of a second data block to the data management unit 508, and send a second block identifier corresponding to the second data block to the serialization unit.
[0183] Furthermore, the serialization unit 510 is further configured to obtain a second data block corresponding to the second block identifier from the data management unit 508 according to the second block identifier, perform serialization processing on the second data block, and send the serialized second data block to the encryption / decryption unit 504;
[0184] The encryption and decryption unit 504 is further configured to encrypt the second data block after serialization according to the key, obtain an encrypted data processing result, and send the encrypted data processing result to the data entrusting party.
[0185] Furthermore, the computing engine further includes a plug-in management unit 512, and the plug-in management unit 512 includes an audit plug-in;
[0186] The audit plug-in is used to generate triple log information based on the plaintext data, the calculation function, and the data processing result, and record the triple log information in a trusted log implemented as a directed acyclic graph.
[0187] Furthermore, the plug-in management unit 512 also includes functional plug-ins;
[0188] The functional plug-in is used to provide preset processing functions for the data processing engine.
[0189] The preset processing functions can be understood as EPL extensions run by the data processing engine. These extensions are embedded in native code and can be called by the EPL interpreter, allowing the data processing engine to call more native functions within the TEE. EPL extensions include functional extensions, implemented through functional plug-ins, and audit extensions, implemented through audit plug-ins, which include authentication information, symbol tables, and binary libraries. These extensions can enhance the functionality and security of the data processing engine.
[0190] In specific implementation, the interaction and scheduling between the above units are all realized through the master control unit of the data processing engine, and the master control unit can also manage metadata and configuration information.
[0191] Specifically, Figure 5 This is a structural diagram of a data processing engine based on a trusted execution environment. During the specific data processing process, the computing engine (i.e., the data processing engine) loads ciphertext data into the EPC's encryption and decryption unit 504 for decryption via the data input interface of the interface unit 502. The ciphertext data processing unit 506 then operates on the data by executing EPL scripts that support general-purpose computing. The computing engine is designed as trusted code executed within the TEE. It provides several ECalls as external interfaces. These interfaces (i.e., those in the interface unit 502) support key functions, including initialization, loading ciphertext into the EPC, receiving and executing EPL scripts, and dumping and releasing ciphertext from the EPC. The data management unit 508 is responsible for managing sensitive data loaded into the EPC. When data is input in the form of an encrypted byte array, the encryption and decryption unit 504 and serialization unit 510 decrypt and deserialize it into objects, respectively, which are used as input for EPL script execution.
[0192] The EPL interpreter in the ciphertext data processing unit 506 is the core component of the computing engine. It parses and executes EPL scripts within the TEE to perform arbitrary computable functional operations on sensitive data. During this process, the computational logic is described in the EPL script, with inputs and outputs presented as data blocks. Furthermore, there are three scenarios: 1-1, 1-N, and N-1, corresponding to the transformation, splitting, and merging interfaces, respectively. The plug-in management unit 512 is responsible for managing extensions used for computing engine execution. These primarily fall into two categories: functional plug-in extensions and audit plug-in extensions. Functional plug-in extensions enhance functionality that may be called by EPL scripts, while audit plug-in extensions customize the preconditions for EPL execution to suit specific needs (e.g., communication with an external trusted logging service). Through the synergistic effect of these units, once the computing engine implementation is verified, loaded into the TEE's EPC as an enclave, and properly initialized, it provides a runtime that manipulates ciphertext data in a configurable and controllable manner at the script execution granularity level.
[0193] Moreover, the computing engine stores sensitive data in the EPC in plaintext format as data blocks and uses these data blocks as input and output to execute EPL scripts; each data block is uniquely identified by a universally unique identifier (UUID) and can decrypt encrypted byte arrays from externally loaded into the Trusted Execution Environment (TEE) or output from EPL script execution.
[0194] The data processing engine based on the trusted execution environment provided in the embodiments of this specification processes the ciphertext data encrypted by the key sent by the data entrustor in the isolated area created in the trusted execution environment by utilizing a ciphertext calculation interpreter that can parse the calculation function written in the encryption programming language and has passed the trusted verification, so as to obtain the data processing result. It can not only ensure the security of the sensitive data sent by the data entrustor during the transmission process, and the "available but invisible" data during the data processing process to avoid the leakage of data at the data processing party, but also transfer the trust to the ciphertext calculation interpreter. When it is confirmed that the ciphertext calculation interpreter has passed the verification, the ciphertext calculation interpreter executes the processing program of the sensitive data, so that the confidentiality of the data processing becomes independent of the calculation logic, further ensuring the security and credibility of the data processing.
[0195] The core idea of the data processing engine based on the trusted execution environment provided by the embodiment of this specification is trust transfer. A secure delegated computing engine with EPL script as the execution granularity is built in TEE, which supports any computable function and can realize reliable recording of the computing process. Specifically, data processing is performed through a restrictive scripting language that can express general computing. The EPL of the embodiment of this specification has the following characteristics: Turing completeness: EPL developers, especially SDDP trustees, can express any computing in a traditional imperative style, including arbitrary control flow; Design restrictions and security: By restricting the functions of the language, programs written in EPL cannot be No data or computation results are leaked, thus ensuring strong security. Simplicity: The EPL language design follows the principle of simplicity, making it possible to create concise and verifiable interpreters in a trusted code base, such as implementing them in C++ in an understandable manner without relying on third-party libraries. This means implementing a trusted computing kernel with an EPL interpreter in the TEE: To ensure data confidentiality when executing EPL programs, the computing engine implements its core computing kernel in the TEE's trusted code. This kernel is designed to be minimal, sufficient, and stable. The kernel's simplicity enhances reliability and facilitates verification, enabling data owners to review the entire implementation and be confident in its correctness. Once verified, the kernel is able to execute any program written by the coordinator in EPL while protecting data confidentiality, eliminating the need for data owners to conduct further code reviews.
[0196] The compute engine is responsible for protecting data keys within the enclave and ensuring that sensitive data is not leaked outside the TEE. When computing sensitive data, the compute engine decrypts the input ciphertext using its stored data key. If the key is unavailable, it requests it from the data owner. Furthermore, the compute engine encrypts all data, both intermediate and final results, before dumping them from the EPC.
[0197] Additionally, a key and novel component of the computation is an EPL interpreter running directly within the TEE. As part of the trusted code, the interpreter has direct access to sensitive data decrypted from the EPC when executing EPL scripts. Due to language constraints, no sensitive data can be leaked during script execution. The output of the execution is stored in the EPC and can be used as input to subsequent scripts or dumped from the EPC in encrypted form as the final result of the delegated computation. The computation engine adheres to the transitive nature of data ownership, meaning that the owner of data input to the EPL script automatically owns the output. The engine ensures that any sensitive data is encrypted with its respective owner's key when dumped from the EPC, ensuring appropriate decryption privileges.
[0198] In summary, the innovative features of the data processing engine based on the trusted execution environment provided by the embodiments of this specification are as follows:
[0199] Secure Delegated Data Processing (SDDP): This method eliminates the traditional secure computing solution's reliance on trust in a coordinator. Instead, it allows data owners to delegate data processing to an untrusted alliance of coordinators and executors, eliminating the need for data owners to participate in the process themselves. Data owners only need to focus on data confidentiality and project goals, and no longer need to trust a coordinator to ensure the trustworthiness of computing tasks, thus expanding the scope of SDDP.
[0200] Universal SDDP: In the SDDP framework, the concept of universality is proposed, allowing the trustee to execute any non-preselected computable function on a given input while ensuring the confidentiality of the data, thereby eliminating the need for tedious purity verification for each individual task; this universal SDDP is applicable to existing traditional computing tasks and can be applied to a wide range of real-world data processing applications, including sensitive computing tasks that were previously impossible due to privacy issues.
[0201] Trust transfer: To alleviate data owners' reliance on the coordinator during data processing, an innovative "trust transfer" method is proposed, transferring trust from the execution program to the interpreter. This method decouples the confidentiality of data processing from the computational logic, making data confidentiality no longer dependent on the trustworthiness of the computational logic. By performing trusted execution on the interpreter, reliable data confidentiality is provided for any acceptable program, eliminating the need for developers to assume risk in the reliability of their application code.
[0202] TEE-based computing engine: This engine leverages the security features provided by TEE to implement the function of computing on ciphertext in a trusted execution environment. The computing engine has a built-in proof mechanism, trusted configurable startup, and support for EPL extensions to ensure data confidentiality, integrity, and compliance. The computing engine also supports reliable recording, source tracking, and playback of all operations performed on ciphertext, which facilitates post-audit and security verification.
[0203] General Encrypted Programming Language (EPL): EPL was introduced to represent descriptive documents for delegated computations. EPL scripts describe the computational logic for data processing, support input and output in the form of data blocks, and include metadata such as functional extensions and audit extensions, enhancing the engine's functionality and security. Through the execution of EPL scripts, the computing engine operates on the decrypted form of ciphertext in the TEE, significantly improving the performance of executing data processing tasks compared to traditional cryptographic schemes.
[0204] The above innovations together constitute the data processing engine based on the trusted execution environment provided in the embodiments of this specification, which provides a clearer role description for data processing tasks, alleviates the trust dependence on coordinators in traditional solutions, and realizes general secure data processing capabilities; this will help promote the implementation of sensitive computing tasks in a wide range of application scenarios and improve confidentiality and compliance in the data processing process.
[0205] The above is a schematic diagram of a data processing engine based on a trusted execution environment according to this embodiment. It should be noted that the technical solution of the data processing engine based on a trusted execution environment and the technical solution of the data processing method based on a trusted execution environment share the same concept. For details not described in detail in the technical solution of the data processing engine based on a trusted execution environment, please refer to the description of the technical solution of the data processing method based on a trusted execution environment.
[0206] Figure 66 shows a block diagram of a computing device 600 according to one embodiment of the present disclosure. Components of the computing device 600 include, but are not limited to, a memory 610 and a processor 620. The processor 620 is connected to the memory 610 via a bus 630, and a database 650 is used to store data.
[0207] The computing device 600 also includes an access device 640 that enables the computing device 600 to communicate via one or more networks 660. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 640 may include one or more of any type of network interface (e.g., a network interface card (NIC)) whether wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.
[0208] In one embodiment of the present specification, the above components of the computing device 600 and Figure 6 Other components not shown in the figure may also be connected to each other, for example, via a bus. Figure 6 The computing device structure block diagram shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art may add or replace other components as needed.
[0209] Computing device 600 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, personal digital assistant, laptop computer, notebook computer, netbook computer, etc.), a mobile phone (e.g., a smartphone), a wearable computing device (e.g., a smartwatch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or personal computer (PC). Computing device 600 may also be a mobile or stationary server.
[0210] The processor 620 is configured to execute the following computer-executable instructions, which, when executed by the processor, implement the steps of the above-mentioned data processing method based on a trusted execution environment.
[0211] The above is a schematic diagram of a computing device according to this embodiment. It should be noted that the technical solution of this computing device and the technical solution of the data processing method based on a trusted execution environment (TEE) are based on the same concept. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the data processing method based on a trusted execution environment (TEE).
[0212] An embodiment of the present specification further provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the steps of the above-mentioned data processing method based on a trusted execution environment.
[0213] The above is a schematic diagram of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium and the technical solution of the data processing method based on a trusted execution environment (TEE) share the same concept. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the data processing method based on a trusted execution environment (TEE).
[0214] An embodiment of the present specification further provides a computer program, wherein when the computer program is executed in a computer, the computer is caused to execute the steps of the above-mentioned data processing method based on a trusted execution environment.
[0215] The above is an illustrative solution of a computer program according to this embodiment. It should be noted that the technical solution of this computer program and the technical solution of the data processing method based on a trusted execution environment are based on the same concept. For details not described in detail in the technical solution of the computer program, please refer to the description of the technical solution of the data processing method based on a trusted execution environment.
[0216] The foregoing description of this specification describes specific embodiments. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or the sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0217] The computer instructions include computer program code, which may be in source code form, object code form, executable file, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal, and software distribution medium. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media does not include electric carrier signals and telecommunication signals.
[0218] It should be noted that for the aforementioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of this specification are not limited by the order of the actions described, because according to the embodiments of this specification, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of this specification.
[0219] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0220] The preferred embodiments disclosed above are intended only to help illustrate this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific embodiments described. Obviously, many modifications and variations can be made based on the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.
Claims
1. A data processing method based on a trusted execution environment, applied to a data processing device based on a trusted execution environment, wherein the data processing device is installed on a data processing party's server, the data processing party's server is configured with a trusted execution environment, and the trusted execution environment creates an isolated area. The data processing device executes the method in the isolated area, comprising: In response to a data processing request sent by a data client, determining ciphertext data carried in the data processing request and encrypted by a key; decrypting the ciphertext data according to the key corresponding to the ciphertext data to obtain the plaintext data corresponding to the ciphertext data, wherein the key is returned by the data entrusting party when the isolated area and the ciphertext calculation interpreter loaded into the isolated area are determined to be trustworthy; Determining, according to the data processing request, a computing function written in an encryption programming language for processing the plaintext data; Utilizing a ciphertext calculation interpreter, parsing the calculation function to generate a data processing execution plan, and performing data processing on the plaintext data according to the data processing execution plan to obtain a data processing result, wherein the ciphertext calculation interpreter is loaded into the isolated area; The specific implementation steps for the data entrusting party to determine that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy are as follows: The data entrusting party receives a key acquisition request for the ciphertext data sent by the isolated area, wherein the key acquisition request is an environment verification report with a signature generated by the isolated area in response to the data processing request and sent to the data entrusting party, and the key acquisition request carries the environment verification report, wherein the environment verification report includes current execution environment information of the isolated area and code information of the ciphertext calculation interpreter; The data entrusting party sends the environment verification report to a third-party authentication service according to the key acquisition request, so that the third-party authentication service verifies the signature of the environment verification report and obtains a verification result; The data entruster determines that the verification result is passed, the current execution environment information of the isolation area meets the preset environment requirements, and the code information of the ciphertext calculation interpreter meets the preset code verification conditions, then determines that the isolation area and the ciphertext calculation interpreter loaded into the isolation area are trustworthy.
2. The data processing method based on a trusted execution environment according to claim 1, wherein the isolated area generates a signed environment verification report in response to the data processing request, comprising: The isolated area sends, in response to the data processing request, a request to generate an environment report for the isolated area to the central processor of the server; receiving a signed environmental verification report generated and returned by the central processor according to the environmental report generation request, Among them, the environment verification report carrying the signature is generated by the central processor by signing the initial environment verification report, and the initial environment verification report is generated based on the current execution environment information of the isolation area and the code information of the ciphertext calculation interpreter.
3. The data processing method based on a trusted execution environment according to claim 1, wherein determining, based on the data processing request, a computing function written in an encryption programming language to process the plaintext data comprises: According to the data processing request, a calculation function input interface is used to call a calculation function written in an encryption programming language for processing the plaintext data.
4. The data processing method based on a trusted execution environment according to claim 1, wherein the ciphertext calculation interpreter includes a parser and an executor; Accordingly, the ciphertext calculation interpreter is used to parse the calculation function to generate a data processing execution plan, and the plaintext data is processed according to the data processing execution plan to obtain a data processing result, including: parsing the calculation function using the parser to generate a data processing execution plan, and sending the data processing execution plan to the executor; The executor is used to process the plaintext data according to the data processing execution plan to obtain a data processing result.
5. The data processing method based on a trusted execution environment according to claim 1, wherein after processing the plaintext data according to the data processing execution plan and obtaining the data processing result, the method further comprises: The data processing result is encrypted according to the key to obtain an encrypted data processing result, and the encrypted data processing result is sent to the data entrusting party.
6. The data processing method based on a trusted execution environment according to claim 5, wherein decrypting the ciphertext data according to the key corresponding to the ciphertext data to obtain the plaintext data corresponding to the ciphertext data comprises: When it is determined that the ciphertext data is input in the form of an encrypted byte array, decrypting the ciphertext data according to a key corresponding to the ciphertext data, and performing deserialization processing to obtain plaintext data corresponding to the ciphertext data; Accordingly, encrypting the data processing result according to the key to obtain the encrypted data processing result includes: The data processing result is encrypted according to the key and serialized to obtain an encrypted data processing result.
7. The data processing method based on a trusted execution environment according to claim 1, wherein after processing the plaintext data according to the data processing execution plan and obtaining the data processing result, the method further comprises: According to the plaintext data, the calculation function, and the data processing result, triple log information is generated, and the triple log information is recorded in a trusted log implemented by a directed acyclic graph.
8. A data processing device based on a trusted execution environment, the data processing device being installed on a data processing entity's server, the trusted execution environment being configured on the data processing entity's server, the trusted execution environment being created with an isolated area, the data processing device being executed in the isolated area, the data processing device comprising an interface unit, an encryption and decryption unit, a ciphertext data processing unit, and a data management unit, wherein: The interface unit is configured to respond to a data processing request sent by a data client, determine ciphertext data encrypted by a key carried in the data processing request, and load the ciphertext data into the encryption and decryption unit; The encryption and decryption unit is configured to decrypt the ciphertext data according to a key corresponding to the ciphertext data, obtain plaintext data corresponding to the ciphertext data, and store the plaintext data in the data management unit, wherein the key is returned by the data entrusting party when the isolated area and the ciphertext calculation interpreter loaded into the isolated area are determined to be trustworthy; The interface unit is further configured to obtain, according to the data processing request, a calculation function written in an encryption programming language for processing the plaintext data, and send the calculation function to the ciphertext data processing unit; The ciphertext data processing unit is configured to obtain the plaintext data from the data management unit using a ciphertext calculation interpreter, parse the calculation function to generate a data processing execution plan, and perform data processing on the plaintext data according to the data processing execution plan to obtain a data processing result; The isolated area is configured to generate, in response to the data processing request, a signed environment verification report for the isolated area, wherein the environment verification report includes current execution environment information of the isolated area and code information of the ciphertext calculation interpreter; Sending a key acquisition request for the ciphertext data to the data entrusting party, wherein the key acquisition request carries the environment verification report; The data entrusting party receives the key corresponding to the ciphertext data returned when it determines that the isolated area and the ciphertext calculation interpreter loaded into the isolated area are trustworthy.
9. The data processing device based on the trusted execution environment according to claim 8, The isolated area is further configured to send, in response to the data processing request, a request to generate an environment report for the isolated area to the central processor of the server; receiving a signed environmental verification report generated and returned by the central processor according to the environmental report generation request, in, The environment verification report carrying the signature is generated by the central processor by signing the initial environment verification report, and the initial environment verification report is generated based on the current execution environment information of the isolation area and the code information of the ciphertext calculation interpreter.
10. The data processing device based on a trusted execution environment according to claim 8, wherein the interface unit comprises a data input interface; The data input interface is used to respond to a data processing request sent by a data entrusting party, determine the ciphertext data encrypted by the key carried in the data processing request, and load the ciphertext data into the encryption and decryption unit.
11. The data processing device based on a trusted execution environment according to claim 8, further comprising a serialization unit; The encryption and decryption unit is further configured to, when determining that the ciphertext data is input in the form of an encrypted byte array, decrypt the ciphertext data according to the key corresponding to the ciphertext data, and send the decrypted ciphertext data to the serialization unit; The serialization unit is used to deserialize the decrypted ciphertext data to obtain the plaintext data corresponding to the ciphertext data, store the plaintext data in the form of a first data block to the data management unit, and send the first block identifier corresponding to the first data block to the ciphertext data processing unit.
12. The data processing device based on a trusted execution environment according to claim 8, wherein the interface unit further comprises a calculation function input interface; The calculation function input interface is used to obtain a calculation function written in an encryption programming language for processing the plaintext data according to the data processing request, and send the calculation function to the ciphertext data processing unit.
13. The data processing device based on a trusted execution environment according to claim 11, wherein the ciphertext data processing unit comprises a ciphertext calculation interpreter, and the ciphertext calculation interpreter comprises a parser and an executor; the parser is configured to obtain, from the data management unit according to the first block identifier, a first data block corresponding to the plaintext data, parse the calculation function, generate a data processing execution plan, and send the first data block corresponding to the plaintext data and the data processing execution plan to the executor; The executor is used to perform data processing on the first data block corresponding to the plaintext data according to the data processing execution plan to obtain a data processing result.
14. The data processing device based on the trusted execution environment according to claim 13, The executor is further configured to store the data processing result in the form of a second data block in the data management unit, and send a second block identifier corresponding to the second data block to the serialization unit.
15. The data processing device based on the trusted execution environment according to claim 14, The serialization unit is further configured to obtain, from the data management unit according to the second block identifier, a second data block corresponding to the second block identifier, perform serialization processing on the second data block, and send the serialized second data block to the encryption and decryption unit; The encryption and decryption unit is further configured to encrypt the second data block after serialization according to the key, obtain an encrypted data processing result, and send the encrypted data processing result to the data entrusting party.
16. The data processing device based on a trusted execution environment according to claim 8, further comprising a plug-in management unit, wherein the plug-in management unit includes an audit plug-in; The audit plug-in is used to generate triple log information based on the plaintext data, the calculation function, and the data processing result, and record the triple log information in a trusted log implemented as a directed acyclic graph.
17. The data processing device based on a trusted execution environment according to claim 16, wherein the plug-in management unit further comprises a functional plug-in; The functional plug-in is used to provide preset processing functions for the data processing device.
18. A computing device comprising: memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the data processing method based on a trusted execution environment as described in any one of claims 1 to 7 are implemented.
19. A computer-readable storage medium storing computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the steps of the data processing method based on a trusted execution environment according to any one of claims 1 to 7.