WO2020252617A1 - Data processing method, apparatus and system - Google Patents

Data processing method, apparatus and system Download PDF

Info

Publication number
WO2020252617A1
WO2020252617A1 PCT/CN2019/091495 CN2019091495W WO2020252617A1 WO 2020252617 A1 WO2020252617 A1 WO 2020252617A1 CN 2019091495 W CN2019091495 W CN 2019091495W WO 2020252617 A1 WO2020252617 A1 WO 2020252617A1
Authority
WO
WIPO (PCT)
Prior art keywords
private key
key
data
execution environment
trusted execution
Prior art date
Application number
PCT/CN2019/091495
Other languages
French (fr)
Chinese (zh)
Inventor
唐虹刚
李升林
孙立林
Original Assignee
云图有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 云图有限公司 filed Critical 云图有限公司
Priority to PCT/CN2019/091495 priority Critical patent/WO2020252617A1/en
Publication of WO2020252617A1 publication Critical patent/WO2020252617A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • the present invention relates to the technical field of computer data processing, and in particular, to a data processing method, device and system for improving the security of a trusted execution environment.
  • the Trusted Execution Environment (TEE) hardware security environment technology in the terminal device CPU has been increasingly applied to the production environment.
  • security processes such as blockchain, AI, and big data processing all rely on the trusted execution environment (TEE) that comes with the CPU, but the TEE technology only uses a single built-in private inside the hardware.
  • TEE trusted execution environment
  • the use of CPU security vulnerabilities such as Spectre/Meltdown/Foreshadow can steal data, and even steal the root key (PRIVATE KEY) of TEE, which leads to the risk of comprehensive data leakage.
  • the above problems cannot be solved by simple software patches. . Therefore, how to strengthen the hardware TEE environment security has become an urgent technical problem to be solved.
  • the purpose of the embodiments of this specification is to provide a data processing method, device, and system that can enhance the security of hardware data processing in a trusted execution environment.
  • a data processing system includes a key generation server, a terminal device, and a data providing server.
  • the terminal device is provided with a trusted execution environment and a security module;
  • the data providing server is configured to encrypt data based on a public key and send the encrypted data to a terminal device, and the public key is generated in advance by the key generation server and sent to the data providing server;
  • the trusted execution environment of the terminal device is used to receive encrypted data sent by the data providing server and initiate secure multi-party computing;
  • the trusted execution environment and the security module are used to jointly perform secure multi-party calculations using the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key.
  • the first private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
  • the trusted execution environment is used to decrypt the encrypted data by using the private key obtained by secure multi-party calculation.
  • the key generation server is used to generate a public key and a private key, and send the public key to the data providing server according to the request of the data providing server , And sending the private key to the trusted execution environment of the terminal device according to the request of the terminal device;
  • the trusted execution environment of the terminal device is used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the trusted In the execution environment, the second private key component of the at least two private key components is stored in the security module.
  • the key generation server is further configured to generate a public key and a private key when a key update request is received, and the key update request is issued by the terminal device and/or
  • the data providing server sends based on a preset time interval or a data exchange dialogue, and the key update request includes the terminal device ID and the data provider information corresponding to the data providing server;
  • the key generation server is further configured to send the public key to the data providing server according to the data provider information, and send the private key to the terminal device according to the terminal device ID. surroundings.
  • the key generation server is further configured to encrypt the private key based on a preset encryption algorithm and send it to the trusted execution environment of the terminal device;
  • the trusted execution environment is configured to receive the private key encrypted based on a preset encryption algorithm sent by the key generation server, and perform the encryption based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm.
  • the private key is decrypted to obtain the private key.
  • the embodiment of this specification also provides a data processing method applied to a trusted execution environment, and the method includes:
  • the private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
  • the method before the receiving the data based on public key encryption sent by the data providing server, the method further includes:
  • the method before the receiving the data based on public key encryption sent by the data providing server, the method further includes:
  • the embodiments of this specification also provide a data processing device, which is applied to a trusted execution environment, and the device includes:
  • the first data receiving module is configured to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
  • the secure multi-party calculation module is used to perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain a private key, wherein the first private key
  • the component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
  • the decryption module is used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
  • the embodiment of the present specification also provides a data processing device, including a processor and a memory for storing executable instructions of the processor, the instructions being executed by the processor include the following steps: Sent data encrypted based on a public key, the public key being generated in advance by the key generation server and sent to the data providing server;
  • the private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
  • the embodiments of this specification also provide a terminal device, the terminal device includes a trusted execution environment and a security module, wherein a first private key component is stored in the trusted execution environment, and the security module A second private key component is stored, and the first private key component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
  • the trusted execution environment is used to receive data encrypted based on a public key sent by a data providing server, where the public key is pre-generated by the key generation server and sent to the data providing server;
  • the trusted execution environment and the security module are configured to use the first private key component and the second private key component to jointly perform secure multi-party calculations to obtain a private key;
  • the trusted execution environment is also used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
  • the TEE of the terminal device can split the private key into at least two components, one of which is Stored in the TEE, and the remaining components are encrypted and stored in the security module of the terminal device that is specially used to store the key.
  • the TEE of the terminal device can split the private key into at least two components, one of which is Stored in the TEE, and the remaining components are encrypted and stored in the security module of the terminal device that is specially used to store the key.
  • the TEE of the terminal device can split the private key into at least two components, one of which is Stored in the TEE, and the remaining components are encrypted and stored in the security module of the terminal device that is specially used to store the key.
  • the security module of the terminal device that is specially used to store the key.
  • Figure 1 is a schematic diagram of the key generation and distribution stage in an embodiment provided in this specification
  • FIG. 2 is a schematic diagram of the key use phase in another embodiment provided in this specification.
  • FIG. 3 is a schematic flow diagram of a data processing method applied to TEE provided in this specification
  • FIG. 4 is a schematic diagram of the module structure of a data processing device applied to TEE provided in this specification.
  • the trusted execution environment (TEE) hardware security environment technology in the terminal device CPU has been increasingly applied to the production environment. Due to the inherent flaws in the design of the CPU architecture, security processes such as blockchain, AI, and big data processing all rely on the trusted execution environment (TEE) that comes with the CPU, but the TEE technology uses only a single built-in private key inside the hardware. , Once the key is stolen, the data will face the risk of total theft. For example, the use of CPU security vulnerabilities such as Spectre/Meltdown/Foreshadow can steal data, and even steal the root key (PRIVATE KEY) of TEE, which leads to the risk of comprehensive data leakage. At present, the above problems cannot be solved by simple software patches. .
  • the embodiment of this specification provides a data processing system that can enhance the security of the hardware TEE environment.
  • the data processing system may include a terminal device, a key generation server, and a data providing server.
  • the terminal device is provided with a trusted execution Environment (TEE) and safety modules.
  • TEE trusted execution Environment
  • the TEE of the terminal device receives the private key sent by the key generation server, it can split the private key into at least two components, one of which is stored in the TEE, and the remaining components are encrypted and stored in the terminal device to save the secret. Key in the security module.
  • TEE trusted execution Environment
  • the TEE of the terminal device receives the private key sent by the key generation server, it can split the private key into at least two components, one of which is stored in the TEE, and the remaining components are encrypted and stored in the terminal device to save the secret. Key in the security module.
  • a part of the private key component is encrypted and stored on a more secure security module for storage.
  • the method of secure multi-party calculation is used again,
  • the key generation server can be used to generate a private key and a public key pair.
  • the data providing server may be a server of a data provider corresponding to an application running on the terminal device.
  • the server described in the embodiment of this specification may be a single server or a server cluster, which is not limited here.
  • the terminal device may be a device with data processing and data communication functions, such as a mobile phone (also referred to as a "cellular phone"), a cordless phone, a handheld device, a vehicle-mounted device, a wearable device, and so on.
  • the trusted execution environment (TEE) can be an operating environment for providing security services in a terminal device. The TEE can use all the performance of the CPU while it is running, and at the same time ensure the running security of the application.
  • the security module may be an SE (Secure Element) or a file system specially used for key encryption storage in a mobile terminal.
  • SE Secure Element
  • the SE may be a micro-computing processing module that implements functions such as data secure storage, encryption and decryption operations, etc. through a security chip and a chip operating system.
  • the system may include a key generation server, a terminal device, and a data providing server, and the terminal device is provided with a trusted execution environment and a security module;
  • the data providing server may be used to encrypt data based on a public key and send the encrypted data to a terminal device, and the public key is generated in advance by the key generation server and sent to the data providing server;
  • the trusted execution environment of the terminal device may be used to receive encrypted data sent by the data providing server and initiate secure multi-party computing;
  • the trusted execution environment and the security module can be used to jointly perform secure multi-party calculations using the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, where: The first private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
  • the trusted execution environment may be used to decrypt the encrypted data using the private key obtained by secure multi-party calculation.
  • the key generation server may complete key generation in advance to obtain a public key and private key pair.
  • Fig. 1 shows a schematic diagram of the key generation and distribution stages provided in one or more embodiments of this specification.
  • the key generation server can be used to generate a private key SK and a public key PK, and send the generated private key to the TEE of the terminal device.
  • the TEE can split the private key into at least two components, store one of the components in the TEE, and encrypt the remaining components by the security module.
  • the security module may be one, two or more than two.
  • the TEE when there is one security module, if the security module is an SE, the TEE can split the private key into two parts, one is stored locally, and the other is sent to the SE for encrypted storage.
  • the TEE can split the private key into two or more parts, one part is stored locally, and the remaining parts are sent to different security modules for encrypted storage.
  • TEE can split the private key SK into two parts, namely the first private key component SK1 and the second private key component SK2, and then store SK1 locally and send SK2 to the SE or file system Encrypted storage.
  • first private key component and the second private key component in the embodiments of this specification are only defined for distinguishing expressions, and are not a limitation on the data difference between the two. The difference between the two data can be based on actual conditions. Need to be set, there is no limit here.
  • the way to encrypt SK2 can be cipher algorithms such as AES, DES, 3DES, RSA, etc., which is not limited here.
  • the key generation server can be used to generate a public key and a private key, and send the public key to the public key according to the request of the data providing server.
  • the terminal device may be used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and the at least The second private key component of the two private key components is stored in the security module.
  • the key generation server may also be used to encrypt the private key based on a preset encryption algorithm and send it to the trusted execution environment of the terminal device.
  • the key generation server After the key generation server generates the private key and the public key, it may also encrypt the private key based on a preset encryption algorithm, and then send the encrypted private key to the trusted execution environment of the terminal device for further
  • the type of the preset encryption algorithm is not limited.
  • the trusted execution environment of the terminal device can perform decryption processing based on the decryption algorithm corresponding to the preset encryption algorithm to obtain the private key, and then perform the distribution processing based on the aforementioned distribution mechanism.
  • Figure 2 shows a schematic diagram of a key use phase provided in one or more embodiments of this specification.
  • the key generation server may send the public key to the data providing server based on the data request, so that the data providing server uses the public key to encrypt data.
  • the key generation server may send the public key corresponding to the terminal device ID to the data providing server based on the terminal device ID sent by the data providing server.
  • the data to be transmitted can be encrypted based on the public key and sent to the terminal device.
  • the TEE of the terminal device can initiate a secure multi-party calculation after receiving the data based on public key encryption sent by the data providing server.
  • the TEE and the security module can use the first private key component SK1 stored in the TEE and the second private key component SK2 stored in the security module such as the file system to jointly perform secure multi-party calculations to complete the recovery of the private key SK.
  • the TEE can initiate a secure multi-party calculation to the security module, and the security module can decrypt the second private key component SK2 after receiving the information. Then, the TEE can perform secure multi-party calculations in conjunction with the security module to realize the recovery of the private key SK. Since secure multi-party computing requires more computing resources, in actual use, the implementation process of secure multi-party computing can be implemented by software or hardware.
  • Secure Muti-Party Computation is an algorithm for protecting data privacy and security.
  • Multiple participants can use secure multi-party computing technology to perform collaborative calculations and obtain calculation results without leaking their own data.
  • n ⁇ 2; x 1 ,...,x n are the data of the participants P 1 ,...,P n ; y is the calculation result.
  • One of the participating parties P 1 ,..., P n or all parties can obtain the calculation result y.
  • the TEE and the security module of the terminal device can obtain different private key components respectively.
  • the TEE may use the first private key component SK1 as an input parameter
  • the security module may use the second private key component SK2 as an input parameter after the decryption process, and use secure multi-party computing technology to perform collaborative calculations.
  • the calculation result can be obtained: the key SK.
  • this embodiment can further split the private key, encrypt a part of the private key components and store it on a more secure security module for storage.
  • the security is reused.
  • the multi-party calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of TEE data being stolen.
  • the key generation server may also be used to generate a public key and a private key when receiving a key update request, which is based on the terminal device and/or the data providing server
  • the key update request includes the terminal device ID and data providing server information; correspondingly, the key generation server can also be used to send the public key according to the data providing server information.
  • the security of data processing can be further improved by adopting the form of applying for a new key at an interval of a period of time or each data interactive dialogue.
  • the terminal device and/or the data providing server may update the key at regular intervals, and send a key update request to the key generation server to request the key generation server to generate new public and private keys. Correct. Then, the key generation server can send the new private key to the terminal device according to the terminal device ID, and the trusted execution environment of the terminal device can be distributed and stored according to the mechanism of the above-mentioned embodiment. At the same time, the key generation server may publish the new public key to the data providing server according to the data providing server information, or send the new public key to the data providing server based on the request of the data providing server.
  • the data providing server and/or the terminal device may send a key update request to the key generation server, and the key generation server will receive the After the request, a new public key and private key pair can be generated, and then the public key can be sent to the data providing server corresponding to the data interaction dialog, and the private key can be sent to the terminal device corresponding to the data interaction dialog.
  • the terminal device may send a key update request to the key generation server, and the key update request may include the terminal device ID, the data providing server information corresponding to this data exchange session, and so on.
  • the key generation server may generate a public key and private key pair, and then send the private key to the terminal device corresponding to the ID according to the terminal device ID.
  • the TEE of the terminal device completes the split and encrypted storage of the private key according to the above mechanism.
  • the key generation server may also send the public key to the data providing server according to the information of the data providing server, or send the public key corresponding to the terminal device ID to the data providing server according to the request of the data providing server.
  • the data providing server can encrypt the data to be transmitted based on the public key, and then send it to the terminal device.
  • the TEE of the terminal device can initiate secure multi-party calculation.
  • the TEE and the security module can use the first private key component in the TEE and the second private key component in the security module to jointly perform secure multi-party calculations to complete the recovery of the private key SK.
  • the TEE can use the private key obtained after the recovery to decrypt the data encrypted by the public key.
  • the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
  • Figure 3 shows a schematic flow chart of a data processing method provided in this specification.
  • another embodiment of this specification also provides a data processing method applied to a trusted execution environment, and the method may include:
  • S102 Receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
  • S104 Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component The key component is obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
  • S106 Use the private key obtained by secure multi-party calculation to decrypt the data encrypted based on the public key.
  • the data providing server before said receiving the data based on public key encryption sent by the data providing server, it may further include:
  • the data providing server before said receiving the data based on public key encryption sent by the data providing server, it may further include:
  • a part of the private key component is encrypted and stored in a more secure security module for storage.
  • the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
  • one or more embodiments of this specification also provide a data processing device. Since the implementation scheme of the device to solve the problem is similar to the method, the implementation of the specific device in the embodiment of this specification can refer to the implementation of the foregoing method, and the repetition will not be repeated.
  • the term "unit” or "module” can be a combination of software and/or hardware that implements predetermined functions.
  • the devices described in the following embodiments are preferably implemented by software, hardware or a combination of software and hardware is also possible and conceived.
  • FIG. 4 shows a schematic diagram of the module structure of an embodiment of a data processing device provided in the specification.
  • another embodiment of this specification also provides a data processing device, which is applied in a trusted execution environment, The device may include:
  • the first data receiving module 202 may be used to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
  • the secure multi-party computing module 204 can be used to perform secure multi-party computing based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key.
  • the private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
  • the decryption module 206 may be used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
  • the device may further include:
  • the key update request module can be used to send a key update request to the key generation server based on a preset time interval or a data request from the data providing server, so that the key generation server generates a private key and a public key according to the key update request.
  • the key, the key update request includes the terminal device ID and data providing server information;
  • the second data receiving module may be used to receive the private key sent by the key generation server, and split the private key into at least two private key components, where the at least two private key components
  • the first private key component of is stored in the trusted execution environment, and the second private key component of the at least two private key components is stored in the security module.
  • the device may further include:
  • the third data receiving module may be used to receive the private key encrypted based on the preset encryption algorithm sent by the key generation server, and perform the encryption on the private key encrypted based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm Decryption processing to obtain the private key;
  • the key distribution module may be used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and The second private key component of the at least two private key components is stored in the security module.
  • the above-mentioned device may also include other implementation manners according to the description of the method embodiment.
  • specific implementation manners reference may be made to the description of the related method embodiments, which will not be repeated here.
  • a part of the private key component is encrypted and stored in a more secure security module for storage.
  • the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
  • this specification also provides a data processing device including a processor and a memory storing executable instructions of the processor. When the instructions are executed by the processor, the implementation includes the following steps:
  • the private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
  • the above-mentioned device may also include other implementation modes according to the description of the method embodiment.
  • reference may be made to the description of the related method embodiments, which will not be repeated here.
  • the storage medium may include a physical device for storing information, and the information is usually digitized and then stored in an electric, magnetic, or optical medium.
  • the storage medium may include: devices that use electrical energy to store information, such as various types of memory, such as RAM, ROM, etc.; devices that use magnetic energy to store information, such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, U disk; a device that uses optical means to store information, such as CD or DVD.
  • devices that use electrical energy to store information such as various types of memory, such as RAM, ROM, etc.
  • devices that use magnetic energy to store information such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, U disk
  • a device that uses optical means to store information such as CD or DVD.
  • quantum memory graphene memory, and so on.
  • the terminal device may include a trusted execution environment and a security module, wherein the A first private key component is stored in the trusted execution environment, a second private key component may be stored in the security module, and the first private key component and the second private key component are received by the trusted execution environment
  • the private key sent by the key generation server is split and obtained;
  • the trusted execution environment may be used to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generation server and sent to the data providing server;
  • the trusted execution environment and the security module may be used to use the first private key component and the second private key component to jointly perform secure multi-party calculations to obtain a private key;
  • the trusted execution environment may also be used to decrypt the data encrypted based on the public key using a private key obtained by secure multi-party calculation.
  • the above-mentioned device may also include other implementation manners according to the description of the method embodiment.
  • specific implementation manners reference may be made to the description of the related method embodiments, which will not be repeated here.
  • a part of the private key component is encrypted and stored in a more secure security module for storage.
  • the method of secure multi-party computing is used again.
  • the other private key component does not leave the security module to realize the recovery of the private key, thereby reducing the risk of the theft of TEE data.
  • the device or system described above in this specification may also include other implementation manners based on the description of the related method embodiments.
  • specific implementation manners refer to the description of the method embodiments, which will not be repeated here.
  • the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments.
  • the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiments.
  • a typical implementation device is a computer.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • Computers, wearable devices, or any combination of these devices may be specifically implemented by computer chips or entities, or implemented by products with certain functions.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • the functions are divided into various modules and described separately.
  • the function of each module can be realized in the same one or more software and/or hardware, or the module that realizes the same function can be realized by a combination of multiple sub-modules or sub-units, etc. .
  • the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or integrated To another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • controllers in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in the controller for realizing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
  • the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
  • processors CPU
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • one or more embodiments of this specification can be provided as a method, a system, or a computer program product. Therefore, one or more embodiments of this specification may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, one or more embodiments of this specification may adopt a computer program implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes. The form of the product.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • One or more embodiments of this specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • One or more embodiments of this specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed in embodiments of the present description are a data processing method, apparatus and system. The system comprises a key generation server, a terminal device, and a data providing server. The terminal device is provided with a TEE and a security module. The data providing server encrypts data on the basis of a public key, the public key being pre-generated by the key generation server. The TEE receives the data encrypted on the basis of the public key, and initiates secure multi-party computation. The TEE and the security module jointly perform secure multi-party computation using a first private key component stored in the TEE and a second private key component stored in the security module to obtain a private key, wherein the first private key component and the second private key component are obtained by the TEE by splitting the private key sent by the key generation server after receiving same. The TEE performs decryption processing on the encrypted data using the private key obtained by the secure multi-party computation. The embodiments of the present description can enhance the security of data processing by TEE hardware.

