Method of storing unique constant values
First Claim
Patent Images
1. A method comprising:
- obtaining a unique value associated with a device of a processing system, via the unique value the device is identifiable; and
securely storing the unique value in the processing system without exposing outside the device a unique identifier of the device, wherein securely storing the unique value comprisesgenerating an encryption key based at least in part on a secret value securely stored in the device;
generating an initialization vector having a plurality of pseudo-randomly or randomly generated bits;
encrypting the unique value associated with the device using both the encryption key and the initialization vector as inputs to form an encrypted data structure;
storing the encrypted data structure in a memory of the processing system that is external to the device; and
periodically replacing the encrypted data structure with a modified encrypted data structure formed from encrypting the unique value using both the encryption key and a new initialization vector having a plurality of pseudo-randomly or randomly generated bits, whereinperiodically replacing the encrypted data structure occurs every N accesses of the unique value by the device, where N is a positive integer.
1 Assignment
0 Petitions
Accused Products
Abstract
Secure storage and retrieval of a unique value associated with a device to/from a memory of a processing system. In at least one embodiment, the device needs to be able to access the unique value across processing system resets, and the device does not have sufficient non-volatile storage to store the unique value itself. Instead, the unique value is stored in the processing system memory in such a way that the stored unique value does not create a unique identifier for the processing system or the device. A pseudo-randomly or randomly generated initialization vector may be used to vary an encrypted data structure used to store the unique value in the memory.
-
Citations
21 Claims
-
1. A method comprising:
-
obtaining a unique value associated with a device of a processing system, via the unique value the device is identifiable; and securely storing the unique value in the processing system without exposing outside the device a unique identifier of the device, wherein securely storing the unique value comprises generating an encryption key based at least in part on a secret value securely stored in the device; generating an initialization vector having a plurality of pseudo-randomly or randomly generated bits; encrypting the unique value associated with the device using both the encryption key and the initialization vector as inputs to form an encrypted data structure; storing the encrypted data structure in a memory of the processing system that is external to the device; and periodically replacing the encrypted data structure with a modified encrypted data structure formed from encrypting the unique value using both the encryption key and a new initialization vector having a plurality of pseudo-randomly or randomly generated bits, wherein periodically replacing the encrypted data structure occurs every N accesses of the unique value by the device, where N is a positive integer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An article comprising:
- a storage medium having a plurality of machine readable instructions, wherein when the instructions are executed by a processor, the instructions provide for securely storing a unique value associated with a device in a processing system without exposing outside the device a unique identifier of the device by
obtaining the unique value associated with the device, the unique value uniquely identifying the device; generating an encryption key based at least in part on a secret value securely stored in the device; generating an initialization vector having a plurality of pseudo-randomly or randomly generated bits; encrypting the unique value associated with the device using both the encryption key and the initialization vector as inputs to form a first encrypted data structure; storing the first encrypted data structure in a memory of the processing system that is external to the device; and replacing the first encrypted data structure in the memory with a second encrypted data structure formed from encrypting the unique value, the second encrypted data structure being different than the first encrypted data structure, wherein generating the second initialization vector, encrypting the second encrypted data structure, storing the second encrypted data structure, and deleting the encrypted data structure are performed every N accesses of the unique value by the device, where N is a positive integer. - View Dependent Claims (9, 10, 11, 12, 13)
- a storage medium having a plurality of machine readable instructions, wherein when the instructions are executed by a processor, the instructions provide for securely storing a unique value associated with a device in a processing system without exposing outside the device a unique identifier of the device by
-
14. A method comprising:
-
obtaining a unique value associated with and identifying a device of a processing system; and securely storing the unique value associated with the device in the processing system without exposing outside the device a unique identifier of the device, wherein securely storing the unique value comprises initializing a monotonic counter stored in the device; generating a encryption key based at least in part on a secret value securely stored in the device; generating an initialization vector having a plurality of pseudo-randomly or randomly generated bits; updating the monotonic counter; encrypting the unique value associated with the device and the monotonic counter using both the encryption key and the initialization vector as inputs to form a first encrypted data structure; storing the first encrypted data structure in a memory of the processing system that is separate from the device; and in response to accessing the first encrypted data structure, generating a second initialization vector having a plurality of pseudo-randomly or randomly generated bits, encrypting the unique value associated with the device and the monotonic counter using both the encryption key and the second initialization vector as inputs to form a second encrypted data structure that is different than the first encrypted data structure, and storing the second encrypted data structure in a memory of the processing system, wherein generating the second initialization vector, encrypting the second encrypted data structure, storing the second encrypted data structure, and deleting the encrypted data structure are performed every N accesses of the unique value by the device, where N is a positive integer. - View Dependent Claims (15, 16, 17)
-
-
18. An article comprising:
- a storage medium having a plurality of machine readable instructions, wherein when the instructions are executed by a processor, the instructions provide for securely storing a unique value associated with a device in a processing system without exposing outside the device a unique identifier for the device by
obtaining the unique value associated with and uniquely identifying the device; initializing a monotonic counter stored in the device; generating a encryption key based at least in part on a secret value securely stored in the device; generating an initialization vector having a plurality of pseudo-randomly or randomly generated bits; updating the monotonic counter; encrypting the unique value associated with the device and the monotonic counter using both the encryption key and the initialization vector as inputs to form a first encrypted data structure; storing the first encrypted data structure in a memory of the processing system that is external to the device; and updating the first encrypted data structure in the memory of the processing system to a second encrypted data structure that is different than the first encrypted data structure, the second encrypted data structure formed from encrypting the unique value and the monotonic counter using both the encryption key and a randomly or pseudo-randomly generated second initialization vector, wherein instructions for updating the first encrypted data structure with the second encrypted data structure are performed every N accesses of the unique value by the device, where N is a positive integer. - View Dependent Claims (19, 20, 21)
- a storage medium having a plurality of machine readable instructions, wherein when the instructions are executed by a processor, the instructions provide for securely storing a unique value associated with a device in a processing system without exposing outside the device a unique identifier for the device by
Specification