Data security processing method, security operation device, chip and computer device

By pre-configuring the storage entries for the original key and round key information, the problems of high resource overhead and low processing efficiency in the existing technology are solved, more efficient data security processing is achieved, and chip performance is improved.

CN116090022BActive Publication Date: 2025-10-17CHENGDU HAIGUANG INTEGRATED CIRCUIT DESIGN CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211566303.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-07
Publication Date
2025-10-17
Estimated Expiration
2042-12-07

AI Technical Summary

Technical Problem

Existing technologies have problems in data security processing, such as high resource overhead, high processing delay, and low efficiency. In particular, in multiple rounds of operations and data isolation protection in different memory areas, the round key calculation units need to be frequently switched, resulting in resource waste and performance degradation.

Method used

By pre-configuring the storage entries of the original keys, storing the original keys and their corresponding round key information, and using the stored round key groups for data security processing, repeated calculations are avoided, resource overhead is reduced, and processing efficiency is improved.

Benefits of technology

It effectively reduces the resource overhead of data security processing, improves processing efficiency, enhances the overall performance of the chip, and supports the data security protection requirements of multiple round key groups.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116090022B_ABST
    Figure CN116090022B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a data security processing method, a secure arithmetic unit, a chip and a computer device, wherein the method comprises: obtaining a data processing request; determining a target storage entry according to the data processing request; wherein the target storage entry stores a target original key and target round key storage information corresponding to the target original key; if the target round key storage information indicates that a target round key group has been stored, obtaining the stored target round key group; if the target round key storage information indicates that the target round key group has not been stored, calculating and generating the target round key group, and storing the calculated and generated target round key group and updating the target round key storage information; and performing security processing on data requested by the data processing request according to the target round key group. The embodiments of the present application can reduce the resource consumption of data security processing, improve the processing efficiency of data security processing, thereby improving the performance of data security processing and improving the performance of the chip.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present application relate to the technical field of data security, and in particular to a data security processing method, a secure operation device, a chip and a computer device. BACKGROUND

[0002] With the development of integrated circuits and the improvement of processes, the data computing and storage capabilities of chips have been greatly improved. There are data that need to be protected in various types of information and data processed by chips, so it is particularly important to study data security protection schemes for chips.

[0003] Currently, computer systems using chips mainly adopt von architecture design, that is, data computing and data storage are separated from each other; for example, data is generally stored in a storage device connected to the chip. In order to ensure the data security of the storage device, a data security processing scheme can be used to read and write data to the storage device; for example, when data is written to the storage device, the data is encrypted, and when data needs to be read from the storage device, the data is decrypted. Under this background, how to provide an improved technical solution to improve the performance of data security processing has become a technical problem that needs to be solved by those skilled in the art. SUMMARY

[0004] Therefore, embodiments of the present application provide a data security processing method, a secure operation device, a chip and a computer device to reduce the resource overhead of data security processing and improve the processing efficiency of data security processing, thereby improving the performance of data security processing and further improving the performance of the chip.

[0005] To achieve the above object, embodiments of the present application provide the following technical solutions.

[0006] In a first aspect, the embodiments of the present application provide a data security processing method, comprising:

[0007] obtaining a data processing request;

[0008] determining a target storage entry of a target original key according to the data processing request; wherein the target storage entry stores the target original key and target round key storage information corresponding to the target original key;

[0009] if the target round key storage information indicates that a target round key group corresponding to the target original key has been stored, obtaining the stored target round key group; wherein the target round key group includes a plurality of target round keys corresponding to the target original key, and is used for multi-round operation on data requested by the data processing request;

[0010] If the target round key storage information indicates that the target round key group is not stored, a target round key group corresponding to the target original key is calculated and generated; and the calculated and generated target round key group is stored, and the target round key storage information is updated;

[0011] According to the target round key group, the requested data of the data processing request is securely processed.

[0012] In a second aspect, an embodiment of the present application provides a secure operation device, comprising: a key management unit, a key storage unit, a cryptographic algorithm engine, and a round key calculation unit; wherein the key storage unit is configured with at least one storage entry of an original key, and the storage entry of the original key stores an original key and round key storage information corresponding to the original key;

[0013] The key management unit is configured to schedule the key storage unit, the cryptographic algorithm engine, and the round key calculation unit to perform the data security processing method as described in the first aspect.

[0014] In a third aspect, an embodiment of the present application provides a chip comprising the secure operation device as described in the second aspect.

[0015] In a fourth aspect, an embodiment of the present application provides a computer device comprising the chip as described in the third aspect.

[0016] The data security processing method provided by the embodiments of the present application can pre-configure a storage entry of an original key, and the storage entry of the original key can store an original key and round key storage information corresponding to the original key; thus, after obtaining a data processing request, the embodiments of the present application can determine a target storage entry of a target original key according to the data processing request, wherein the target storage entry stores the target original key and target round key storage information corresponding to the target original key. If the target round key storage information indicates that a target round key group corresponding to the target original key has been stored, it indicates that a plurality of target round keys corresponding to the original key (the target round key group comprises the plurality of target round keys corresponding to the target original key) have been stored and can be directly used for multi-round operation on the requested data; thus, the embodiments of the present application can obtain the stored target round key group. If the target round key storage information indicates that the target round key group is not stored, the embodiments of the present application can calculate and generate a target round key group corresponding to the target original key, store the calculated and generated target round key group, and update the target round key storage information. Further, the embodiments of the present application can securely process the requested data according to the target round key group, to achieve secure processing of the data. BRIEF DESCRIPTION OF DRAWINGS

[0017] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description only are a part of the embodiments of the present application, and for those skilled in the art, other drawings can be obtained based on the provided drawings without any creative effort.

[0018] Figure 1 An example diagram of a system architecture for data security protection.

[0019] Figure 2 Another example diagram of a system architecture for data security protection.

[0020] Figure 3 An example diagram of a structure of a key storage unit.

[0021] Figure 4 A flowchart of a process of configuring a storage entry of an original key provided by an embodiment of the present application.

[0022] Figure 5 A flowchart of a data security processing method provided by an embodiment of the present application.

[0023] Figure 6 Another flowchart of a data security processing method provided by an embodiment of the present application.

[0024] Figure 7A An example diagram of a structure of a round key calculation unit.

[0025] Figure 7B An example diagram of a structure of an encryption algorithm engine.

[0026] Figure 7C An example diagram of a structure of a decryption algorithm engine.

[0027] Figure 8 Still another flowchart of a data security processing method provided by an embodiment of the present application. DETAILED DESCRIPTION

[0028] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without any creative effort fall within the scope of protection of the present application.

[0029] With the emergence of the CXL (Compute EXpress Link) storage protocol, the storage configuration of a computer system is more flexible and extensible, and with the popularity of cloud computing technology, virtual machines are widely used, and each virtual machine hopes to have an independent storage area. Therefore, the computer system needs to implement a cryptographic algorithm engine (such as an encryption algorithm engine and a decryption algorithm engine) to securely protect data stored in the memory, which involves data security processing for the memory.

[0030] Data security processing for the memory mainly includes two aspects: encryption storage when data is written to the memory and corresponding decryption when data is read from the memory. For example, for data to be written to the memory, the data is encrypted using a key, and the encrypted data is saved to the memory. For example, when reading encrypted data from the memory, the encrypted data is decrypted using a key to obtain decrypted data.

[0031] Data security processing requires the use of a key, which is a parameter of a cryptographic algorithm and can be used to convert plaintext data into ciphertext or ciphertext into plaintext data. Among them, symmetric cryptographic algorithms and other cryptographic algorithms require multiple rounds of operations in one data encryption processing or one data decryption processing, and each round of operation requires a different round key, so one data encryption processing or one data decryption processing requires multiple round keys; for ease of explanation, multiple round keys used for one data security processing can form a round key group, for example, multiple round keys used for one data encryption processing or one data decryption processing can form a round key group. That is, symmetric cryptographic algorithms and other cryptographic algorithms require multiple rounds of operations to complete one data encryption processing or one data decryption processing, and the key used in each round of operation is called a round key, and the multiple round keys used in multiple rounds of operations form a round key group.

[0032] In one example, assuming that N rounds of operations are required to complete one data encryption processing or one data decryption processing, N round keys (here, the N round keys form a round key group) are required for N rounds of operations; then each round of operation uses a corresponding round key for operation, and then N round keys in the round key group are used to complete N rounds of operations to achieve one data encryption processing or one data decryption processing.

[0033] For ease of understanding, Figure 1 An example of a system architecture diagram for data security protection is shown, such as Figure 1As shown, the system for data security protection can include: a data processing engine 110 and a memory 120; wherein the data processing engine 110 is provided with an encryption algorithm engine 111, a decryption algorithm engine 112 and a round key calculation unit 113. The data processing engine 110 is, for example, a storage controller for controlling the memory 120.

[0034] When writing data to the memory 120, the encryption algorithm engine 111 can perform encryption processing on the data. One encryption processing on the data involves multiple rounds of operations of the encryption algorithm; thus the round key calculation unit 113 can calculate the round key for each round of operation of the encryption algorithm, so that the encryption algorithm engine 111 can perform encryption operation on the data through the multiple round keys calculated by the round key calculation unit 113 to obtain encrypted data; the encrypted data is then written into the memory 120 for storage;

