Patent Publication Number: US-11030119-B2

Title: Storage data encryption and decryption apparatus and method

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application claims priority to International Application No. PCT/CN2018/097717, filed on Jul. 30, 2018, which claims the benefits of priority to Chinese Patent Application No. 201710671465.3, filed on Aug. 8, 2017, both of which are incorporated herein by reference in their entireties. 
     TECHNICAL FIELD 
     The present disclosure relates to the field of computer devices and technologies, and in particular, to a storage data encryption and decryption apparatus and method. 
     BACKGROUND 
     With the acceleration of global informatization, networks and mobile Internet devices have been closely connected with people&#39;s lives and become indispensable carriers for information exchange in the modern society. With the dramatic improvement of the performance of mobile smart devices and the ever-expanding coverage of the high-speed mobile Internet, mobile office and mobile financial transactions have been carried out on a large scale. However, office data and financial transaction data are facing increasing threats. 
     The computer technologies, the cryptography theories, and the network application levels must be improved to solve the problem of data security. At present, information security protection has been developed from conventional single point information encryption to the construction of an information assurance system covering the whole network system on the basis of chip level hardware protection. In addition, designing chips with a low cost, a small volume, high performance, cracking-resistance, and an information security protection mechanism have become an inevitable trend. Thus, the chip design of a System on Chip (SoC) has gradually become a new direction of developing an embedded system. Chip designers usually integrate encryption and decryption algorithms and information security protocols in a SoC chip to ensure adequate security levels. However, the SoC chip integrated encryption and decryption algorithms in the conventional art encrypt and decrypt different chips or different storage areas of the same chip by using the same key, which cannot effectively protect data. 
     Therefore, it is urgent to design a storage data encryption and decryption apparatus and method, which can encrypt and decrypt data in different chips or different storage areas of the same chip by using different keys, thus implementing data storage, reading and writing operations more effectively. 
     SUMMARY 
     A storage data encryption and decryption apparatus and method provided in the present disclosure can encrypt and decrypt data in different chips or different storage areas of the same chip by using different keys, so as to overcome the shortcomings in the prior art, thus implementing data storage, reading and writing operations more efficiently. 
     According to some embodiments of the present disclosure, there is provided a method for encrypting and decrypting data. The method is performed by an embedded system. The method includes generating, by a true random number generator of the embedded system, a plurality of keys. The method also includes writing the plurality of keys into a key memory of the embedded system. The method further includes performing encryption and decryption operations using at least one key of the plurality of keys from the key memory. The at least one key is used to encrypt acquired data to be written to a data memory of the embedded system and to decrypt encrypted data read from the data memory. 
     According to some embodiments of the present disclosure, there is provided an embedded system for encrypting and decrypting data. The embedded system includes a true random number generator configured to generate a plurality of keys. The embedded system also includes a memory bank having a key memory configured to store the plurality of keys. The embedded system further includes a memory module configured to use at least one key of the plurality of keys from the key memory to perform encryption and decryption operations. The at least one key is used to encrypt acquired data to be written to a data memory of the embedded system and to decrypt encrypted data read from the data memory. 
     The storage data encryption and decryption apparatus and method provided in embodiments of the present disclosure can implement encryption of data in different chips or different storage areas of the same chip in a clock cycle, thus implementing data storage, reading and writing operations securely and efficiently. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       To illustrate the technical solutions in the embodiments of the present disclosure more clearly, the accompanying drawings for describing the embodiments are introduced briefly in the following. It is apparent that the accompanying drawings in the following description depict only some embodiments of the present disclosure. Those of ordinary skill in the art can obtain other drawings according to the accompanying drawings without creative efforts. 
         FIG. 1  is a schematic diagram of an exemplary storage data encryption and decryption apparatus according to some embodiments of the present disclosure; 
         FIG. 2  is a flowchart of an exemplary method for performing storage data encryption and decryption according to some embodiments of the present disclosure; and 
         FIG. 3  is a schematic diagram of an exemplary storage data encryption and decryption method according to some embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     In order to illustrate the objectives, technical solutions, and advantages of the embodiments of the present disclosure, the technical solutions in the embodiments of the present disclosure are described in the following with reference to the accompanying drawings depicting some embodiments of the present disclosure. It is apparent that the embodiments described are merely some of rather than all the embodiments of the present disclosure. Based on the embodiments described below, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall be encompassed in the protection scope of the present disclosure. 
     The present disclosure provides a storage data encryption and decryption apparatus.  FIG. 1  is a schematic diagram of an exemplary storage data encryption and decryption apparatus according to some embodiments of the present disclosure. As shown in  FIG. 1 , the storage data encryption and decryption apparatus includes a memory module  110 , a memory bank  120 , and a true random number generator  130 . Specifically, memory module  110  is configured to support data and key reading and writing and perform encryption and decryption operations on data passing through the module. Memory bank  120  is configured to support a data and key storage function. True random number generator  130  is configured to generate keys. 
     Memory module  110  is responsible for encrypting write data and writing the encrypted write data into memory bank  120 , and decrypting read data that is read from memory bank  120 . The memory module  110  includes a data reading and writing interface module  112  and a data encryption and decryption module  114 . Data reading and writing interface module  112  is configured to read and write data. Data encryption and decryption module  114  is configured to encrypt and decrypt the data. 
     Specifically, the data reading and writing interface module outputs unencrypted write data to the data encryption and decryption module, and inputs decrypted read data from the data encryption and decryption module. 
     In particular, the data encryption and decryption module can use single-cycle encryption and decryption algorithms. Such single-cycle encryption and decryption algorithms can include, but are not limited to, exclusive OR encryption, sequence rearrangement, and the like. The data encryption and decryption module using such encryption and decryption algorithms does not affect the efficiency of data access. 
     Memory bank  120  can include a data memory  122  and a key memory  124 . The data memory is configured to store data. The key memory is configured to store keys. Typically, the data memory and the key memory are deployed, but are not limited to being deployed, on the same physical storage medium, thus facilitating efficient implementation of storage. 
     Specifically, the data in the data memory can be divided into a plurality of data storage areas. Encryption and decryption can be performed on different storage areas by using different keys. Each storage area can be selected to allow encryption and decryption to be performed on the selected storage area. However, data in the same storage area may only be encrypted and decrypted by using the same key. In addition, keys used in the same data storage area of different chips can also be different. Keys used for performing encryption and decryption operations on the data of the entire data storage area of different chips can be different from each other. A plurality of keys are stored in the key memory and are respectively used for performing encryption and decryption operations on data in particular data storage areas. 
     The true random number generator is responsible for generating keys that are provided to the data encryption and decryption module for performing encryption and decryption operations on data. 
     Specifically, the data encryption and decryption module in the memory module outputs true random numbers generated by the true random number generator as keys into the key memory of the memory bank. The data encryption and decryption module encrypts write data output into the data memory by using the keys in the key memory, and decrypts input read data. 
     In particular, the data encryption and decryption module automatically acquires the keys in the key memory of the memory bank when a chip is started, and encrypts and decrypts, by using the acquired keys, all data passing through the memory module. The manner of acquiring the keys is implemented by hardware, and is software-transparent. 
     In particular, the memory module can be accessed after the data encryption and decryption module completes acquisition of the keys, and no response may be made to an advanced access request. 
       FIG. 2  is a flowchart of an exemplary method for performing storage, data encryption and decryption according to some embodiments of the present disclosure. The method can be performed by a storage data encryption and decryption apparatus of  FIG. 1 . As shown in  FIG. 2 , in step  201 , the method is started. In step  202 , the apparatus can acquire a plurality of keys generated by a true random number generator. In step  203 , the apparatus (e.g., using a data encryption and decryption module) writes the keys generated by the true random number generator into a key memory. 
     At step  204 , the apparatus determines whether data in a data memory is to be divided. If it is determined that the data in the data memory is to be divided, at step  205 , the data memory is logically partitioned into a plurality of data storage areas, and encryption and decryption operations are performed selectively on data of each data storage area by using a different key. On the other hand, if it is determined that the data in the data memory is not to be divided, at step  206 , the data memory is not partitioned into data storage areas, and data encryption and decryption are performed on an entire data storage area by using a unified key. 
     In step  207 , after either of steps  205  and  206 , the apparatus encrypts and decrypts the data passing through the memory module. In some embodiments of the present disclosure, a data reading and writing interface module transmits unencrypted write data to the data encryption and decryption module, and the data encryption and decryption module encrypts the data and then stores the encrypted data into the data memory. On the other hand, the data memory transmits undecrypted read data to the data encryption and decryption module, and the data encryption and decryption module decrypts the undecrypted read data and transmits decrypted read data to the data reading and writing interface module. Then, at step  208 , it is determined whether the system is attacked. If the system is attacked, at step  209 , the data encryption and decryption module clears the keys in the key memory so as to avoid the data in the memory from being attacked and acquired. If the system is not attacked, it is determined whether the system is to be shut down at step  210 . If it is determined that the system is not to be shut down, the data passing through the memory module is encrypted and decrypted (e.g., step  207 ). If it is determined that the system is to be shut down, at step  211 , the system is started. 
       FIG. 3  is a schematic diagram of an exemplary storage data encryption and decryption method according to some embodiments of the present disclosure. As shown in  FIG. 3 , in step S 31 , a true random number generator configured to generate a plurality of keys is provided. In step S 32 , a data memory configured to store data and a key memory configured to store keys are provided, and the keys are written into the key memory. In step S 33 , a data reading and writing interface module configured to read and write data is provided, and a data encryption and decryption module configured to read the keys and perform encryption and decryption operations is provided. The data written from the data reading and writing interface module is encrypted by the data encryption and decryption module and then written into the data memory. The data read from the data memory is decrypted by the data encryption and decryption module and then read to the data reading and writing interface module. 
     According to the storage data encryption and decryption apparatus and method provided in the present disclosure, the data memory is partitioned into a plurality of storage areas in the same chip. Each storage area uses a particular key respectively, and storage areas with the same address in different chips use different keys, which can ensure data security. In addition, when the system is subject to a data security attack, the keys in the key memory can be erased so that the encrypted data in the memory cannot be decrypted correctly and has a good anti-attack capability, and data storage, reading and writing operations can be implemented effectively. 
     The above descriptions are merely specific implementation manners of the present disclosure, but the protection scope of the present disclosure is not limited to this. Variations or replacements that can be easily thought of by any person skilled in the art within the technical scope disclosed in the present disclosure shall all be encompassed in the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be subject to the protection scope of the claims.