(19)
(11)EP 3 621 268 A1

(12)EUROPEAN PATENT APPLICATION
published in accordance with Art. 153(4) EPC

(43)Date of publication:
11.03.2020 Bulletin 2020/11

(21)Application number: 18795137.1

(22)Date of filing:  27.04.2018
(51)International Patent Classification (IPC): 
H04L 29/06(2006.01)
(86)International application number:
PCT/CN2018/084949
(87)International publication number:
WO 2018/201991 (08.11.2018 Gazette  2018/45)
(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Designated Extension States:
BA ME
Designated Validation States:
KH MA MD TN

(30)Priority: 03.05.2017 CN 201710305566

(71)Applicant: Tencent Technology (Shenzhen) Company Limited
Shenzhen, Guangdong 518057 (CN)

(72)Inventor:
  • ZHOU, Hongfei
    Shenzhen Guangdong 518057 (CN)

(74)Representative: Witte, Weller & Partner Patentanwälte mbB 
Postfach 10 54 62
70047 Stuttgart
70047 Stuttgart (DE)

  


(54)DATA PROCESSING METHOD, SYSTEM, APPARATUS, STORAGE MEDIUM, AND DEVICE


(57) The present application belongs to the field of database technology and discloses a data processing method, a system, an apparatus, a storage medium, and a device. The method comprises: a client sends to a cloud management device a triggering request; the cloud management device triggers, according to the triggering request, a first cloud encryption device to store a root key seed, a work procedure, a data key seed, and a data key identifier, and triggers a database proxy to store an encrypted data dictionary, wherein the work procedure is used to indicate an operating policy for the first cloud encryption device; the client sends to the database proxy a data processing request; if first data requested to be processed by the data processing request is determined to match the encrypted data dictionary, the database proxy sends to the first cloud encryption device the first data and the data key identifier; and the first cloud encryption device processes the first data using the root key seed and the data key seed corresponding to the data key identifier. According to the present application, a key system and a database are separated from each other, thereby improving database safety.




Description


[0001] This application claims priority to Chinese Patent Application No. 201710305566.9, entitled "DATA PROCESSING METHOD, SYSTEM AND APPARATUS" filed with the National Intellectual Property Administration, PRC on May 03, 2017, which is incorporated by reference in its entirety.

FIELD OF THE TECHNOLOGY



[0002] The embodiments in the present disclosure relate to the field of database technologies, and in particular, to a data processing method, a data processing system, a data processing apparatus, a storage medium, and a device.

BACKGROUND OF THE DISCLOSURE



[0003] To meet user demands for database security, a database is required to encrypt data written into the database and decrypt the data read from the database.

[0004] In the related technology, a database encrypts/decrypts data using a transparent data encryption mode. In an implementation, a user defines a column to be encrypted. The database creates a data key for a table including the column, and then encrypts the data key using a master key created for the database. The master key is stored in a "wallet" of the database, and the encrypted data key is stored into a data dictionary in the database. When the user writes data to the column, the database reads the master key from the "wallet", decrypts the data key in the data dictionary using the master key, encrypts the data using the data key, and writes the encrypted data into the column. When the user reads data from the column, the database reads the master key from the "wallet", decrypts the data key in the data dictionary using the master key, and decrypts, by using the data key, the encrypted data read from the column.

[0005] The data key and the master key are both generated by the database, and are both stored in the database. That is, the key system is coupled into the database, resulting in a low security of the database.

SUMMARY



[0006] According to embodiments in the present disclosure, a data processing method, a system, an apparatus, a storage medium, and a device are provided, to resolve the problem that the security of a database is not high when a key system is coupled into the database. The technical solutions are as follows.

[0007] According to an aspect, a data processing method is provided, which is used in a data processing system including a client, a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client. The method includes:

sending, by the client, a trigger request to the cloud manager;

triggering, by the cloud manager in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor;

sending, by the client, a data processing request to the database proxy;

sending, by the database proxy, first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary;

running, by the first cloud encryptor, the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sending second data obtained by the processing to the database proxy; and

responding, by the database proxy, to the data processing request by using the second data.



[0008] According to an aspect, a data processing method is provided, which is used in a cloud manager of a data processing system. The data processing system further includes a client, a first cloud encryptor, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The method includes:

receiving a trigger request sent by the client;

triggering, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor;

the first cloud encryptor being configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0009] According to an aspect, a data processing method is provided, which is used in a first cloud encryptor of a data processing system. The data processing system further includes a client, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The method includes:

storing a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

receiving first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, running the working program, processing the first data by using the root key seed and the data key seed that correspond to the data key identifier, and sending second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0010] According to an aspect, a data processing method is provided, which is used in a database proxy of a data processing system. The data processing system further includes a client, a first cloud encryptor, a cloud manager, and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The method includes:

storing an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

receiving a data processing request sent by the client; and

sending first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receiving second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and responding to the data processing request by using the second data.



[0011] According to an aspect, a data processing method is provided, which is used in a client of a data processing system. The data processing system further includes a first cloud encryptor, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The method includes:

sending a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

sending a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.



[0012] According to an aspect, a data processing system is provided. The data processing system includes a client, a first cloud encryptor, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client.

[0013] The client is configured to send a trigger request to the cloud manager;
The cloud manager is configured to: trigger, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor.

[0014] The client is further configured to send a data processing request to the database proxy.

[0015] The database proxy is configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary.

[0016] The first cloud encryptor is configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy.

[0017] The database proxy is further configured to respond to the data processing request by using the second data.

[0018] According to an aspect, a data processing apparatus is provided, which is used in a cloud manager of a data processing system. The data processing system further includes a client, a first cloud encryptor, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The apparatus includes:

a receiving module, configured to receive a trigger request sent by the client; and

a trigger module, configured to: trigger, in response to the trigger request received by the receiving module, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor.

The first cloud encryptor is configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy. The database proxy is configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0019] According to an aspect, a data processing apparatus is provided, which is used in a first cloud encryptor of a data processing system. The data processing system further includes a client, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The apparatus includes:

a storage module, configured to store a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

a first processing module, configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0020] According to an aspect, a data processing apparatus is provided, which is used in a database proxy of a data processing system. The data processing system further includes a client, a first cloud encryptor, a cloud manager, and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The apparatus includes:

a storage module, configured to store an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

a receiving module, configured to receive a data processing request sent by the client; and

a processing module, configured to: send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receive second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and respond to the data processing request by using the second data.



[0021] According to an aspect, a data processing apparatus is provided, which is used in a client of a data processing system. The data processing system further includes a first cloud encryptor, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The apparatus includes a sending module, configured to:

send a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

send a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.



[0022] According to an aspect, a cloud manager is provided, which is used in a data processing system. The data processing system further includes a client, a first cloud encryptor, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The cloud manager includes:

one or more processors; and a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs including an instruction for executing the following operations:

receiving a trigger request sent by the client; and

triggering, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor,

the first cloud encryptor being configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy; the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0023] According to an aspect, a first cloud encryptor is provided, which is used in a data processing system. The data processing system further includes a client, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The first cloud encryptor includes:
one or more processors; and a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs including an instruction for executing the following operations:

storing a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

receiving first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, running the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sending second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.



[0024] According to an aspect, a database proxy is provided, which is used in a data processing system. The data processing system further includes a client, a first cloud encryptor, a cloud manager, and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The database proxy includes:
one or more processors; and a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs including an instruction for executing the following operations:

storing an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

receiving a data processing request sent by the client; and

sending first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receiving second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and responding to the data processing request by using the second data.



[0025] According to an aspect, a client is provided, which is used in a data processing system. The data processing system further includes a first cloud encryptor, a cloud manager, a database proxy and a database. The first cloud encryptor is a cloud encryptor allocated by the cloud manager to the client. The client includes:
one or more processors; and a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs including an instruction for executing the following operations:

sending a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

sending a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.



[0026] According to an aspect, a computer readable storage medium is provided. The computer readable storage medium stores an instruction which, when running on a cloud manager, causes the cloud manager to execute the foregoing data processing method.

[0027] According to an aspect, a computer readable storage medium is provided. The computer readable storage medium stores an instruction which, when running on a first cloud encryptor, causes the first cloud encryptor to execute the foregoing data processing method.

[0028] According to an aspect, a computer readable storage medium is provided. The computer readable storage medium stores an instruction which, when running on a database proxy, causes the database proxy to execute the foregoing data processing method.

[0029] According to an aspect, a computer readable storage medium is provided, the computer readable storage medium stores an instruction which, when running on a client, causes the client to execute the foregoing data processing method.

[0030] The technical solutions provided in the embodiments in the present disclosure have the following beneficial effects.

[0031] When receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

BRIEF DESCRIPTION OF THE DRAWINGS



[0032] To describe the technical solutions in the embodiments of the present disclosure more clearly, the following briefly describes the accompanying drawings required for describing the embodiments. Apparently, the accompanying drawings in the following description show merely some embodiments, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.

FIG. 1 is a schematic structural diagram of a data processing system according to some exemplary embodiments.

FIG. 2 is a schematic diagram of hardware of a data processing system according to some exemplary embodiments.

FIG. 3 is a method flowchart of a data processing method according to an embodiment in the present disclosure.

FIG. 4 is a method flowchart of a data processing method according to another embodiment in the present disclosure.

FIG. 5 is a schematic diagram of a data processing method according to another embodiment in the present disclosure.

FIG. 6 is a schematic diagram of an application of a data processing method according to another embodiment in the present disclosure.

FIG. 7 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure.

FIG. 8 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure.

FIG. 9 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure.

FIG. 10 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure.

FIG. 11 is a structural block diagram of a terminal according to still another embodiment in the present disclosure.


DESCRIPTION OF EMBODIMENTS



[0033] To make objectives, technical solutions, and advantages in the present disclosure clearer, the following further describes in detail embodiments of the present disclosure with reference to the accompanying drawings.

[0034] FIG. 1 is a schematic structural diagram of a data processing system according to an embodiment in the present disclosure. The data processing system includes a client 110, a first cloud encryptor 120, a cloud manager 130, a second cloud encryptor 140, a database proxy 150, and a database 160.

[0035] The cloud manager 130 keeps network connections to multiple cloud encryptors, to manage the cloud encryptors. In this embodiment, a cloud encryptor that keeps a dedicated network connection to the cloud manager 130 is referred to as the second cloud encryptor 140. The second cloud encryptor 140 is configured to generate a root key seed. The root key seed is used to generate a root key. In this embodiment, a cloud encryptor allocated by the cloud manager 130 to the client 110 is referred to as the first cloud encryptor 120. The first cloud encryptor 120 is configured to generate a data key seed. The data key seed is used to generate a data key. The first cloud encryptor 120 is a cloud encryptor selected, according to a principle of proximity, by the cloud manager 130 from cloud encryptors that are not allocated to any client.

[0036] It should be noted that the cloud encryptor may be implemented by a cipher chip. One cipher chip may be used as one cloud encryptor. In this case, because one cloud encryptor is allocated to one user, the cipher chip may provide encryption and decryption services for one user. Because processing resources of one cipher chip exceed processing resources required by encryption and decryption services for one user, the cipher chip has some extra processing resources. In this case, one cipher chip may be used as multiple cloud encryptors by using a virtualization technology. To be specific, one cipher chip corresponds to multiple cloud encryptors, and each cloud encryptor is allocated to one user, so that one cipher chip provides encryption and decryption services for multiple users.

[0037] Optionally, a same amount of processing resources may be allocated to each cloud encryptor, or different amounts of processing resources may be allocated to different cloud encryptors according to user requirements. For example, the user demand is in a positive correlation with the amount of processing resources. To be specific, a relatively large amount of processing resources are allocated to a cloud encryptor with high user demand, and a relatively small amount of processing resources are allocated to a cloud encryptor with low user demand.

[0038] A network connection is established between the client 110 and the cloud manager 130 via a wired or wireless network. Optionally, the network connection between the client 110 and the cloud manager 130 is a Hyper Text Transfer Protocol over Secure Socket Layer (HTTPS) connection, so as to improve the security of data transmission between the client 110 and the cloud manager 130.

[0039] A network connection is established between the client 110 and the database proxy 150 via a wired or wireless network. A network connection is established between the database proxy 150 and the database 160 via a wired or wireless network.

[0040] A certificate authority (CA) secure channel based on a CA certificate is established between the database proxy 150 and the first cloud encryptor 120, for data transmission between the database proxy 150 and the first cloud encryptor 120.