[0035] When reading data from the memory 120, the decryption algorithm engine 112 can perform decryption processing on the encrypted data. One decryption processing on the encrypted data involves multiple rounds of operations of the decryption algorithm; thus the round key calculation unit 113 can calculate the round key for each round of operation of the decryption algorithm, so that the decryption algorithm engine 112 can perform decryption on the encrypted data through the multiple round keys calculated by the round key calculation unit 113 to obtain decrypted data.

[0036] That is, when performing each round of operation of the encryption algorithm, the round key calculation unit 113 needs to calculate the round key for each round of operation of the encryption algorithm round by round; the round key for each round of operation calculated by the round key calculation unit 113 can be provided to the encryption algorithm engine 111 round by round, so that the encryption algorithm engine 111 can complete the multiple rounds of operation of the encryption algorithm. Similarly, when performing each round of operation of the decryption algorithm, the round key calculation unit 113 needs to calculate the round key for each round of operation of the decryption algorithm round by round; the round key for each round of operation calculated by the round key calculation unit 113 can be provided to the decryption algorithm engine 112 round by round, so that the decryption algorithm engine 112 can complete the multiple rounds of operation of the decryption algorithm.

[0037] It should be noted that the same round key set can be used for the encryption algorithm and the decryption algorithm to operate on the same data, only the order of the round keys used by the encryption algorithm and the decryption algorithm is reversed; for example, the round key used for the first round of operation of the encryption algorithm is K0, the round key used for the last round of operation of the decryption algorithm is K0, and so on. The round key used for the last round of operation of the encryption algorithm is K0, which is also the round key used for the first round of operation of the decryption algorithm. The round key used for the last round of operation of the encryption algorithm can be referred to as the last round round key.

[0038] As can be seen from the above description, the round key calculation unit needs to recalculate the round key group supporting multi-round operation each time the data is securely processed (for example, each time the data is encrypted or each time the data is decrypted). Recalculating the round key group each time the data is securely processed undoubtedly leads to a large resource overhead of the data security processing, and also leads to a large processing delay and low processing efficiency of the data security processing. Based on this, the improved data security processing scheme is provided to reduce the resource overhead of the data security processing and improve the processing efficiency of the data security processing, thereby improving the performance of the data security processing and further improving the performance of the chip.

[0039] In addition, it should be noted that, in order to support the data isolation protection of different storage areas of the CXL and other storage protocols, the memory can be divided into multiple storage areas, and different keys may need to be set for different storage areas. This leads to the need for the round key calculation unit to calculate different round key groups for different storage areas when the data in different storage areas of the memory is securely processed, so that the round key calculation unit needs to switch between the calculation of multiple round key groups.

[0040] As can be seen, in the case where different round key groups are set for different storage areas of the memory, the round key calculation unit needs to switch between the calculation of multiple round key groups, thereby meeting the need for multiple round key groups for data security protection of the memory. Based on this, the data security processing scheme provided by the embodiments of the present application can further support the need for multiple round key groups for data security protection of the memory while improving the performance of the data security processing.

[0041] The data security processing scheme provided by the embodiments of the present application can pre-configure a storage entry of the original key, and the storage entry of the original key can be used to store the original key and round key storage information corresponding to the original key. Optionally, the round key storage information corresponding to the original key can be used to indicate the round key storage situation and the round key storage address corresponding to the original key. The original key can be used to generate multiple round keys supporting multi-round operation, forming a round key group of the original key. On this basis, when the round key group of the original key is used for data security processing, if the round key storage information in the storage entry of the original key indicates that the round key group of the original key has been stored, the embodiments of the present application can call the stored round key group to complete the multi-round operation of the data security processing, without the need to recalculate the round key group of the original key, thereby reducing the resource overhead of the data security processing and improving the processing efficiency of the data security processing.

[0042] As an optional implementation, the embodiment of the present application can pre-calculate and store the round key group corresponding to the original key in the case of pre-configuring the storage entry of the original key, so as to update the round key storage information in the storage entry of the original key based on the storage condition and storage address of the round key group; and then when the data security processing is performed by using the round key group corresponding to the original key, the stored round key group corresponding to the original key can be called by the round key storage information in the storage entry of the original key, without the need to re-calculate the round key group corresponding to the original key, so as to reduce the number of round key calculations, thereby reducing the resource consumption of data security processing and improving the processing efficiency of data security processing.

[0043] In other possible optional implementations, when the data security processing is performed by using the round key group corresponding to the original key, if it is determined that the round key group corresponding to the original key is not stored by the round key storage information in the storage entry of the original key, the round key group corresponding to the original key can be calculated and generated, and the calculated round key group is stored; at the same time, the round key storage information in the storage entry of the original key is updated based on the storage condition and storage address of the round key group; so that when the data security processing is performed again by using the round key group corresponding to the original key, the stored round key group corresponding to the original key can be called by the round key storage information in the storage entry of the original key, without the need to re-calculate the round key group corresponding to the original key.

[0044] Based on the above idea, the embodiment of the present application can improve and adjust the architecture of the data security protection system, as an optional implementation, Figure 2 An exemplary another system architecture diagram of data security protection is shown as follows, Figure 2 As shown in the figure, the data security protection system can include a security operator 200 and a memory 120. The security operator 200 can be regarded as a data processing engine with data security processing capability (such as data encryption and decryption capability) and round key calculation and storage capability. In optional implementations, the security operator 200 can be a storage controller for controlling the memory 120; for example, when the memory 120 is an internal memory, the security operator 200 can be an internal memory controller, which has data encryption and decryption capability and round key calculation and storage capability in an example; for another example, when the memory 120 is a CXL memory, the security operator 200 can be a CXL storage controller, which has data encryption and decryption capability and round key calculation and storage capability in an example.

[0045] In combination with Figure 1 and Figure 2As shown, the secure operation unit 200 can include a key management unit 210, a key storage unit 220, a cryptographic algorithm engine 230, and a round key calculation unit 113; wherein, as an optional implementation, the cryptographic algorithm engine 230 can include an encryption algorithm engine 111 and a decryption algorithm engine 112.

[0046] The key management unit 210 is responsible for the overall management of data security processing, including key generation, key scheduling, and key replacement and destruction, etc.; and the key management unit 210 can realize the scheduling of the round key calculation unit 113, the key storage unit 220 and the cryptographic algorithm engine 230 by analyzing the data request, so as to complete the security processing of the data.

[0047] The round key calculation unit 113 is responsible for calculating the corresponding round key group (i.e. multiple round keys generated by the original key) according to the original key. The key storage unit 220 is responsible for storing key information, including the storage entry of the original key and the round key group corresponding to the original key, etc.; further, the key storage unit 220 can also store the last round round key corresponding to the original key separately.

[0048] The cryptographic algorithm engine 230 is responsible for executing the cryptographic algorithm to perform security processing on the data; the cryptographic algorithm engine 230 needs to involve multiple rounds of operations of the cryptographic algorithm and use the round key group supporting multiple rounds of operations when performing security processing on the data once. For example, the encryption algorithm engine 111 in the cryptographic algorithm engine 230 can be responsible for executing the encryption algorithm, so as to perform encryption processing on the data written into the memory 120 and use the round key group supporting multiple rounds of operations of the encryption algorithm. For another example, the decryption algorithm engine 112 in the cryptographic algorithm engine 230 can be responsible for executing the decryption algorithm, so as to perform decryption processing on the encrypted data read from the memory 120 and use the round key group supporting multiple rounds of operations of the decryption algorithm.

[0049] In an optional implementation of configuring the storage entry of the original key, the key management unit 210 can configure the storage entry of the original key in the key storage unit 220. In a further optional implementation, the memory can be divided into multiple storage areas, and based on the number of the multiple storage areas, the key management unit 210 can correspondingly configure multiple storage entries of the original key in the key storage unit 220, wherein one storage entry of the original key can store one original key and the round key storage information corresponding to the original key. It should be noted that one original key can correspond to one storage area of the memory, and based on the number of the multiple storage areas divided by the memory, the embodiments of the present application can correspondingly configure multiple storage entries of the original key, so as to correspondingly configure different original keys (the round key groups generated by different original keys are different) for different storage areas of the memory; and then when performing data security processing on different storage areas of the memory, the embodiments of the present application can use the round key groups of different original keys to realize data security isolation protection of different storage areas.

[0050] As an optional implementation, Figure 3 An exemplary structure of the key storage unit is shown in a structure example diagram as shown in Figure 3 As shown, the key storage unit 220 can include: an original key storage unit 221 storing the storage entry of the original key, a round key storage unit 222 storing the round key group, and a final round key storage unit 223 storing the final round key.

[0051] For the multiple storage areas divided by the memory, the original key storage unit 221 can store the storage entry of the original key corresponding to each storage area, so as to configure multiple storage entries of the original key in the original key storage unit 221. The embodiments of the present application can store the round key group corresponding to part or all of the original keys in the round key storage unit 222, and store the final round key corresponding to part or all of the original keys in the final round key storage unit 223.

[0052] That is, in an optional implementation, not every original key has a round key group and a final round key stored in the key storage unit 220, so the original key storage entry needs to introduce the round key storage information corresponding to the original key, in order to indicate the round key storage condition and the round key storage address corresponding to the original key.

[0053] In an optional implementation, it is assumed that the upper limit of the number of stored round key groups in the round key storage unit 222 is less than the upper limit of the number of stored final round keys in the final round key storage unit 223; and the upper limit of the number of stored final round keys in the final round key storage unit 223 is less than the upper limit of the number of stored original key storage entries in the original key storage unit 221, for example, the upper limit of the number of stored round key groups in the round key storage unit 222 is defined as K, the upper limit of the number of stored final round keys in the final round key storage unit 223 is defined as J, and the upper limit of the number of stored original key storage entries in the original key storage unit 221 is defined as M, then K < J < M.

