# US 12,003,656 B2 · Using intrinsic chip behaviors to generate physically unclonable functions (PUFs) for security key generation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,656 B2
- Document ID: US12003656B2
- Status: Granted
- Kind: B2
- Application number: 17/666,309
- Filed: 2022-02-07
- Published: 2023-08-10
- Granted: 2024-06-04
- Earliest claimed: 2022-02-07
- Assignees: QUALCOMM Incorporated
- Applicants: Qualcomm Incorporated
- Inventors: Shekhar Yeshwant Borkar; Justin Joseph Rosen Gagne; Dallas James Wiener; Peter Belding
- Web page: https://patentgrep.com/patent/US12003656B2

## CPC

- G09C 1/00: Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system (cryptographic typewriters G09C3/00)
- H04L 9/3278: {using physically unclonable functions [PUF]}
- G06F 1/206: {comprising thermal management}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- H04L 9/0866: {involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics}
- G09C: CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods and computer-readable mediums may use intrinsic behavior of an integrated circuit (IC) chip to generate Physically Unclonable Function (PUF) vector bits. A processor of the system may be configured to receive a plurality of temperature values corresponding to a plurality of respective temperature measurement values obtained by a plurality of respective temperature sensors disposed on the IC chip. The processor may be further configured to process the temperature measurement values to generate PUF vector bits that can be used to generate a security key.

## Claims

### Claim 1

A system for generating Physically Unclonable Function (PUF) vector bits, the system comprising:
a plurality of temperature sensors, first through nth temperature sensors, S1 through Sn, where n is a positive integer that is greater than or equal to two; and
a processor disposed on an integrated circuit (IC) chip, the processor being configured to receive a plurality of temperature measurement values from the plurality of temperature sensors, wherein said plurality of temperature measurement values are received from the plurality of temperature sensors and processed by the processor when the IC chip is in a quiescent state, and wherein the processor is further configured to process the received temperature measurement values to generate PUF vector bits.

### Claim 2 (depends on 1)

The system of claim 1, wherein the plurality of temperature measurement values are processed by:
comparing a plurality of the received temperature measurements values to one another to obtain a plurality of temperature difference values; and
translating each temperature difference value into one or more PUF vector bits.

### Claim 3 (depends on 2)

The system of claim 2, wherein said comparing is performed by comparing at least a first temperature measurement value obtained by the first temperature sensor, S1, to the temperature measurement values obtained by second through nth temperature sensors, S2-Sn, respectively, to obtain n temperature measurement values, where n is a positive integer that is equal to a total number of temperature sensors comprising said plurality of temperature sensors.

### Claim 4 (depends on 2)

The system of claim 2, wherein said comparing is performed by comparing all of the temperature measurement values to one another in pairs to obtain a temperature difference value for each pair of compared temperature measurement values.

### Claim 5 (depends on 2)

The system of claim 2, wherein said comparing is performed by:
(a) setting a variable N=1 and a variable M=N+1;
(b) taking a difference between two of the temperature sensors, SN and SM, to obtain a temperature difference value;
(c) discretizing the temperature difference value obtained at step (b) to produce one or more PUF vector bits;
(d) incrementing M by one;
(e) determining whether or not M is greater than n, where n is a positive integer that is equal to a total number of temperature sensors comprising said plurality of temperature sensors, wherein if it is determined that M is not greater than n, reiterating steps (b) through (e), wherein if it is determined that M is greater than n, incrementing N by one and setting M equal to N+1; and
(f) determining whether or not N is greater than n, wherein if it is determined that N is not greater than n, reiterating steps (a) through (f) until it is determined at step (f) that N is greater than n.

### Claim 6 (depends on 1)

The system of claim 1, wherein the processor is further configured to receive the PUF vector bits, security state signals and context as inputs, the processor being further configured to process the PUF vector bits, the security state signals and the context to generate a security key, the processor being further configured to store the security key in the memory device.

### Claim 7 (depends on 1)

The system of claim 1, wherein the system comprises a portable computing device (PCD) in which the IC chip is employed, and wherein the IC chip is a system-on-a-chip (SoC) IC chip.

### Claim 8 (depends on 7)

The system of claim 7, wherein the PCD comprises a mobile phone.

### Claim 9 (depends on 1)

The system of claim 1, wherein said plurality of temperature measurement values are received from the plurality of temperature sensors and processed by the processor when the IC chip is in an active load state.

### Claim 10

A method for generating Physically Unclonable Function (PUF) vector bits, the method comprising:
using first through nth temperature sensors, S1 through Sn, respectively, disposed on an integrated circuit (IC) chip to obtain n temperature measurement values, where n is a positive integer that is greater than or equal to two;
in a processor disposed on the IC chip:
receiving the n temperature sensor values and processing the received n temperature sensor values to generate PUF vector bits, wherein the temperature measurement values are obtained by the temperature sensors and received and processed by the processor when the IC chip is in a quiescent state.

### Claim 11 (depends on 10)

The method of claim 10, wherein the n received temperature measurement values are processed by:
comparing a plurality of the n received temperature measurements values to one another to obtain a plurality of temperature difference values; and
translating each temperature difference value into one or more PUF vector bits.

### Claim 12 (depends on 11)

