Patent Publication Number: US-11663145-B2

Title: Off-chip memory address scrambling apparatus and method for system on chip

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a national stage filing under 35 U.S.C. § 371 of International Application No. PCT/CN2018/122776, filed on Dec. 21, 2018, and published as WO 2019/120293A1, which claims the benefits of priority to Chinese application number 201711428664.8, filed Dec. 22, 2017, both of which are incorporated herein by reference in their entireties. 
     BACKGROUND 
     Along with the development of the mobile Internet, social informatization has reached an unprecedented level. Mobile network devices are the main representative of information interaction carriers. Mobile network equipment is a necessity in the current information society, and such functions as mobile offices and mobile transactions are widely promoted and applied. While the rapid development of mobile devices brings about convenience and efficiency, it is also necessary to protect the security of information stored in the mobile devices. 
     At the same time, security mechanisms have been added in the System on Chip (SoC) chip design. The conventional storage security protection, however, is based on an application or software and these types of conventional solutions are flawed. The software/applications not only occupy CPU resources and greatly lower the performance of a system chip as well as the efficiency of reading or writing an off-chip memory, but also can have difficulties defending against the problems of operating system vulnerabilities and software backdoor access. 
     SUMMARY OF THE DISCLOSURE 
     The present disclosure provides an off-chip memory address scrambling apparatus for a system on chip, including: a true random number generator, a key memory and an on-chip security controller that are disposed in the system on chip, the on-chip security controller being respectively connected to the true random number generator, the key memory and an off-chip memory that is disposed outside the system on chip and configured to store data, and being configured to read or write data in the off-chip memory and perform address scrambling processing on the data. The on-chip security controller includes a memory interface module and an address scrambling module. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a schematic diagram of an exemplary off-chip memory address scrambling apparatus for a system on chip, according to some embodiments of the present disclosure. 
         FIG.  2    is a schematic diagram of an exemplary off-chip memory address scrambling apparatus for a system on chip, according to some embodiments of the present disclosure. 
         FIG.  3    is a flowchart of an exemplary off-chip memory address scrambling method for a system on chip, according to some embodiments of the present disclosure. 
         FIG.  4    is a flowchart of an exemplary off-chip memory address scrambling method for a system on chip, according to some embodiments of the present disclosure. 
         FIG.  5    is a flowchart of an exemplary off-chip memory address scrambling method for a system on chip, according to some embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure are described clearly and completely below with reference to the accompanying drawings in the embodiments of the present disclosure. Obviously, the described embodiments are merely some rather than all of the embodiments of the present disclosure. Based on the embodiments in the present disclosure, all other embodiments obtained by those with ordinary skill in the art without creative efforts should fall within the scope of protection of the present disclosure. 
     The off-chip memory address scrambling apparatus and method for a system on chip provided by the present disclosure can implement scrambling processing of a data address without affecting the efficiency of reading or writing an off-chip memory, thus ensuring that the system on chip can read or write data efficiently and securely. 
     The embodiments of the present disclosure provide an off-chip memory address scrambling apparatus for SoC architectures.  FIG.  1    is a schematic diagram of an exemplary off-chip memory address scrambling apparatus for a system on chip, according to some embodiments of the present disclosure. As shown in  FIG.  1   , the apparatus includes the following hardware components: a true random number generator  11 , a key memory  12  and an on-chip security controller  13 . On-chip security controller  13  is respectively connected to true random number generator  11 , key memory  12  and an off-chip memory  14  configured to store data. On-chip security controller  13  is configured to read or write data in off-chip memory  14  and perform address scrambling processing on the data. On-chip security controller  13  includes a memory interface module  131  and an address scrambling module  132 . 
     Memory interface module  131  is configured to output to an address scrambling module  132  an unscrambled address in data formed by reading from or writing to off-chip memory  14 . 
     Address scrambling module  132  is connected to memory interface module  131 , true random number generator  11 , key memory  12 , and off-chip memory  14 . Address scrambling module  132  is configured to read a random key stored in key memory  12 , to select an appropriate random key, and to scramble an address received from memory interface module  131  according to the random key scrambling algorithm, and to output the scrambled address to off-chip memory  14 . It is appreciated that the selection of the appropriate random key can be based on whether the read random key is in a valid/invalid state. For example, if the read random key is a pre-defined constant value (e.g., 0x00000000 or 0xFFFFFFFF), the constant value indicates that the read random key is in an invalid state. If the random key read from key memory  12  is not the constant value, the read random key is determined to be in a valid state. If the read random key is valid, the read random key is used for scrambling. If, however, the read random key is invalid, address scrambling module  132  can read another random key that is generated by true random number generator  11  and stored into key memory  12 . 
     In embodiments of the present disclosure, the off-chip memory address scrambling apparatus for SoC architectures mainly employs a true random number generator, a key memory and an on-chip security controller to scramble an address in an off-chip memory in such a manner that data stored in the off-chip memory is out of order. Accordingly, attacks to the SoC architecture that are completed by directly modifying the off-chip memory or replacing the off-chip memory are rendered obsolete. Therefore, after the address scrambling processing is implemented for the off-chip memory, a memory chip replicated according to a hacked memory chip cannot work normally such that the system is non-replicable, thus further ensuring the encryption security and confidentiality of the apparatus. Moreover, when the off-chip memory is accessed, the apparatus automatically scrambles an access address using an address scrambling module. The efficiency of reading or writing the off-chip memory is not affected, thus ensuring that the apparatus can read or write data efficiently and securely. 
       FIG.  2    is a schematic diagram of an exemplary off-chip memory address scrambling apparatus for a system on chip, according to some embodiments of the present disclosure. As shown in  FIG.  2   , address scrambling module  132  further includes the following hardware components: a first reading unit  1321  configured to read the random key generated by true random number generator  11 , a writing unit  1322  configured to write the random key generated by true random number generator  11  into key memory  12 , a reading unit  1323  configured to read the random key stored in key memory  12 , a scrambling unit  1324  comprising hardware components and configured to timely perform scrambling algorithm processing on an inputted unscrambled address according to the read random key to form a scrambled address, and a sending unit  1325  configured to output the scrambled address to off-chip memory  14 . The timely performance of the scrambling indicates that the scrambling takes place within the same cycle as when the address is obtained. 
     In some embodiments, address scrambling module  132  further includes a determining unit  1326  configured to determine whether the random key read by reading unit  1323  is valid. Address scrambling module  132  can further include a selecting unit  1327  connected to determining unit  1326  and configured to select a random key according to the valid/invalid state of the read random key. If the read random key is valid, the read random key is used for scrambling. If, however, the read random key is invalid, address scrambling module  132  can read another random key that is generated by true random number generator  11  and stored into key memory  12 . 
     In some embodiments, address scrambling module  132  further includes a register unit  1328  configured to save the random key read by reading unit  1323 . 
     In some embodiments, the random key generated by true random number generator  11  is written into key memory  12  once for storage and is unalterable, or the random key generated by true random number generator  11  is written into key memory  12  at least twice for storage. 
     Some embodiments of the present disclosure further provide an off-chip memory address scrambling method for a SoC architecture.  FIG.  3    is a flowchart of an exemplary off-chip memory address scrambling method for a SoC architecture, according to some embodiments of the present disclosure. As shown in  FIG.  3   , the method includes steps S 11  and S 12 . In step S 11 , after an apparatus is powered on or reset, an address scrambling module (e.g., address scrambling module  132 ) reads a random key stored in a key memory (e.g., key memory  12 ). 
     In step S 12 , a valid key is used to scramble address inputted by a memory interface module (e.g., memory interface module  131 ) to form a scrambled address. In some embodiments, the valid key is the key read from the key memory. In situations where the key read from the key memory is no longer valid, another key (generated by the true random number generator and stored into the key memory) is read. 
     At step S 18 , the scrambled address is outputted to an off-chip memory (e.g., off-chip memory  14 ). 
     In the off-chip memory address scrambling method for the SoC architecture provided by embodiments of the present disclosure, the method mainly employs a true random number generator, a key memory, and an on-chip security controller to scramble an address in an off-chip memory in such a manner that data stored in the off-chip memory is out of order. Accordingly, attacks to the SoC architecture that are completed by directly modifying the off-chip memory or replacing the off-chip memory are rendered obsolete. Therefore, after the address scrambling processing is implemented for the off-chip memory, a memory chip replicated according to a hacked memory chip cannot work normally since the system is non-replicable, thus further ensuring the encryption security and confidentiality of the apparatus. Moreover, when the off-chip memory is accessed, the method automatically scrambles an access address using an address scrambling module. The efficiency of reading or writing the off-chip memory is not affected, thus ensuring that the apparatus can read or write data efficiently and securely. In the third aspect, the method further determines the validity of a random key stored in the key memory in such a manner that the security performance of the method is improved by ensuring the validity of the random key. 
     In some embodiments, as shown in  FIG.  4    and  FIG.  5   , after step S 11  of reading by an address scrambling module a random key stored in a key memory after an apparatus is powered on or reset, the method further includes steps S 13 , S 14 , S 15 , S 16  and S 17 . In step S 13 , a determining unit (e.g., determining unit  1326 ) determines whether the random key stored in the key memory is valid. 
     In step S 14 , when the random key stored in the key memory is invalid, the true number generator generates a new random key. In step S 15 , the address scrambling module writes the newly generated random key into the key memory for storage. In some embodiments, as shown in  FIG.  4   , the method proceeds to step S 11 , in which the random key stored in the key memory is read by the address scrambling module. In other embodiments, e.g., as shown in  FIG.  5   , after step S 15 , the method proceeds to power up or reset the apparatus. 
     If, however, the random key stored in the key memory is valid in step S 13 , the method proceeds to step S 16 , in which the read random key is stored into a register unit. In step S 17 , when the on-chip security controller generates data while reading from or writing to the off-chip memory, an unscrambled address inputted by the memory interface is scrambled according to the read random key to form a scrambled address. At step S 18 , the on-chip security controller (via the address scrambling module) outputs the scrambled address to the off-chip memory. 
     In some embodiments, in the step of performing according to the random key scrambling algorithm processing on an unscrambled address inputted by a memory interface module to form a scrambled address, the method further includes creating a one-to-one correspondence between the unscrambled address and the scrambled address according to the following mapping formula, the position specified by the unscrambled address being different from the position specified by the scrambled address:
 