[0054] Based on the above assumption, the original key storage unit 221 can store the storage entries of the respective original keys, and one storage entry of an original key can store the original key and the round key storage information corresponding to the original key; for example, based on the M original keys of original key 0 to original key M-1, the original key storage unit 221 can store M storage entries of the original keys, which are the storage entry of original key 0 to the storage entry of original key M-1.

[0055] Optionally, in the storage entry of the original key, the round key storage information can include a round key identifier and a round key address; wherein the round key identifier is used to indicate the round key storage condition corresponding to the original key, and the round key address is used to indicate the round key storage address corresponding to the original key. For example, the storage entry of original key 0 can store original key 0, the round key identifier corresponding to original key 0, and the round key address; thereby indicating the round key storage condition corresponding to original key 0 through the round key identifier corresponding to original key 0, and indicating the round key storage address corresponding to original key 0 through the round key address corresponding to original key 0. For another example, the storage entry of original key 1 can store original key 1, the round key identifier corresponding to original key 1, and the round key address; and so on, the storage entry of original key M-1 can store original key M-1, the round key identifier corresponding to original key M-1, and the round key address.

[0056] In the case that the original key storage unit 221 stores the storage entry of original key 0 to the storage entry of original key M-1, the round key storage unit 222 can store K round key groups, for example, the 0th round key group to the K-1th round key group; it is assumed that one round key group includes N round keys supporting N rounds of operation, then the 0th round key group stored in the round key storage unit 222 includes the 0th round key 1 to the 0th round key N, the 1st round key group includes the 1st round key 1 to the 1st round key N, and so on, the K-1th round key group includes the K-1th round key 1 to the K-1th round key N.

[0057] The storage address of the round key group of the original key in the round key storage unit 222 can be mapped by the round key address in the storage entry of the original key. Alternatively, the mapping of the storage address of the round key group by the round key address can be in the form of full associative mapping of the address, or in the form of group associative mapping, or in other address mapping forms.

[0058] The last round round key storage unit 223 can store the last round round keys of the J original keys, such as the last round round key being the round key N in the round key group, the last round round key storage unit 223 can store the round key N of the 0th round key group, the round key N of the 1st round key group, and so on, and the round key N of the J-1th round key group.

[0059] Since the storage entries of the original keys stored in the original key storage unit and the round key groups stored in the round key storage unit and the last round round keys stored in the last round round key storage unit can not be in a one-to-one correspondence, in order to indicate the round key storage information corresponding to the original key, in an optional implementation, the storage domain segment of the round key identifier and the round key address is added in the storage entry corresponding to the original key.

[0060] Alternatively, for any storage entry of an original key, the round key identifier stored in the storage entry can indicate the storage condition of the round key corresponding to the original key; in an implementation example, the storage condition of the round key corresponding to the original key can be divided into three cases:

[0061] The round key group corresponding to the original key is stored, for example, the round key group corresponding to the original key is stored in the round key storage unit 222; the round key group corresponding to the original key is stored, indicating that all the multiple round keys corresponding to the original key are stored in the round key storage unit 222;

[0062] The last round round key corresponding to the original key is stored separately, for example, the last round round key corresponding to the original key is stored in the last round round key storage unit 223;

[0063] None of the round keys corresponding to the original key is stored, for example, the round key group corresponding to the original key is not stored in the round key storage unit 222, and the last round round key corresponding to the original key is not stored in the last round round key storage unit 223.

[0064] In one implementation example, the embodiment of the present application can represent the storage condition of the round key corresponding to the original key by different values of the round key identifier corresponding to the original key. For example, when the value of the round key identifier corresponding to the original key is a first value (for example, 10), it indicates that the round key group corresponding to the original key is stored (i.e., the round key group corresponding to the original key is stored in the round key storage unit 222). For another example, when the value of the round key identifier corresponding to the original key is a second value (for example, 00), it indicates that none of the round keys corresponding to the original key is stored (i.e., the round key group corresponding to the original key is not stored in the round key storage unit 222, and the last round key corresponding to the original key is not stored in the last round key storage unit 223). For still another example, when the value of the round key identifier corresponding to the original key is a third value (for example, 01), it indicates that the last round key corresponding to the original key is stored separately (i.e., the last round key corresponding to the original key is stored in the last round key storage unit 223). In an optional implementation example, the round key identifier can occupy 2-bit storage space; when the value of the round key identifier is the first value and the third value, the round key identifier is considered valid.

[0065] For the storage entry of any original key, the round key address corresponding to the original key can be adjusted according to the storage condition of the corresponding round key. When the round key identifier corresponding to the original key indicates that the round key group corresponding to the original key is stored (for example, the value of the round key identifier corresponding to the original key is the first value), the round key address corresponding to the original key can be the storage address of the round key group corresponding to the original key (for example, the storage address of the round key group corresponding to the original key in the round key storage unit 222).

[0066] When the round key identifier corresponding to the original key indicates that the last round key corresponding to the original key is stored separately (for example, the value of the round key identifier corresponding to the original key is the third value), the round key address corresponding to the original key can be the storage address of the last round key corresponding to the original key (for example, the storage address of the last round key corresponding to the original key in the last round key storage unit 223). When the round key identifier corresponding to the original key indicates that none of the round keys corresponding to the original key is stored (for example, the value of the round key identifier corresponding to the original key is the second value), the round key address corresponding to the original key can be empty.

[0067] That is, the round key address can indicate the storage address of the last round key in the last round key storage unit, or the storage address of the round key group in the round key storage unit. When the value of the round key identifier is the first value, the round key address can indicate the storage address of the corresponding round key group in the round key storage unit; when the value of the round key identifier is the third value, the round key address can indicate the storage address of the corresponding last round key in the last round key storage unit.

[0068] It should be noted that, without considering the storage burden of the key storage unit 220, the application embodiment can also set the upper limit of the storage number of the round key group in the round key storage unit 222, which is equal to the upper limit of the storage number of the last round round key in the last round round key storage unit 223, and is equal to the storage number of the storage entries of the original key in the original key storage unit 221, that is, K = J = M; therefore, in the possible case, K≤J≤M, the selection of the specific values of K and J needs to consider the data read delay of the memory, the maximum number of devices supported by the system, the storage area division of the system and other factors.

[0069] Based on the idea of pre-configuring the storage entries of the original key in the application embodiment, the application embodiment can pre-configure at least one storage entry of the original key in the original key storage unit 221, wherein one original key corresponds to one storage area of the memory, and the data of one storage area is securely processed by the round key group corresponding to the original key. As an optional implementation, Figure 4 An exemplary flowchart for configuring the storage entries of the original key provided by the application embodiment is shown, which can be implemented by the security operator 200; as Figure 4 shown, the flowchart can include the following steps.

[0070] In step S410, a configuration request is obtained, which carries an original key and a key identifier of the original key.

[0071] In some embodiments, a CPU or a processor dedicated to data security configuration, or a security processor, can pass a configuration request to the security operator 200 to request the configuration of the storage entries of the original key in the original key storage unit 221 of the security operator 200. The configuration request can carry the original key and the key identifier for identifying the original key; different original keys can be distinguished by using different key identifiers.

[0072] As an optional implementation, the application embodiment can configure the same original key for the memory, and correspondingly, the original key storage unit 221 can configure a separate storage entry of the original key, so that the data in the memory is securely processed by the round key group corresponding to the same original key. In other optional implementations, the application embodiment can configure different original keys for each storage area of the memory, and correspondingly, the original key storage unit 221 can configure multiple storage entries of the original key, so that the data in different storage areas of the memory is securely processed by the round key group corresponding to different original keys, to achieve data security isolation of different storage areas.

[0073] In step S411, it is judged whether the permission level of the configuration request meets the preset permission level. If not, step S412 is executed; if yes, step S413 is executed.

[0074] Considering the security of configuration, the preset permission level can be set in the embodiments of the present application. Only when the permission level of the configuration request meets the preset permission level, the embodiments of the present application allow responding to the configuration request.

[0075] As an optional implementation, judging whether the permission level of the configuration request meets the preset permission level can be judging whether the device sending the configuration request is a preset secure device. The preset secure device can be, for example, a secure processor dedicated to data security configuration, or a specific virtual machine running in a CPU or other processor. Of course, the embodiments of the present application also support other permission judging manners to judge whether the permission level of the configuration request meets the preset permission level, and the embodiments of the present application are not limited thereto.

[0076] In step S412, an error is reported and the process is ended.

[0077] When the permission level of the configuration request does not meet the preset permission level, the embodiments of the present application can report an error and end the configuration process.

[0078] In step S413, the storage address of the storage entry corresponding to the original key is determined according to the key identifier of the original key; and the storage entry corresponding to the original key is configured at the determined storage address.

[0079] In step S414, the original key and the round key storage information of the original key are stored in the storage entry corresponding to the original key.

[0080] When the permission level of the configuration request meets the preset permission level, the embodiments of the present application can respond to the configuration request, so as to configure the storage entry of the corresponding original key in the original key storage unit 221. As an optional implementation, the embodiments of the present application can determine the storage address of the storage entry of the original key based on the key identifier of the original key; so as to configure the storage entry corresponding to the original key at the storage address; and then save the original key and the corresponding round key storage information through the storage entry corresponding to the original key.

