# US 11,113,403 B2 · Split chain of trust for secure device boot

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

- Number: US 11,113,403 B2
- Document ID: US11113403B2
- Status: Granted
- Kind: B2
- Application number: 16/379,532
- Filed: 2019-04-09
- Published: 2020-10-15
- Granted: 2021-09-07
- Earliest claimed: 2019-04-09
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Yaron Sella; Kevin Holcomb
- Web page: https://patentgrep.com/patent/US11113403B2

## CPC

- H04L 9/3236: {using cryptographic hash functions}
- G06F 18/22: Matching criteria, e.g. proximity measures
- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F 21/575: {Secure boot}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- 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

The secure chain of trust steps to boot-up a computing device are split between the shutdown procedure of the computing device and the boot-up procedure of the computing device to reduce the time required for the computing device to boot-up. The main image associated with a central processing unit of the computing device is validated during the shutdown procedure of the computing device such that the operating system for the central processing unit is available when the computing device receives an action to power on. The boot-up time for the computing device is reduced, which allows the computing device to boot-up within an established time frame.

## Claims

### Claim 1

A method, comprising:
by a first processor of a computing device,
obtaining a first input indicating a request to shut down the computing device;
initiating a shutdown mode of the computing device, the shutdown mode comprising:
asserting a power-on reset (POR) mode on a second processor to prevent the second processor from executing a boot-up procedure until the first processor has executed a secure chain of trust to boot-up,
validating an image associated with the second processor of the computing device by verifying a signature of the image, wherein the second processor image is stored in a memory location associated with the second processor,
storing results of the validation of the second processor image in a memory location associated with the first processor, and
initiating a low power mode for the computing device;
obtaining a second input indicating a request to power on the computing device;
executing a boot-up procedure for the first processor;
de-asserting the POR mode of the second processor, wherein de-asserting the POR mode of the second processor allows the second processor to execute the secure chain of trust to boot-up;
providing instructions to the second processor to execute the boot-up procedure for the second processor, wherein the instructions comprise instructions to verify a status of the validated second processor image based on the stored validation results; and
when the status indicates that the second processor image is valid, executing, by the second processor, the boot-up procedure, wherein executing the boot-up procedure comprises using the second processor image to initiate an operating system of the computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second processor image is an operating system for the second processor.

### Claim 3 (depends on 1)

The method of claim 1, wherein validating the second processor image comprises:
obtaining the second processor image stored in the memory location associated with the second processor;
converting the second processor image into a fixed-size byte array;
obtaining a key associated with the second processor image, wherein the key is stored in a memory location associated with the first processor;
obtaining a signature associated with the second processor image, wherein the signature is stored in the memory location associated with the second processor;
converting the signature associated with the second processor image into a fixed-size byte array using the key associated with the second processor image;
matching the byte array of the converted second processor image with the byte array of the converted signature; and
storing the validation results as true based on a determination that the byte array of the converted second processor image matches the byte array of the converted signature.

### Claim 4 (depends on 1)

The method of claim 1, wherein executing the boot-up procedure for the first processor comprises:
validating a first processor image associated with the first processor, wherein the first processor image is an operating system for the first processor; and
utilizing the validated first processor image to boot-up the first processor.

### Claim 5 (depends on 4)

The method of claim 4, wherein validating the first processor image comprises:
converting the first processor image into a fixed-size byte array;
obtaining a key associated with the first processor image, wherein the key is stored in a memory location associated with the first processor;
obtaining a signature associated with the first processor image, wherein the signature is stored in the memory location associated with the first processor;
converting the signature associated with the first processor image into a fixed-size byte array using the key associated with the first processor image;
matching the byte array of the converted first processor image with the byte array of the converted signature; and
based on a determination that the byte array of the converted first processor image matches the byte array of the converted signature, determining that the first processor image is valid.

### Claim 6 (depends on 1)

The method of claim 1, wherein verifying the status of the stored second processor image comprises determining, by the second processor of the computing device, that the stored validation results are true.

### Claim 7 (depends on 1)

The method of claim 1, wherein the shutdown mode is a low power mode.

### Claim 8