[0041] It should be noted that the CA certificate may have time effectiveness. When the CA certificate on which the CA secure channel is based expires, a CA secure channel based on a new CA certificate is established between the database proxy 150 and the first cloud encryptor 120, to ensure the security of the CA secure channel.

[0042] Referring to FIG. 2, a user management terminal in FIG. 2 functions as the client 110 in FIG. 1, and the application cloud platform functions as the database proxy 150 in FIG. 1. A password cloud platform includes the first cloud encryptor 120 and the second cloud encryptor 140 in FIG. 1. A key center is used to manage the password cloud platform. The management center functions as the cloud manager 130 in FIG. 1.

[0043] FIG. 3 is a method flowchart of a data processing method according to an embodiment in the present disclosure. The data processing method may be applied to the data processing system shown in FIG. 1. The data processing method includes the following steps 301 to 306.

[0044] In step 301, a client sends a trigger request to a cloud manager.

[0045] The trigger request is used to instruct the cloud manager to trigger a first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger a database proxy to store an encryption data dictionary.

[0046] In step 302, the cloud manager triggers, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggers the database proxy to store an encryption data dictionary.

[0047] The working program is used to indicate an operation policy of the first cloud encryptor.

[0048] The data key seed is used to generate a data key. The data key is used to encrypt data to be written into a database, or the data key is used to decrypt data to be read from the database. The data key seed carries a flag bit used to indicate an encryption algorithm. Under control of the operation policy indicated bv the working program, the first cloud encryptor generates a data key according to the encryption algorithm indicated by the flag bit and the data key seed. Different encryption algorithms generate different data keys.

[0049] The data key identifier is used to identify the data key seed. Under control of the operation policy indicated by the working program, the first cloud encryptor identifies the data key seed corresponding to the data key identifier.

[0050] The root key seed is used to generate a root key. The root key seed carries a flag bit used to indicate an encryption algorithm. Under control of the operation policy indicated by the working program, the first cloud encryptor generates a root key according to the encryption algorithm indicated by the flag bit and the root key seed. Different encryption algorithms lead to different root keys.

[0051] The encryption data dictionary includes an encryption granularity. The encryption granularity is one of a database, a table, and a field. For example, if the encryption granularity is a database, the first cloud encryptor encrypts at least one database. If the encryption granularity is a table, the first cloud encryptor encrypts at least one table in a database. If the encryption granularity is a field, the first cloud encryptor encrypts at least one field in a table.

[0052] The user may need to encrypt different databases, or encrypt different tables in a database, or encrypt different fields in different tables. In these cases, different encryption granularities correspond to different data keys. Therefore, the encryption data dictionary further includes a data key identifier to indicate data keys corresponding to different encryption granularities.

[0053] The client may select one of the database, the table, and the field as the encryption granularity according to requirements, thereby improving the flexibility of database encryption.

[0054] In step 303, the client sends a data processing request to the database proxy.

[0055] In step 304, the database proxy sends first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary.

[0056] If the data processing request is a read request, the database proxy reads, according to the data processing request, the first data from the database .The first data matching the encryption data dictionary refers to that the first data read from the database is located in the encryption granularity of the encryption data dictionary. For example, the encryption granularity is a table b in a database a. If the first data read by the database proxy is located in the table b, it is determined that the first data matches the encryption data dictionary. If the first data read by the database proxy is not in the table b, it is determined that the first data does not match the encryption data dictionary.

[0057] After determining the encryption granularity, the database proxy further determines the data key identifier corresponding to the encryption granularity, generates a decryption request carrying the first data and the data key identifier, and sends the decryption request to the first cloud encryptor.

[0058] If the data processing request is a write request, the first data matching the encryption data dictionary refers to that the first data to be written into the database is located in the encryption granularity of the encryption data dictionary. For example, the encryption granularity is the table b in the database a. If the database proxy is required to write the first data into the table b, it is determined that the first data matches the encryption data dictionary. If the database proxy is not required to write the first data into the table b, it is determined that the first data does not match the encryption data dictionary.

[0059] After determining the encryption granularity, the database proxy further determines the data key identifier corresponding to the encryption granularity, generates an encryption request carrying the first data and the data key identifier, and sends the encryption request to the first cloud encryptor.

[0060] In step 305, the first cloud encryptor runs the working program, processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sends second data obtained by the processing to the database proxy.

[0061] If the data processing request is a read request, under control of the operation policy indicated by the working program, the first cloud encryptor determines the root key seed by using the data key identifier, generates a root key according to the root key seed, encrypts the first data and the data key identifier according to the root key, and sends the encrypted first data and the encrypted data key identifier to an operation cache area. In the operation cache area, the first cloud encryptor determines the data key seed according to the data key identifier, generates the data key according to the data key seed, and decrypts the first data according to the data key, to obtain third data. The first cloud encryptor reads the third data from the operation cache area, then decrypts the third data according to the root key to obtain second data, and then sends the second data to the database proxy. The operation cache area is used to cache intermediate data generated in a process in which the first cloud encryptor processes the first data that the client requests to process.

[0062] If the data processing request is a write request, under control of the operation policy indicated by the working program, the first cloud encryptor determines the root key seed by using the data key identifier, generates a root key according to the root key seed, encrypts the first data and the data key identifier according to the root key, and sends the encrypted first data and the encrypted data key identifier to an operation cache area. In the operation cache area, the first cloud encryptor determines the data key seed according to the data key identifier, generates the data key according to the data key seed, and encrypts the first data according to the data key, to obtain fourth data. The first cloud encryptor reads the fourth data from the operation cache area, then decrypts the fourth data according to the root key to obtain second data, and then sends the second data to the database proxy.

[0063] In this process, the root key is used to encrypt the first data sent into the operation cache area, and then decrypts the third data or fourth data output from the operation cache area, to obtain the second data, to ensure the security of data in the operation cache area.

[0064] In step 306, the database proxy responds to the data processing request by using the second data.

[0065] If the data processing request is a read request, the database proxy sends the second data to the client. If the data processing request is a write request, the database proxy sends the second data to the database for storage.

[0066] Steps 301 and 303 may be implemented as the embodiment on the client side, step 302 may be implemented as the embodiment on the cloud manager side, steps 304 and 306 may be implemented as the embodiment on the database proxy side, and step 305 may be implemented as the embodiment on the first cloud encryptor side.

[0067] Based on the above, according to the data processing method provided in this embodiment in the present disclosure, when receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0068] FIG. 4 is a method flowchart of a data processing method according to another detailed embodiment in the present disclosure. The data processing method may be applied to the data processing system shown in FIG. 1. In this embodiment, the data processing method is described by using an example in which the data processing request is a read request or a write request. The data processing method includes the following steps 401 to 411.

[0069] In step 401, a client sends a first trigger request to a cloud manager.

[0070] The first trigger request is used to request the cloud manager to allocate a first cloud encryptor to the client. In a possible implementation, the first trigger request may be a cloud encryptor purchase request. In this case, the cloud encryptor purchase request is used to request the cloud manager to allocate a first cloud encryptor to the client.

[0071] The cloud encryptor purchase request carries at least an identifier of the client. Optionally, the cloud encryptor purchase request may further carry attribute information of the client. The cloud manager may allocate the first cloud encryptor to the client according to the attribute information. For example, the attribute information may be used to indicate a geographical location of the client. The cloud manager allocates the first cloud encryptor to the client according to the attribute information and the principle of proximity.

[0072] In step 402, the cloud manager triggers, in response to the first trigger request, a first cloud encryptor to store a root key seed and a working program.

[0073] For the definitions of the root key seed and the working program, one may refer to the descriptions in step 302 for details, which are not described again herein.

[0074] In this embodiment, under the indication of the first trigger request, the cloud manager instructs the client to select a first encryption algorithm, and send the first encryption algorithm selected by the client to the second cloud encryptor. The second cloud encryptor generates the root key seed, and sends the root key seed to the cloud manager. The root key seed carries the flag bit used to indicate the first encryption algorithm. The cloud manager receives the root key seed sent by the second cloud encryptor. The cloud manager instructs the client to select the working program, and send the root key seed and the working program that is selected by the client to the first cloud encryptor; and the first cloud encryptor stores the root key seed and the working program.

[0075] In instructing the client to select the first encryption algorithm, the cloud manager performs login by using the identifier of the client carried in the first trigger request, and displays an encryption algorithm selection interface. The user selects one encryption algorithm from at least one encryption algorithm displayed by the encryption algorithm selection interface. In this embodiment, the encryption algorithm selected by the user is referred to as a first encryption algorithm.

[0076] After the cloud manager sends the first encryption algorithm to the second cloud encryptor, the second cloud encryptor generates the root key seed by using a cipher chip. The generation process is not described in detail herein.

[0077] Because different root keys may be generated according to different first encryption algorithms, a user may update the root key by updating the first encryption algorithm, to dynamically update the key system according to user requirements.

[0078] When instructing the client to select the working program, the cloud manager displays a working program selection interface. The user selects one working program from at least one working program displayed by the working program selection interface. When selecting the working program, the user is further required to select a single-user mode or a multiuser mode. If the user selects the single-user mode, it indicates that one cipher chip is used as one cloud encryptor. The operation cache area of the cipher chip is allocated to one user for use, and the operation cache area may be indicated by the working program. When the user selects the multiuser mode, it indicates that one cipher chip is used as multiple cloud encryptors. In this case, the operation cache area of the cipher chip is divided into multiple sections to be allocated to different users for use, and the interval allocated to the user may be indicated by the working program.

[0079] In this embodiment, the root key seed and the working program may be written into the first cloud encryptor by using the write circuit switched on in the first cloud encryptor. After the first cloud encryptor stores the root key seed and the working program, it is determined that the initiation process is completed, the write circuit of the first cloud encryptor is switched off, and a response of purchase result is sent to the cloud manager. The cloud manager sends the response of the purchase result to the client according to the identifier of the client.

[0080] In a possible implementation, the cipher chip may control switch-on and switch-off of the write circuit by using a level of the write circuit. For example, a high level is set to switch on the write circuit, and a low level is set to switch off the write circuit. Alternatively, a low level is set to switch on the write circuit, and a high level is set to switch off the write circuit. In another possible implementation, the cipher chip may control switch-on and switch-off of the write circuit by using a level change of the write circuit. For example, when the write circuit is currently switched on, and it is detected that the level of the write circuit changes, the write circuit is switched off. When the write circuit is currently switched off and it is detected that the level of the write circuit changes, the write circuit is switched on. The implementation of switch-on and switch-off of the write circuit is not limited in this embodiment.

[0081] It should be noted that when a USBKey (electronic key) is connected to the first cloud encryptor, the first cloud encryptor writes the root key seed and the working program into the USBKey. The USBKey into which the root key and the working program are written is handed over to the user of the client in an offline manner.

[0082] In step 403, the client sends a second trigger request to the cloud manager.

[0083] The second trigger request is used to request the cloud manager to encrypt the database. In a possible implementation, the second trigger request may be a database encryption request. In this case, the database encryption request is used to request the cloud manager to encrypt the database.

[0084] The database encryption request carries at least the identifier of the client and the identifier of the database that the user requests to encrypt.

[0085] In step 404, the cloud manager triggers, in response to the second trigger request, the first cloud encryptor to store a data key seed and a data key identifier, and triggers a database proxy to store an encryption data dictionary.

[0086] For the definitions of the data key seed, the data key identifier and the encryption data dictionary, one may refer to the descriptions in step 302 for details, which are not described herein again.

[0087] In this embodiment, the cloud manager obtains a data dictionary of the database through the database proxy in response to the second trigger request, and instructs the client to select a second encryption algorithm and an encryption granularity. The cloud manager sends the second encryption algorithm to the first cloud encryptor. The first cloud encryptor generates the data key identifier and the data key seed, and sends the data key identifier to the cloud manager. The data key seed carries a flag bit used to indicate the second encryption algorithm. The cloud manager writes the data key identifier and the encryption granularity into the encryption data dictionary, and sends the encryption data dictionary to the database proxy. The database proxy stores the encryption data dictionary.

[0088] The process in which the cloud manager obtains the data dictionary through the database proxy is as follows. The cloud manager sends a data dictionary obtaining request to the database proxy, the data dictionary obtaining request carrying an identifier of a database. The database proxy determines the database according to the identifier of the database, and requests the database for the data dictionary. The database sends the data dictionary to the database proxy. The database proxy forwards the data dictionary to the cloud manager.