[0081] Optionally, in the case that the storage entry corresponding to the original key is initially configured, since the round key group corresponding to the original key has not been calculated and stored, the round key identifier in the storage entry can indicate that none of the round keys corresponding to the original key is stored, for example, the value of the round key identifier in the storage entry is set as the second value, and the round key address is set as empty. In the case that the round key group corresponding to the original key is calculated and stored, the embodiment of the present application can adjust the round key storage information in the storage entry, for example, adjust the round key identifier in the storage entry to indicate that the round key group corresponding to the original key is stored, and set the round key address as the storage address of the round key group.

[0082] It should be noted that, by corresponding the storage address of the storage entry corresponding to the original key to the key identifier of the original key, the case that the key identifier of the original key needs to be stored can be avoided. In one implementation, the embodiment of the present application can extract the key identifier of the original key from the configuration request, and use the key identifier as the storage bias address of the storage entry of the original key, so as to configure the storage entry of the original key in the storage space corresponding to the storage bias address of the original key storage unit 221.

[0083] The embodiment of the present application can configure the storage entry of the original key in the original key storage unit 221 through the process shown in Figure 4 , and can also update the content (for example, the original key) in the configured storage entry through the process shown in Figure 4 .

[0084] In addition, in the case that the original key is configured for multiple storage areas of the memory, the embodiment of the present application can support configuring the storage entries of multiple original keys respectively through multiple configuration requests. In other possible implementations, the embodiment of the present application can also support configuring the storage entries of multiple original keys in one configuration request, for example, one configuration request can carry multiple sets of configuration data, and one set of configuration data includes the original key corresponding to one storage area and the key identifier of the original key.

[0085] It should be noted that, in addition to using the key identifier of the original key as the storage address of the storage entry of the original key to associate the storage entry of the original key with the key identifier, the embodiment of the present application can also support storing the key identifier of the original key at the same time, and associating the storage entry of the original key with the stored key identifier. In addition, judging whether the permission level of the configuration request meets the preset permission level can be regarded as an optional process, for example, the configuration request reaches the security operation unit 200 through a specific data channel, and it is not necessary to judge the permission level of the configuration request.

[0086] The embodiment of the present application can respond to the data processing request for the memory in the case that the storage entry of the original key is preconfigured, so as to realize the safe processing of data. As an optional implementation, Figure 5 An example is shown in the flowchart of the data safe processing method provided by the embodiment of the present application, and the flow can be implemented by the secure operator 200; as shown in the figure, Figure 5 The flow can include the following steps.

[0087] In step S510, the data processing request is acquired.

[0088] In step S511, if the data processing request indicates to process the requested data safely, the target key identifier of the target original key is determined from the data processing request.

[0089] The data processing request can be the data processing request for the memory, including the data write request for writing the requested data into the memory and the data read request for reading the data from the memory. For example, the data write request carries the requested data and the write address, and is used for writing the requested data (here, the requested data is the data written into the memory) into the write address of the memory; for another example, the data read request can carry the read address, and is used for requesting to read the requested data (here, the requested data is the data read from the memory) from the read address of the memory.

[0090] According to whether the requested data of the data processing request has the demand of security protection, the data processing request can indicate to process the requested data transparently or to process the requested data safely. As an optional implementation, the embodiment of the present application can judge whether the data processing request carries the security identifier, so as to judge whether the data processing request indicates to process the requested data safely; if the data processing request does not carry the security identifier, the data processing request indicates to process the requested data transparently, so that the embodiment of the present application can not process the requested data safely, but directly transmit the requested data (for example, directly write or directly read the requested data); if the data processing request carries the security identifier, the data processing request indicates to process the requested data safely, so that the embodiment of the present application needs to process the requested data safely by using the target round key group corresponding to the target original key. The embodiment of the present application mainly considers the case that the data processing request processes the requested data safely.

[0091] In a further optional implementation, the data processing request indicates that the requested data is to be processed securely, which can be to encrypt the data requested to be written into the memory or to decrypt the data requested to be read from the memory. Optionally, the security identifier can be an encryption identifier for writing data or a decryption identifier for reading data. If the data processing request is a data write request and the data write request carries the encryption identifier, it indicates that the data requested to be written into the memory is to be encrypted; if the data write request does not carry the encryption identifier, it indicates that the data requested to be written into the memory is to be transmitted transparently. If the data processing request is a data read request and the data read request carries the decryption identifier, it indicates that the data requested to be read from the memory is to be decrypted; if the data read request does not carry the decryption identifier, it indicates that the data requested to be read from the memory is to be transmitted transparently.

[0092] In an optional implementation, a fixed field in the request content of the data processing request can be used as the security identifier; for example, different fixed fields in the request content of the data processing request can be used as the encryption identifier and the decryption identifier; for another example, different assignments of the same fixed field in the request content of the data processing request can be used as the encryption identifier and the decryption identifier.

[0093] When the data processing request indicates that the requested data is to be processed securely, the data processing request can carry the target key identifier of the target original key, so that the target key identifier can be determined from the data processing request. For ease of description, the round key group in which the requested data is to be processed securely is referred to as a target round key group, the round key in the target round key group is referred to as a target round key, the original key corresponding to the target round key is referred to as a target original key, and the key identifier of the target original key is referred to as a target key identifier.

[0094] As an optional implementation, when the data processing request indicates that the requested data is to be processed securely, a key selection identifier can be specified in the data processing request to determine the target original key, and the key selection identifier in the data processing request is consistent with the target key identifier of the target original key.

[0095] In a possible implementation example, if the data processing request is a data write request indicating that the data requested to be written into the memory is to be encrypted, the data write request can carry the write data, the write address, the encryption identifier, and the target key identifier of the target original key. If the data processing request is a data read request indicating that the data requested to be read from the memory is to be decrypted, the data read request can carry the read address, the decryption identifier, and the target key identifier of the target original key.

[0096] In step S512, according to the target key identifier, it is judged whether the target storage entry corresponding to the target original key is configured or not. If not, step S513 is executed; if yes, step S514 is executed.

[0097] As an optional implementation, the storage entry of the original key can be pre-configured, and the storage address of the pre-configured storage entry of the original key is associated with the key identifier of the original key. Thus, after the target key identifier of the target original key is determined from the data processing request, the target storage entry corresponding to the target original key can be judged by the target key identifier; for example, it can be judged whether the storage address corresponding to the target key identifier in the original key storage unit is configured with a storage entry. For the convenience of description, the storage entry corresponding to the target original key can be called the target storage entry.

[0098] In step S513, an error is reported and the process is ended.

[0099] If the target storage entry corresponding to the target original key is not configured, the application embodiment can report an error and end the process.

[0100] In step S514, according to the target round key storage information stored in the target storage entry, it is judged whether the target round key group corresponding to the target original key has been stored or not. If yes, step S515 is executed; if not, step S516 is executed.

[0101] When the result of step S512 is yes, the target storage entry corresponding to the target original key pre-configured can be obtained by the application embodiment. In addition to saving the target original key, the target storage entry can also save the target round key storage information corresponding to the target original key; the round key storage information corresponding to the target original key can be called the target round key storage information by the application embodiment.

[0102] Based on the target round key storage information, the application embodiment can judge whether the target round key group corresponding to the target original key has been stored in the round key storage unit or not; if the target round key group has been stored in the round key storage unit, the application embodiment can directly call the stored target round key group to perform security processing on the requested data; if the target round key group is not stored in the round key storage unit, the application embodiment needs to call the round key calculation unit to generate the target round key group corresponding to the target original key, so as to perform security processing on the requested data by using the generated target round key group, and store the generated target round key group in the round key storage unit and update the target round key storage information.

[0103] As an optional implementation, the target round key storage information can include a target round key identifier corresponding to the target original key and a target round key address; the target round key identifier can be used to indicate the storage of the round key corresponding to the target original key, and the target round key address is used to indicate the storage address of the round key corresponding to the target original key.

[0104] Optionally, if the value of the target round key identifier is the first value, the target round key group has been stored; at this time, the target round key address is the storage address of the target round key group in the round key storage unit.

[0105] Optionally, if the value of the target round key identifier is the second value, none of the target round keys corresponding to the target original key has been stored, that is, none of the target round keys has been stored, and at this time, the target round key address can be empty.

[0106] Optionally, if the value of the target round key identifier is the third value, the target last round key corresponding to the target original key is stored separately, and at this time, the target round key address is the storage address of the target last round key in the last round key storage unit. The last round key in the target round key group can be referred to as the target last round key.

[0107] In step S515, the stored target round key group is obtained; and the requested data is processed securely according to the target round key group.

[0108] When the result of step S514 is yes, the stored target round key group can be obtained by the embodiment of the application. For example, the stored target round key group can be obtained from the round key storage unit according to the target round key address.

[0109] Based on the obtained stored target round key group, the requested data can be processed securely by the embodiment of the application using the target round key group. For example, the requested data can be encrypted or decrypted using the plurality of target round keys in the target round key group.

[0110] In step S516, a target round key group corresponding to the target original key is calculated and generated; the calculated and generated target round key group is stored, and the target round key storage information is updated; and the requested data is processed securely according to the calculated and generated target round key group.