Description

一种数据处理方法、装置及系统Data processing method, device and system 技术领域Technical field
本发明涉及计算机数据处理技术领域,特别地,涉及一种提升可信执行环境安全性的数据处理方法、装置及系统。The present invention relates to the technical field of computer data processing, and in particular, to a data processing method, device and system for improving the security of a trusted execution environment.
背景技术Background technique
终端设备CPU中的可信执行环境(Trusted Execution Environment,TEE)硬件安全环境技术已经越来越多的应用到生产环境中。目前由于CPU架构设计上的固有缺陷,区块链、AI、大数据处理等安全处理均依赖于CPU自带的可信执行环境(TEE),但TEE技术在硬件内部仅使用了单一的内置私钥,一旦密钥被窃取,数据将面临全面失窃的风险。例如,利用CPU存在Spectre/Meltdown/Foreshadow等安全漏洞可以窃取数据,甚至可以窃取TEE的根密钥(PRIVATE KEY),进而导致全面数据泄露的风险,且目前尚无法通过简单软件补丁方式解决上述问题。因此,如何加强硬件TEE环境安全成为亟待解决的技术问题。The Trusted Execution Environment (TEE) hardware security environment technology in the terminal device CPU has been increasingly applied to the production environment. At present, due to the inherent flaws in the design of the CPU architecture, security processes such as blockchain, AI, and big data processing all rely on the trusted execution environment (TEE) that comes with the CPU, but the TEE technology only uses a single built-in private inside the hardware. Once the key is stolen, the data will face the risk of total theft. For example, the use of CPU security vulnerabilities such as Spectre/Meltdown/Foreshadow can steal data, and even steal the root key (PRIVATE KEY) of TEE, which leads to the risk of comprehensive data leakage. At present, the above problems cannot be solved by simple software patches. . Therefore, how to strengthen the hardware TEE environment security has become an urgent technical problem to be solved.
发明内容Summary of the invention
本说明书实施例的目的在于提供一种数据处理方法、装置及系统,可以加强可信执行环境硬件数据处理的安全性。The purpose of the embodiments of this specification is to provide a data processing method, device, and system that can enhance the security of hardware data processing in a trusted execution environment.
本说明书提供一种数据处理方法、装置及系统是包括如下方式实现的:This specification provides a data processing method, device and system which are implemented in the following ways:
一种数据处理系统,所述系统包括密钥生成服务器、终端设备及数据提供服务器,所述终端设备中设置有可信执行环境及安全模块;A data processing system, the system includes a key generation server, a terminal device, and a data providing server. The terminal device is provided with a trusted execution environment and a security module;
所述数据提供服务器用于基于公钥对数据进行加密,并将加密后的数据发送至终端设备,所述公钥由所述密钥生成服务器预先生成并发送给数据提供服务器;The data providing server is configured to encrypt data based on a public key and send the encrypted data to a terminal device, and the public key is generated in advance by the key generation server and sent to the data providing server;
所述终端设备的可信执行环境用于接收数据提供服务器发送的加密后的数据,并发起安全多方计算;The trusted execution environment of the terminal device is used to receive encrypted data sent by the data providing server and initiate secure multi-party computing;
所述可信执行环境及安全模块用于利用存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量联合进行安全多方计算,获得私钥,其中,所述 第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The trusted execution environment and the security module are used to jointly perform secure multi-party calculations using the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key. The first private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
所述可信执行环境用于利用安全多方计算得到的私钥对所述加密后的数据进行解密处理。The trusted execution environment is used to decrypt the encrypted data by using the private key obtained by secure multi-party calculation.
本说明书提供的所述系统的另一个实施例中,所述密钥生成服务器用于生成公钥和私钥,并根据所述数据提供服务器的请求将所述公钥发送给所述数据提供服务器,以及根据所述终端设备的请求将所述私钥发送给所述终端设备的可信执行环境;In another embodiment of the system provided in this specification, the key generation server is used to generate a public key and a private key, and send the public key to the data providing server according to the request of the data providing server , And sending the private key to the trusted execution environment of the terminal device according to the request of the terminal device;
相应的,所述终端设备的可信执行环境用于将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Correspondingly, the trusted execution environment of the terminal device is used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the trusted In the execution environment, the second private key component of the at least two private key components is stored in the security module.
本说明书提供的所述系统的另一个实施例中,所述密钥生成服务器还用于在接收到密钥更新请求时生成公钥和私钥,所述密钥更新请求由终端设备和/或数据提供服务器基于预设时间间隔或者数据交互对话发送,所述密钥更新请求包括终端设备ID及数据提供服务器对应的数据提供方信息;In another embodiment of the system provided in this specification, the key generation server is further configured to generate a public key and a private key when a key update request is received, and the key update request is issued by the terminal device and/or The data providing server sends based on a preset time interval or a data exchange dialogue, and the key update request includes the terminal device ID and the data provider information corresponding to the data providing server;
相应的,所述密钥生成服务器还用于根据数据提供方信息将所述公钥发送给所述数据提供服务器,以及根据终端设备ID将所述私钥发送给所述终端设备的可信执行环境。Correspondingly, the key generation server is further configured to send the public key to the data providing server according to the data provider information, and send the private key to the terminal device according to the terminal device ID. surroundings.
本说明书提供的所述系统的另一个实施例中,所述密钥生成服务器还用于基于预设加密算法将所述私钥进行加密后,发送给终端设备的可信执行环境;In another embodiment of the system provided in this specification, the key generation server is further configured to encrypt the private key based on a preset encryption algorithm and send it to the trusted execution environment of the terminal device;
相应的,所述可信执行环境用于接收密钥生成服务器发送的基于预设加密算法加密的私钥,并基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥。Correspondingly, the trusted execution environment is configured to receive the private key encrypted based on a preset encryption algorithm sent by the key generation server, and perform the encryption based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm. The private key is decrypted to obtain the private key.
另一方面,本说明书实施例还提供一种数据处理方法,应用于可信执行环境,所述方法包括:On the other hand, the embodiment of this specification also provides a data processing method applied to a trusted execution environment, and the method includes:
接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;Receiving data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component After the trusted execution environment receives the private key sent by the key generation server, it is split and obtained;
利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
本说明书提供的所述方法的另一个实施例中,所述接收数据提供服务器发送的基于公钥加密的数据之前,还包括:In another embodiment of the method provided in this specification, before the receiving the data based on public key encryption sent by the data providing server, the method further includes:
基于预设时间间隔或者数据提供服务器的数据请求向密钥生成服务器发送密钥更新请求,以使所述密钥生成服务器根据密钥更新请求生成私钥及公钥,所述密钥更新请求包括终端设备ID及数据提供服务器信息;Send a key update request to the key generation server based on a preset time interval or a data request from the data providing server, so that the key generation server generates a private key and a public key according to the key update request, and the key update request includes Terminal device ID and data providing server information;
接收所述密钥生成服务器发送的所述私钥,并将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Receiving the private key sent by the key generation server, and splitting the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the In the letter execution environment, the second private key component of the at least two private key components is stored in the security module.
本说明书提供的所述方法的另一个实施例中,所述接收数据提供服务器发送的基于公钥加密的数据之前,还包括:In another embodiment of the method provided in this specification, before the receiving the data based on public key encryption sent by the data providing server, the method further includes:
接收密钥生成服务器发送的基于预设加密算法加密的私钥,基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥;Receiving the private key encrypted based on the preset encryption algorithm sent by the key generation server, and decrypting the private key encrypted based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm to obtain the private key;
将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and The second private key component is stored in the security module.
另一方面,本说明书实施例还提供一种数据处理装置,应用于可信执行环境,所述装置包括:On the other hand, the embodiments of this specification also provide a data processing device, which is applied to a trusted execution environment, and the device includes:
第一数据接收模块,用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The first data receiving module is configured to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
安全多方计算模块,用于基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The secure multi-party calculation module is used to perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain a private key, wherein the first private key The component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
解密模块,用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The decryption module is used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
另一方面,本说明书实施例还提供一种数据处理设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发 送给数据提供服务器;On the other hand, the embodiment of the present specification also provides a data processing device, including a processor and a memory for storing executable instructions of the processor, the instructions being executed by the processor include the following steps: Sent data encrypted based on a public key, the public key being generated in advance by the key generation server and sent to the data providing server;
基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component After the trusted execution environment receives the private key sent by the key generation server, it is split and obtained;
利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
另一方面,本说明书实施例还提供一种终端设备,所述终端设备包括可信执行环境及安全模块,其中,所述可信执行环境中存储有第一私钥分量,所述安全模块中存储有第二私钥分量,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到密钥生成服务器发送的私钥后拆分获得;On the other hand, the embodiments of this specification also provide a terminal device, the terminal device includes a trusted execution environment and a security module, wherein a first private key component is stored in the trusted execution environment, and the security module A second private key component is stored, and the first private key component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
所述可信执行环境用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The trusted execution environment is used to receive data encrypted based on a public key sent by a data providing server, where the public key is pre-generated by the key generation server and sent to the data providing server;
所述可信执行环境及安全模块用于利用所述第一私钥分量及第二私钥分量联合进行安全多方计算获得私钥;The trusted execution environment and the security module are configured to use the first private key component and the second private key component to jointly perform secure multi-party calculations to obtain a private key;
所述可信执行环境还用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The trusted execution environment is also used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
本说明书一个或多个实施例提供的数据处理方法、装置及系统,终端设备的TEE在接收到密钥生成服务器发送的私钥后,可以将私钥拆分成至少两个分量,其中一个分量存储于TEE中,其余分量加密存储至终端设备中专门用于保存密钥的安全模块中。通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块上进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,能够降低TEE数据被窃取而带来的风险。According to the data processing method, device and system provided by one or more embodiments of this specification, after receiving the private key sent by the key generation server, the TEE of the terminal device can split the private key into at least two components, one of which is Stored in the TEE, and the remaining components are encrypted and stored in the security module of the terminal device that is specially used to store the key. By further splitting the private key, a part of the private key component is encrypted and stored on a more secure security module for storage. In actual application, the method of secure multi-party calculation is used again, and the other private key component does not leave the security module On the basis of, the recovery of the private key can be realized, which can reduce the risk of the theft of TEE data.
附图说明Description of the drawings
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:In order to more clearly explain the technical solutions in the embodiments of this specification or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only These are some embodiments described in this specification. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative labor. In the attached picture:
图1为本说明书提供的一个实施例中的密钥生成及分发阶段示意图;Figure 1 is a schematic diagram of the key generation and distribution stage in an embodiment provided in this specification;
图2为本说明书提供的另一个实施例中的密钥使用阶段示意图;Figure 2 is a schematic diagram of the key use phase in another embodiment provided in this specification;
图3为本说明书提供的一种应用于TEE的数据处理方法的流程示意图;Figure 3 is a schematic flow diagram of a data processing method applied to TEE provided in this specification;
图4为本说明书提供的一种应用于TEE的数据处理装置的模块结构示意图。Figure 4 is a schematic diagram of the module structure of a data processing device applied to TEE provided in this specification.
具体实施方式Detailed ways
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。In order to enable those skilled in the art to better understand the technical solutions in this specification, the following will make clear and complete the technical solutions in one or more embodiments of this specification in conjunction with the drawings in one or more embodiments of this specification. It is obvious that the described embodiments are only a part of the embodiments in the specification, rather than all the embodiments. Based on one or more embodiments of the specification, all other embodiments obtained by a person of ordinary skill in the art without creative work shall fall within the protection scope of the embodiment scheme of this specification.
终端设备CPU中的可信执行环境(TEE)硬件安全环境技术已经越来越多的应用到生产环境中。由于CPU架构设计上的固有缺陷,区块链、AI、大数据处理等安全处理均依赖于CPU自带的可信执行环境(TEE),但TEE技术在硬件内部仅使用了单一的内置私钥,一旦密钥被窃取,数据将面临全面失窃的风险。例如,利用CPU存在Spectre/Meltdown/Foreshadow等安全漏洞可以窃取数据,甚至可以窃取TEE的根密钥(PRIVATE KEY),进而导致全面数据泄露的风险,且目前尚无法通过简单软件补丁方式解决上述问题。The trusted execution environment (TEE) hardware security environment technology in the terminal device CPU has been increasingly applied to the production environment. Due to the inherent flaws in the design of the CPU architecture, security processes such as blockchain, AI, and big data processing all rely on the trusted execution environment (TEE) that comes with the CPU, but the TEE technology uses only a single built-in private key inside the hardware. , Once the key is stolen, the data will face the risk of total theft. For example, the use of CPU security vulnerabilities such as Spectre/Meltdown/Foreshadow can steal data, and even steal the root key (PRIVATE KEY) of TEE, which leads to the risk of comprehensive data leakage. At present, the above problems cannot be solved by simple software patches. .
相应的,本说明书实施例提供一种可以加强硬件TEE环境安全的数据处理系统,所述数据处理系统可以包括终端设备、密钥生成服务器及数据提供服务器,所述终端设备中设置有可信执行环境(TEE)及安全模块。终端设备的TEE在接收到密钥生成服务器发送的私钥后,可以将私钥拆分成至少两个分量,其中一个分量存储于TEE中,其余分量加密存储至终端设备中专门用于保存密钥的安全模块中。通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块上进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,能够降低TEE数据被窃取而带来的风险。Correspondingly, the embodiment of this specification provides a data processing system that can enhance the security of the hardware TEE environment. The data processing system may include a terminal device, a key generation server, and a data providing server. The terminal device is provided with a trusted execution Environment (TEE) and safety modules. After the TEE of the terminal device receives the private key sent by the key generation server, it can split the private key into at least two components, one of which is stored in the TEE, and the remaining components are encrypted and stored in the terminal device to save the secret. Key in the security module. By further splitting the private key, a part of the private key component is encrypted and stored on a more secure security module for storage. In actual application, the method of secure multi-party calculation is used again, and the other private key component does not leave the security module On the basis of, the recovery of the private key can be realized, which can reduce the risk of the theft of TEE data.
所述密钥生成服务器可以用于生成私钥和公钥对。所述数据提供服务器可以为终端设备上运行的应用所对应的数据提供方的服务器。本说明书实施例所述的服务器可以为单个服务器,也可以为服务器集群,这里不做限定。所述终端设备可以为具有数据处理及数据通讯功能的设备,诸如移动电话(又称为“蜂窝电话”)、无绳电话、手持设备、车载设备、可穿戴设备等等。所述可信执行环境(TEE)可以为终端设备 中用于提供安全服务的运行环境,TEE运行时可以使用CPU的全部性能,并同时保证应用的运行安全性。所述安全模块可以为SE(Secure Element)或者移动终端中专门用于密钥加密存储的文件系统等。所述SE可以为通过安全芯片和芯片操作系统实现数据安全存储、加解密运算等功能的微型计算处理模块。The key generation server can be used to generate a private key and a public key pair. The data providing server may be a server of a data provider corresponding to an application running on the terminal device. The server described in the embodiment of this specification may be a single server or a server cluster, which is not limited here. The terminal device may be a device with data processing and data communication functions, such as a mobile phone (also referred to as a "cellular phone"), a cordless phone, a handheld device, a vehicle-mounted device, a wearable device, and so on. The trusted execution environment (TEE) can be an operating environment for providing security services in a terminal device. The TEE can use all the performance of the CPU while it is running, and at the same time ensure the running security of the application. The security module may be an SE (Secure Element) or a file system specially used for key encryption storage in a mobile terminal. The SE may be a micro-computing processing module that implements functions such as data secure storage, encryption and decryption operations, etc. through a security chip and a chip operating system.
本说明书的一个或者多个实施例中,所述系统可以包括密钥生成服务器、终端设备及数据提供服务器,所述终端设备中设置有可信执行环境及安全模块;In one or more embodiments of this specification, the system may include a key generation server, a terminal device, and a data providing server, and the terminal device is provided with a trusted execution environment and a security module;
所述数据提供服务器可以用于基于公钥对数据进行加密,并将加密后的数据发送至终端设备,所述公钥由所述密钥生成服务器预先生成并发送给数据提供服务器;The data providing server may be used to encrypt data based on a public key and send the encrypted data to a terminal device, and the public key is generated in advance by the key generation server and sent to the data providing server;
所述终端设备的可信执行环境可以用于接收数据提供服务器发送的加密后的数据,并发起安全多方计算;The trusted execution environment of the terminal device may be used to receive encrypted data sent by the data providing server and initiate secure multi-party computing;
所述可信执行环境及安全模块可以用于利用存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量联合进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The trusted execution environment and the security module can be used to jointly perform secure multi-party calculations using the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, where: The first private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
所述可信执行环境可以用于利用安全多方计算得到的私钥对所述加密后的数据进行解密处理。The trusted execution environment may be used to decrypt the encrypted data using the private key obtained by secure multi-party calculation.
在利用公钥、私钥对进行数据传输处理之前,所述密钥生成服务器可以预先完成密钥的生成,获得公钥、私钥对。图1表示本说明书一个或者多个实施例中提供的密钥生成及分发阶段示意图。如图1所示,所述密钥生成服务器可以用于生成私钥SK及公钥PK,并将生成的私钥发送给终端设备的TEE。TEE在接收到所述私钥后,可以将该私钥拆分成至少两个分量,将其中一个分量存储于TEE中,将其余分量由安全模块进行加密存储。Before using the public key and private key pair to perform data transmission processing, the key generation server may complete key generation in advance to obtain a public key and private key pair. Fig. 1 shows a schematic diagram of the key generation and distribution stages provided in one or more embodiments of this specification. As shown in Figure 1, the key generation server can be used to generate a private key SK and a public key PK, and send the generated private key to the TEE of the terminal device. After receiving the private key, the TEE can split the private key into at least two components, store one of the components in the TEE, and encrypt the remaining components by the security module.
所述安全模块可以为一个,也可以为两个或者两个以上。一些实施方式中,当安全模块为一个时,如所述安全模块为SE,则TEE可以将该私钥拆分成两部分,一部分本地存储,一部分发送给SE进行加密存储。当安全模块为两个或者两个以上时,则TEE可以将该私钥拆分成两部分以上,一部分本地存储,其余部分分别发送给不同的安全模块进行加密存储。The security module may be one, two or more than two. In some embodiments, when there is one security module, if the security module is an SE, the TEE can split the private key into two parts, one is stored locally, and the other is sent to the SE for encrypted storage. When there are two or more security modules, the TEE can split the private key into two or more parts, one part is stored locally, and the remaining parts are sent to different security modules for encrypted storage.
如图1所示,TEE可以将私钥SK拆分成两部分,分别为第一私钥分量SK1及第二私钥分量SK2,然后,将SK1进行本地存储,将SK2发送给SE或者文件系统 进行加密存储。需要说明的是,本说明书实施例中的第一私钥分量及第二私钥分量仅仅是为了区分表述而定义的,并不是对二者数据差异的限定,二者数据上的差异可以根据实际需要设定,这里不做限定。对SK2进行加密的方式可以采用如AES、DES、3DES、RSA等密码算法,这里不做限定。As shown in Figure 1, TEE can split the private key SK into two parts, namely the first private key component SK1 and the second private key component SK2, and then store SK1 locally and send SK2 to the SE or file system Encrypted storage. It should be noted that the first private key component and the second private key component in the embodiments of this specification are only defined for distinguishing expressions, and are not a limitation on the data difference between the two. The difference between the two data can be based on actual conditions. Need to be set, there is no limit here. The way to encrypt SK2 can be cipher algorithms such as AES, DES, 3DES, RSA, etc., which is not limited here.
对应于上述实施例提供的方案,本说明书的一个实施例中,所述密钥生成服务器可以用于生成公钥和私钥,并根据所述数据提供服务器的请求将所述公钥发送给所述数据提供服务器,以及根据所述终端设备的请求将所述私钥发送给所述终端设备的可信执行环境;Corresponding to the solution provided in the above-mentioned embodiment, in an embodiment of this specification, the key generation server can be used to generate a public key and a private key, and send the public key to the public key according to the request of the data providing server. The data providing server, and the trusted execution environment that sends the private key to the terminal device according to the request of the terminal device;
所述终端设备可以用于将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。The terminal device may be used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and the at least The second private key component of the two private key components is stored in the security module.
本说明书的另一个实施例中,所述密钥生成服务器还可以用于基于预设加密算法将所述私钥进行加密后,发送给终端设备的可信执行环境。所述密钥生成服务器在生成私钥和公钥后,还可以基于预设加密算法将所述私钥进行加密,然后,将加密后的私钥发送给终端设备的可信执行环境,以进一步提高私钥数据传输的安全性,所述预设加密算法的类型不做限定。相应的,终端设备的可信执行环境在接收到加密的私钥后,可以基于预设加密算法对应的解密算法进行解密处理,以获得所述私钥,再基于上述分发机制进行分发处理。In another embodiment of this specification, the key generation server may also be used to encrypt the private key based on a preset encryption algorithm and send it to the trusted execution environment of the terminal device. After the key generation server generates the private key and the public key, it may also encrypt the private key based on a preset encryption algorithm, and then send the encrypted private key to the trusted execution environment of the terminal device for further To improve the security of private key data transmission, the type of the preset encryption algorithm is not limited. Correspondingly, after receiving the encrypted private key, the trusted execution environment of the terminal device can perform decryption processing based on the decryption algorithm corresponding to the preset encryption algorithm to obtain the private key, and then perform the distribution processing based on the aforementioned distribution mechanism.
图2表示本说明书一个或者多个实施例中提供的密钥使用阶段示意图。如图2所示,实际应用时,密钥生成服务器可以基于数据请求向数据提供服务器发送所述公钥,以使得数据提供服务器利用所述公钥对数据进行加密。一些实施方式中,密钥生成服务器可以基于数据提供服务器发送的终端设备ID将所述终端设备ID对应的公钥发送给数据提供服务器。Figure 2 shows a schematic diagram of a key use phase provided in one or more embodiments of this specification. As shown in FIG. 2, in actual application, the key generation server may send the public key to the data providing server based on the data request, so that the data providing server uses the public key to encrypt data. In some embodiments, the key generation server may send the public key corresponding to the terminal device ID to the data providing server based on the terminal device ID sent by the data providing server.
如图2所示,数据提供服务器在与终端设备进行数据传输时,可以基于所述公钥对待传输的数据进行加密,并发送给终端设备。终端设备的TEE在接收到数据提供服务器发送的基于公钥加密的数据后,可以发起安全多方计算。TEE以及安全模块可以利用TEE中存储的第一私钥分量SK1及SE和/或文件系统等安全模块中存储的第二私钥分量SK2联合进行安全多方计算,完成对私钥SK的恢复。As shown in FIG. 2, when the data providing server performs data transmission with the terminal device, the data to be transmitted can be encrypted based on the public key and sent to the terminal device. The TEE of the terminal device can initiate a secure multi-party calculation after receiving the data based on public key encryption sent by the data providing server. The TEE and the security module can use the first private key component SK1 stored in the TEE and the second private key component SK2 stored in the security module such as the file system to jointly perform secure multi-party calculations to complete the recovery of the private key SK.
一些实施方式中,TEE可以向安全模块发起安全多方计算,安全模块在接收到该 信息后,可以对第二私钥分量SK2进行解密处理。然后,TEE可以联合安全模块进行安全多方计算以实现对私钥SK的恢复。由于安全多方计算比较需要计算资源,实际使用时,安全多方计算实现过程可以利用软件实现,也可以利用硬件实现。In some embodiments, the TEE can initiate a secure multi-party calculation to the security module, and the security module can decrypt the second private key component SK2 after receiving the information. Then, the TEE can perform secure multi-party calculations in conjunction with the security module to realize the recovery of the private key SK. Since secure multi-party computing requires more computing resources, in actual use, the implementation process of secure multi-party computing can be implemented by software or hardware.
在一些实施例中,安全多方计算(Secure Muti-Party Computation,MPC)是一种保护数据隐私安全的算法。多个参与方可以在不泄漏自身数据的前提下,使用安全多方计算技术进行协作计算,得到计算结果。例如,使用安全多方计算技术,参与方P 1,…,P n可以协作计算函数y=f(x 1,…,x n)。其中,n≥2;x 1,...,x n分别为参与方P 1,…,P n的数据;y为计算结果。参与方P 1,…,P n一方或者各方可以获得所述计算结果y。 In some embodiments, Secure Muti-Party Computation (MPC) is an algorithm for protecting data privacy and security. Multiple participants can use secure multi-party computing technology to perform collaborative calculations and obtain calculation results without leaking their own data. For example, using secure multi-party computing technology, the participants P 1 ,..., P n can cooperate to calculate the function y=f(x 1 ,..., x n ). Among them, n≥2; x 1 ,...,x n are the data of the participants P 1 ,...,P n ; y is the calculation result. One of the participating parties P 1 ,..., P n or all parties can obtain the calculation result y.
如前所述,通过密钥生成和分发过程,终端设备的TEE及安全模块可以分别获得不同的私钥分量。如此,TEE可以第一私钥分量SK1作为输入参数,所述安全模块可以在解密处理后以第二私钥分量SK2作为输入参数,使用安全多方计算技术进行协作计算。相应的,可以获得计算结果:密钥SK。As mentioned earlier, through the key generation and distribution process, the TEE and the security module of the terminal device can obtain different private key components respectively. In this way, the TEE may use the first private key component SK1 as an input parameter, and the security module may use the second private key component SK2 as an input parameter after the decryption process, and use secure multi-party computing technology to perform collaborative calculations. Correspondingly, the calculation result can be obtained: the key SK.
相较于仅将私钥存储于TEE上,本实施例可以将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块上进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。Compared with only storing the private key on the TEE, this embodiment can further split the private key, encrypt a part of the private key components and store it on a more secure security module for storage. In actual applications, the security is reused. The multi-party calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of TEE data being stolen.
本说明书的另一个实施例中,所述密钥生成服务器还可以用于在接收到密钥更新请求时生成公钥和私钥,所述密钥更新请求由终端设备和/或数据提供服务器基于预设时间间隔或者数据交互对话发送,所述密钥更新请求包括终端设备ID及数据提供服务器信息;相应的,所述密钥生成服务器还可以用于根据数据提供服务器信息将所述公钥发送给所述数据提供服务器,以及根据终端设备ID将所述私钥发送给所述终端设备的可信执行环境。本实施例中,通过采用间隔一段时间或者每次数据交互对话申请新的密钥的形式,可以进一步提高数据处理的安全性。In another embodiment of this specification, the key generation server may also be used to generate a public key and a private key when receiving a key update request, which is based on the terminal device and/or the data providing server The key update request includes the terminal device ID and data providing server information; correspondingly, the key generation server can also be used to send the public key according to the data providing server information. Provide the data to the server and send the private key to the trusted execution environment of the terminal device according to the terminal device ID. In this embodiment, the security of data processing can be further improved by adopting the form of applying for a new key at an interval of a period of time or each data interactive dialogue.
一些实施方式中,终端设备和/或数据提供服务器可以每隔一段时间对密钥进行一次更新,向密钥生成服务器发送密钥更新请求,以申请密钥生成服务器生成新的公钥、私钥对。然后,密钥生成服务器可以根据终端设备ID将新的私钥发送给终端设备,终端设备的可信执行环境可以按照上述实施例的机制进行分发保存。同时,密钥生成服务器可以将新的公钥根据数据提供服务器信息向数据提供服务器公布,或者,基于数据提供服务器的请求将新的公钥发送给数据提供服务器。In some embodiments, the terminal device and/or the data providing server may update the key at regular intervals, and send a key update request to the key generation server to request the key generation server to generate new public and private keys. Correct. Then, the key generation server can send the new private key to the terminal device according to the terminal device ID, and the trusted execution environment of the terminal device can be distributed and stored according to the mechanism of the above-mentioned embodiment. At the same time, the key generation server may publish the new public key to the data providing server according to the data providing server information, or send the new public key to the data providing server based on the request of the data providing server.
另一些实施方式中,对应于数据提供服务器和终端设备之间每次数据交互对话,数据提供服务器和/或终端设备可以向密钥生成服务器发送密钥更新请求,密钥生成服务器在接收到该请求后,可以生成新的公钥、私钥对,然后,将公钥发送给该数据交互对话所对应的数据提供服务器,将私钥发送给所述数据交互对话对应的终端设备。In other embodiments, corresponding to each data exchange dialogue between the data providing server and the terminal device, the data providing server and/or the terminal device may send a key update request to the key generation server, and the key generation server will receive the After the request, a new public key and private key pair can be generated, and then the public key can be sent to the data providing server corresponding to the data interaction dialog, and the private key can be sent to the terminal device corresponding to the data interaction dialog.
如终端设备可以向密钥生成服务器发送密钥更新请求,所述密钥更新请求中可以包括终端设备ID、本次数据交互对话所对应的数据提供服务器信息等。密钥生成服务器在接收到该密钥更新请求后,可以生成公钥、私钥对,然后,根据终端设备ID将私钥发送给ID对应的终端设备。终端设备的TEE在接收到私钥后,依据上述机制,完成对私钥的拆分及加密存储。密钥生成服务器还可以根据数据提供服务器信息将公钥发送给数据提供服务器,或者根据数据提供服务器的请求将终端设备ID对应的公钥发送给数据提供服务器。For example, the terminal device may send a key update request to the key generation server, and the key update request may include the terminal device ID, the data providing server information corresponding to this data exchange session, and so on. After receiving the key update request, the key generation server may generate a public key and private key pair, and then send the private key to the terminal device corresponding to the ID according to the terminal device ID. After receiving the private key, the TEE of the terminal device completes the split and encrypted storage of the private key according to the above mechanism. The key generation server may also send the public key to the data providing server according to the information of the data providing server, or send the public key corresponding to the terminal device ID to the data providing server according to the request of the data providing server.
相应的,数据提供服务器在接收到公钥后,可以基于公钥对待传输的数据进行加密,然后,发送给终端设备,终端设备的TEE在接收到该加密数据后,可以发起安全多方计算。然后,TEE和安全模块可以利用TEE中的第一私钥分量及安全模块中的第二私钥分量联合进行安全多方计算,完成对私钥SK的恢复。进一步的,TEE可以利用恢复后获得的私钥对公钥加密的数据进行解密处理。Correspondingly, after receiving the public key, the data providing server can encrypt the data to be transmitted based on the public key, and then send it to the terminal device. After receiving the encrypted data, the TEE of the terminal device can initiate secure multi-party calculation. Then, the TEE and the security module can use the first private key component in the TEE and the second private key component in the security module to jointly perform secure multi-party calculations to complete the recovery of the private key SK. Further, the TEE can use the private key obtained after the recovery to decrypt the data encrypted by the public key.
利用本说明书各个实施例,即使TEE内的私钥数据被窃取,也不会出现数据全面丢失的风险,从而可以大大提高基于硬件TEE进行数据处理的安全性。Using the various embodiments of the present specification, even if the private key data in the TEE is stolen, there will be no risk of total data loss, thereby greatly improving the security of data processing based on the hardware TEE.
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. For details, reference may be made to the description of the foregoing related processing related embodiments, which will not be repeated here.
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。The foregoing describes specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps described in the claims may be performed in a different order than in the embodiments and still achieve desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or sequential order shown to achieve the desired result. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
本说明书一个或多个实施例提供的数据处理系统,通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块中进行存储,实际应用时,再利 用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。In the data processing system provided by one or more embodiments of this specification, by further splitting the private key, a part of the private key components are encrypted and stored in a more secure security module for storage. In actual application, the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
图3表示本说明书提供的一种数据处理方法的流程示意图。如图3所示,本说明书的另一个实施例中还提供一种数据处理方法,应用于可信执行环境,所述方法可以包括:Figure 3 shows a schematic flow chart of a data processing method provided in this specification. As shown in FIG. 3, another embodiment of this specification also provides a data processing method applied to a trusted execution environment, and the method may include:
S102:接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;S102: Receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
S104:基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;S104: Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component The key component is obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
S106:利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。S106: Use the private key obtained by secure multi-party calculation to decrypt the data encrypted based on the public key.
优选的,本说明书的另一个实施例中,所述接收数据提供服务器发送的基于公钥加密的数据之前,还可以包括:Preferably, in another embodiment of this specification, before said receiving the data based on public key encryption sent by the data providing server, it may further include:
基于预设时间间隔或者数据提供服务器的数据请求向密钥生成服务器发送密钥更新请求,以使所述密钥生成服务器根据密钥更新请求生成私钥及公钥,所述密钥更新请求包括终端设备ID及数据提供服务器信息;Send a key update request to the key generation server based on a preset time interval or a data request from the data providing server, so that the key generation server generates a private key and a public key according to the key update request, and the key update request includes Terminal device ID and data providing server information;
接收所述密钥生成服务器发送的所述私钥,并将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Receiving the private key sent by the key generation server, and splitting the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the In the letter execution environment, the second private key component of the at least two private key components is stored in the security module.
优选的,本说明书的另一个实施例中,所述接收数据提供服务器发送的基于公钥加密的数据之前,还可以包括:Preferably, in another embodiment of this specification, before said receiving the data based on public key encryption sent by the data providing server, it may further include:
接收密钥生成服务器发送的基于预设加密算法加密的私钥,基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥;Receiving the private key encrypted based on the preset encryption algorithm sent by the key generation server, and decrypting the private key encrypted based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm to obtain the private key;
将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and The second private key component is stored in the security module.
上述一个或者多个实施例的具体实现方式可以参照前述相关处理实施例的描述,在此不做一一赘述。For the specific implementation of one or more of the foregoing embodiments, reference may be made to the description of the foregoing related processing embodiments, and details are not repeated here.
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. For details, reference may be made to the description of the foregoing related processing related embodiments, which will not be repeated here.
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。The foregoing describes specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps described in the claims may be performed in a different order than in the embodiments and still achieve desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or sequential order shown to achieve the desired result. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
本说明书一个或多个实施例提供的数据处理方法,通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块中进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。In the data processing method provided by one or more embodiments of this specification, by further splitting the private key, a part of the private key component is encrypted and stored in a more secure security module for storage. In actual application, the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
基于上述所述的数据处理方法,本说明书一个或多个实施例还提供一种数据处理装置。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图4表示说明书提供的一种数据处理装置实施例的模块结构示意图,如图4所示,本说明书的另一个实施例中还提供一种数据处理装置,应用于可信执行环境,所述装置可以括:Based on the data processing method described above, one or more embodiments of this specification also provide a data processing device. Since the implementation scheme of the device to solve the problem is similar to the method, the implementation of the specific device in the embodiment of this specification can refer to the implementation of the foregoing method, and the repetition will not be repeated. As used below, the term "unit" or "module" can be a combination of software and/or hardware that implements predetermined functions. Although the devices described in the following embodiments are preferably implemented by software, hardware or a combination of software and hardware is also possible and conceived. Specifically, FIG. 4 shows a schematic diagram of the module structure of an embodiment of a data processing device provided in the specification. As shown in FIG. 4, another embodiment of this specification also provides a data processing device, which is applied in a trusted execution environment, The device may include:
第一数据接收模块202,可以用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The first data receiving module 202 may be used to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
安全多方计算模块204,可以用于基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The secure multi-party computing module 204 can be used to perform secure multi-party computing based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key. The private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
解密模块206,可以用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The decryption module 206 may be used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
本说明书的另一个实施例中,所述装置还可以包括:In another embodiment of the present specification, the device may further include:
密钥更新请求模块,可以用于基于预设时间间隔或者数据提供服务器的数据请求 向密钥生成服务器发送密钥更新请求,以使所述密钥生成服务器根据密钥更新请求生成私钥及公钥,所述密钥更新请求包括终端设备ID及数据提供服务器信息;The key update request module can be used to send a key update request to the key generation server based on a preset time interval or a data request from the data providing server, so that the key generation server generates a private key and a public key according to the key update request. The key, the key update request includes the terminal device ID and data providing server information;
第二数据接收模块,可以用于接收所述密钥生成服务器发送的所述私钥,并将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。本说明书的另一个实施例中,所述装置还可以包括:The second data receiving module may be used to receive the private key sent by the key generation server, and split the private key into at least two private key components, where the at least two private key components The first private key component of is stored in the trusted execution environment, and the second private key component of the at least two private key components is stored in the security module. In another embodiment of the present specification, the device may further include:
第三数据接收模块,可以用于接收密钥生成服务器发送的基于预设加密算法加密的私钥,基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥;The third data receiving module may be used to receive the private key encrypted based on the preset encryption algorithm sent by the key generation server, and perform the encryption on the private key encrypted based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm Decryption processing to obtain the private key;
密钥分发模块,可以用于将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。The key distribution module may be used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and The second private key component of the at least two private key components is stored in the security module.
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。It should be noted that the above-mentioned device may also include other implementation manners according to the description of the method embodiment. For specific implementation manners, reference may be made to the description of the related method embodiments, which will not be repeated here.
本说明书一个或多个实施例提供的数据处理装置,通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块中进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。In the data processing device provided by one or more embodiments of this specification, by further splitting the private key, a part of the private key component is encrypted and stored in a more secure security module for storage. In actual application, the secure multi-party The calculation method realizes the recovery of the private key on the basis that the other private key component does not leave the security module, thereby reducing the risk of the theft of TEE data.
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。因此,本说明书还提供一种数据处理设备,包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:The method or device described in the foregoing embodiment provided in this specification can implement business logic through a computer program and record it on a storage medium, and the storage medium can be read and executed by a computer to achieve the effects of the solution described in the embodiment of this specification. Therefore, this specification also provides a data processing device including a processor and a memory storing executable instructions of the processor. When the instructions are executed by the processor, the implementation includes the following steps:
接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;Receiving data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component After the trusted execution environment receives the private key sent by the key generation server, it is split and obtained;
利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方 式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。It should be noted that the above-mentioned device may also include other implementation modes according to the description of the method embodiment. For specific implementation manners, reference may be made to the description of the related method embodiments, which will not be repeated here.
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。The storage medium may include a physical device for storing information, and the information is usually digitized and then stored in an electric, magnetic, or optical medium. The storage medium may include: devices that use electrical energy to store information, such as various types of memory, such as RAM, ROM, etc.; devices that use magnetic energy to store information, such as hard disks, floppy disks, magnetic tapes, magnetic core memory, bubble memory, U disk; a device that uses optical means to store information, such as CD or DVD. Of course, there are other ways of readable storage media, such as quantum memory, graphene memory, and so on.
上述实施例所述的数据处理设备,通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块中进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。In the data processing device described in the above embodiment, by further splitting the private key, a part of the private key components are encrypted and stored in a more secure security module for storage. In actual application, the method of secure multi-party computing is used again. On the basis that the other private key component does not leave the security module, the private key can be recovered, thereby reducing the risk of the theft of TEE data.
基于上述实施例所述的数据处理方法、装置及设备,本说明书的一个或者多个实施例中还提供一种终端设备,所述终端设备可以包括可信执行环境及安全模块,其中,所述可信执行环境中存储有第一私钥分量,所述安全模块中可以存储有第二私钥分量,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到密钥生成服务器发送的私钥后拆分获得;Based on the data processing method, device, and equipment described in the foregoing embodiments, one or more embodiments of this specification also provide a terminal device. The terminal device may include a trusted execution environment and a security module, wherein the A first private key component is stored in the trusted execution environment, a second private key component may be stored in the security module, and the first private key component and the second private key component are received by the trusted execution environment The private key sent by the key generation server is split and obtained;
所述可信执行环境可以用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The trusted execution environment may be used to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generation server and sent to the data providing server;
所述可信执行环境及安全模块可以用于利用所述第一私钥分量及第二私钥分量联合进行安全多方计算获得私钥;The trusted execution environment and the security module may be used to use the first private key component and the second private key component to jointly perform secure multi-party calculations to obtain a private key;
所述可信执行环境还可以用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The trusted execution environment may also be used to decrypt the data encrypted based on the public key using a private key obtained by secure multi-party calculation.
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。It should be noted that the above-mentioned device may also include other implementation manners according to the description of the method embodiment. For specific implementation manners, reference may be made to the description of the related method embodiments, which will not be repeated here.
上述实施例所述的终端设备,通过将私钥做进一步拆分,将其中一部分私钥分量加密存储于更为安全的安全模块中进行存储,实际应用时,再利用安全多方计算的方法,在另一私钥分量不离开安全模块的基础上,实现对私钥的恢复,从而能够降低TEE数据被窃取而带来的风险。In the terminal device described in the above embodiment, by further splitting the private key, a part of the private key component is encrypted and stored in a more secure security module for storage. In actual application, the method of secure multi-party computing is used again. The other private key component does not leave the security module to realize the recovery of the private key, thereby reducing the risk of the theft of TEE data.
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还 可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。It should be noted that the device or system described above in this specification may also include other implementation manners based on the description of the related method embodiments. For specific implementation manners, refer to the description of the method embodiments, which will not be repeated here. The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, as for the hardware+program and storage medium+program embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiments.
本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况,某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。The embodiments of this specification are not limited to the conditions described in the standard data model/template or the embodiments of this specification, some industry standards or the implementation of the use of custom methods or the implementation described in the embodiments are slightly modified implementation schemes It is also possible to achieve the same, equivalent or similar implementation effects of the foregoing embodiments, or predictable implementation effects after modification. The examples obtained by applying these modified or deformed data acquisition, storage, judgment, processing methods, etc., may still fall within the scope of the optional implementation solutions of this specification.
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。The foregoing describes specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps described in the claims may be performed in a different order than in the embodiments and still achieve desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or sequential order shown to achieve the desired result. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。The systems, devices, modules, or units illustrated in the above embodiments may be specifically implemented by computer chips or entities, or implemented by products with certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet. Computers, wearable devices, or any combination of these devices.
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。For the convenience of description, when describing the above device, the functions are divided into various modules and described separately. Of course, when implementing one or more of this specification, the function of each module can be realized in the same one or more software and/or hardware, or the module that realizes the same function can be realized by a combination of multiple sub-modules or sub-units, etc. . The device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or integrated To another system, or some features can be ignored, or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完 全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。Those skilled in the art also know that in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in the controller for realizing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention is described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and/or block in the flowchart and/or block diagram, and the combination of processes and/or blocks in the flowchart and/or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing equipment to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing equipment are generated It is a device that realizes the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device. The device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment. The instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。In a typical configuration, the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。It should also be noted that the terms "include", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, product or equipment including a series of elements not only includes those elements, but also includes Other elements that are not explicitly listed, or include elements inherent to this process, method, commodity, or equipment. If there are no more restrictions, the element defined by the sentence "including a..." does not exclude the existence of other same elements in the process, method, or device that includes the element.
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实 施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art should understand that one or more embodiments of this specification can be provided as a method, a system, or a computer program product. Therefore, one or more embodiments of this specification may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, one or more embodiments of this specification may adopt a computer program implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes. The form of the product.
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。One or more embodiments of this specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. One or more embodiments of this specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the part of the description of the method embodiment. In the description of this specification, descriptions with reference to the terms "one embodiment", "some embodiments", "examples", "specific examples", or "some examples" etc. mean specific features described in conjunction with the embodiment or example , Structure, materials or features are included in at least one embodiment or example in this specification. In this specification, the schematic representation of the above-mentioned terms does not necessarily refer to the same embodiment or example. Moreover, the described specific features, structures, materials or characteristics can be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art can combine and combine the different embodiments or examples and the features of the different embodiments or examples described in this specification without contradicting each other.
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。The above descriptions are only examples of this specification, and are not intended to limit this specification. For those skilled in the art, this specification can have various modifications and changes. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this specification shall be included in the scope of the claims of this specification.