[0089] In instructing the client to select the encryption granularity, the cloud manager performs login by using the identifier of the client carried in the second trigger request and displays an encryption granularity selection interface, and the user selects the encryption granularity from at least one encryption granularity displayed by the encryption granularity selection interface. Optionally, the user may select multiple encryption granularities. For example, the user selects to encrypt multiple fields in a table. In this case, the multiple fields correspond to a group of data keys. Or the user selects to encrypt fields in different tables, and in this case, the multiple fields in each table correspond to a group of data keys.

[0090] For each group of data keys, the cloud manager instructs the client to select the second encryption algorithm. The process in which the cloud manager instructs the client to select the second encryption algorithm is the same as the process in which the cloud manager instructs the client to select the first encryption algorithm. Details are not described herein.

[0091] Because different data keys may be generated according to different second encryption algorithms, a user may update the data key by updating the second encryption algorithm, to dynamically update the key system according to user requirements.

[0092] After the cloud manager sends the second encryption algorithm to the first cloud encryptor, the first cloud encryptor generates the data key seed and the data key identifier through the cipher chip. The data key seed carries the flag bit used to indicate the second encryption algorithm. The data key identifier is used to identify the data key seed. The generation process is not described in detail herein.

[0093] The first cloud encryptor further sends the data key seed to the cloud manager. The cloud manager writes the data key seed and the encryption granularity into the encryption data dictionary, and sends the encryption data dictionary to the database proxy for storage.

[0094] Optionally, the cloud manager sends the obtained data key identifier to the first cloud encryptor when the USBKey is connected to the client. The first cloud encryptor determines the root key seed and the data key seed that correspond to the data key identifier, encrypts the data key seed by using a root key, and sends the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed. The cloud manager sends the data key identifier and the encrypted data key seed to the client. The client writes the data key identifier and the encrypted data key seed into the USBKey.

[0095] After the client receives the data key identifier and the encrypted data key seed, the user connects the USBKey to the client, and writes the data key identifier and the encrypted data key seed into the USBKey through the client.

[0096] In this embodiment, the USBKey stores the root key seed, the working program, the data key identifier, and the encrypted data key seed. In this way, in a case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed, the user may connect the USBKey to the first cloud encryptor, and back up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor through the USBKey. The working program may generate the root key according to the root key seed, and then decrypt the encrypted data key seed according to the root key, to obtain the data key seed.

[0097] In step 405, the client sends a data processing request to the database proxy. If the data processing request is a read request, step 406 is executed, and if the data processing request is a write request, step 409 is executed.

[0098] In step 406, the database proxy reads first data from the database according to the read request, and if determining that the first data matches the encryption data dictionary, sends a decryption request carrying the first data and the data key identifier that is in the encryption data dictionary to the first cloud encryptor.

[0099] For the processes that the database proxy determines that the first data read from the database matches the encryption data dictionary, and sends the decryption request carrying the first data and the data key identifier that is in the encryption data dictionary to the first cloud encryptor, one may refer to descriptions in step 304 for details, which are not described again herein.

[0100] It should be noted that, before sending the decryption request to the first cloud encryptor, the database proxy sends a CA certificate obtaining request to the first cloud encryptor. The first cloud encryptor sends a CA certificate to the database proxy. The database proxy establishes the CA secure channel with the first cloud encryptor by using the CA certificate. The CA secure channel is used for data transmission between the database proxy and the first cloud encryptor.

[0101] After the CA secure channel is established, the database proxy sends, on the CA secure channel, a decryption request to the first cloud encryptor.

[0102] Optionally, the CA certificate in this embodiment has time effectiveness. When the CA certificate expires, the CA secure channel established based on the CA certificate also expires. The database proxy is required to obtain a new CA certificate from the first cloud encryptor again, and establish a new CA secure channel with the first cloud encryptor by using the new CA certificate, so as to avoid a problem that the CA secure channel is insecure if a fixed CA certificate is used and leaked.

[0103] In this embodiment, the first data may be encrypted through the data key, the operation cache area is encrypted through the root key, and data is transmitted through the CA secure channel, which forms a three-layer encryption system, thereby improving the security of database encryption.

[0104] In step 407, the first cloud encryptor runs the working program, decrypts the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sends second data obtained by the decryption to the database proxy.

[0105] In this embodiment, the first cloud encryptor determines the operation cache area corresponding to the client through running the working program, determines the root key seed corresponding to the received data key identifier, generates the root key according to the root key seed, encrypts the first data and the data key identifier according to the root key, and caches the encrypted first data and the encrypted data key identifier into the operation cache area. In the operation cache area, the first cloud encryptor generates the data key according to the data key identifier, and decrypts the first data according to the data key, to obtain the third data; and reads the third data from the operation cache area, and decrypts the third data according to the root key, to obtain the second data.

[0106] The first cloud encryptor further encrypts, by using the root key, program code used for processing the first data in the operation cache area. In this way, even if the encrypted program code is leaked, because the root key cannot be obtained, the encrypted program code cannot be decrypted, so that the processing of the first data cannot be determined according to the program code, thereby ensuring the security of data processing.

[0107] The first cloud encryptor sends, on the CA secure channel, the second data to the database proxy.

[0108] In step 408, the database proxy sends the second data to client, and the flow ends.

[0109] In step 409, if determining that the first data in the write request matches the encryption data dictionary, the database proxy sends the encryption request carrying the first data and the data key identifier in the encryption data dictionary to the first cloud encryptor.

[0110] For the processes that the database proxy determines that the first data in the write request matches the encryption data dictionary, and sends the encryption request carrying the first data and the data key identifier that is in the encryption data dictionary to the first cloud encryptor, one may refer to the descriptions in step 304 for details, which are not described again herein.

[0111] It should be noted that, before sending the encryption request to the first cloud encryptor, the database proxy sends a CA certificate obtaining request to the first cloud encryptor. The first cloud encryptor sends a CA certificate to the database proxy. The database proxy establishes the CA secure channel with the first cloud encryptor by using the CA certificate. The CA secure channel is used for data transmission between the database proxy and the first cloud encryptor.

[0112] After the CA secure channel is established, the database proxy sends, on the CA secure channel, an encryption request to the first cloud encryptor.

[0113] Optionally, the CA certificate in this embodiment has time effectiveness. When the CA certificate expires, the CA secure channel established based on the CA certificate also expires. The database proxy needs to obtain a new CA certificate from the first cloud encryptor again, and establishes a new CA secure channel with the first cloud encryptor by using the new CA certificate, to avoid a problem that the CA secure channel is insecure when a fixed CA certificate is used and is leaked.

[0114] In step 410, the first cloud encryptor runs the working program, encrypts the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sends second data obtained by the encryption to the database proxy.

[0115] In this embodiment, the first cloud encryptor determines the operation cache area corresponding to the client through running the working program, the operation cache area being used for caching the intermediate data generated in the process in which the first cloud encryptor processes the first data. The first cloud encryptor determines the root key seed corresponding to the received data key identifier, generates the root key according to the root key seed, encrypts the first data and the data key identifier according to the root key, and caches the encrypted first data and the encrypted data key identifier into the operation cache area. In the operation cache area, the first cloud encryptor generates the data key according to the data key identifier, and decrypts the first data according to the data key, to obtain the fourth data. The first cloud encryptor reads the fourth data from the operation cache area, and decrypts the fourth data according to the root key, to obtain the second data.

[0116] The first cloud encryptor further encrypts, by using the root key, program code used for processing the first data in the operation cache area. In this way, even if the encrypted program code is leaked, because the root key cannot be obtained, the encrypted program code cannot be decrypted, so that the processing of the first data cannot be determined according to the program code, thereby ensuring the security of data processing.

[0117] The first cloud encryptor sends, on the CA secure channel, the second data to the database proxy.

[0118] In step 411, the database proxy sends the second data to the database.

[0119] It should be noted that, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, the first cloud encryptor delays a response to the detection behavior according to an attack force of the detection behavior, or destructs the root key seed and the data key seed that are stored in the first cloud encryptor, according to an attack force of the detection behavior.

[0120] The cipher chip corresponding to the first cloud encryptor has a function of recognizing a detection behavior. In a possible implementation, the cipher chip switches off the write circuit after the initiation of the first cloud encryptor is completed. When attempting to detect the first cloud encryptor, a hacker executes an illegal write or export behavior through the write circuit. In this case, the cipher chip can recognize the detection behavior according to the level change of the write circuit.

[0121] When determining, through the cipher chip, existence of a detection behavior, the first cloud encryptor delays a response to the detection behavior according to the attack force of the detection behavior. For example, if the attack force is relatively weak, the first cloud encryptor delays a response to the detection behavior by one hour, and if the attack force is relatively strong, the first cloud encryptor delays a response to the detection behavior by one day.

[0122] The hacker can continuously execute the detection behavior at a high frequency through a program. In this way, the hacker may crack the key system in a short time. However, in this embodiment, the frequency of the detection behavior can be reduced by delaying a response to the detection behavior, so that the hacker has to spend a long time to crack the key system, and even some hackers lose patience to continue to crack the key system, and therefore abandon cracking the key system, thereby improving the security of the key system. In addition, delaying a response to the detection behavior may further reduce processing resources wasted by responding to the highfrequency detection behavior, and thus reduce the probability of breakdown of the first cloud encryptor due to shortage of processing resources.

[0123] The attack force may be determined according to attack times, an attack frequency or other parameters. For example, the number of attack times is in positive correlation with the strength of the attack force, and the attack frequency is in positive correlation with the strength of the attack force. This is not limited in this embodiment.

[0124] Optionally, the first cloud encryptor may destruct the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to the attack force, to ensure the security of the key system.

[0125] It should be noted that, after the key system is updated, the original database may further be backed up in an offline manner, and the backed up database is updated by using the updated key system. The original database is replaced with the updated database, to achieve combination with a new database, so that the database is updated without affecting use of the original database. Updating the backed up database refers to updating the data in the database using a new key system, and replacing the original data in the backed up database with the updated data.

[0126] In this embodiment, the key system is generated by the cloud encryptor, distributed by the cloud manage, and stored by the USBKey, so that the key system has a good expandability, which is applicable to an environment with co-existence of multiple roles such as a cloud encryptor manufacturer, a cloud manager manufacturer, and a client. In addition, the USBKey is independent of the cloud encryptor, and the USBKey is also independent of the cloud manager. In this way, the USBKey can independently store the key, and is independent from management of the cloud encryptor and the cloud manager.

[0127] Steps 401, 403 and 405 may be implemented as an embodiment on the client side, steps 402 and 404 may be implemented as an embodiment on the cloud manager side, steps 406, 408, 409, and 411 may be implemented as an embodiment on the database proxy side, and steps 407 and 410 may be implemented as an embodiment on the first cloud encryptor side.

[0128] A detailed process of the data processing method according to an embodiment is described below, referring to FIG. 5.

[0129] In step 501, a client sends a cloud encryptor purchase request to a cloud manager.

[0130] In step 502, the cloud manager instructs the client to select a first encryption algorithm.

[0131] In step 503, the cloud manager sends a root key obtaining request to a second cloud encryptor, the root key obtaining request carrying the first encryption algorithm.

[0132] In step 504, the second cloud encryptor sends a root key seed generated according to the first encryption algorithm to the cloud manager.

[0133] In step 505, the cloud manager instructs the client to select a working program.

[0134] In step 506, the cloud manager sends the root key seed and the working program to a first cloud encryptor.

[0135] In step 507, the first cloud encryptor stores the root key seed and the working program, writes the root key seed and the working program into a USBKey, and sends a purchase result to the cloud manager.

[0136] The USBKey is delivered to a user of the client in an offline manner.

[0137] In step 508, the cloud manager sends the purchase result to the client.

[0138] In step 509, the client sends a database encryption request to the cloud manager.

[0139] In step 510, the cloud manager obtains a data dictionary of a database through a database proxy.

[0140] In step 511, the cloud manager instructs the client to select a second encryption algorithm and an encryption granularity.

[0141] In step 512, the cloud manager sends a data key seed obtaining request to the second cloud encryptor, the data key seed obtaining request carrying the second encryption algorithm.

[0142] In step 513, the second cloud encryptor generates a data key seed and generates a data key identifier according to the second encryption algorithm, and sends the data key identifier to the cloud manager.

