Key update mechanism
AssigneeSTMicroelectronics S.r.l.
InventorsAndrew Dellow, Peter Bennett, Rodrigo Cordero
Life of this patent
Estimating the term…
Abstract
A memory stores data in an encrypted form. A modifiable register stores a memory address, a0, defining a boundary separating the memory into two regions. The lower region stores data encrypted using a key B, and the upper region stores data encrypted using a different key A. Data stored on the boundary address is encrypted using key A. Accordingly, when data is read from a memory address a, key A is used to decrypt the data if a≧a0, and key B is used if a<a0. However, when data is written to a memory address a, then key A is used to encrypt the data if a≧a0+1, key B is used if a<a0+1. When data is written to the boundary address, a0, the position of the boundary is caused to increase by one unit.
Claims43
A semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data in a secure system in which data is stored in an encrypted form in a memory, the circuit comprising:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key, and
- updating means for incrementing or decrementing the boundary address in response to data being written to the boundary address;
- wherein the boundary address is variable between a minimum value and a maximum value and wherein the updating means set the boundary address to the minimum value if the boundary address exceeds the maximum value, set the first key to the value of the second key, and generate a new second key.
A semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data in a secure system in which data is stored in an encrypted form in a memory, the circuit comprising:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key;
- updating means for incrementing or decrementing the boundary address in response to data being written to the boundary address, wherein the boundary address is variable between a minimum value and a maximum value, wherein the updating means increment the boundary address by one unit in response to data being written to the boundary address, and wherein the data written to the boundary address is encrypted using the second key;
- and
- kicker means for, if no data has been written to the boundary address for a threshold period of time, decrypting the data that is stored on the boundary address using the first key, re-encrypting the decrypted data using the second key, writing the re-encrypted data back to the boundary address, and incrementing the boundary address by one unit.
A semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data in a secure system in which data is stored in an encrypted form in a memory, the circuit comprising:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key;
- updating means for incrementing or decrementing the boundary address in response to data being written to the boundary address, wherein the boundary address is variable between a minimum value and a maximum value, wherein the first region comprises memory addresses within the portion of the memory that are greater than the boundary address, and the second region comprises memory addresses within the portion of the memory that are less than or equal to the boundary address, wherein the updating means decrement the boundary address by one unit if data is written to the boundary address, and wherein the cryptographic circuit encrypts the data written to the boundary address using the first key;
- and
- kicker means for, if no data has been written to the boundary address for a threshold period of time, decrypting the data that is stored on the boundary address using the second key, re-encrypting the decrypted data using the first key, writing the re-encrypted data back to the boundary address, and decrementing the boundary address by one unit.
A semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data in a secure system in which data is stored in an encrypted form in a memory, the circuit comprising:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key;
- and
- updating means for incrementing or decrementing the boundary address in response to data being written to the boundary address, wherein the boundary address is variable between a minimum value and a maximum value, wherein the first region comprises memory addresses within the portion of the memory that are greater than the boundary address, and the second region comprises memory addresses within the portion of the memory that are less than or equal to the boundary address, and wherein the updating means set the boundary address to the maximum value if the boundary address falls below the minimum value, set the second key to the value of the first key, and generate a new first key.
A television set-top-box, comprising:
- a memory that stores data in an encrypted form;
- and
- a semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data to or from the memory, the circuit including:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key;
- and
- updating means for incrementing or decrementing the boundary address in response to data being written to the boundary address;
- wherein the boundary address is variable between a minimum value and a maximum value, and wherein the updating means set the boundary address to the minimum value if the boundary address exceeds the maximum value, set the first key to the value of the second key, and generate a new second key.
A television set-top-box, comprising:
- a memory that stores data in an encrypted form;
- and
- a semiconductor integrated circuit for updating encryption or decryption keys used to encrypt or decrypt data to or from the memory, the circuit including:
- a device;
- a store for storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a cryptographic circuit for encrypting or decrypting data flowing between the memory and the device;
- a key selector arranged to select either a first key or a second key and provide the selected key to the cryptographic circuit, wherein the selected key is selected such that data transferred between the device and the first region of the memory is encrypted or decrypted by the cryptographic circuit using the first key, and data transferred between the device and the second region of the memory is encrypted or decrypted by the cryptographic circuit using the second key, wherein the boundary address is variable between a minimum value and a maximum value;
- updating means for incrementing or decrementing the boundary address if data is written to the boundary address;
- and
- kicker means for, if no data has been written to the boundary address for a threshold period of time, decrypting the data that is stored on the boundary address using the first key, re-encrypting the decrypted data using the second key, writing the re-encrypted data back to the boundary address, and incrementing the boundary address by one unit.
A method for a secure system in which data is stored in an encrypted form in a memory, the method comprising:
- storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- encrypting or decrypting data flowing between the memory and a device using a selected key wherein the data transferred between the device and the first region of the memory is encrypted or decrypted using a first key, and data transferred between the device and the second region of the memory is encrypted or decrypted using a second key;
- and
- varying the boundary address between a minimum value and a maximum value and wherein the step of varying the boundary address comprises the step of setting the boundary address to the minimum value if the boundary address exceeds the maximum value and wherein the first key takes the value of the second key and a new second key is generated.
A method for a secure system in which data is stored in an encrypted form in a memory, the method comprising:
- storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- encrypting or decrypting data flowing between the memory and a device using a selected key wherein the data transferred between the device and the first region of the memory is encrypted or decrypted using a first key, and data transferred between the device and the second region of the memory is encrypted or decrypted using a second key;
- and
- varying the boundary address between a minimum value and a maximum value, wherein the step of varying the boundary address comprises the step of incrementing or decrementing the boundary address if data is written to the boundary address, wherein the first region comprises memory addresses within the portion of the memory that are greater than or equal to the boundary address, and the second region comprises memory addresses within the portion of the memory that are less than the boundary address, and wherein the step of varying the boundary address comprises the step of incrementing the boundary address by one unit if data is written to the boundary address, and wherein the data written to the boundary address is encrypted using the second key;
- and
- if no data has been written to the boundary address for a predetermined period of time, decrypting the data that is stored on the boundary address using the first key;
- writing back the data to the boundary address re-encrypted using the second key;
- and incrementing the boundary address by one unit.
A method for a secure system in which data is stored in an encrypted form in a memory, the method comprising:
- storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- encrypting or decrypting data flowing between the memory and a device using a selected key wherein the data transferred between the device and the first region of the memory is encrypted or decrypted using a first key, and data transferred between the device and the second region of the memory is encrypted or decrypted using a second key;
- and
- varying the boundary address between a minimum value and a maximum value, wherein the step of varying the boundary address comprises the step of incrementing or decrementing the boundary address if data is written to the boundary address, wherein the first region comprises memory addresses within the portion of the memory that are greater than the boundary address, and the second region comprises memory addresses within the portion of the memory that are less than or equal to the boundary address, wherein the step of varying the boundary address comprises the step of decrementing the boundary address by one unit if data is written to the boundary address, and wherein the data written to the boundary address is encrypted using the first key;
- and
- if no data has been written to the boundary address for a predetermined period of time, decrypting the data that is stored on the boundary address using the second key;
- writing back the data to the boundary address re-encrypted using the first key;
- and decrementing the boundary address by one unit.
A method for a secure system in which data is stored in an encrypted form in a memory, the method comprising:
- storing a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- encrypting or decrypting data flowing between the memory and a device using a selected key wherein the data transferred between the device and the first region of the memory is encrypted or decrypted using a first key, and data transferred between the device and the second region of the memory is encrypted or decrypted using a second key;
- and
- varying the boundary address between a minimum value and a maximum value, wherein the step of varying the boundary address comprises the step of incrementing or decrementing the boundary address if data is written to the boundary address, wherein the first region comprises memory addresses within the portion of the memory that are greater than the boundary address, and the second region comprises memory addresses within the portion of the memory that are less than or equal to the boundary address, wherein the step of varying the boundary address comprises the step of setting the boundary address to the maximum value if the boundary address falls below the minimum value, and wherein the second key takes the value of the first key and a new first key is generated.
A semiconductor integrated circuit for use with a memory that stores encrypted data, comprising:
- a storage unit configured to store a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a key selector configured to select either a first key or a second key and output the selected key;
- a cryptographic circuit configured to receive the selected key, encrypt or decrypt data to or from the first region of the memory if the selected key is the first key, and encrypt or decrypt data to or from the second region of the memory if the selected key is the second key;
- and
- a comparator configured to compare the stored boundary address with an input address of an access request for accessing the memory, and change the boundary address in response to determining that the stored boundary address equals the input address and wherein the comparator is configured to set the boundary address to a minimum value if the boundary address exceeds a maximum value, set the first key to a value of the second key, and generate a new second key.
A semiconductor integrated circuit for use with a memory that stores encrypted data, comprising:
- a storage unit configured to store a boundary address defining a boundary separating at least a portion of the memory into a first region and a second region;
- a key selector configured to select either a first key or a second key and output the selected key;
- a cryptographic circuit configured to receive the selected key, encrypt or decrypt data to or from the first region of the memory if the selected key is the first key, and encrypt or decrypt data to or from the second region of the memory if the selected key is the second key;
- and
- a comparator configured to compare the stored boundary address with an input address of an access request for accessing the memory, and change the boundary address in response to determining that the stored boundary address equals the input address;
- and
- kicker means for, if no data has been written to the boundary address for a threshold period of time, decrypting the data that is stored on the boundary address using the first key, re-encrypting the decrypted data using the second key, writing the re-encrypted data back to the boundary address, and incrementing the boundary address by one unit.
Dependencies are inferred from the claim text.