Claims (10)

  1. 一种数据处理系统,其特征在于,所述系统包括密钥生成服务器、终端设备及数据提供服务器,所述终端设备中设置有可信执行环境及安全模块;A data processing system, characterized in that the system includes a key generation server, a terminal device, and a data providing server, and the terminal device is provided with a trusted execution environment and a security module;
    所述数据提供服务器用于基于公钥对数据进行加密,并将加密后的数据发送至终端设备,所述公钥由所述密钥生成服务器预先生成并发送给数据提供服务器;The data providing server is configured to encrypt data based on a public key and send the encrypted data to a terminal device, and the public key is generated in advance by the key generation server and sent to the data providing server;
    所述终端设备的可信执行环境用于接收数据提供服务器发送的加密后的数据,并发起安全多方计算;The trusted execution environment of the terminal device is used to receive encrypted data sent by the data providing server and initiate secure multi-party computing;
    所述可信执行环境及安全模块用于利用存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量联合进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The trusted execution environment and the security module are used to jointly perform secure multi-party calculations using the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key. The first private key component and the second private key component are obtained by the trusted execution environment after receiving the private key sent by the key generation server;
    所述可信执行环境用于利用安全多方计算得到的私钥对所述加密后的数据进行解密处理。The trusted execution environment is used to decrypt the encrypted data by using the private key obtained by secure multi-party calculation.
  2. 根据权利要求1所述的系统,其特征在于,所述密钥生成服务器用于生成公钥和私钥,并根据所述数据提供服务器的请求将所述公钥发送给所述数据提供服务器,以及根据所述终端设备的请求将所述私钥发送给所述终端设备的可信执行环境;The system according to claim 1, wherein the key generation server is used to generate a public key and a private key, and send the public key to the data providing server according to a request of the data providing server, And sending the private key to the trusted execution environment of the terminal device according to the request of the terminal device;
    相应的,所述终端设备的可信执行环境用于将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Correspondingly, the trusted execution environment of the terminal device is used to split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the trusted In the execution environment, the second private key component of the at least two private key components is stored in the security module.
  3. 根据权利要求2所述的系统,其特征在于,所述密钥生成服务器还用于在接收到密钥更新请求时生成公钥和私钥,所述密钥更新请求由终端设备和/或数据提供服务器基于预设时间间隔或者数据交互对话发送,所述密钥更新请求包括终端设备ID及数据提供服务器对应的数据提供方信息;The system according to claim 2, wherein the key generation server is further configured to generate a public key and a private key when receiving a key update request, and the key update request is issued by the terminal device and/or data The providing server sends based on a preset time interval or a data exchange dialogue, and the key update request includes the terminal device ID and the data provider information corresponding to the data providing server;
    相应的,所述密钥生成服务器还用于根据数据提供方信息将所述公钥发送给所述数据提供服务器,以及根据终端设备ID将所述私钥发送给所述终端设备的可信执行环境。Correspondingly, the key generation server is further configured to send the public key to the data providing server according to the data provider information, and send the private key to the terminal device according to the terminal device ID. surroundings.
  4. 根据权利要求1-3任一项所述的系统,其特征在于,所述密钥生成服务器还用于基于预设加密算法将所述私钥进行加密后,发送给终端设备的可信执行环境;The system according to any one of claims 1-3, wherein the key generation server is further configured to encrypt the private key based on a preset encryption algorithm, and then send it to the trusted execution environment of the terminal device ;
    相应的,所述可信执行环境用于接收密钥生成服务器发送的基于预设加密算法加 密的私钥,并基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥。Correspondingly, the trusted execution environment is configured to receive the private key encrypted based on a preset encryption algorithm sent by the key generation server, and perform the encryption based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm. The private key is decrypted to obtain the private key.
  5. 一种数据处理方法,应用于可信执行环境,其特征在于,所述方法包括:A data processing method applied to a trusted execution environment, characterized in that the method includes:
    接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;Receiving data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
    基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component After the trusted execution environment receives the private key sent by the key generation server, it is split and obtained;
    利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
  6. 根据权利要求5所述的方法,其特征在于,所述接收数据提供服务器发送的基于公钥加密的数据之前,还包括:The method according to claim 5, characterized in that before said receiving the data based on public key encryption sent by the data providing server, the method further comprises:
    基于预设时间间隔或者数据提供服务器的数据请求向密钥生成服务器发送密钥更新请求,以使所述密钥生成服务器根据密钥更新请求生成私钥及公钥,所述密钥更新请求包括终端设备ID及数据提供服务器信息;Send a key update request to the key generation server based on a preset time interval or a data request from the data providing server, so that the key generation server generates a private key and a public key according to the key update request, and the key update request includes Terminal device ID and data providing server information;
    接收所述密钥生成服务器发送的所述私钥,并将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Receiving the private key sent by the key generation server, and splitting the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in the In the letter execution environment, the second private key component of the at least two private key components is stored in the security module.
  7. 根据权利要求5或6所述的方法,其特征在于,所述接收数据提供服务器发送的基于公钥加密的数据之前,还包括:The method according to claim 5 or 6, characterized in that, before the receiving the data based on public key encryption sent by the data providing server, the method further comprises:
    接收密钥生成服务器发送的基于预设加密算法加密的私钥,基于所述预设加密算法对应的解密算法对所述基于预设加密算法加密的私钥进行解密处理,获得私钥;Receiving the private key encrypted based on the preset encryption algorithm sent by the key generation server, and decrypting the private key encrypted based on the preset encryption algorithm based on the decryption algorithm corresponding to the preset encryption algorithm to obtain the private key;
    将所述私钥拆分成至少两个私钥分量,其中,所述至少两个私钥分量中的第一私钥分量存储于可信执行环境中,所述至少两个私钥分量中的第二私钥分量存储于安全模块中。Split the private key into at least two private key components, wherein the first private key component of the at least two private key components is stored in a trusted execution environment, and The second private key component is stored in the security module.
  8. 一种数据处理装置,应用于可信执行环境,其特征在于,所述装置包括:A data processing device applied to a trusted execution environment, characterized in that the device includes:
    第一数据接收模块,用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The first data receiving module is configured to receive data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
    安全多方计算模块,用于基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及 第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;The secure multi-party calculation module is used to perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain a private key, wherein the first private key The component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
    解密模块,用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The decryption module is used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
  9. 一种数据处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:A data processing device, characterized by comprising a processor and a memory for storing executable instructions of the processor, the instructions being executed by the processor includes the following steps:
    接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;Receiving data encrypted based on a public key sent by the data providing server, where the public key is generated in advance by the key generating server and sent to the data providing server;
    基于存储于可信执行环境中的第一私钥分量及存储于安全模块中的第二私钥分量进行安全多方计算,获得私钥,其中,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到所述密钥生成服务器发送的私钥后拆分获得;Perform secure multi-party calculation based on the first private key component stored in the trusted execution environment and the second private key component stored in the security module to obtain the private key, wherein the first private key component and the second private key component After the trusted execution environment receives the private key sent by the key generation server, it is split and obtained;
    利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The private key obtained by secure multi-party calculation is used to decrypt the data encrypted based on the public key.
  10. 一种终端设备,其特征在于,所述终端设备包括可信执行环境及安全模块,其中,所述可信执行环境中存储有第一私钥分量,所述安全模块中存储有第二私钥分量,所述第一私钥分量及第二私钥分量由所述可信执行环境在接收到密钥生成服务器发送的私钥后拆分获得;A terminal device, characterized in that the terminal device includes a trusted execution environment and a security module, wherein a first private key component is stored in the trusted execution environment, and a second private key is stored in the security module Component, the first private key component and the second private key component are obtained by splitting the trusted execution environment after receiving the private key sent by the key generation server;
    所述可信执行环境用于接收数据提供服务器发送的基于公钥加密的数据,所述公钥由密钥生成服务器预先生成并发送给数据提供服务器;The trusted execution environment is used to receive data encrypted based on a public key sent by a data providing server, where the public key is pre-generated by the key generation server and sent to the data providing server;
    所述可信执行环境及安全模块用于利用所述第一私钥分量及第二私钥分量联合进行安全多方计算,获得私钥;The trusted execution environment and the security module are configured to use the first private key component and the second private key component to jointly perform secure multi-party calculations to obtain a private key;
    所述可信执行环境还用于利用安全多方计算得到的私钥对所述基于公钥加密的数据进行解密处理。The trusted execution environment is also used to decrypt the data encrypted based on the public key by using the private key obtained by secure multi-party calculation.