addr(0, n )&lt;=&gt;addr′(0, n ′), n ∈(0, x ), n ′∈(0, x )
 
     For example, the scrambling of the unscrambled address is implemented using a closed address interval in the address scrambling module (e.g., the address scrambling module  132 ). There is a one-to-one relationship between the unscrambled address and the scrambled address formed after the scrambling. The unscrambled address does not go beyond the closed address interval, hence finally forming a corresponding mapping relationship. 
     In some embodiments, the step of scrambling an address further includes controlling according to the random key a hardware component to perform periodic scrambling algorithm processing on the unscrambled address outputted by the memory interface module so as to form a scrambled address, wherein the scrambling algorithm is unique to the off-chip memory and the chip. 
     For example, the method can further employ different scrambling algorithms according to different off-chip memories and different chips in such a manner that the scrambling implemented by the method is unique, thereby improving the security performance of the method. In some embodiments, a non-linear algorithm may be used as the scrambling algorithm to further improve the security of the off-chip memory address scrambling. 
     In some embodiments, according to the method, after an apparatus is powered on or reset, a second reading unit of an address scrambling module automatically reads a random key stored in a key memory. Then a determining unit of the address scrambling module determines whether the random key stored in the key memory is valid. When the random key is valid, the random key is registered into a register unit in such a manner that the scrambling unit can directly invoke the random key. When an on-chip security controller generates data while reading from or writing to an off-chip memory, an unscrambled address inputted by the memory interface is scrambled according to the random key, and the scrambled address is outputted to the off-chip memory. At the same time, the memory interface module further outputs to the off-chip memory a control/data signal in the data generated by reading or writing the off-chip memory. 
     The method can be used to control the technical solution of the foregoing apparatus embodiments and has a similar implementation principle and technical effect. The specifics are not described here again. 
     It is appreciated that all or a part of the process in the method in the foregoing embodiments can be implemented by a computer program instructing related hardware. The program can be stored in a computer readable storage medium, and when being executed the program can include processes of the embodiments of the methods above. The storage medium can be a magnetic disk, an optical disc, a Read-Only Memory (ROM), a Random Access Memory (RAM), etc. 
     As used herein, unless specifically stated otherwise, the term “or” encompasses all possible combinations, except where infeasible. For example, if it is stated that a database may include A or B, then, unless specifically stated otherwise or infeasible, the database may include A, or B, or A and B. As a second example, if it is stated that a database may include A, B, or C, then, unless specifically stated otherwise or infeasible, the database may include A, or B, or C, or A and B, or A and C, or B and C, or A and B and C. 
     Specific implementation manners of the present disclosure are described above, but the protective scope of the present disclosure is not limited to these implementation manners. Any change or replacement that can be easily conceived of by those skilled in the art without departing from the technical scope disclosed by the present disclosure shall be covered in the protective scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protective scope of the claims.