IP Library › Granted Patent US 10,268,844
Granted Patent B2
US 10,268,844 · App. 15/669,873 · Granted Apr 23, 2019

Embedding foundational root of trust using security algorithms

Inventor: Rajeev Gulati (Sammamish, WA)
Assignee: Data I/O Corporation
G06F21/76G06F21/572G06F21/72
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,268,844
App. No.
15/669,873
Filed
Aug 4, 2017
Granted
Apr 23, 2019
Kind
B2
Art Unit
2439
USPC
713/189
Abstract

Approaches, techniques, and mechanisms are disclosed for provisioning programmable devices in a secure manner. The secure programming system can individually encrypt a target payload of data and code and then program the information into each individual one of the programmable devices targeted for a specific job. The secure programming system can create a customized payload package that can only be decrypted by a particular system or device having the correct security keys.

Claims (43)

1. An apparatus comprising:

a programming unit including:

a security controller that generates a security algorithm in a secure execution environment, the security algorithm dynamically configured based on a device type of a programmable device;

a programmer configured to execute the security algorithm that programs a secure application programming interface into the programmable device;

an identification device, implemented at least partially by hardware, that generates an identification token based on a root of trust data register of the programmable device and a root of trust code register of the programmable device;

a cryptography device, implemented at least partially by hardware, that calculates a cryptographic token and a key token for authentication of the root of trust data register and the root of trust code register;

an authentication device, implemented at least partially by hardware, that verifies the programmable device is authorized to access the programmer by validating the identification token with the key token; and

a code signing device, implemented at least partially by hardware, that verifies a digital signature of a payload before the programmer programs the payload in the programmable device using the secure application programming interface.

2. The apparatus as recited in claim 1 , wherein the root of trust code register includes the security algorithm generated using a programming project at an original equipment manufacturer (OEM) development premise and stored in the programmable device by the programmer at a factory premise.

3. The apparatus as recited in claim 2 , further comprising a factory security system, implemented at least partially by hardware, that stores a root of trust (RoT) in the programmable device based on the security algorithm.

4. The apparatus as recited in claim 2 , wherein the programmer generates security information for storing in the programmable device based on the security algorithm.

5. The apparatus as recited in claim 2 , wherein the programmer stores a key pair in the programmable device based on the security algorithm.

6. The apparatus as recited in claim 2 , wherein the programmer generates a certificate with a public key and a private key based on the security algorithm.

7. The apparatus as recited in claim 6 , wherein the programmer stores the certificate in the programmable device based on the security algorithm.

8. A method comprising:

generating a security algorithm in a secure execution environment, the security algorithm dynamically configured based on a device type of a programmable device;

executing the security algorithm on the programmer to program a secure application programming interface into the programmable device;

generating an identification token used by a manufacturing execution system based on a root of trust data register of the programmable device and a root of trust code register of the programmable device;

calculating a cryptographic token and a key token for authentication of the root of trust data register and the root of trust code register;

verifying the programmable device is authorized to access the programmer by validating the identification token with the key token; and

verifying a digital signature of a payload before the programmer programs the payload in the programmable device using the secure application programming interface.

9. The method of claim 8 , further comprising:

generating the security algorithm using a programming project at an original equipment manufacturer (OEM) development premise; and

storing the security algorithm in the root of trust code register of the programmable device by a programmer at a factory premise.

10. The method of claim 9 , further comprising storing a root of trust (RoT) in the programmable device based on the security algorithm.

11. The method of claim 9 , further comprising generating security information for storing in the programmable device based on the security algorithm.

12. The method of claim 9 , further comprising storing a key pair in the programmable device based on the security algorithm.

13. The method of claim 9 , further comprising generating a certificate with a public key and a private key based on the security algorithm.

14. The method of claim 13 , further comprising storing the certificate in the programmable device based on the security algorithm.

15. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause:

generating a security algorithm in a secure execution environment, the security algorithm dynamically configured based on a device type of a programmable device;

executing the security algorithm on a programmer to program a secure application programming interface into the programmable device;

generating an identification token used by a manufacturing execution system based on a root of trust data register of the programmable device and a root of trust code register of the programmable device;

calculating a cryptographic token and a key token for authentication of the root of trust data register and the root of trust code register;

verifying the programmable device is authorized to access the programmer by validating the identification token with the key token; and

verifying a digital signature of a payload before the programmer programs the payload in the programmable device using the secure application programming interface.

16. The non-transitory computer-readable media of claim 15 , further comprising:

generating the security algorithm using a programming project at an original equipment manufacturer (OEM) development premise; and

storing the security algorithm in the root of trust code register of the programmable device by a programmer at a factory premise.

17. The non-transitory computer-readable media of claim 16 , further comprising storing a root of trust (RoT) in the programmable device based on the security algorithm.

18. The non-transitory computer-readable media of claim 16 , further comprising generating security information for storing in the programmable device based on the security algorithm.

19. The non-transitory computer-readable media of claim 16 , further comprising storing a key pair in the programmable device based on the security algorithm.

20. The non-transitory computer-readable media of claim 16 , further comprising generating a certificate with a public key and a private key based on the security algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2017
From: GULATI, RAJEEV
To: DATA I/O CORPORATION
Reel/Frame 043434/0588 →
Continuity (2)
Provisional Application 62372242 · Aug 8, 2016
Related Publication 20180039795A1 · Feb 8, 2018
Cited By (1)
US 12,683,804