PCT/CN2019/091495 2019-06-17 2019-06-17 Data processing method, apparatus and system WO2020252617A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/091495 WO2020252617A1 (en) 2019-06-17 2019-06-17 Data processing method, apparatus and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/091495 WO2020252617A1 (en) 2019-06-17 2019-06-17 Data processing method, apparatus and system

Publications (1)

Publication Number Publication Date
WO2020252617A1 true WO2020252617A1 (en) 2020-12-24

Family

ID=74036933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/091495 WO2020252617A1 (en) 2019-06-17 2019-06-17 Data processing method, apparatus and system

Country Status (1)

Country Link
WO (1) WO2020252617A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009026771A1 (en) * 2007-08-24 2009-03-05 Guan, Haiying The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information
CN109818754A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Client is method, the equipment that multiple client and single server generate key
CN109872155A (en) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 Data processing method and device
CN110278078A (en) * 2019-06-17 2019-09-24 矩阵元技术(深圳)有限公司 A kind of data processing method, apparatus and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009026771A1 (en) * 2007-08-24 2009-03-05 Guan, Haiying The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information
CN109872155A (en) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 Data processing method and device
CN109818754A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Client is method, the equipment that multiple client and single server generate key
CN110278078A (en) * 2019-06-17 2019-09-24 矩阵元技术(深圳)有限公司 A kind of data processing method, apparatus and system