[0143] In step 514, the cloud manager writes the encryption granularity and the data key identifier into an encryption data dictionary, and sends the encryption data dictionary to the database proxy.

[0144] In step 515, the database proxy stores the encryption data dictionary.

[0145] In step 516, the database proxy sends a CA certificate obtaining request to the first cloud encryptor.

[0146] In step 517, the first cloud encryptor sends a CA certificate to the database proxy.

[0147] In step 518, the database proxy establishes a CA secure channel according to the CA certificate and the first cloud encryptor.

[0148] In step 519, the cloud manager sends the data key identifier to the first cloud encryptor.

[0149] In step 520, the first cloud encryptor determines the root key seed and the data key seed according to the data key identifier, generates a root key according to the root key seed, encrypts the data key seed according to the root key, and sends the data key identifier and the encrypted data key seed to the cloud manager.

[0150] In step 521, the cloud manager sends the data key identifier and the encrypted data key seed to the client.

[0151] In step 522, the client writes the data key identifier and the encrypted data key seed into the USBKey.

[0152] In step 523, the client sends a read request to the database proxy.

[0153] In step 524, the database proxy reads first data from the database according to the read request.

[0154] In step 525, the database proxy matches the first data with the encryption data dictionary, and when determining to decrypt the data, sends a decryption request to the second cloud encryptor through the CA secure channel, the decryption request carrying the first data and the data key identifier that is in the encryption data dictionary.

[0155] In step 526, the second cloud encryptor decrypts the data, and sends, through the CA secure channel, second data obtained by the decryption to the database proxy.

[0156] In step 527, the database proxy sends the second data to client, and the flow ends.

[0157] In step 528, the client sends a write request to the database proxy.

[0158] In step 529, the database proxy matches the first data in the write request with the encryption data dictionary, and when determining to encrypt the first data in the write request, sends an encryption request to the second cloud encryptor through the CA secure channel, the encryption request carrying the first data and the data key identifier that is in the encryption data dictionary.

[0159] In step 530, the second cloud encryptor encrypts the first data, and sends, through the CA secure channel, second data obtained by the encryption to the database proxy.

[0160] In step 531, the database proxy sends the second data to the database, and the flow ends.

[0161] Descriptions are provided below by using an example in which the data processing method provided in this embodiment is applied to a financial security database. Referring to FIG. 6, a trusted client needs to query data related to a social security number (SSN) "198-33-0987" from the database proxy. The database proxy determines that cipher text of the SSN is "0x7ff654ae6d", decrypts a result set "Jim Gary" corresponding to the cipher text through a cloud encryptor, and feeds back the result set "Jim Gary" to the trusted client.

[0162] Based on the above, according to the data processing method provided in this embodiment in the present disclosure, when receiving the read request, the database proxy reads the first data from the database, and sends a decryption request carrying the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor decrypts the first data by using the root key seed and the data key seed that correspond to the data key identifier. When receiving the write request, the database proxy sends an encryption request carrying the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor encrypts the first data by using the root key seed and the data key seed that correspond to the data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0163] The first cloud encryptor writes the root key seed and the working program into the USBKey, and the client writes the data key identifier and the encrypted data key seed into the USBKey, so that the user can independently store the root key seed, the working program, the data key identifier, and the data key seed. In this way, in the case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed, the USBKey backs up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor, thereby improving the security of the key system.

[0164] Because the CA secure channel based on the CA certificate is established between the database proxy and the first cloud encryptor, the security of data transmitted between the database proxy and the first cloud encryptor can be ensured, improving the security of the database. In addition, the CA certificate has time effectiveness, so as to avoid a problem that the CA secure channel is insecure when a fixed CA certificate is used and is leaked.

[0165] When the first encryption algorithm selected by the client is updated, the corresponding root key is accordingly updated, and when the second encryption algorithm selected by the client is updated, the corresponding data key is accordingly updated, thereby dynamically updating the key system according to user requirements.

[0166] The client may select one of a database, a table, and a field as the encryption granularity according to requirements, thereby improving the flexibility of database encryption.

[0167] The first cloud encryptor, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, delays a response to the detection behavior according to an attack force of the detection behavior, or destructs the root key seed and the data key seed that are stored in the first cloud encryptor according to an attack force of the detection behavior.

[0168] FIG. 7 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure. The data processing apparatus may be applied to the cloud manager shown in FIG. 1. The data processing apparatus includes a receiving module 710 and a trigger module 720.

[0169] The receiving module 710 is configured to receive a trigger request sent by the client.

[0170] The trigger module 720 is configured to trigger, in response to the trigger request received by the receiving module 710, a first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger a database proxy to store an encryption data dictionary. The working program is used for indicating an operation policy of the first cloud encryptor.

[0171] The first cloud encryptor is configured to receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy. The database proxy is configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.

[0172] Optionally, the data processing system further includes an electronic key USBKey, and the apparatus further includes a sending module.

[0173] The sending module is configured to send the obtained data key identifier to the first cloud encryptor when the USBKey is connected to the client.

[0174] The receiving module 710 is further configured to receive the data key identifier and an encrypted data key seed that are sent by the first cloud encryptor. The encrypted data key seed is obtained by the first cloud encryptor by determining the root key seed and the data key seed that correspond to the data key identifier, generating a root key according to the root key seed, and encrypting the data key seed by using the root key.

[0175] The sending module is further configured to send the data key identifier and the encrypted data key seed to the client, the data key identifier and the encrypted data key seed being written into the USBKey by the client.

[0176] Optionally, the trigger request includes a first trigger request and a second trigger request, and the trigger module 720 is further configured to: trigger, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program; and trigger, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.

[0177] Optionally, the trigger module 720 is further configured to: instruct, in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor, receive the root key seed sent by the second cloud encryptor, the root key seed being generated by the second cloud encryptor, and the root key seed carrying a flag bit used for indicating the first encryption algorithm; and instruct the client to select the working program, and send the root key seed and the working program to the first cloud encryptor for storage.

[0178] Optionally, the trigger module 720 is further configured to: obtain a data dictionary of the database through the database proxy in response to the second trigger request, and instruct the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field; send the second encryption algorithm to the first cloud encryptor; receive the data key identifier sent by the first cloud encryptor, the data key identifier being sent after the first cloud encryptor generates the data key identifier and the data key seed, and the data key seed carrying a flag bit used for indicating the second encryption algorithm; and write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage.

[0179] Based on the above, according to the data processing apparatus provided in this embodiment in the present disclosure, when receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0180] The first cloud encryptor writes the root key seed and the working program into the USBKey, and the client writes the data key identifier and the encrypted data key seed into the USBKey, so that the user can independently store the root key seed, the working program, the data key identifier, and the data key seed. In this way, in a case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed, the USBKey backs up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor, thereby improving the security of the key system.

[0181] FIG. 8 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure. The data processing apparatus may be applied to the first cloud encryptor shown in FIG. 1. The data processing apparatus includes a storage module 810 and a first processing module 820.

[0182] The storage module 810 is configured to store a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager. The trigger is generated after the cloud manage receives a trigger request sent by the client. The working program is used for indicating an operation policy of the first cloud encryptor.

[0183] The first processing module 820 is configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy. The database proxy is configured to respond to the data processing request by using the second data. The first data is data that the data processing request requests to process. The first data and the data key identifier are sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.

[0184] Optionally, the data processing system further includes an electronic key USBKey, and the apparatus further includes a writing module and a second processing module.

[0185] The writing module is configured to write the root key seed and the working program into the USBKey when the USBKey is connected to the first cloud encryptor.

[0186] The second processing module is configured to: receive the data key identifier sent by the cloud manager when the USBKey is connected to the client; determine the root key seed and the data key seed that correspond to the data key identifier, encrypt the data key seed by using a root key, and send the data key identifier and the encrypted data key seed to the cloud manager. The root key is generated according to the root key seed. The data key identifier and the encrypted data key seed are sent by the cloud manager to the client, and are written by the client into the USBKey.

[0187] Optionally, the apparatus further includes a first receiving module configured to receive the root key seed, the working program, the data key seed and the data key identifier that are sent by the USBKey when the USBKey is connected to the first cloud encryptor, in a case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.

[0188] Optionally, the apparatus further includes a third processing module configured to, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, delay a response to the detection behavior according to an attack force of the detection behavior, or destruct the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to an attack force of the detection behavior.

[0189] Optionally, the apparatus further includes a second receiving module, a sending module and an establishment module. The second receiving module is configured to receive a CA certificate obtaining request sent by the database proxy.

[0190] The sending module is configured to send a CA certificate to the database proxy.

[0191] The establishment module is configured to establish a CA secure channel with the database proxy by using the CA certificate. The CA secure channel is used for data transmission between the database proxy and the first cloud encryptor.

[0192] Optionally, the trigger request includes a first trigger request and a second trigger request. The storage module 810 is further configured to: store the root key seed and the working program under trigger generated by the cloud manager in response to the first trigger request, and store the data key seed and the data key identifier under trigger generated by the cloud manager in response to the second trigger request.

[0193] Optionally, the storage module 810 is further configured to receive and store the root key seed and the working program that are sent by the cloud manager. The root key seed is generated by the second cloud encryptor after the cloud manager sends a first encryption algorithm to the second cloud encryptor in response to the first trigger request. The first encryption algorithm is selected by the client under instruction of the cloud manager. The root key seed carries a flag bit used for indicating the first encryption algorithm. The working program is selected by the client under instruction of the cloud manager.

[0194] Optionally, the storage module 810 is further configured to receive a second encryption algorithm sent by the cloud manager, and generate the data key identifier and the data key seed. The second encryption algorithm is selected by the client under instruction of the cloud manager after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy. The data key seed carries a flag bit used for indicating the second encryption algorithm. The cloud manager is further configured to instruct the client to select an encryption granularity, write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage. The encryption granularity is one of a database, a table, and a field.

[0195] Optionally, if the data processing request is a read request, the first processing module 820 is further configured to: determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data; determine the root key seed corresponding to the data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area; in the operation cache area, generate a data key according to the data key identifier, and decrypt the first data according to the data key, to obtain third data; and read the data from the operation cache area, and decrypt the third data according to the root key, to obtain the second data.

[0196] Optionally, if the data processing request is a write request, the first processing module 820 is further configured to: determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data; determine the root key seed corresponding to the data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area; in the operation cache area, generate a data key according to the data key identifier, and encrypt the first data according to the data key, to obtain fourth data; and read the fourth data from the operation cache area, and decrypt the fourth data according to the root key, to obtain the second data.

[0197] Based on the above, according to the data processing apparatus provided in this embodiment in the present disclosure, when receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0198] The first cloud encryptor writes the root key seed and the working program into the USBKey, and the client writes the data key identifier and the encrypted data key seed into the USBKey, so that the user can independently store the root key seed, the working program, the data key identifier, and the data key seed. In this way, in a case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed, the USBKey backs up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor, thereby improving the security of the key system.

[0199] Because the CA secure channel based on the CA certificate is established between the database proxy and the first cloud encryptor, the security of data transmitted between the database proxy and the first cloud encryptor can be ensured, thereby improving the security of the database. In addition, the CA certificate has time effectiveness, so as to avoid a problem that the CA secure channel is insecure when a fixed CA certificate is used and is leaked.

[0200] The first cloud encryptor, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, delays a response to the detection behavior according to an attack force of the detection behavior, or destructs the root key seed and the data key seed that are stored in the first cloud encryptor according to an attack force of the detection behavior.

[0201] FIG. 9 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure. The data processing apparatus may be applied to the database proxy shown in FIG. 1. The data processing apparatus includes a storage module 910, a receiving module 920 and a processing module 930.

[0202] The storage module 910 is configured to store an encryption data dictionary under trigger of the cloud manager. The trigger is generated after the cloud manage receives a trigger request sent by the client. The cloud manager is further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed and a data key identifier. The working program is used for indicating an operation policy of the first cloud encryptor.

[0203] The receiving module 920 is configured to receive a data processing request sent by the client.

[0204] The processing module 930 is configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receive second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and respond to the data processing request by using the second data.

[0205] Optionally, the apparatus further includes a sending module and an establishment module.

[0206] The sending module is configured to send a CA certificate obtaining request to the first cloud encryptor.

[0207] The receiving module 920 is further configured to receive the CA certificate sent by the first cloud encryptor.

