Protecting external volatile memories using low latency encryption/decryption
AssigneeBroadcom Corporation
InventorsLove Kothari, Lawrence J. Madar, III
Life of this patent
Estimating the term…
Abstract
A data processing apparatus includes a volatile memory, a random number generator adapted for generating random numbers from which one or more keys are generated, and a memory encryption unit (MEU). The MEU is configured to receive an N-bit block of data and to divide the N-bit block of data into two more sub-blocks of data, where each sub-block contains fewer than N-bits. The MEU is further configured to encrypt each sub-block of data using the one more keys, to combine the encrypted sub-blocks into an N-bit block of encrypted data, and to write the encrypted N-bit block of data to the volatile memory.
Claims22
A method, implemented in one or more data processing devices, of encrypting data for temporary storage in a volatile memory operably connected to a memory encryption unit of a device adapted for processing the data, the method comprising:
- generating one or more keys within the device;
- receiving an N-bit block of data at the memory encryption unit, wherein N is 8 or more;
- dividing the N-bit block of data into two more sub-blocks of data, wherein each sub-block contains fewer than N-bits:
- encrypting each sub-block of data with the memory encryption unit using one or more of the generated keys;
- combining the encrypted sub-blocks into an N-bit block of encrypted data;
- and
- temporarily storing the encrypted block of data in the volatile memory.
A data processing apparatus, the apparatus comprising:
- a volatile memory;
- a random number generator adapted for generating random numbers from which one or more keys are generated;
- a memory encryption unit configured for:
- receiving an N-bit block of data, wherein N is 8 or more;
- dividing the N-bit block of data into two more sub-blocks of data, wherein each sub-block contains fewer than N-bits;
- encrypting each sub-block of data using the one or more keys;
- combining the encrypted sub-blocks into an N-bit block of encrypted data;
- and
- writing the encrypted N-bit block of data to the volatile memory.
A data processing apparatus for processing protected content, the apparatus comprising:
- a central processing unit;
- a volatile memory;
- a random number generator adapted for generating random numbers from which one or more keys are generated;
- a memory encryption unit operably connected to the volatile memory and configured for:
- receiving an N-bit block of data from the central processing unit, wherein N is 8 or more;
- dividing the N-bit block of data into two more first sub-blocks of data, wherein each first sub-block contains eight or fewer bits;
- encrypting each first sub-block of data using a non-linear symmetric algorithm based on the one more keys;
- combining the encrypted first sub-blocks into an N-bit block of encrypted data;
- writing the encrypted N-bit block of data to the volatile memory;
- receiving the encrypted N-bit block of data from the volatile memory;
- dividing the encrypted N-bit block of data into two more second sub-blocks of data, wherein each second sub-block contains eight or fewer bits;
- decrypting each second sub-block of data using the non-linear symmetric algorithm based on the one more keys;
- combining the decrypted second sub-blocks into an N-bit block of decrypted data;
- transmitting the decrypted N-bit block of data to a rendering device.
Dependencies are inferred from the claim text.