Similar Documents

Publication Publication Date Title
CN110278078B (en) Data processing method, device and system
US10601801B2 (en) Identity authentication method and apparatus
TW201947910A (en) Blockchain data processing methods, apparatuses, processing devices, and systems
CN109214201B (en) Data sharing method, terminal equipment and computer readable storage medium
CN113505894A (en) Longitudinal federated learning linear regression and logistic regression model training method and device
CN106063183A (en) Method and apparatus for cloud-assisted cryptography
CN107196926A (en) A kind of cloud outsourcing privacy set comparative approach and device
CN103067160A (en) Method and system of generation of dynamic encrypt key of encryption secure digital memory card (SD)
CN110378138A (en) Data encryption, decryption method and neural network training method and equipment
CN109842589A (en) A kind of cloud storage encryption method, device, equipment and storage medium
CN107204997A (en) The method and apparatus for managing cloud storage data
CN113612597A (en) Data calculation method, device and system and electronic equipment
CN113242134A (en) Digital certificate signature method, device, system and storage medium
CN115913537A (en) Data intersection method and system based on privacy protection and related equipment
CN114124364A (en) Key security processing method, device, equipment and computer readable storage medium
US9819493B2 (en) Enhanced security for media encryption
CN107342862B (en) Method and system for realizing key generation and protection by cloud plus-end triple-authority separation
WO2020252617A1 (en) Data processing method, apparatus and system
US9336696B2 (en) Enhanced security setup for media decryption
US9519757B2 (en) AES-GCM based enhanced security setup for media encryption
TWI611316B (en) Text processing method for safe input method, text processing device and text processing system
CN114726511A (en) Data processing method and device
Rao et al. Secure and practical outsourcing of linear programming in cloud computing: A survey
CN116028969B (en) Privacy calculation method based on data encryption technology
US9317703B2 (en) Enhanced security setup for media encryption

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19933418

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19933418

Country of ref document: EP

Kind code of ref document: A1