[0208] The establishment module is configured to establish a CA secure channel with the first cloud encryptor by using the CA certificate received by the receiving module 920. The CA secure channel is used for data transmission between the database proxy and the first cloud encryptor.

[0209] Optionally, the trigger request includes a second trigger request. The storage module 910 is further configured to receive and store the encryption data dictionary sent by the cloud manager. The data key identifier and an encryption granularity are written in the encryption data dictionary. The data key identifier is generated by the first cloud encryptor after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy, instructs the client to select a second encryption algorithm and the encryption granularity, and send the second encryption algorithm to the first cloud encryptor. The encryption granularity is one of a database, a table, and a field.

[0210] Based on the above, according to the data processing apparatus provided in this embodiment in the present disclosure, when receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0211] Because the CA secure channel based on the CA certificate is established between the database proxy and the first cloud encryptor, the security of data transmitted between the database proxy and the first cloud encryptor can be ensured, to improve the security of the database. In addition, the CA certificate has time effectiveness, so as to avoid a problem that the CA secure channel is insecure when a fixed CA certificate is used and is leaked.

[0212] FIG. 10 is a structural block diagram of a data processing apparatus according to an embodiment in the present disclosure. The data processing apparatus may be applied to the client shown in FIG. 1. The data processing apparatus includes a sending module 1010.

[0213] The sending module 1010 is configured to send a trigger request to the cloud manager. The trigger request is used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary. The working program being used for indicating an operation policy of the first cloud encryptor.

[0214] The sending module 1010 is further configured to send a data processing request to the database proxy. The database proxy os configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary. The first cloud encryptor is configured to run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy. The database proxy is configured to respond to the data processing request by using the second data.

[0215] Optionally, the data processing system further includes an electronic key USBKey. The apparatus further includes a receiving module 1020 and a writing module 1030.

[0216] The receiving module 1020 is configured to: receive the data key identifier and an encrypted data key seed that are sent by the cloud manager, when the USBKey is connected to the client. The data key identifier and the encrypted data key seed are sent to the cloud manager by the first cloud encryptor, after the cloud manager sends the obtained data key identifier to the first cloud encryptor and the first cloud encryptor determines the root key seed and the data key seed that correspond to the data key identifier and encrypts the data key seed by using a root key. The root key is generated according to the root key seed.

[0217] The writing module 1030 is configured to write the data key identifier and the encrypted data key seed into the USBKey.

[0218] Optionally, the trigger request includes a first trigger request and a second trigger request. The sending module 1010 is further configured to send the first trigger request and the second trigger request to the cloud manager. The first trigger request is used for instructing the cloud manager to trigger the first cloud encryptor to store the root key seed and the working program. The second trigger request is used for instructing the cloud manager to trigger the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.

[0219] Based on the above, according to the data processing apparatus provided in this embodiment in the present disclosure, when receiving the data processing request and determining that the first data that the data processing request requests to process matches the encryption data dictionary, the database proxy sends the first data and the data key identifier to the first cloud encryptor. The first cloud encryptor processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier. Because the root key seed and the data key seed are stored in the first cloud encryptor and the first data is stored in the database, the key system is separated from the database. In this way, even if the first data in the database is leaked, as long as the root key seed and the data key seed in the first cloud encryptor cannot be obtained, the first data still cannot be recognized, thereby improving the security of the database.

[0220] The first cloud encryptor writes the root key seed and the working program into the USBKey, and the client writes the data key identifier and the encrypted data key seed into the USBKey, so that the user can independently store the root key seed, the working program, the data key identifier, and the data key seed. In this way, in a case that the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed, the USBKey backs up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor, thereby improving the security of the key system.

[0221] When the first encryption algorithm selected by the client is updated, the corresponding root key is accordingly updated; and when the second encryption algorithm selected by the client is updated, the corresponding data key is accordingly updated, thereby dynamically updating the key system according to user requirements.

[0222] The client may select one of the database, the table, and the field as the encryption granularity according to requirements, thereby improving the flexibility of database encryption.

[0223] Referring to FIG. 1, an embodiment in the present disclosure provides a data processing system. The data processing system includes a client 110, a first cloud encryptor 120, a cloud manager 130, a second cloud encryptor 140, a database proxy 150, and a database 160.

[0224] The client 110 includes the data processing apparatus shown in FIG. 10. The first cloud encryptor 120 includes the data processing apparatus shown in FIG. 8. The cloud manager 130 includes the data processing apparatus shown in FIG. 7. The database proxy 150 includes the data processing apparatus shown in FIG. 9.

[0225] FIG. 11 is a block diagram of a terminal 1100 according to an embodiment in the present disclosure. The client or the first cloud encryptor or the cloud manager or the second cloud encryptor or the database proxy or the database shown in FIG. 1 may be installed in the terminal 1100.

[0226] The terminal include components such as a radio frequency (RF) circuit 1101, a memory 1102 including one or more computer readable storage media, an input unit 1103, a display unit 1104, a sensor 1105, an audio circuit 1106, a wireless fidelity (Wi-Fi) module 1107, a processor 1108 including one or more processing cores, and a power supply 1109. A person skilled in the art may understand that the structure of the terminal shown in FIG. 11 does not constitute a limitation to the terminal, and the terminal may include more components or fewer components than those shown in the figure, or some components may be combined, or a different component deployment may be used.

[0227] The RF circuit 1101 may be configured to receive and send signals during an information receiving and sending process or a call process. Particularly, the RF circuit receives downlink information from a base station, then delivers the downlink information to one or more processors 1108 for processing, and sends related uplink data to the base station. Generally, the RF circuit 1101 includes, but is not limited to, an antenna, at least one amplifier, a tuner, one or more oscillators, a subscriber identity module (SIM) card, a transceiver, a coupler, a low noise amplifier (LNA), and a duplexer. In addition, the RF circuit 1101 may also communicate with a network and another device by wireless communication. The wireless communication may use any communications standard or protocol, which includes but is not limited to, Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), e-mail, Short Message Service (SMS), and the like.

[0228] The memory 1102 may be configured to store a software program and module. The processor 1108 runs the software program and module stored in the memory 1102, to implement various functional applications and data processing. The memory 1102 may mainly include a program storage area and a data storage area. The program storage area may store an operating system, an application program required by at least one function (such as a sound playback function and an image display function), and the like. The data storage area may store data (such as audio data and an address book) created according to use of the terminal device, and the like. In addition, the memory 1102 may include a high speed random access memory, and may further include a nonvolatile memory, such as at least one magnetic disk storage device, a flash memory, or other volatile solid-state storage devices. Correspondingly, the memory 1102 may further include a memory controller, to provide access of the processor 1108 and the input unit 1103 to the memory 1102.

[0229] The input unit 1103 may be configured to receive input digit or character information, and generate a keyboard, mouse, joystick, optical, or track ball signal input related to the user setting and function control. In an exemplified embodiment, the input unit 1103 may include a touch-sensitive surface and another input device. The touch-sensitive surface, which may also be referred to as a touchscreen or a touch panel, may collect a touch operation of a user on or near the touch-sensitive surface (such as an operation of a user on or near the touch-sensitive surface by using any suitable object or accessory such as a finger or a stylus), and drive a corresponding connection apparatus according to a preset program. Optionally, the touch-sensitive surface may include two parts: a touch detection apparatus and a touch controller. The touch detection apparatus detects a touch position of the user, detects a signal generated by the touch operation, and transfers the signal to the touch controller. The touch controller receives the touch information from the touch detection apparatus, converts the touch information into touch point coordinates, and sends the touch point coordinates to the processor 1108. Moreover, the touch controller can receive and execute a command sent from the processor 1108. In addition, the touch-sensitive surface may be implemented in multiple types, such as a resistive type, a capacitive type, an infrared type, and a surface acoustic wave type. In addition to the touch-sensitive surface, the input unit 1103 may further include another input device. The another input device may include but is not limited to one or more of a physical keyboard, a function key (for example, a volume control key or a power on/off key), a trackball, a mouse, or a joystick.

[0230] The display unit 1104 may be configured to display information input by the user or information provided for the user, and various graphical user interfaces of the terminal device. These graphical user interfaces may include a graph, text, an icon, a video and any combination thereof. The display unit 1104 may include a display panel. Optionally, the display panel may be configured in a form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like. The touch-sensitive surface may cover the display panel. After detecting a touch operation on or near the touch-sensitive surface, the touch-sensitive surface transfers the touch operation to the processor 1108, so as to determine the type of the touch event. Then, the processor 1108 provides a corresponding visual output on the display panel according to the type of the touch event. Although, in FIG. 11, the touch-sensitive surface and the display panel are used as two separate parts to implement input and output functions, in some embodiments, the touch-sensitive surface and the display panel may be integrated to implement the input and output functions.

[0231] The terminal may further include at least one sensor 1105 such as an optical sensor, a motion sensor, and other sensors. The optical sensor may include an ambient light sensor and a proximity sensor, where the ambient light sensor may adjust luminance of the display panel according to the luminance of the ambient light, and the proximity sensor may switch off the display panel and/or backlight when the terminal is moved to the ear. As one type of the motion sensor, a gravity acceleration sensor may detect a value of acceleration at each direction (which generally is triaxial), may detect a value and a direction of the gravity when being static, and may be used in applications for identifying a mobile phone gesture (such as a switch between horizontal and longitudinal screens, a related game, and gesture calibration of a magnetometer), functions related to vibration identification (such as a pedometer and a knock), and the like. Other sensors, such as a gyroscope, a barometer, a hygrometer, a thermometer, and an infrared sensor, which can be configured in the terminal, are not described herein again.

[0232] The audio circuit 1106, a loudspeaker, and a microphone may provide audio interfaces between the user and the terminal. The audio circuit 1106 may convert received audio data into an electric signal and transmit the electric signal to the loudspeaker. The loudspeaker converts the electric signal into a sound signal for output. On the other hand, the microphone converts a collected sound signal into an electric signal. The audio circuit 1106 receives the electric signal and converts the electric signal into audio data, and outputs the audio data to the processor 1108 for processing. Then, the processor 1108 sends the audio data to, for example, another terminal by using the RF circuit 1101, or outputs the audio data to the memory 1102 for further processing. The audio circuit 1106 may further include an earplug jack, to provide communication between a peripheral earphone and the terminal.

[0233] Wi-Fi is a short distance wireless transmission technology. The terminal may help, by using the Wi-Fi module 1107, a user to receive and send an email, browse a web page, access stream media, and the like. This provides wireless broadband Internet access for the user. Although FIG. 11 shows the Wi-Fi module 1107, it may be understood that the Wi-Fi module 1107 is not a necessary component of the terminal, and the Wi-Fi module may be omitted as required without changing the scope of the present disclosure.

[0234] The processor 1108 is the control center of the terminal, and is connected to various parts of the mobile phone by using various interfaces and circuitry. By running or executing the software program and/or module stored in the memory 1102, and invoking data stored in the memory 1102, the processor 1108 performs various functions and data processing of the terminal, thereby performing overall monitoring on the mobile phone. Optionally, the processor 1108 may include one or more processing cores. Preferably, an application processor and a modem processor may be integrated into the processor 1108. The application processor mainly processes an operating system, a user interface, an application program, and the like. The modem processor mainly processes wireless communication. It may be understood that the foregoing modem may not be integrated into the processor 1108.

[0235] The mobile phone further includes the power supply 1109 (such as a battery) for supplying power to the components. Preferably, the power supply may be logically connected to the processor 1108 by using a power management system, thereby implementing functions such as charging, discharging and power consumption management through the power management system. The power supply 1109 may further include one or more of a direct current or alternating current power supply, a re-charging system, a power failure detection circuit, a power supply converter or inverter, a power supply state indicator, and any other component.

[0236] Although not shown in the figure, the terminal may further include a camera, a Bluetooth module, and the like, which are not further described herein. In this embodiment, the processor 1108 in the terminal runs one or more program instructions stored in the memory 1102, so as to implement data processing methods according to the foregoing various method embodiments.

[0237] A person of ordinary skill in the art may understand that all or some of the steps of the methods in the foregoing embodiments may be implemented by a program instructing relevant hardware. The program may be stored in a computer readable storage medium. The storage medium may include: a read-only memory (ROM), a random access memory (RAM), a magnetic disk, an optical disc, or the like.