[0111] If the result of step S515 is negative, the embodiment of the present application may confirm that the target round key group is not stored. Therefore, the embodiment of the present application needs to calculate and generate the target round key group corresponding to the target original key on the spot, and then use the calculated target round key group to securely process the requested data. In an optional implementation, the embodiment of the present application may call the round key calculation unit 113 to calculate and generate the target round key group corresponding to the target original key, and then provide the target round key group to the cryptographic algorithm engine 230 for secure processing of the requested data.

[0112] In one exemplary implementation, the round key calculation unit 113 may include multiple calculation units in a cascaded configuration, configured to calculate the round keys for each round of operations. Specifically, one calculation unit in the round key calculation unit 113 may be used to calculate one round key. Thus, the multiple calculation units in the cascaded configuration can be used to calculate multiple round keys, thereby implementing the calculation of a round key group. The round keys for each round of operations calculated by the multiple calculation units in the cascaded configuration of the round key calculation unit 113 may be provided to the cryptographic algorithm engine 230 round by round, so that the cryptographic algorithm engine 230 can securely process the requested data.

[0113] It should be noted that when the calculation units of the cascade structure in the round key calculation unit calculate the round key, each level of the calculation unit can receive the calculation result of the calculation unit of the previous level and output the calculation result of the calculation unit of the current level to the calculation unit of the next level, thereby iteratively realizing the calculation of each round key. For example, taking a round key group including N round keys supporting N round operations as an example, it takes N calculation cycles to generate N round keys of a key group using N calculation units of a cascade structure. Furthermore, the embodiment of the present application can support the parallel calculation of round key groups of multiple original keys; for example, N calculation units using a cascade structure can output round keys of different rounds corresponding to up to N original keys in one calculation cycle; in one example, the calculation unit of the first round generates the round key of the first round operation of the first original key, the calculation unit of the second round generates the round key of the second round operation of the second original key, and so on.

[0114] After calculating and generating the target round key group, the embodiment of the present application can store the calculated target round key group (for example, storing the calculated target round key group in the round key storage unit 222), so that the target round key group that was not originally stored can be stored during the current data security processing. Therefore, when the target round key group is subsequently used for data security processing, the embodiment of the present application can directly call the stored target round key group without having to recalculate the target round key group.

[0115] When the target round key group is stored, the target round key storage information can be updated synchronously according to the embodiment of the present application. Alternatively, the value of the target round key identifier in the target round key storage information can be set as the first value, and the target round key address can be set as the storage address of the calculated target round key group (for example, the target round key address is set as the storage address of the calculated target round key group in the round key storage unit).

[0116] In a possible implementation, if the upper limit of the number of stored round key groups in the round key storage unit 222 is less than the number of stored original key entries in the original key storage unit 221, since the round key storage unit 222 only stores part of the round key groups of the original keys, when the target round key group is stored in the round key storage unit 222, the round key storage unit 222 can not have free storage space. Based on this, the embodiment of the present application can determine whether there is free storage space in the storage space for storing round key groups (for example, whether there is free storage space in the round key storage unit 222); if there is no free storage space, the embodiment of the present application can select a deleted selected round key group from the round key groups already stored in the round key storage unit 222; delete the selected round key group and separately store the last round key in the selected round key group (for example, separately store the last round key in the selected round key group in the last round key storage unit 223); and update the round key storage information in the storage entry of the original key corresponding to the selected round key group. After the selected round key group is deleted from the round key storage unit 222, the storage address corresponding to the selected round key group can be used to store the calculated target round key group; thus, the embodiment of the present application can set the target round key address as the storage address corresponding to the selected round key group.

[0117] In an optional implementation, when the selected round key group is selected for deletion from the round key storage unit 222, the selected round key group can be a round key group in the round key storage unit 222 that meets the deletion condition (for example, a round key group that has not been used recently, or a round key group that has not been used recently based on priority). When the number of stored round key groups reaches the upper limit, the round key group that has not been used recently is deleted, and the storage space is left empty to save the newly calculated target round key group, which can enable the round key storage unit 222 to store round key groups that are frequently used, thereby improving the probability that the round key groups stored in the round key storage unit 222 are directly used for data security processing, and saving the storage space of the round key storage unit 222.

[0118] The data security processing method provided by embodiments of the present application can pre-configure a storage entry for an original key. The original key storage entry can store the original key and the round key storage information corresponding to the original key. Therefore, after receiving a data processing request, the embodiment of the present application can determine a target storage entry for a target original key based on the data processing request. The target storage entry stores the target original key and the target round key storage information corresponding to the target original key. If the target round key storage information indicates that a target round key group corresponding to the target original key is already stored, this means that multiple target round keys corresponding to the original key are already stored (the target round key group includes multiple target round keys corresponding to the target original key) and can be directly used to perform multiple rounds of operations on the requested data. Thus, the embodiment of the present application can obtain the stored target round key group. If the target round key storage information indicates that the target round key group is not stored, the embodiment of the present application can calculate and generate a target round key group corresponding to the target original key, store the calculated target round key group, and update the target round key storage information. Furthermore, the embodiment of the present application can securely process the requested data based on the target round key group to achieve secure data processing.

[0119] It can be seen that the data security processing solution provided in the embodiment of the present application can store the original key and the round key storage information corresponding to the original key through the pre-configured storage entry of the original key. Therefore, when performing data security processing, if the round key storage information indicates that the round key group required for data security processing has been stored, the stored round key group can be called to complete multiple rounds of data security processing without the need to recalculate the supporting round key group, thereby achieving the effect of reducing the number of round key calculations, thereby reducing the resource overhead of data security processing, and improving the processing efficiency of data security processing, thereby improving the performance of data security processing, and improving the performance of the chip applying the data security processing solution.

[0120] In a further optional implementation, when there is no free storage space in the round key storage unit, the embodiment of the present application selects to delete the selected round key group from the round key storage unit, and the final round key of the selected round key group can be stored separately in the final round key storage unit. This is because during data decryption processing, the final round key can be used as input to the round key calculation unit to generate multiple round keys supporting the decryption algorithm. Therefore, separate storage of the final round key is meaningful. It should be noted that the multiple round keys of the decryption algorithm can be calculated based on the final round key or the original key; the multiple round keys of the decryption algorithm and the multiple round keys of the corresponding encryption algorithm belong to the same round key group, but are used in the opposite order.

[0121] To further introduce the data security processing method provided by the embodiments of the present application, the scheme provided by the embodiments of the present application is introduced from the data encryption angle and the data decryption angle respectively.

[0122] As an optional implementation, Figure 6 An exemplary another flowchart of the data security processing method provided by the embodiments of the present application is shown, which can be applied to the data encryption scene when data is written to the memory, referring to Figure 6 The flowchart can include the following steps.

[0123] In step S610, the data write request is acquired.

[0124] In step S611, it is judged whether the data write request is to be processed by transparent transmission or encryption; if it is to be processed by transparent transmission, step S612 is jumped to, and if it is to be processed by encryption, step S613 is jumped to.

[0125] As an optional implementation, if the data write request does not carry the encryption identifier, it can be determined that the data to be written to the memory is to be processed by transparent transmission; if the data write request carries the encryption identifier, it can be determined that the data to be written to the memory is to be processed by encryption.

[0126] In step S612, the encryption flag bit of the data is set to be invalid, and the data is placed to the encryption queue, and step S624 is jumped to.

[0127] When the data is processed by transparent transmission, the encryption flag bit of the data is set to be invalid, so that when the encryption algorithm engine processes the corresponding data in the encryption queue, the data can be directly written to the memory by transparent transmission based on the invalid encryption flag bit, without encryption processing.

[0128] In step S613, it is judged whether the original key storage unit stores the target storage entry of the target original key according to the target key identifier in the data write request; if not, step S614 is executed, and if yes, step S615 is executed.

[0129] In step S614, an error is reported and the flowchart is ended.

[0130] In step S615, it is judged whether the round key storage unit stores the target round key group corresponding to the target original key according to the target round key identifier of the target storage entry; if not, step S616 is executed, and if yes, step S623 is executed.

[0131] Optionally, the embodiments of the present application can judge whether the target round key identifier is the first value; if yes, it can be determined that the round key storage unit stores the target round key group, and if not, it can be determined that the round key storage unit does not store the target round key group.

[0132] In step S616, according to the target round key identification, it is judged whether the target last round key of the target round key group is stored in the last round key storage unit. If yes, step S617 is executed; if no, step S618 is executed.

[0133] Optionally, when the target round key identification is not the first value, the embodiment of the present application can further judge whether the target round key identification is the third value. If yes, the target last round key of the target round key group is stored in the last round key storage unit; if no, the target last round key of the target round key group is not stored in the last round key storage unit.

[0134] In step S617, the target last round key in the last round key storage unit is deleted.

[0135] In the case that the target round key group is not stored, the embodiment of the present application needs to calculate and generate the target round key group subsequently. In this case, if the target last round key in the target round key group is stored separately in the last round key storage unit, the embodiment of the present application can delete the target last round key in the last round key storage unit, so as to avoid the target last round key in the last round key storage unit being repeated with the target last round key in the target round key group calculated and generated subsequently. After step S617 is executed, step S618 can be jumped to.

[0136] In step S618, it is judged whether the round key storage unit has free storage space. If no, step S619 is executed; if yes, step S621 is executed.

[0137] In step S619, the round key group which is not used for the longest time in the round key storage unit is deleted.

[0138] In step S620, the last round key in the round key group which is not used for the longest time is stored in the last round key storage unit.

