US 7,568,112 B2
Data access control method for tamper resistant microprocessor using cache memory
Kensaku Yamaguchi, Yokohama (Japan); and Mikio Hashimoto, Yokohama (Japan)
Assigned to Kabushiki Kaisha Toshiba, Tokyo (Japan)
Filed on Jan. 12, 2004, as Appl. No. 10/754,571.
Claims priority of application No. 2003-012558 (JP), filed on Jan. 21, 2003.
Prior Publication US 2004/0143748 A1, Jul. 22, 2004
Int. Cl. G06F 11/30 (2006.01); G06F 12/14 (2006.01)
U.S. Cl. 713—190  [713/187; 713/188; 713/194; 711/125; 711/118] 8 Claims
OG exemplary drawing
 
1. A tamper resistant microprocessor that executes a plurality of programs in parallel under a multi-task programming environment, comprising:
a decryption unit configured to read out an execution code or data of one of a plurality of encrypted programs and decrypt the execution code or data by using a prescribed encryption key corresponding to the read-out encrypted program, according to a decryption request from a cache memory control unit;
a cache memory configured to store the execution code or data decrypted by the decryption unit and an actual encryption key used in decrypting the execution code or data for at least one cache line, the actual encryption key being stored in a secret protection attribute holding section of at least one cache line, the execution code or data stored in the cache memory remaining even after each program terminates; and
the cache memory control unit configured to process a reading request for the execution code or data to be acquired from the decryption unit or the cache memory such that, if the execution code or data exists in the cache memory and the actual encryption key stored in the secret protection attribute holding section of a cache line that stores the existent execution code or data is identical with the prescribed key corresponding to a program that issues the reading request, the execution code or data in the cache memory is read out, and if the execution code or data does not exist in the cache memory or the actual encryption key is not identical with the prescribed key, the execution code or data is read out from an external memory device.