[0238] According to an embodiment of the present invention, a computer readable storage medium is provided, storing at least one instruction, at least one program, and a code set or an instruction set, and the at least one instruction, the at least one program, and the code set or the instruction set being loaded and executed by the processor to implement the data processing method described above.

[0239] It should be noted that, the data processing of the data processing apparatus provided in the foregoing embodiment is described with the foregoing example of division of the functional modules only for illustration. In actual application, the foregoing functions may be implemented by different functional modules as required, that is, the internal structure of the data processing apparatus is divided into different functional modules, to implement all or some of the functions described above. In addition, the data processing apparatus provided in the foregoing embodiment belongs to the same concept as the embodiment of the data processing method. For a specific implementation process of the data processing apparatus, one may refer to the method embodiment, and details are not described herein again.

[0240] A person of ordinary skill in the art may understand that all or some of the steps of the foregoing embodiments may be implemented by using hardware, or may be implemented by a program instructing relevant hardware. The program may be stored in a computer readable storage medium. The storage medium may be a ROM, a magnetic disk, an optical disc, or the like.

[0241] The foregoing descriptions are not intended to limit the present disclosure. Any modification, equivalent replacement, improvement and the like made within the spirit and principle in the present disclosure should fall within the protection scope of the present disclosure.


Claims

1. A data processing method, applied to a data processing system comprising a client, a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the method comprising:

sending, by the client, a trigger request to the cloud manager;

triggering, by the cloud manager in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor;

sending, by the client, a data processing request to the database proxy;

sending, by the database proxy, first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary;

running, by the first cloud encryptor, the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sending second data obtained by the processing to the database proxy; and

responding, by the database proxy, to the data processing request by using the second data.


 
2. The method according to claim 1, wherein the data processing system further comprises an electronic key USBKey, and the method further comprises:

writing, by the first cloud encryptor, the root key seed and the working program into the USBKey when the USBKey is connected to the first cloud encryptor; and

when the USBKey is connected to the client,

sending, by the cloud manager, the obtained data key identifier to the first cloud encryptor;

determining, by the first cloud encryptor, the root key seed and the data key seed that correspond to the data key identifier, encrypting the data key seed by using a root key, and sending the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed;

sending, by the cloud manager, the data key identifier and the encrypted data key seed to the client; and

writing, by the client, the data key identifier and the encrypted data key seed into the USBKey.


 
3. The method according to claim 2, further comprising:
backing up, by the USBKey, the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor when the USBKey is connected to the first cloud encryptor, and the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.
 
4. The method according to claim 3, further comprising:

when detecting a detection behavior for illegally detecting the root key seed and the data key seed,

delaying, by the first cloud encryptor, a response to the detection behavior according to an attack force of the detection behavior, or

destructing, by the first cloud encryptor, the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor, according to an attack force of the detection behavior.


 
5. The method according to claim 1, further comprising:

sending, by the database proxy, a certificate authority (CA) certificate obtaining request to the first cloud encryptor;

sending, by the first cloud encryptor, a CA certificate to the database proxy; and

establishing, by the database proxy, a CA secure channel with the first cloud encryptor by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
6. The method according to any one of claims 1 to 5, wherein the sending, by the client, a trigger request to the cloud manager; triggering, by the cloud manager in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary comprises:

sending, by the client, a first trigger request to the cloud manager;

triggering, by the cloud manager in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program;

sending, by the client, a second trigger request to the cloud manager; and

triggering, by the cloud manager in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and triggering the database proxy to store the encryption data dictionary.


 
7. The method according to claim 6, wherein the data processing system further comprises a second cloud encryptor, and the triggering, by the cloud manager in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program comprises:

instructing, by the cloud manager in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor;

generating, by the second cloud encryptor, the root key seed, and sending the root key seed to the cloud manager, the root key seed carrying a flag bit used for indicating the first encryption algorithm;

receiving, by the cloud manager, the root key seed sent by the second cloud encryptor;

instructing, by the cloud manager, the client to select the working program, and sending the root key seed and the working program to the first cloud encryptor; and

storing, by the first cloud encryptor, the root key seed and the working program.


 
8. The method according to claim 6, wherein the triggering, by the cloud manager in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and triggering the database proxy to store the encryption data dictionary comprises:

obtaining, by the cloud manager, a data dictionary of the database through the database proxy in response to the second trigger request, and instructing the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field;

sending, by the cloud manager, the second encryption algorithm to the first cloud encryptor;

generating, by the first cloud encryptor, the data key identifier and the data key seed, and sending the data key identifier to the cloud manager, the data key seed carrying a flag bit used for indicating the second encryption algorithm;

writing, by the cloud manager, the data key identifier and the encryption granularity into the encryption data dictionary, and sending the decryption data dictionary to the database proxy; and

storing, by the database proxy, the encryption data dictionary.


 
9. The method according to claim 1, wherein if the data processing request is a read request, the running, by the first cloud encryptor, the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier comprises:

determining, by the first cloud encryptor, an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining, by the first cloud encryptor, the root key seed corresponding to the received data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating, by the first cloud encryptor, a data key according to the data key identifier, and decrypting the first data according to the data key, to obtain third data; and

reading, by the first cloud encryptor, the third data from the operation cache area, and decrypting the third data according to the root key, to obtain the second data.


 
10. The method according to claim 1, wherein if the data processing request is a write request, the running, by the first cloud encryptor, the working program, processing the first data by using the root key seed and the data key seed that correspond to the data key identifier comprises:

determining, by the first cloud encryptor, an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining, by the first cloud encryptor, the root key seed corresponding to the received data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating, by the first cloud encryptor, a data key according to the data key identifier, and encrypting the first data according to the data key, to obtain fourth data; and

reading, by the first cloud encryptor, the fourth data from the operation cache area, and decrypting the fourth data according to the root key, to obtain the second data.


 
11. A data processing method, applied to a cloud manager of a data processing system, the data processing system further comprising a client, a first cloud encryptor, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the method comprising:

receiving a trigger request sent by the client;

triggering, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor;

the first cloud encryptor being configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
12. The method according to claim 11, wherein the data processing system further comprises an electronic key USBKey, and the method further comprises:

sending the obtained data key identifier to the first cloud encryptor when the USBKey is connected to the client;

receiving the data key identifier and an encrypted data key seed that are sent by the first cloud encryptor, the encrypted data key seed being obtained by the first cloud encryptor by determining the root key seed and the data key seed that correspond to the data key identifier, generating a root key according to the root key seed, and encrypting the data key seed by using the root key; and

sending the data key identifier and the encrypted data key seed to the client, the data key identifier and the encrypted data key seed being written into the USBKey by the client.


 
13. The method according to claim 11 or 12, wherein the trigger request comprises a first trigger request and a second trigger request, and the triggering, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary comprises:

triggering, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program; and

triggering, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and triggering the database proxy to store the encryption data dictionary.


 
14. The method according to claim 13, wherein the data processing system further comprises a second cloud encryptor, and the triggering, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program comprises:

instructing, in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor;

receiving the root key seed sent by the second cloud encryptor, the root key seed being generated by the second cloud encryptor, and the root key seed carrying a flag bit used for indicating the first encryption algorithm; and

instructing the client to select the working program, and sending the root key seed and the working program to the first cloud encryptor for storage.


 
15. The method according to claim 13, wherein the triggering, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and triggering the database proxy to store the encryption data dictionary comprises:

obtaining a data dictionary of the database through the database proxy in response to the second trigger request, and instructing the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field;

sending the second encryption algorithm to the first cloud encryptor;

receiving the data key identifier sent by the first cloud encryptor, the data key identifier being sent after the first cloud encryptor generates the data key identifier and the data key seed, and the data key seed carrying a flag bit used for indicating the second encryption algorithm; and

writing the data key identifier and the encryption granularity into the encryption data dictionary, and sending the encryption data dictionary to the database proxy for storage.


 
16. A data processing method, applied to a first cloud encryptor of a data processing system, the data processing system further comprising a client, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the method comprising:

storing a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

receiving first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, running the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sending second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
17. The method according to claim 16, wherein the data processing system further comprises an electronic key USBKey, and the method further comprises:

writing the root key seed and the working program into the USBKey when the USBKey is connected to the first cloud encryptor; and

receiving the data key identifier sent by the cloud manager when the USBKey is connected to the client; determining the root key seed and the data key seed that correspond to the data key identifier, encrypting the data key seed by using a root key, and sending the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed; and the data key identifier and the encrypted data key seed being sent by the cloud manager to the client and written by the client into the USBKey.


 
18. The method according to claim 17, wherein the method further comprises:
receiving the root key seed, the working program, the data key seed and the data key identifier that are sent by the USBKey when the USBKey is connected to the first cloud encryptor, and the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.
 
19. The method according to claim 18, wherein the method further comprises:

when detecting a detection behavior for illegally detecting the root key seed and the data key seed,

delaying a response to the detection behavior according to an attack force of the detection behavior, or

destructing the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to an attack force of the detection behavior.


 
20. The method according to claim 16, wherein the method further comprises:

receiving a certificate authority (CA) certificate obtaining request sent by the database proxy;

sending a CA certificate to the database proxy; and

establishing a CA secure channel with the database proxy by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
21. The method according to any one of claims 16 to 20, wherein the trigger request comprises a first trigger request and a second trigger request, and the storing a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager comprises:

storing the root key seed and the working program under trigger generated by the cloud manager in response to the first trigger request; and

storing the data key seed and the data key identifier under trigger generated by the cloud manager in response to the second trigger request.


 
22. The method according to claim 21, wherein the data processing system further comprises a second cloud encryptor, and the storing the root key seed and the working program under trigger generated by the cloud manager in response to the first trigger request comprises:

receiving the root key seed and the working program that are sent by the cloud manager, the root key seed being generated by the second cloud encryptor after the cloud manager sends a first encryption algorithm to the second cloud encryptor in response to the first trigger request, the first encryption algorithm being selected by the client under instruction of the cloud manager, the root key seed carrying a flag bit used for indicating the first encryption algorithm, and the working program being selected by the client under instruction of the cloud manager; and

storing the root key seed and the working program.


 
23. The method according to claim 21, wherein the storing the data key seed and the data key identifier under trigger generated by the cloud manager in response to the second trigger request comprises:

receiving a second encryption algorithm sent by the cloud manager, the second encryption algorithm being selected by the client under instruction of the cloud manager after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy; and

generating the data key identifier and the data key seed, the data key seed carrying a flag bit used for indicating the second encryption algorithm,

the cloud manager being further configured to: instruct the client to select an encryption granularity, write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage, and the encryption granularity being one of a database, a table, and a field.


 
24. The method according to claim 16, wherein if the data processing request is a read request, the running the working program, processing the first data by using the root key seed and the data key seed that correspond to the data key identifier comprises:

determining an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining the root key seed corresponding to the data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating a data key according to the data key identifier, and decrypting the first data according to the data key, to obtain third data; and

reading the data from the operation cache area, and decrypting the third data according to the root key, to obtain the second data.


 
25. The method according to claim 16, wherein if the data processing request is a write request, the running the working program, processing the first data by using the root key seed and the data key seed that correspond to the data key identifier comprises:

determining an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining the root key seed corresponding to the data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating a data key according to the data key identifier, and encrypting the first data according to the data key, to obtain fourth data; and

reading the fourth data from the operation cache area, and decrypting the fourth data according to the root key, to obtain the second data.


 
26. A data processing method, applied to a database proxy of a data processing system, the data processing system further comprising a client, a first cloud encryptor, a cloud manager, and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the method comprising:

storing an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

receiving a data processing request sent by the client; and

sending first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receiving second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and responding to the data processing request by using the second data.


 
27. The method according to claim 26, wherein the method further comprises:

sending a certificate authority (CA) certificate obtaining request to the first cloud encryptor;

receiving a CA certificate sent by the first cloud encryptor; and

establishing a CA secure channel with the first cloud encryptor by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
28. The method according to claim 26, wherein the trigger request comprises a second trigger request, and the storing an encryption data dictionary under trigger of the cloud manager comprises:

receiving the encryption data dictionary sent by the cloud manager, the data key identifier and an encryption granularity being written in the encryption data dictionary, the data key identifier being generated by the first cloud encryptor after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy, instructs the client to select a second encryption algorithm and the encryption granularity, and sends the second encryption algorithm to the first cloud encryptor, and the encryption granularity being one of a database, a table, and a field; and

storing the encryption data dictionary.


 
29. A data processing method, applied to a client of a data processing system, the data processing system further comprising a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the method comprising:

sending a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

sending a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.


 
30. The method according to claim 29, wherein the data processing system further comprises an electronic key USBKey, and the method further comprises:

receiving the data key identifier and an encrypted data key seed that are sent by the cloud manager when the USBKey is connected to the client, the data key identifier and the encrypted data key seed being sent to the cloud manager by the first cloud encryptor, after the cloud manager sends the obtained data key identifier to the first cloud encryptor and the first cloud encryptor determines the root key seed and the data key seed that correspond to the data key identifier and encrypts the data key seed by using a root key, the root key being generated according to the root key seed; and

writing the data key identifier and the encrypted data key seed into the USBKey.


 
31. The method according to claim 29, wherein the trigger request comprises a first trigger request and a second trigger request, and the sending a trigger request to the cloud manager comprises:

sending the first trigger request to the cloud manager, the first trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the root key seed and the working program; and

sending the second trigger request to the cloud manager, the second trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.


 
32. A data processing system, comprising a client, a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, wherein
the client is configured to send a trigger request to the cloud manager;
the cloud manager is configured to: trigger, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor;
the client is further configured to send a data processing request to the database proxy;
the database proxy is configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary;
the first cloud encryptor is configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy; and
the database proxy is further configured to respond to the data processing request by using the second data.
 
33. The data processing system according to claim 32, wherein the data processing system further comprises an electronic key USBKey;
when the USBKey is connected to the first cloud encryptor, the first cloud encryptor is further configured to write the root key seed and the working program into the USBKey; and
when the USBKey is connected to the client, the cloud manager is further configured to send the obtained data key identifier to the first cloud encryptor; the first cloud encryptor is further configured to: determine the root key seed and the data key seed that correspond to the data key identifier, encrypt the data key seed by using a root key, and send the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed; the cloud manager is further configured to send the data key identifier and the encrypted data key seed to the client; and the client is further configured to write the data key identifier and the encrypted data key seed into the USBKey.
 
34. The data processing system according to claim 33, wherein
the USBKey is configured to back up the root key seed, the working program, the data key seed and the data key identifier to the first cloud encryptor when the USBKey is connected to the first cloud encryptor, and the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.
 
35. The data processing system according to claim 34, wherein
the first cloud encryptor is further configured to, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, delay a response to the detection behavior according to an attack force of the detection behavior, or destruct the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to an attack force of the detection behavior.
 
36. The data processing system according to claim 32, wherein
the database proxy is further configured to send a certificate authority (CA) certificate obtaining request to the first cloud encryptor;
the first cloud encryptor is further configured to send a CA certificate to the database proxy; and
the database proxy is further configured to establish a CA secure channel with the first cloud encryptor by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.
 
37. The data processing system according to any one of claims 31 to 36, wherein
the client is further configured to send a first trigger request to the cloud manager;
the cloud manager is further configured to trigger, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program;
the client is further configured to send a second trigger request to the cloud manager; and
the cloud manager is further configured to trigger, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.
 
38. The data processing system according to claim 37, wherein the data processing system further comprises a second cloud encryptor;
the cloud manager is further configured to instruct, in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor;
the second cloud encryptor is configured to generate the root key seed, and send the root key seed to the cloud manager, the root key seed carrying a flag bit used for indicating the first encryption algorithm;
the cloud manager is further configured to receive the root key seed sent by the second cloud encryptor;
the cloud manager is further configured to instruct the client to select the working program, and send the root key seed and the working program to the first cloud encryptor; and
the first cloud encryptor is further configured to store the root key seed and the working program.
 
39. The data processing system according to claim 37, wherein
the cloud manager is further configured to obtain a data dictionary of the database through the database proxy in response to the second trigger request, and instruct the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field;
the cloud manager is further configured to send the second encryption algorithm to the first cloud encryptor;
the first cloud encryptor is further configured to: generate the data key identifier and the data key seed, and send the data key identifier to the cloud manager, the data key seed carrying a flag bit used for indicating the second encryption algorithm;
the cloud manager is further configured to: write the data key identifier and the encryption granularity into the encryption data dictionary, and send the decryption data dictionary to the database proxy; and
the database proxy is further configured to store the encryption data dictionary.
 
40. The data processing system according to claim 32, wherein if the data processing request is a read request, the first cloud encryptor is further configured to:

determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determine the root key seed corresponding to the received data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generate a data key according to the data key identifier, and decrypt the first data according to the data key, to obtain third data; and

read the third data from the operation cache area, and decrypt the third data according to the root key, to obtain the second data.


 
41. The data processing system according to claim 32, wherein if the data processing request is a write request, the first cloud encryptor is further configured to:

determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determine the root key seed corresponding to the received data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generate a data key according to the data key identifier, and encrypt the first data according to the data key, to obtain fourth data; and

read the fourth data from the operation cache area, and decrypt the fourth data according to the root key, to obtain the second data.


 
42. A data processing apparatus, used in a cloud manager of a data processing system, the data processing system further comprising a client, a first cloud encryptor, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the apparatus comprising:

a receiving module, configured to receive a trigger request sent by the client; and

a trigger module, configured to: trigger, in response to the trigger request received by the receiving module, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor; wherein

the first cloud encryptor is configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy; the database proxy is configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
43. The apparatus according to claim 42, wherein the data processing system further comprises an electronic key USBKey, and the apparatus further comprises:

a sending module, configured to send the obtained data key identifier to the first cloud encryptor when the USBKey is connected to the client; wherein

the receiving module is further configured to receive the data key identifier and an encrypted data key seed that are sent by the first cloud encryptor, the encrypted data key seed being obtained by the first cloud encryptor by determining the root key seed and the data key seed that correspond to the data key identifier, generating a root key according to the root key seed, and encrypting the data key seed by using the root key; and

the sending module, further configured to send the data key identifier and the encrypted data key seed to the client, the data key identifier and the encrypted data key seed being written into the USBKey by the client.


 
44. The apparatus according to claim 42 or 43, wherein the trigger request comprises a first trigger request and a second trigger request, and the trigger module is further configured to:

trigger, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program; and

trigger, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.


 
45. The apparatus according to claim 44, wherein the trigger module is further configured to:

instruct, in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor;

receive the root key seed sent by the second cloud encryptor, the root key seed being generated by the second cloud encryptor, and the root key seed carrying a flag bit used for indicating the first encryption algorithm; and

instruct the client to select the working program, and send the root key seed and the working program to the first cloud encryptor for storage.


 
46. The apparatus according to claim 44, wherein the trigger module is further configured to:

obtain a data dictionary of the database through the database proxy in response to the second trigger request, and instruct the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field;

send the second encryption algorithm to the first cloud encryptor;

receive the data key identifier sent by the first cloud encryptor, the data key identifier being sent after the first cloud encryptor generates the data key identifier and the data key seed, and the data key seed carrying a flag bit used for indicating the second encryption algorithm; and

write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage.


 
47. A data processing apparatus, used in a first cloud encryptor of a data processing system, the data processing system further comprising a client, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the apparatus comprising:

a storage module, configured to store a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

a first processing module, configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
48. The apparatus according to claim 47, wherein the data processing system further comprises an electronic key USBKey, and the apparatus further comprises:

a writing module, configured to write the root key seed and the working program into the USBKey when the USBKey is connected to the first cloud encryptor; and

a second processing module, configured to: receive the data key identifier sent by the cloud manager when the USBKey is connected to the client; determine the root key seed and the data key seed that correspond to the data key identifier, encrypt the data key seed by using a root key, and send the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed, and the data key identifier and the encrypted data key seed being sent by the cloud manager to the client and being written by the client into the USBKey.


 
49. The apparatus according to claim 48, wherein the apparatus further comprises:
a first receiving module, configured to receive the root key seed, the working program, the data key seed and the data key identifier that are sent by the USBKey when the USBKey is connected to the first cloud encryptor, and the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.
 
50. The apparatus according to claim 49, wherein the apparatus further comprises:
a third processing module, configured to, when detecting a detection behavior for illegally detecting the root key seed and the data key seed, delay a response to the detection behavior according to an attack force of the detection behavior, or destruct the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to an attack force of the detection behavior.
 
51. The apparatus according to claim 47, wherein the apparatus further comprises:

a second receiving module, configured to receive a certificate authority (CA) certificate obtaining request sent by the database proxy;

a sending module, configured to send a CA certificate to the database proxy; and

an establishment module, configured to establish a CA secure channel with the database proxy by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
52. The apparatus according to any one of claims 47 to 51, wherein the trigger request comprises a first trigger request and a second trigger request, and the storage module is further configured to:

store the root key seed and the working program under trigger generated by the cloud manager in response to the first trigger request; and

store the data key seed and the data key identifier under trigger generated by the cloud manager in response to the second trigger request.


 
53. The apparatus according to claim 52, wherein the storage module is further configured to:

receive the root key seed and the working program that are sent by the cloud manager, the root key seed being generated by the second cloud encryptor after the cloud manager sends a first encryption algorithm to the second cloud encryptor in response to the first trigger request, the first encryption algorithm being selected by the client under instruction of the cloud manager, the root key seed carrying a flag bit used for indicating the first encryption algorithm, and the working program being selected by the client under instruction of the cloud manager; and

store the root key seed and the working program.


 
54. The apparatus according to claim 52, wherein the storage module is further configured to:

receive a second encryption algorithm sent by the cloud manager, the second encryption algorithm being selected by the client under instruction of the cloud manager after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy; and

generate the data key identifier and the data key seed, the data key seed carrying a flag bit used for indicating the second encryption algorithm,

the cloud manager being further configured to: instruct the client to select an encryption granularity, write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage, and the encryption granularity being one of a database, a table, and a field.


 
55. The apparatus according to claim 47, wherein if the data processing request is a read request, the first processing module is further configured to:

determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determine the root key seed corresponding to the data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generate a data key according to the data key identifier, and decrypt the first data according to the data key, to obtain third data; and

read the data from the operation cache area, and decrypt the third data according to the root key, to obtain the second data.


 
56. The apparatus according to claim 47, wherein if the data processing request is a write request, the first processing module is further configured to:

determine an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determine the root key seed corresponding to the data key identifier, generate a root key according to the root key seed, encrypt the first data and the data key identifier according to the root key, and cache the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generate a data key according to the data key identifier, and encrypt the first data according to the data key, to obtain fourth data; and

read the fourth data from the operation cache area, and decrypt the fourth data according to the root key, to obtain the second data.


 
57. A data processing apparatus, used in a database proxy of a data processing system, the data processing system further comprising a client, a first cloud encryptor, a cloud manager, and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the apparatus comprising:

a storage module, configured to store an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

a receiving module, configured to receive a data processing request sent by the client; and

a processing module, configured to: send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receive second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and respond to the data processing request by using the second data.


 
58. The apparatus according to claim 57, wherein the apparatus further comprises:

a sending module, configured to send a certificate authority (CA) certificate obtaining request to the first cloud encryptor;

the receiving module, further configured to receive the CA certificate sent by the first cloud encryptor; and

an establishment module, configured to establish a CA secure channel with the first cloud encryptor by using the CA certificate received by the receiving module, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
59. The apparatus according to claim 57, wherein the trigger request comprises a second trigger request, and the storage module is further configured to:

receive the encryption data dictionary sent by the cloud manager, the data key identifier and an encryption granularity being written in the encryption data dictionary, the data key identifier being generated by the first cloud encryptor after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy, instructs the client to select a second encryption algorithm and the encryption granularity, and send the second encryption algorithm to the first cloud encryptor, and the encryption granularity being one of a database, a table, and a field; and

store the encryption data dictionary.


 
60. A data processing apparatus, used in a client of a data processing system, the data processing system further comprising a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the apparatus comprising:

a sending module, configured to

send a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

send a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.


 
61. The apparatus according to claim 60, wherein the data processing system further comprises an electronic key USBKey, and the apparatus further comprises:

a receiving module, configured to: receive the data key identifier and an encrypted data key seed that are sent by the cloud manager, when the USBKey is connected to the client, wherein the data key identifier and the encrypted data key seed are sent to the cloud manager by the first cloud encryptor after the cloud manager sends the obtained data key identifier to the first cloud encryptor and the first cloud encryptor determines the root key seed and the data key seed that correspond to the data key identifier and encrypts the data key seed by using a root key, and the root key is generated according to the root key seed; and