[0139] The embodiment of the present application can check whether the round key storage unit has free storage space for storing the target round key group calculated and generated subsequently. If there is no free storage space, the embodiment of the present application can delete the round key group which is not used for the longest time in the round key storage unit, and save the last round key in the deleted round key group in the last round key storage unit, so as to backup the last round key in the deleted round key group.

[0140] When the last round key in the deleted round key group is saved in the last round key storage unit, if the last round key storage unit also has no free storage space, the embodiment of the present application can delete the last round key which is not used for the longest time in the last round key storage unit.

[0141] Optionally, for the round key group deleted from the round key storage unit, the embodiment of the present application, when saving the last round key in the round key group in the last round key storage unit, can also update the storage entry of the original key corresponding to the round key group, for example, set the value of the round key identifier in the storage entry to a third value (indicating that the last round key is stored separately), and set the round key address to the storage address of the last round key. After step S620 is executed, step S621 can be jumped to.

[0142] In step S621, the round key calculation unit is called to calculate a target round key group corresponding to a target original key.

[0143] As an optional implementation, the round key calculation unit provided by the embodiment of the present application can be divided into a forward round key calculation unit and a reverse round key calculation unit; the forward round key calculation unit can be used to calculate a plurality of round keys supporting multi-round operation of an encryption algorithm according to an original key; the reverse round key calculation unit can be used to calculate a plurality of round keys supporting multi-round operation of a decryption algorithm according to a last round key; the round key sequence used based on the multi-round operation of the decryption algorithm is inverse to the round key sequence used based on the multi-round operation of the encryption algorithm, so the round key sequence calculated by the forward round key calculation unit and the reverse round key calculation unit can be inverse.

[0144] Optionally, in the implementation of step S621, the embodiment of the present application can pass the target original key to the forward round key calculation unit, and calculate a plurality of target round keys supporting multi-round operation of the encryption algorithm by the forward round key calculation unit, and the plurality of target round keys form the target round key group.

[0145] For the convenience of understanding, Figure 7A An exemplary structure diagram of the round key calculation unit is shown as follows: Figure 7A As shown in the structure diagram, the round key calculation unit 113 can include a forward round key calculation unit 710 and a reverse round key calculation unit 720. Taking the example that the encryption algorithm and the decryption algorithm need N-round operation and N round keys are used, the forward round key calculation unit 710 can calculate N round keys based on an original key; as shown in the structure diagram, the forward round key calculation unit 710 can include N calculation units, for example, calculation units 711 to 71N, so that after the original key is input into the forward round key calculation unit 710, the calculation unit 711 in the forward round key calculation unit 710 can calculate a round key 1 (i.e., a round key for the first round operation of the encryption algorithm), the calculation result of the calculation unit 711 is input into the calculation unit 712, so that the calculation unit 712 can calculate a round key 2 (i.e., a round key for the second round operation of the encryption algorithm), and so on, the calculation unit 71N can calculate a round key N (i.e., a round key for the Nth round operation of the encryption algorithm). Figure 7A ​

[0146] The reverse round key calculation unit 720 can calculate N-1 round keys supporting the other N-1 round operations of the decryption algorithm based on the last round key (i.e., round key N), that is, in the case where the last round key is given, the round key N can be used for the first round operation of the decryption algorithm, and the reverse round key calculation unit 720 does not need to calculate the round key N, but only needs to calculate the remaining round keys N-1 to round key 1; the round key sequence used by the multi-round operation of the decryption algorithm is reversed compared with the round key sequence used by the multi-round operation of the encryption algorithm, and the reverse round key calculation unit 720 can calculate from the round key N-1 and in reverse order to the round key 1. Based on this, N-1 calculation units can be arranged in the reverse round key calculation unit 720, such as calculation units 72N-1 to 721; so that after the round key N is input into the reverse round key calculation unit 720, the calculation unit 72N-1 in the reverse round key calculation unit 720 can calculate the round key N-1 (i.e., the round key of the second round operation of the decryption algorithm), and the calculation result of the calculation unit 72N-1 is input into the calculation unit 72N-2, so that the calculation unit 72N-2 can calculate the round key N-2 (i.e., the round key of the third round operation of the decryption algorithm), and so on, and the calculation unit 721 can calculate the round key 1 (i.e., the round key of the Nth round operation of the decryption algorithm).

[0147] It can be seen that the forward round key calculation unit can sequentially calculate a plurality of round keys supporting multi-round operations (such as sequentially calculating round key 1 to round key N) according to the original key. The reverse round key calculation unit can calculate a plurality of round keys supporting multi-round operations in reverse order (such as calculating round key N-1 to round key 1 in reverse order) according to the last round key.

[0148] Further, in order to be able to provide round keys in time to ensure the encryption and decryption performance, the forward round key calculation unit and the reverse round key calculation unit can both adopt a cascade structure design, and the number of cascades is related to the specific symmetric encryption algorithm, for example, 32 round keys are needed for the SM4 algorithm, and then 32 calculation units are cascaded. Each calculation unit outputs the calculation result to the next calculation unit, and at the same time accepts the calculation result of the previous calculation unit as the input of the next calculation. By adopting the cascade structure, all round key generations require N calculation periods, wherein one round key is generated in each calculation period, and in one calculation period, the forward round key calculation unit and the reverse round key calculation unit can output at most N round keys corresponding to different rounds of the original key, and N is the number of cascades of the round key calculation unit, that is, the number of a plurality of round keys supporting multi-round operations.

[0149] In step S622, the calculated target round key group is stored in the round key storage unit, and the target round key identifier and the target round key address are updated.

[0150] Optionally, if there is no free storage space in the round key storage unit, the storage address of the deleted round key group in the round key storage unit can be used as the storage address of the calculated target round key group, so that the calculated target round key group can be stored in the round key storage unit. If there is free storage space in the round key storage unit, the embodiment of the present application can directly store the calculated target round key group in the round key storage unit. When storing the target round key group, the embodiment of the present application can update the target round key storage information, for example, set the target round key identifier in the target round key storage information to the first value, and set the target round key address to the storage address of the target round key group in the round key storage unit.

[0151] In step S623, the encryption flag of the data is set to valid, and the data is placed in the encryption queue.

[0152] In step S624, if the encryption flag of the data in the encryption queue is valid, the encryption algorithm engine is called to perform the multi-round operation of the encryption algorithm according to the target round key group to encrypt the data, and the encrypted data is written into the memory; if the encryption flag of the data in the encryption queue is invalid, the data is transparently written into the memory.

[0153] Optionally, when the encryption flag of the data is valid, the embodiment of the present application can read the target round key of each round operation of the encryption algorithm, and input the encryption algorithm engine round by round, so as to perform the multi-round operation of the encryption algorithm on the data through the encryption algorithm engine, and realize the encryption processing of the data. In one example, Figure 7B An exemplary structure diagram of the encryption algorithm engine is shown as follows, Figure 7B As shown in the figure, taking the case that the encryption algorithm needs N rounds of operation as an example, the encryption algorithm engine can include N rounds of encryption operation units (for example, a first round encryption operation unit to an Nth round encryption operation unit), and the N rounds of encryption operation units sequentially complete the N rounds of operation of the encryption algorithm by using the corresponding round key, so as to realize the encryption processing of the data. For example, the first round encryption operation unit operates the data based on the first round round key 1, and the operation result is input into the second round encryption operation unit; the second round encryption operation unit operates the operation result of the first round encryption operation unit based on the second round round key 2, and the operation result is input into the next round of encryption operation unit; and so on, so that the Nth round encryption operation unit completes the data operation based on the last round round key N, and obtains the encrypted data. That is to say, each round of encryption operation unit receives the output of the last round of encryption operation unit, and completes each round of operation based on each round of round key; so that starting from the plaintext data, through N rounds of operation, the encryption processing of the data is realized, and the encrypted data is obtained.

[0154] As an optional implementation, corresponding to the operation process of the encryption algorithm engine shown in Figure 7B As an optional implementation, corresponding to the operation process of the encryption algorithm engine shown inFigure 7C An exemplary structural diagram of the decryption algorithm engine is shown as follows: Figure 7C As shown, the decryption algorithm engine includes N rounds of decryption operation units (e.g., a first round decryption operation unit to an Nth round decryption operation unit), each of which receives the output of the decryption operation unit of the previous round and performs operation based on the round key of the current round, so as to output the decrypted ciphertext at the Nth round decryption operation unit; wherein the input of the first round decryption operation unit is the encrypted data, and the round keys used by the first round decryption operation unit to the Nth round decryption operation unit are in the order of round key N to round key 1, that is, the first round decryption operation unit uses round key N (the last round key referred to in the embodiments of the present application) to perform operation, and so on, and the Nth round decryption operation unit uses round key 1 to perform operation.

[0155] As an optional implementation, Figure 8 An exemplary another flowchart of the data security processing method provided by the embodiments of the present application is shown, which can be applied to the data decryption scenario when reading data from the memory, referring to Figure 8 The flowchart can include the following steps.

[0156] In step S810, a data read request is acquired.

[0157] In step S811, it is determined whether the data read request is a transparent processing of the data read from the memory or a decryption processing; if it is the transparent processing, step S812 is jumped to, and if it is the decryption processing, step S813 is jumped to.

[0158] In step S812, the decryption flag bit of the data is set to be invalid, and the data is placed to the to-be-processed queue, and step S822 is jumped to.

[0159] In step S813, according to the target key identification in the data write request, it is determined whether the original key storage unit stores the target storage entry of the target original key, if not, step S814 is executed, and if yes, step S815 is executed.