The method of claim 11, wherein said comparing is performed by comparing at least a first temperature measurement value obtained by the first temperature sensor, S1, to the temperature measurement values obtained by second through nth temperature sensors, S2-Sn, respectively, to obtain n temperature measurement values.

### Claim 13 (depends on 11)

The method of claim 11, wherein said comparing is performed by comparing all of the temperature measurement values to one another in pairs to obtain a temperature difference value for each pair of compared temperature measurement values.

### Claim 14 (depends on 11)

The method of claim 11, wherein said comparing is performed by:
(a) setting a variable N=1 and a variable M=N+1;
(b) taking a difference between two of the temperature sensors, SN and SM, to obtain a temperature difference value;
(c) discretizing the temperature difference value obtained at step (b) to produce one or more PUF vector bits;
(d) incrementing M by one;
(e) determining whether or not M is greater than n, wherein if it is determined that M is not greater than n, reiterating steps (b) through (e), wherein if it is determined that M is greater than n, incrementing N by one and setting M equal to N+1; and
(f) determining whether or not N is greater than n, wherein if it is determined that N is not greater than n, reiterating steps (a) through (f) until it is determined at step (f) that N is greater than n.

### Claim 15 (depends on 10)

The method of claim 10, wherein the temperature measurement values are obtained by the temperature sensors and received and processed by the processor when the IC chip is in an active load state.

### Claim 16

A non-transitory computer-readable medium comprising computer instructions for execution by a processor to generate Physically Unclonable Function (PUF) vector bits, the computer instructions comprising:
a first set of computer instructions for receiving n temperature measurement values obtained by first through nth temperature sensors, S1 through Sn, respectively, disposed on an integrated circuit (IC) chip, where n is a positive integer that is greater than or equal to two; and
a second set of instructions for processing the n received temperature measurement values to generate PUF vector bits, wherein the temperature measurement values are obtained by the temperature sensors and received and processed by the processor when the IC chip is in a quiescent state.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the second set of computer instructions comprise:
a third set of computer instructions that compare a plurality of the n received temperature measurements values to one another to obtain a plurality of temperature difference values; and
a fourth set of computer instructions that translate each temperature difference value into one or more PUF vector bits.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the third set of computer instructions compare at least a first temperature measurement value obtained by the first temperature sensor, S1, to the temperature measurement values obtained by second through nth temperature sensors, S2-Sn, respectively, to obtain n temperature measurement values.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the third set of computer instructions compare all of the temperature measurement values to one another in pairs to obtain a temperature difference value for each pair of compared temperature measurement values.

### Claim 20 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the third set of computer instructions compare the plurality of the n received temperature measurements values to one another by:
(a) setting a variable N=1 and a variable M=N+1;
(b) taking a difference between the temperature sensor values of two of the temperature sensors, SN and SM, to obtain a temperature difference value;
(c) discretizing the temperature difference value obtained at step (b) to produce one or more PUF vector bits;
(d) incrementing M by one;
(e) determining whether or not M is greater than n, wherein if it is determined that M is not greater than n, reiterating steps (b) through (e), wherein if it is determined that M is greater than n, incrementing N by one and setting M equal to N+1; and
(f) determining whether or not N is greater than n, wherein if it is determined that N is not greater than n, reiterating steps (a) through (f) until it is determined at step (f) that N is greater than n.

### Claim 21 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the computer instructions further comprise:
a fifth set of computer instructions that:
receives the PUF vector bits, security state signals and context as inputs; and
performs a key derivation function that processes the PUF vector bits, the security state signals and the context to generate a security key; and
stores the security key in a memory device.

### Claim 22 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the temperature measurement values are obtained by the temperature sensors and received and processed by the processor when the IC chip is in an active load state.

### Claim 23

A system for generating Physically Unclonable Function (PUF) vector bits, the system comprising:
means for receiving n temperature measurement values obtained by first through nth temperature sensors, S1 through Sn, respectively, disposed on an IC chip, where n is a positive integer that is greater than or equal to two; and
means for processing the n received temperature measurement values to generate PUF vector bits, wherein the temperature measurement values are obtained by the temperature sensors and received and processed when the IC chip is in a quiescent state.

### Claim 24 (depends on 23)

The system of claim 23, wherein the means disposed on the IC chip for processing comprises:
means for comparing a plurality of the n received temperature measurements values to one another to obtain a plurality of temperature difference values; and
means for translating each temperature difference value into one or more PUF vector bits.

### Claim 25 (depends on 24)

The system of claim 24, wherein said means for comparing compares at least a first temperature measurement value obtained by the first temperature sensor, S1, to the temperature measurement values obtained by second through nth temperature sensors, S2-Sn, respectively, to obtain n temperature measurement values.

### Claim 26 (depends on 24)

The system of claim 24, wherein said means for comparing compares all of the temperature measurement values to one another in pairs to obtain a temperature difference value for each pair of compared temperature measurement values.

### Claim 27 (depends on 23)

The system of claim 23, wherein said means for processing comprises:
means for receiving the PUF vector bits, security state signals and context as inputs;
means for processing the PUF vector bits, the security state signals and the context to generate a security key; and
means for storing the security key in a means for storing information disposed on the IC chip.
