IP Library › Granted Patent US 10,193,694
Granted Patent B1
US 10,193,694 · App. 15/297,989 · Granted Jan 29, 2019

Method and apparatus for securely configuring parameters of a system-on-a-chip (SOC)

Inventors: Paul Guditz (Acton, MA); Tolga Nihat Aytek (Framingham, MA); Deniz Karakoyunlu (Cambridge, MA); Minda Zhang (Westford, MA)
Assignee: Marvell International Ltd.
H04L9/3236G06F9/4406G06F21/44H04L9/14H04L9/30G01R31/31719G01R31/318597
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,193,694
App. No.
15/297,989
Granted
Jan 29, 2019
Kind
B1
Abstract

Embodiments include a method comprising: receiving, by a system-on-a-chip (SOC) from a host, a public key of a public/private key pair; generating a first hash value of the public key; authenticating the first hash value; in response to authenticating the first hash value, transmitting, by the SOC, a first nonce to the host; receiving a signed nonce from the host, the signed nonce being signed using a private key of the public/private key pair; decrypting, using the received public key, the signed nonce to generate a second nonce; based on the first nonce and the second nonce, authenticating the host; in response to authenticating the host, receiving, from the host, a command to configure one or more parameters of the SOC; and configuring the one or more parameters of the SOC.

Claims (59)

1. A method comprising:

receiving, by a system-on-a-chip (SOC) from a host, a public key of a public/private key pair;

generating a first hash value of the public key;

authenticating the first hash value;

in response to authenticating the first hash value, transmitting, by the SOC, a first nonce to the host;

receiving a signed nonce from the host, the signed nonce being signed using a private key of the public/private key pair;

decrypting, using the received public key, the signed nonce to generate a second nonce;

based on the first nonce and the second nonce, authenticating the host;

in response to authenticating the host, receiving, from the host, a command to configure one or more parameters of the SOC; and

configuring the one or more parameters of the SOC.

2. The method of claim 1 , wherein authenticating the first hash value comprises:

comparing the first hash value with a second hash value stored in the SOC; and

in response to the first hash value matching the second hash value, authenticating the first hash value.

3. The method of claim 2 , further comprising:

storing the second hash value in the SOC, while manufacturing the SOC, by programming the second hash value in one or more fuses within the SOC.

4. The method of claim 1 , wherein authenticating the host comprises:

in response to the first nonce matching the second nonce, authenticating the host.

5. The method of claim 1 , wherein the received command is to enable a Joint Test Action Group (JTAG) functionality of the SOC, and wherein configuring the one or more parameters of the SOC comprises:

setting a parameter of the SOC to enable the JTAG functionality of the SOC.

6. The method of claim 5 , further comprising:

in response to enabling the JTAG functionality of the SOC, testing the SOC in accordance with a JTAG protocol; and

transmitting a result of testing the SOC to a device external to the SOC.

7. The method of claim 1 , wherein the received command identifies a storage media from which boot code for the SOC is to be obtained, and wherein configuring the one or more parameters of the SOC comprises:

setting a parameter of the SOC such that the SOC boots from the storage media identified in the received command.

8. The method of claim 1 , wherein the received command is to permanently disable a Joint Test Action Group (JTAG) functionality of the SOC, and wherein configuring the one or more parameters of the SOC comprises:

programming a fuse of the SOC such that the JTAG functionality is permanently disabled.

9. The method of claim 1 , wherein receiving, from the host, the public key further comprises:

receiving, in a register array of the SOC, the public key from the host; and

reading, from the register array and by an enable module of the SOC, the public key,

wherein the enable module is configured to configure the one or more parameters of the SOC,

wherein the register array is within an unsecured area of the SOC, and

wherein the enable module is within a secured area of the SOC.

10. The method of claim 1 , further comprising:

generating, by the SOC, the first nonce such that the first nonce is one of (i) a random or (ii) a pseudo random number.

11. A method comprising:

transmitting, by a host to a system-on-a-chip (SOC), a public key of a public/private key pair, wherein the SOC generates a first hash value of the public key, authenticates the first hash value, and transmits a first nonce to the host;

signing, by the host, the first nonce using a private key of the public/private key pair to generate a signed nonce;

transmitting the signed nonce to the SOC, wherein the SOC decrypts the signed nonce, using the received public key, to generate a second nonce, and wherein the SOC authenticates the host based on the first nonce and the second nonce;

in response to the SOC authenticating the host, transmitting, to the SOC, a command to configure one or more parameters of the SOC.

12. The method of claim 11 , wherein the SOC authenticates the first hash value by:

comparing the first hash value with a second hash value stored in the SOC; and

in response to the first hash value matching the second hash value, authenticating the first hash value.

13. The method of claim 12 , further comprising:

storing, while manufacturing the SOC, the second hash value in the SOC by programming the second hash value in one or more fuses within the SOC.

14. The method of claim 11 , wherein the SOC authenticates the host by:

in response to the first nonce matching the second nonce, authenticating the host.

15. The method of claim 11 , wherein the command is to enable a Joint Test Action Group (JTAG) functionality of the SOC.

16. The method of claim 15 , further comprising:

in response to the SOC enabling the JTAG functionality of the SOC, testing the SOC in accordance with a JTAG protocol; and

receiving a result of testing the SOC.

17. The method of claim 11 , wherein the command identifies a storage media from which boot code for the SOC is to be obtained by the SOC.

18. The method of claim 11 , wherein the command is to permanently disable a Joint Test Action Group (JTAG) functionality of the SOC.

19. The method of claim 11 , wherein transmitting the public key further comprises:

transmitting, in a register array of the SOC, the public key from the host,

wherein an enable module of the SOC is configured to (i) read the public key from the register array, and (ii) configure the one or more parameters of the SOC,

wherein the register array is within an unsecured area of the SOC, and

wherein the enable module is within a secured area of the SOC.

20. The method of claim 11 , further comprising:

securely storing, by the host, the public key and the private key.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2018
From: GUDITZ, PAUL; AYTEK, TOLGA NIHAT; KARAKOYUNLU, DENIZ; ZHANG, MINDA
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 046221/0955 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2018
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 046221/0968 →
Continuity (1)
Provisional Application 62246204 · Oct 26, 2015
Cited By (5)
US 12,423,434 US 12,489,601 US 12,493,417 US 12,694,156 US 12,699,788