# US 2019/0171819 A1 · Secure firmware provisioning and device binding mechanism

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

- Number: US 2019/0171819 A1
- Document ID: US20190171819A1
- Status: Published application
- Kind: A1
- Application number: 16/175,699
- Filed: 2018-10-30
- Published: 2019-06-06
- Earliest claimed: 2017-12-01
- Assignees: STMicroelectronics S.r.l.
- Applicants: STMicroelectronics, Inc.
- Inventors: Maurizio Gentili; Massimo Panzica
- Web page: https://patentgrep.com/patent/US20190171819A1

## CPC

- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 21/575: {Secure boot}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Electronic computing devices provide a method to update firmware. The method includes receiving a firmware image at an electronic device, the electronic device having a processor and a memory arranged to store instructions executed by the processor. In the electronic device, a unique device identifier is retrieved and a random number is generated. The generated random number is securely stored. The random number and a representation of the unique device identifier are computationally combined to create a device-binding value, and an address-offset is generated from the device-binding value. The firmware image is stored in the memory at the address-offset.

## Claims

### Claim 1

A firmware update method, comprising:
receiving a firmware image at an electronic device, the electronic device having a processor and a memory arranged to store instructions executed by the processor;
retrieving a unique device identifier;
generating a random number;
securely storing the generated random number;
computationally combining the random number and a representation of the unique device identifier to create a device-binding value;
generating an address-offset from the device-binding value; and
storing the firmware image in the memory at the address-offset.

### Claim 2 (depends on 1)

A method according to claim 1, further comprising:
mapping a plurality of firmware functions in a vector table based on the address-offset;
interrupting the processor;
retrieving an interrupt vector from the vector table; and
executing instructions retrieved from the memory based on the interrupt vector.

### Claim 3 (depends on 1)

A method according to claim 1 wherein the firmware image is received at the electronic device wirelessly.

### Claim 4 (depends on 1)

A method according to claim 1, further comprising:
encrypting the unique device identifier to generate the representation of the unique device identifier.

### Claim 5 (depends on 4)

A method according to claim 4 wherein encrypting the unique device identifier includes executing an encryption function from a secure element, the secure element separate from the memory arranged to store instructions executed by the processor.

### Claim 6 (depends on 1)

A method according to claim 1 wherein generating the random number includes executing a random number generation function from a secure element, the secure element separate from the memory arranged to store instructions executed by the processor.

### Claim 7 (depends on 1)

A method according to claim 1 wherein securely storing the generated random number includes securely storing the generated random number in a secure element, the secure element separate from the memory arranged to store instructions executed by the processor.

### Claim 8 (depends on 1)

A method according to claim 1 wherein computationally combining the random number and the representation of the unique device identifier to create the device-binding value includes:
accepting the random number and the representation of the unique device identifier as inputs to a logic function, the device-binding value produced as an output of the logic function.

### Claim 9 (depends on 8)

A method according to claim 8 wherein the logic function includes an exclusive-OR logic function.

### Claim 10 (depends on 1)

A method according to claim 1 wherein generating the address-offset from the device-binding value includes:
isolating a determined number of bits of the device-binding value.

### Claim 11 (depends on 1)

A method according to claim 1, further comprising:
identifying a first address in the memory; and
storing obfuscation data in the memory between the first address and the address-offset.

### Claim 12 (depends on 1)

A method according to claim 1, further comprising:
booting the electronic device;
retrieving the unique device identifier;
retrieving the generated random number;
computationally combining the random number and the representation of the unique device identifier to create the device-binding value;
generating the address-offset from the device-binding value; and
executing with the processor instructions retrieved from the memory at address locations based on the address-offset.

### Claim 13

A portable computing device, comprising:
a processor;
a memory arranged to store instructions executed by the processor; and
boot-loader logic, the boot-loader logic including boot-loader instructions executable by the processor to:
retrieve a unique device identifier;
generate a random number;
securely store the generated random number;
computationally combine the random number and a representation of the unique device identifier to create a device-binding value; and
generate an address-offset from the device-binding value.

### Claim 14 (depends on 13)

A portable computing device according to claim 13 wherein the boot-loader logic includes a hardware-based encryption module and a hardware-based true random number generator.

### Claim 15 (depends on 13)

A portable computing device according to claim 13, further comprising:
a secure element, the secure element including secure memory to store the generated random number; and
encryption logic, the encryption logic arranged to generate the representation of the unique device identifier.

### Claim 16 (depends on 13)

A portable computing device according to claim 13 wherein the portable computing device is a mobile phone device, an Internet-of-Things (IoT) device, or a wearable computing device.

### Claim 17

A non-transitory computer-readable storage medium whose stored contents configure a computing system to perform a boot-loader method, the boot-loader method comprising:
generating a random number;
securely storing the generated random number in a first memory;
creating a device-binding value by computationally combining the generated random number with a value that uniquely represents a portable device;
generating an address-offset from the device-binding value; and
storing information in a second memory based on the address-offset.

### Claim 18 (depends on 17)

A non-transitory computer-readable storage medium according to claim 17 whose stored contents configure the computing system to perform the boot-loader method, wherein the information stored in the second memory is firmware arranged to direct operations of the portable device.

### Claim 19 (depends on 17)

A non-transitory computer-readable storage medium according to claim 17 whose stored contents configure the computing system to perform the boot-loader method, wherein the first memory is a secure element separate and distinct from the second memory.

### Claim 20 (depends on 17)

The non-transitory computer-readable storage medium according to claim 17 whose stored contents configure the computing system to perform the boot-loader method, the boot-loader method further comprising:
retrieving a unique device identifier; and
encrypting the unique device identifier to generate the value that uniquely represents the portable device.