a writing module, configured to write the data key identifier and the encrypted data key seed into the USBKey.


 
62. The apparatus according to claim 60, wherein the trigger request comprises a first trigger request and a second trigger request, and the sending module is further configured to:

send the first trigger request to the cloud manager, the first trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the root key seed and the working program; and

send the second trigger request to the cloud manager, the second trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.


 
63. A cloud manager, the cloud manager being used in a data processing system, the data processing system further comprising a client, a first cloud encryptor, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the cloud manager comprising:

one or more processors; and

a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs comprising an instruction for executing the following operations:

receiving a trigger request sent by the client; and

triggering, in response to the trigger request, the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and triggering the database proxy to store an encryption data dictionary, the working program being used for indicating an operation policy of the first cloud encryptor,

the first cloud encryptor being configured to: receive first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy; the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
64. The cloud manager according to claim 63, wherein the data processing system further comprises an electronic key USBKey, and the one or more programs further comprise an instruction for executing the following operations:

sending the obtained data key identifier to the first cloud encryptor when the USBKey is connected to the client;

receiving the data key identifier and an encrypted data key seed that are sent by the first cloud encryptor, the encrypted data key seed being obtained by the first cloud encryptor by determining the root key seed and the data key seed that correspond to the data key identifier, generating a root key according to the root key seed, and encrypting the data key seed by using the root key; and

sending the data key identifier and the encrypted data key seed to the client, the data key identifier and the encrypted data key seed being written into the USBKey by the client.


 
65. The cloud manager according to claim 63 or 64, wherein the one or more programs further comprise an instruction for executing the following operations:

triggering, in response to the first trigger request, the first cloud encryptor to store the root key seed and the working program; and

triggering, in response to the second trigger request, the first cloud encryptor to store the data key seed and the data key identifier, and triggering the database proxy to store the encryption data dictionary.


 
66. The cloud manager according to claim 65, wherein the data processing system further comprises a second cloud encryptor, and the one or more programs further comprise an instruction for executing the following operations:

instructing, in response to the first trigger request, the client to select a first encryption algorithm, and send the first encryption algorithm to the second cloud encryptor;

receiving the root key seed sent by the second cloud encryptor, the root key seed being generated by the second cloud encryptor, and the root key seed carrying a flag bit used for indicating the first encryption algorithm; and

instructing the client to select the working program, and sending the root key seed and the working program to the first cloud encryptor for storage.


 
67. The cloud manager according to claim 65, wherein the one or more programs further comprise an instruction for executing the following operations:

obtaining a data dictionary of the database through the database proxy in response to the second trigger request, and instructing the client to select a second encryption algorithm and an encryption granularity, the encryption granularity being one of a database, a table, and a field;

sending the second encryption algorithm to the first cloud encryptor;

receiving the data key identifier sent by the first cloud encryptor, the data key identifier being sent after the first cloud encryptor generates the data key identifier and the data key seed, and the data key seed carrying a flag bit used for indicating the second encryption algorithm; and

writing the data key identifier and the encryption granularity into the encryption data dictionary, and sending the encryption data dictionary to the database proxy for storage.


 
68. A first cloud encryptor, used in a data processing system, the data processing system further comprising a client, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the first cloud encryptor comprising:

one or more processors; and

a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs comprising an instruction for executing the following operations:

storing a root key seed, a working program, a data key seed, and a data key identifier under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, and the working program being used for indicating an operation policy of the first cloud encryptor; and

receiving first data and the data key identifier in the encryption data dictionary that are sent by the database proxy, running the working program, processing the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and sending second data obtained by the processing to the database proxy, the database proxy being configured to respond to the data processing request by using the second data, the first data being data that the data processing request requests to process, and the first data and the data key identifier being sent by the database proxy when the database proxy determines that the first data matches the encryption data dictionary.


 
69. The first cloud encryptor according to claim 68, wherein the data processing system further comprises an electronic key USBKey, and the one or more programs further comprise an instruction for executing the following operations:

writing the root key seed and the working program into the USBKey when the USBKey is connected to the first cloud encryptor; and

receiving the data key identifier sent by the cloud manager when the USBKey is connected to the client; determining the root key seed and the data key seed that correspond to the data key identifier, encrypting the data key seed by using a root key, and sending the data key identifier and the encrypted data key seed to the cloud manager, the root key being generated according to the root key seed; and the data key identifier and the encrypted data key seed being sent by the cloud manager to the client and written by the client into the USBKey.


 
70. The first cloud encryptor according to claim 69, wherein the one or more programs further comprise an instruction for executing the following operations:
receiving the root key seed, the working program, the data key seed and the data key identifier that are sent by the USBKey when the USBKey is connected to the first cloud encryptor, and the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor are destructed.
 
71. The first cloud encryptor according to claim 70, wherein the one or more programs further comprise an instruction for executing the following operations:

when detecting a detection behavior for illegally detecting the root key seed and the data key seed,

delaying a response to the detection behavior according to an attack force of the detection behavior, or

destructing the root key seed, the working program, the data key seed and the data key identifier that are stored in the first cloud encryptor according to an attack force of the detection behavior.


 
72. The first cloud encryptor according to claim 68, wherein the one or more programs further comprise an instruction for executing the following operations:

receiving a certificate authority (CA) certificate obtaining request sent by the database proxy;

sending a CA certificate to the database proxy; and

establishing a CA secure channel with the database proxy by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
73. The first cloud encryptor according to any one of claims 68 to 72, wherein the one or more programs further comprise an instruction for executing the following operations:

storing the root key seed and the working program under trigger generated by the cloud manager in response to the first trigger request; and

storing the data key seed and the data key identifier under trigger generated by the cloud manager in response to the second trigger request.


 
74. The first cloud encryptor according to claim 73, wherein the data processing system further comprises a second cloud encryptor, and the one or more programs further comprise an instruction for executing the following operations:

receiving the root key seed and the working program that are sent by the cloud manager, the root key seed being generated by the second cloud encryptor after the cloud manager sends a first encryption algorithm to the second cloud encryptor in response to the first trigger request, the first encryption algorithm being selected by the client under instruction of the cloud manager, the root key seed carrying a flag bit used for indicating the first encryption algorithm, and the working program being selected by the client under instruction of the cloud manager; and

storing the root key seed and the working program.


 
75. The first cloud encryptor according to claim 73, wherein the one or more programs further comprise an instruction for executing the following operations:

receiving a second encryption algorithm sent by the cloud manager, the second encryption algorithm being selected by the client under instruction of the cloud manager after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy; and

generating the data key identifier and the data key seed, the data key seed carrying a flag bit used for indicating the second encryption algorithm,

the cloud manager being further configured to: instruct the client to select an encryption granularity, write the data key identifier and the encryption granularity into the encryption data dictionary, and send the encryption data dictionary to the database proxy for storage, and the encryption granularity being one of a database, a table, and a field.


 
76. The first cloud encryptor according to claim 68, wherein if the data processing request is a read request, the one or more programs further comprise an instruction for executing the following operations:

determining an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining the root key seed corresponding to the data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating a data key according to the data key identifier, and decrypting the first data according to the data key, to obtain third data; and

reading the data from the operation cache area, and decrypting the third data according to the root key, to obtain the second data.


 
77. The first cloud encryptor according to claim 68, wherein if the data processing request is a write request, the one or more programs further comprise an instruction for executing the following operations:

determining an operation cache area corresponding to the client through running the working program, the operation cache area being used for caching intermediate data generated in a process in which the first cloud encryptor processes the first data;

determining the root key seed corresponding to the data key identifier, generating a root key according to the root key seed, encrypting the first data and the data key identifier according to the root key, and caching the encrypted first data and the encrypted data key identifier into the operation cache area;

in the operation cache area, generating a data key according to the data key identifier, and encrypting the first data according to the data key, to obtain fourth data; and

reading the fourth data from the operation cache area, and decrypting the fourth data according to the root key, to obtain the second data.


 
78. A database proxy, used in a data processing system, the data processing system further comprising a client, a first cloud encryptor, a cloud manager, and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the database proxy comprising:

one or more processors; and

a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs comprising an instruction for executing the following operations:

storing an encryption data dictionary under trigger of the cloud manager, the trigger being generated after the cloud manage receives a trigger request sent by the client, the cloud manager being further configured to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and the working program being used for indicating an operation policy of the first cloud encryptor;

receiving a data processing request sent by the client; and

sending first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary; receiving second data sent by the first cloud encryptor after the first cloud encryptor runs the working program and processes the first data by using the root key seed and the data key seed that correspond to the received data key identifier; and responding to the data processing request by using the second data.


 
79. The database proxy according to claim 78, wherein the one or more programs further comprise an instruction for executing the following operations:

sending a certificate authority (CA) certificate obtaining request to the first cloud encryptor;

receiving a CA certificate sent by the first cloud encryptor; and

establishing a CA secure channel with the first cloud encryptor by using the CA certificate, the CA secure channel being used for data transmission between the database proxy and the first cloud encryptor.


 
80. The database proxy according to claim 78, wherein the trigger request comprises a second trigger request, and the one or more programs further comprise an instruction for executing the following operations:

receiving the encryption data dictionary sent by the cloud manager, the data key identifier and an encryption granularity being written in the encryption data dictionary, the data key identifier being generated by the first cloud encryptor after the cloud manager obtains, in response to the second trigger request, a data dictionary of the database through the database proxy, instructs the client to select a second encryption algorithm and the encryption granularity, and send the second encryption algorithm to the first cloud encryptor, and the encryption granularity being one of a database, a table, and a field; and

storing the encryption data dictionary.


 
81. A client, used in a data processing system, the data processing system further comprising a first cloud encryptor, a cloud manager, a database proxy and a database, the first cloud encryptor being a cloud encryptor allocated by the cloud manager to the client, and the client comprising:

one or more processors; and

a memory, the memory storing one or more programs, the one or more programs being configured to be executed by the one or more processors, and the one or more programs comprising an instruction for executing the following operations:

sending a trigger request to the cloud manager, the trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store a root key seed, a working program, a data key seed, and a data key identifier, and trigger the database proxy to store an encryption data dictionary, and the working program being used for indicating an operation policy of the first cloud encryptor; and

sending a data processing request to the database proxy, the database proxy being configured to send first data that the data processing request requests to process and the data key identifier in the encryption data dictionary to the first cloud encryptor if determining that the first data matches the encryption data dictionary, the first cloud encryptor being configured to: run the working program, process the first data by using the root key seed and the data key seed that correspond to the received data key identifier, and send second data obtained by the processing to the database proxy, and the database proxy being configured to respond to the data processing request by using the second data.


 
82. The client according to claim 81, wherein the data processing system further comprises an electronic key USBKey, and the one or more programs further comprise an instruction for executing the following operations:

receiving the data key identifier and an encrypted data key seed that are sent by the cloud manager when the USBKey is connected to the client, the data key identifier and the encrypted data key seed being sent to the cloud manager by the first cloud encryptor, after the cloud manager sends the obtained data key identifier to the first cloud encryptor and the first cloud encryptor determines the root key seed and the data key seed that correspond to the data key identifier and encrypts the data key seed by using a root key, the root key being generated according to the root key seed; and

writing the data key identifier and the encrypted data key seed into the USBKey.


 
83. The client according to claim 81, wherein the trigger request comprises a first trigger request and a second trigger request, and the one or more programs further comprise an instruction for executing the following operations:

sending the first trigger request to the cloud manager, the first trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the root key seed and the working program; and

sending the second trigger request to the cloud manager, the second trigger request being used for instructing the cloud manager to trigger the first cloud encryptor to store the data key seed and the data key identifier, and trigger the database proxy to store the encryption data dictionary.


 
84. A computer readable storage medium, the storage medium storing at least one instruction, at least one program, a code set, or an instruction set,
the at least one instruction, the at least one program, the code set, or the instruction set being loaded and executed by a processor, to implement the data processing method according to any one of claims 11 to 15, or
the at least one instruction, the at least one program, the code set, or the instruction set being loaded and executed by a processor, to implement the data processing method according to any one of claims 16 to 25, or
the at least one instruction, the at least one program, the code set, or the instruction set being loaded and executed by a processor, to implement the data processing method according to any one of claims 26 to 28, or
the at least one instruction, the at least one program, the code set, or the instruction set being loaded and executed by a processor, to implement the data processing method according to any one of claims 29 to 31.
 




Drawing

























Search report










Cited references

REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description