[0160] In step S814, an error is reported and the flowchart is ended.

[0161] In step S815, according to the target round key identification of the target storage entry, it is determined whether the round key storage unit stores the target round key group corresponding to the target original key, if not, step S816 is executed, and if yes, step S821 is executed.

[0162] In step S816, it is determined whether the round key storage unit has idle storage space, if not, step S817 is executed, and if yes, step S819 is executed.

[0163] In step S817, the oldest round key group in the round key storage unit is deleted.

[0164] In step S818, the last round key in the oldest round key group is stored in the last round key storage unit.

[0165] Optionally, the application embodiment can update the corresponding round key storage information of the deleted oldest round key group.

[0166] Optionally, when the last round key in the deleted round key group is saved in the last round key storage unit, if the last round key storage unit has no free storage space, the application embodiment can delete the oldest last round key in the last round key storage unit.

[0167] In step S819, the target round key group corresponding to the original key is calculated and generated.

[0168] In step S820, the calculated target round key group is stored in the round key storage unit, and the target round key identification and the target round key address are updated.

[0169] In optional implementation, the application embodiment can calculate and generate the target round key group according to the target original key, and store the calculated target round key group in the round key storage unit; for example, the target original key is passed to the forward round key calculation unit, and the forward round key calculation unit calculates the target round key 1 to the target round key N in sequence, so as to store the target round key group formed by the target round key 1 to the target round key N in the round key storage unit; in this case, since the decryption algorithm is operated based on the sequence of the round key N to the round key 1, the application embodiment can send the target round key N to the target round key 1 into the decryption algorithm engine in sequence for operation.

[0170] In other possible implementations, when the target round key group is not stored in the round key storage unit, but the target final-round round key is stored in the final-round round key storage unit (for example, the target round key identifier is not the first value, but the third value), embodiments of the present application may also calculate the target round key group based on the target final-round round key, rather than necessarily based on the target original key. In this case, as an optional implementation, embodiments of the present application may read the target final-round round key from the final-round round key storage unit and input the target final-round round key into the reverse round key calculation unit to calculate the target round keys for subsequent rounds. Simultaneously, the decryption algorithm engine is started, using the target final-round round key as the round key for the first round of decryption algorithm operations. Each time the reverse round key calculation unit calculates a target round key for a round, the calculated target round key is input into the decryption algorithm engine for calculation. This allows the reverse round key calculation unit to calculate the target round key simultaneously with the decryption algorithm engine performing multiple rounds of operations.

[0171] That is to say, when the target final round key corresponding to the target original key is stored separately in advance, the embodiment of the present application can sequentially calculate the target round key supporting each round of the decryption algorithm based on the target final round key stored separately in advance, so as to obtain multiple target round keys supporting multiple rounds of the decryption algorithm; wherein, each time the target round key supporting one round of operation is calculated, the calculated target round key is synchronized to the operation of the corresponding round of the decryption algorithm, and is synchronously stored in the target round key group; the target round key for the first round of the decryption algorithm is the target final round key stored separately in advance. Optionally, the process of the decryption algorithm engine executing the decryption algorithm can be combined with Figure 7C shown.

[0172] In step S821, the decryption flag of the data is set to valid, and the data is placed in a queue to be processed.

[0173] In step S822, if the decryption flag of the data in the queue to be processed is valid, the decryption algorithm engine is called to perform multiple rounds of decryption algorithm operations according to the target round key group to decrypt the data, output the decrypted data, and delete the target last round key stored in the last round key storage unit; if the decryption flag of the data in the queue to be processed is invalid, the read data is directly output.

[0174] In an optional implementation, after the decryption process of the data is completed, if the target last-round key is stored separately, the embodiment of the present application may delete the target last-round key stored in the last-round key storage unit.

[0175] It should be noted that Figure 8 The process shown is similar to Figure 6 Similar or identical parts of the processes shown can be referenced to each other.

[0176] The data processing scheme provided by the embodiments of the present application can pre-configure original keys of a plurality of storage areas of a memory, and store a round key group corresponding to part or all of the original keys, so that the embodiments of the present application can directly call the stored round key group for data security processing, the number of round key calculations can be reduced, the resource consumption of data security processing can be reduced, and the processing efficiency of data security processing can be improved; at the same time, by configuring a plurality of storage entries of original keys, and realizing that part or all of the round key groups corresponding to the original keys are stored, the requirement of a plurality of round key groups for data protection of a storage protocol such as CXL can be effectively supported.

[0177] Further, for the round key group that is not stored, the embodiments of the present application can calculate the round key group by using a round key calculation unit in the process of data security processing, and the calculation unit of the round key calculation unit adopts a cascade structure, which can reduce the influence on the data bandwidth of the memory.

[0178] Further, by setting the storage number of the round key group to be less than the number of the storage entries of the original keys, the embodiments of the present application can reduce the cost and complexity of hardware implementation; further, the stored round key group is the round key group that is frequently used, which can improve the probability that the stored round key group is directly called for data security processing.

[0179] Further, in the decryption scenario of data reading, the embodiments of the present application can use the last round round key that is separately stored to calculate the round key of other rounds; and the last round round key can be directly input into the decryption operation of the first round for processing, so that in the process of calculating the round key of other rounds round by round, the calculated round key can be input into the decryption algorithm engine for corresponding decryption operation, so that the decryption operation and the round key calculation can be performed synchronously, and the processing delay of the decryption algorithm caused by the calculation of the round key can be reduced.

[0180] The embodiments of the present application also provide a secure operation device, for example, a storage controller. The secure operation device can be configured to perform the data security processing method provided by the embodiments of the present application. In an optional implementation, in combination with the foregoing description, the secure operation device can include a key management unit, a key storage unit, a cryptographic algorithm engine and a round key calculation unit. The functions and detailed structures of the key management unit, the key storage unit, the cryptographic algorithm engine and the round key calculation unit can be referred to the description of the corresponding parts in the foregoing.

[0181] In some embodiments, the key storage unit is configured with at least one storage entry of an original key, and the storage entry of the original key stores the original key and round key storage information corresponding to the original key.

[0182] The key management unit can be configured to schedule the key storage unit, the cryptographic algorithm engine and the round key calculation unit to perform the data security processing method provided in the embodiments of the present application.

[0183] In some embodiments, the key management unit can be configured to:

[0184] obtain a data processing request; and determine a target storage entry of a target original key from the key storage unit according to the data processing request, wherein the target storage entry stores the target original key and target round key storage information corresponding to the target original key;

[0185] if the target round key storage information indicates that a target round key group corresponding to the target original key has been stored in the key storage unit, obtain the stored target round key group; wherein the target round key group comprises a plurality of target round keys corresponding to the target original key, and is used for multi-round operation on data requested by the data processing request;

[0186] if the target round key storage information indicates that the target round key group is not stored in the key storage unit, invoke the round key calculation unit to calculate and generate a target round key group corresponding to the target original key; and store the calculated target round key group in the key storage unit and update the target round key storage information;

[0187] invoke the cryptographic algorithm engine to perform security processing on the data requested by the data processing request according to the target round key group.

[0188] In some embodiments, the key storage unit comprises an original key storage unit, a round key storage unit and a final round key storage unit.

[0189] The original key storage unit stores storage entries of at least one original key;

[0190] The round key storage unit stores round key groups corresponding to all or part of the at least one original key;

[0191] The final round key storage unit stores final round keys corresponding to all or part of the at least one original key.

[0192] In some embodiments, the number of storage entries of original keys in the original key storage unit is greater than or equal to the upper limit of the number of final round keys in the final round key storage unit; and the upper limit of the number of final round keys in the final round key storage unit is greater than or equal to the upper limit of the number of round key groups in the round key storage unit.

[0193] In some embodiments, the round key calculation unit comprises a forward round key calculation unit and a reverse round key calculation unit.

[0194] The forward round key calculation unit is configured to sequentially calculate a plurality of round keys supporting multi-round operation according to the original key.

[0195] The reverse round key calculation unit is configured to reversely calculate the plurality of round keys supporting multi-round operation according to the last round key.

[0196] In some embodiments, the cryptographic algorithm engine comprises an encryption algorithm engine and a decryption algorithm engine.

[0197] The encryption algorithm engine is configured to, when the data processing request is a data write request and indicates that the data to be written into the memory is to be processed by encryption, perform multi-round operation of an encryption algorithm according to the plurality of round keys in the round key group, so as to process the data to be written into the memory by encryption; wherein one round operation of the encryption algorithm uses one round key corresponding to the round.

[0198] The decryption algorithm engine is configured to, when the data processing request is a data read request and indicates that the data read from the memory is to be processed by decryption, perform multi-round operation of a decryption algorithm according to the plurality of round keys in the round key group, so as to process the data read from the memory by decryption; wherein the order of the round keys used in the multi-round operation of the decryption algorithm is opposite to the order of the round keys used in the multi-round operation of the encryption algorithm.

[0199] Embodiments of the present application also provide a chip comprising the secure operation unit (e.g., a memory controller) provided by embodiments of the present application.

[0200] Embodiments of the present application also provide a computer device comprising the chip provided by embodiments of the present application.

[0201] The above describes a plurality of embodiment schemes provided by embodiments of the present application, and each optional mode introduced by each embodiment scheme can be combined, cross-referenced in a non-conflicting manner, thereby extending a plurality of possible embodiment schemes, which can all be considered as the embodiment schemes disclosed and published by embodiments of the present application.

