Temperature-Profiled Device Fingerprint Generation and Authentication from Power-Up States of Static Cells
First Claim
1. A method for generating at least one identifier for uniquely identifying an electronic device, wherein the electronic device contains a number of static storage elements, and wherein the method comprises:
- cycling power provided to the static storage elements multiple times;
reading values of the static storage elements after the power cycling to collect a set of power-up states;
repeating the cycling and reading for multiple environmental temperatures of the device to collect the sets of power-up states for the multiple environmental temperatures; and
computing the at least one identifier from the collected sets of power-up states.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and computer program product for generating device fingerprints and authenticating devices uses initial states of internal storage cells after each of a number multiple power cycles for each of a number of device temperatures to generate a device fingerprint. The device fingerprint may include pairs of expected values for each of the internal storage cells and a corresponding probability that the storage cell will assume the expected value. Storage cells that have expected values varying over the multiple temperatures may be excluded from the fingerprint. A device is authenticated by a similarity algorithm that uses a match of the expected values from a known fingerprint with power-up values from an unknown device, weighting the comparisons by the probability for each cell to compute a similarity measure.
-
Citations
33 Claims
-
1. A method for generating at least one identifier for uniquely identifying an electronic device, wherein the electronic device contains a number of static storage elements, and wherein the method comprises:
-
cycling power provided to the static storage elements multiple times; reading values of the static storage elements after the power cycling to collect a set of power-up states; repeating the cycling and reading for multiple environmental temperatures of the device to collect the sets of power-up states for the multiple environmental temperatures; and computing the at least one identifier from the collected sets of power-up states. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system comprising a processor for executing program instructions and a memory coupled to the processor for storing the program instructions, wherein the program instructions comprise program instructions for generating at least one identifier for uniquely identifying an electronic device, wherein the electronic device contains a number of static storage elements, wherein the program instructions comprise program instructions for:
-
reading initial values of the static storage elements after cycling power applied to the static storage elements, for multiple power cycles, to collect a set of power-up states; repeatedly executing the program instructions for reading for multiple environmental temperatures of the device, wherein multiple cycles of power are applied to the electronic device for the multiple environmental temperatures, to collect the sets of power-up states for the corresponding multiple environmental temperatures; and computing the at least one identifier from the collected sets of power-up states. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising computer-readable storage media encoding program instructions for execution by a processing system, wherein the program instructions comprise program instructions for generating at least one identifier for uniquely identifying an electronic device, wherein the electronic device contains a number of static storage elements, wherein the program instructions comprise program instructions for:
-
reading initial values of the static storage elements after cycling power applied to the static storage elements, for multiple power cycles, to collect a set of power-up states; repeatedly executing the program instructions for reading for multiple environmental temperatures of the device, wherein multiple cycles of power are applied to the electronic device for the multiple environmental temperatures, to collect the sets of power-up states for the multiple environmental temperatures; and computing the at least one identifier from the collected sets of power-up states. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for authenticating an electronic device as being a particular electronic device, wherein the electronic device contains a number of static storage elements, and wherein the method comprises:
-
applying power to the electronic device; reading initial values of the static storage elements after applying power to collect a set of power-up states; comparing the initial values with an identifier corresponding to the particular electronic device, wherein the identifier encodes an expected value of a set of static storage elements within the particular device and a probability that one of the static storage elements will assume its corresponding expected value. - View Dependent Claims (26, 27)
-
-
28. A computer system comprising a processor for executing program instructions and a memory coupled to the processor for storing the program instructions, wherein the program instructions comprise program instructions for authenticating an electronic device as being a particular electronic device, wherein the electronic device contains a number of static storage elements, wherein the program instructions comprise program instructions for:
-
reading initial values of the static storage elements after power has been applied to the electronic device to collect a set of power-up states; and comparing the initial values with an identifier corresponding to the particular electronic device, wherein the identifier encodes an expected value of a set of static storage elements within the particular device and a probability that one of the static storage elements will assume its corresponding expected value. - View Dependent Claims (29, 30)
-
-
31. A computer program product comprising computer-readable storage media encoding program instructions for execution by a processing system, wherein the program instructions comprise program instructions for authenticating an electronic device as being a particular electronic device, wherein the electronic device contains a number of static storage elements, wherein the program instructions comprise program instructions for:
-
reading initial values of the static storage elements after power has been applied to the electronic device to collect a set of power-up states; and comparing the initial values with an identifier corresponding to the particular electronic device, wherein the identifier encodes an expected value of a set of static storage elements within the particular device and a probability that one of the static storage elements will assume its corresponding expected value. - View Dependent Claims (32, 33)
-
Specification