A computer program product, comprising:
a non-transitory computer-readable medium having computer-executable program instructions embodied thereon to:
obtain an input indicating a request to shut down a computing device;
initiate a shutdown mode of the computing device, the shutdown mode comprising computer-executable program instructions to:
assert a power-on reset (POR) mode on a second processor to prevent the second processor from executing a boot-up procedure until the first processor has executed a secure chain of trust to boot-up,
validate an image associated with the second processor of the computing device by verifying a signature of the image, wherein the second processor image is stored in a memory location associated with the second processor,
store results of the validation of the second processor image in a memory location associated with the first processor, and
initiate a low power mode for the computing device;
obtain a second input indicating a request to power on the computing device;
execute a boot-up procedure for the first processor;
de-assert the POR mode of the second processor, wherein de-asserting the POR mode of the second processor allows the second processor to execute the secure chain of trust to boot-up;
provide instructions to the second processor execute the boot-up procedure for the second processor, wherein the instructions comprise instructions to verify a status of the validated second processor image based on the stored validation results; and
when the status indicates that the second processor image is valid, execute, by the second processor, the boot-up procedure, wherein executing the boot-up procedure comprises using the second processor image to initiate an operating system of the computing device.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the second processor image is an operating system for the second processor.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein validating the second processor image comprises computer-executable program instructions to:
obtain the second processor image stored in the memory location associated with the second processor;
convert the second processor image into a fixed-size byte array;
obtain a key associated with the second processor image, wherein the key is stored in a memory location associated with the first processor;
obtain a signature associated with the second processor image, wherein the signature is stored in the memory location associated with the second processor;
convert, using the key associated with the second processor image, the signature associated with the second processor image into a fixed-size byte array;
match the byte array of the converted second processor image with the byte array of the converted signature; and
store the validation results as true based on a determination that the byte array of the converted second processor image matches the byte array of the converted signature.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein executing the boot-up procedure for the first processor comprises computer-executable program instructions to:
validate a first processor image associated with the first processor, wherein the first processor image is an operating system for the first processor; and
utilize the validated first processor image to boot-up the first processor.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein validating the first processor image comprises computer-executable program instructions to:
convert the first processor image into a fixed-size byte array;
obtain a key associated with the first processor image, wherein the key is stored in a memory location associated with the first processor;
obtain a signature associated with the first processor image, wherein the signature is stored in the memory location associated with the first processor;
convert the signature associated with the first processor image into a fixed-size byte array using the key associated with the first processor image;
match the byte array of the converted first processor image with the byte array of the converted signature; and
based on a determination that the byte array of the converted first processor image matches the byte array of the converted signature, determine that the first processor image is valid.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein verifying the status of the stored second processor image comprises computer-executable program instructions to determine, by the second processor, the stored validation results as true.

### Claim 14 (depends on 8)

The computer program product of claim 8, wherein the shutdown mode is a low power mode.

### Claim 15

A system, comprising:
a storage device;
a first processor communicatively coupled to the storage device; and a second processor communicatively coupled to the storage device, wherein the first processor executes application code instructions that are stored in the storage device to cause the system to:
obtain an input indicating a request to shut down a computing device;
initiate a shutdown mode of the computing device, the shutdown mode comprising application code instructions to:
assert a power-on reset (POR) mode on the second processor to prevent the second processor from executing a boot-up procedure until the first processor has executed a secure chain of trust to boot-up,
validate an image associated with the second processor of the computing device by verifying a signature of the image, wherein the second processor image is stored in a memory location associated with the second processor,
store results of the validation of the second processor image in a memory location associated with the first processor, and
initiate a low power mode for the computing device;
obtain a second input indicating a request to power on the computing device;
execute a boot-up procedure for the first processor;
de-assert the POR mode of the second processor, wherein de-asserting the POR mode of the second processor allows the second processor to execute the secure chain of trust to boot-up; and
provide instructions to the second processor of the computing device to execute the boot-up procedure for the second processor, wherein the instructions comprise instructions to verify a status of the validated second processor image based on the stored validation results; and
wherein the second processor executes application code instructions that are stored in the storage device to cause the system to:
execute the boot-up procedure when the status indicates that the second processor image is valid, wherein executing the boot-up procedure comprises using the second processor image to initiate an operating system of the computing device.

### Claim 16 (depends on 15)

The system of claim 15, wherein the second processor image is an operating system for the second processor.

### Claim 17 (depends on 15)

The system of claim 15, wherein validating the second processor image comprises application code instructions to:
obtain the second processor image stored in the memory location associated with the second processor;
convert the second processor image into a fixed-size byte array;
obtain a key associated with the second processor image, wherein the key is stored in a memory location associated with the first processor;
obtain a signature associated with the second processor image, wherein the signature is stored in the memory location associated with the second processor;
convert, using the key associated with the second processor image, the signature associated with the second processor image into a fixed-size byte array;
match the byte array of the converted second processor image with the byte array of the converted signature; and
store the validation results as true based on a determination that the byte array of the converted second processor image matches the byte array of the converted signature.

### Claim 18 (depends on 15)

The system of claim 15, wherein executing the boot-up procedure for the first processor comprises application code instructions to:
validate a first processor image associated with the first processor, wherein the first processor image is an operating system for the first processor; and
utilize the validated first processor image to boot-up the first processor.

### Claim 19 (depends on 15)

The system of claim 15, wherein verifying the status of the stored second processor image comprises application code instructions to determine that the stored validation results are true.

### Claim 20 (depends on 15)

The system of claim 15, wherein the shutdown mode is a low power mode.