[0202] Although the present application discloses as above, the present application is not limited thereto. Any person skilled in the art can make various modifications and changes without departing from the spirit and scope of the present application, and therefore the protection scope of the present application should be subject to the scope defined by the claims.

Claims

1. A data security processing method, characterized in that: include: Obtain data processing requests; Determining, according to the data processing request, a target storage entry for the target original key; wherein the target storage entry stores the target original key and target round key storage information corresponding to the target original key, the target round key storage information including: a target round key identifier and a target round key address corresponding to the target original key; wherein the target round key identifier is used to indicate a storage status of the round key corresponding to the target original key, and the target round key address is used to indicate a storage address of the round key corresponding to the target original key; when the target round key identifier has a first value, the target round key address is a storage address of a target round key group; when the target round key identifier has a third value, the target round key address is a storage address of a target last round round key; If the target round key storage information indicates that a target round key group corresponding to the target original key has been stored, obtaining the stored target round key group; wherein the target round key group includes multiple target round keys corresponding to the target original key, and is used to perform multiple rounds of operations on the data requested by the data processing request; If the target round key storage information indicates that the target round key group is not stored, calculating and generating a target round key group corresponding to the target original key; and storing the calculated target round key group and updating the target round key storage information; The data requested by the data processing request is securely processed according to the target round key group.

2. The method according to claim 1, characterized in that The target round key identifier is used to indicate the storage status of the round key corresponding to the target original key, including: If the value of the target round key identifier is the first value, the target round key group has been stored; If the value of the target round key identifier is the second value, any target round key corresponding to the target original key is not stored; If the value of the target round key identifier is the third value, the target final round key corresponding to the target original key is stored separately.

3. The method according to claim 1 or 2, characterized in that If the target round key storage information indicates that the target round key group corresponding to the target original key has been stored, obtaining the stored target round key group includes: If the target round key identifier indicates that the target round key group has been stored, obtaining the target round key group according to the storage address of the target round key group indicated by the target round key address; If the target round key storage information indicates that the target round key group is not stored, calculating and generating the target round key group corresponding to the target original key includes: If the target round key identifier indicates that the target round key group is not stored, a target round key group corresponding to the target original key is calculated and generated.

4. The method according to any one of claims 1 to 2, characterized in that Also includes: Pre-configuring at least one storage entry for an original key, where the storage entry for the original key stores the original key and round key storage information corresponding to the original key; One original key corresponds to one storage area of ​​the memory, and data in one storage area is securely processed using a round key group corresponding to the original key.

5. The method according to claim 4, characterized in that The number of storage entries of the original key is greater than or equal to the upper limit of the number of last-round keys that can be stored separately; The upper limit of the number of round keys stored individually in the last round is greater than or equal to the upper limit of the number of round key groups stored.

6. The method according to claim 5, characterized in that Before executing the step of calculating and generating a target round key group corresponding to the target original key, the method further includes: Determining whether there is free storage space in the storage space for storing the round key group; If there is no free storage space, select the round key group to be deleted from the stored round key groups; The selected round key group is deleted, and the last round key in the selected round key group is stored separately; and the round key storage information is updated in the storage entry of the original key corresponding to the selected round key group; wherein the storage address corresponding to the selected round key group is used to store the target round key group generated by calculation.

7. The method according to claim 6, characterized in that Updating the round key storage information in the storage entry of the original key corresponding to the selected round key group includes: In the storage entry of the original key corresponding to the selected round key group, the value of the round key identifier is set to the third value, and the round key address is set to the storage address of the last round key in the selected round key group.

8. The method according to claim 6, characterized in that The storing of the last round key in the selected round key group separately includes: Determine whether there is free storage space in the storage space used to store the last round key separately; If there is no free storage space, select the last round key to be deleted from the stored last round keys; The selected last round key is deleted, and the last round key in the selected round key group is stored in the storage address corresponding to the selected last round key.

9. The method according to claim 2, characterized in that Said updating of said target round key storage information comprises: The value of the target round key identifier is set to a first value, and the target round key address is set to the storage address of the target round key group generated by calculation.

10. The method according to claim 4, characterized in that The pre-configured storage entry of at least one original key includes: Obtaining a configuration request, where the configuration request carries an original key and a key identifier of the original key; If the permission level of the configuration request meets the preset permission level, determining the storage address of the storage entry of the original key according to the key identifier of the original key; Configuring a storage entry corresponding to the original key at the determined storage address; The original key and round key storage information of the original key are stored in the storage entry corresponding to the original key.

11. The method according to claim 1 or 10, characterized in that Determining a target storage entry of a target original key according to the data processing request includes: If the data processing request indicates that the requested data be securely processed, determining a target key identifier of the target original key from the data processing request; determining a storage address of the target storage entry according to the target key identifier; The target storage entry is determined based on the storage address of the target storage entry.

12. The method according to any one of claims 1-2, characterized in that The data processing request is a data write request and instructs to encrypt the data requested to be written into the memory; and the secure processing of the data requested by the data processing request according to the target round key group includes: According to the multiple target round keys in the target round key group, multiple rounds of encryption algorithm are executed to encrypt the data requested to be written into the memory; wherein one round of encryption algorithm uses one round key of the corresponding round.

13. The method according to claim 12, characterized in that The calculating and generating a target round key group corresponding to the target original key comprises: A plurality of target round keys supporting multiple round operations of an encryption algorithm are calculated based on the target original key, and the plurality of target round keys form a target round key group.

14. The method according to claim 12, characterized in that Before executing the step of calculating and generating a target round key group corresponding to the target original key, the method further includes: If the target round key storage information indicates that the target final round key corresponding to the target original key is stored separately, the separately stored target final round key is deleted.

15. The method according to claim 14, characterized in that The target round key storage information indicating that the target final round key corresponding to the target original key is stored separately includes: If the value of the target round key identifier is the third value, the target final round key is stored separately; Deleting the separately stored target last-round key includes: The target last-round round key is deleted according to the storage address of the target last-round round key indicated by the target round key address.

16. The method according to any one of claims 1-2, characterized in that The data processing request is a data read request and instructs decryption processing of data read from the memory; and the secure processing of the data requested by the data processing request according to the target round key group includes: A multi-round operation of a decryption algorithm is performed based on multiple target round keys in the target round key group to decrypt data read from the memory; wherein the order of the round keys used in the multi-round operation of the decryption algorithm is reverse to the order of the round keys used in the multi-round operation of the encryption algorithm.

17. The method according to claim 16, characterized in that The calculating and generating a target round key group corresponding to the target original key comprises: Calculating the target round keys supporting each round of the decryption algorithm in sequence based on the target final round key corresponding to the target original key stored separately in advance, so as to obtain multiple target round keys supporting multiple rounds of the decryption algorithm; Among them, each time a target round key that supports one round of operation is calculated, the calculated target round key is synchronized to the operation of the corresponding round of the decryption algorithm and synchronously stored in the target round key group; the target round key of the first round operation of the decryption algorithm is the target last round key stored separately in advance.

18. The method according to claim 17, characterized in that Also includes: After completing multiple rounds of decryption algorithm operations, the target final round key stored separately in advance is deleted.

19. A secure computing unit, characterized in that: include: A key management unit, a key storage unit, a cryptographic algorithm engine, and a round key calculation unit; wherein the key storage unit is configured with at least one storage entry for an original key, and the storage entry for the original key stores the original key and the round key storage information corresponding to the original key; The key management unit is used to schedule the key storage unit, the cryptographic algorithm engine and the round key calculation unit to execute the data security processing method according to any one of claims 1 to 18.

20. The secure computing unit according to claim 19, wherein: The key storage unit includes: an original key storage unit, a round key storage unit, and a final round key storage unit; The original key storage unit stores a storage entry of at least one original key; The round key storage unit stores a round key group corresponding to all or part of the at least one original key; The final round key storage unit stores final round keys corresponding to all or part of the at least one original key.

21. The secure computing unit according to claim 19, wherein: The round key calculation unit includes: a forward round key calculation unit and a reverse round key calculation unit; The forward round key calculation unit is used to sequentially calculate multiple round keys supporting multiple round operations based on the original key; The reverse round key calculation unit is used to calculate multiple round keys supporting multiple round operations in reverse order according to the last round key.

22. The secure computing unit according to claim 19, wherein: The cryptographic algorithm engine includes an encryption algorithm engine and a decryption algorithm engine; The encryption algorithm engine is configured to, when the data processing request is a data write request and indicates that encryption processing is to be performed on the data requested to be written to the memory, execute multiple rounds of encryption algorithm operations based on multiple round keys in the round key group to encrypt the data requested to be written to the memory; wherein one round of encryption algorithm operations uses one round key of the corresponding round; The decryption algorithm engine is configured to, when the data processing request is a data read request and instructs decryption processing of data read from the memory, execute multiple rounds of a decryption algorithm based on multiple round keys in a round key group to decrypt the data read from the memory; wherein the order of the round keys used in the multiple rounds of the decryption algorithm is opposite to the order of the round keys used in the multiple rounds of the encryption algorithm.

23. A chip, characterized in that: The method comprises a secure operator as claimed in any one of claims 19 to 22.

24. A computer device, characterized in that: Comprising the chip as claimed in claim 23.

Citation Information

Patent Citations

  • Executing an encryption instruction using stored round keys

    US20090168998A1

  • Locating cryptographic keys stored in a cache

    US8494168B1