IP Library Granted Patent US 10,567,362
Granted Patent B2
US 10,567,362 · App. 15/624,318 · Granted Feb 18, 2020

Method and system for an efficient shared-derived secret provisioning mechanism

Inventors: William V. Oxford (Austin, TX); Gerald E. Woodcock, III (Austin, TX); Stephen E. Smith (Austin, TX); Roderick Schultz (San Francisco, CA); Marcos Portnoi (Austin, TX); Stuart W. Juengst (Austin, TX); Charles T. Schad (Austin, TX); Michael K. Eneboe (Georgetown, TX); Alexander Usach (San Francisco, CA); Keith Evans (San Jose, CA)
Assignee: Rubicon Labs, Inc.
H04L63/065H04L9/3242H04L63/061H04L63/0876
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,567,362
App. No.
15/624,318
Granted
Feb 18, 2020
Kind
B2
Abstract

Embodiments of systems and methods disclosed herein include an embedded secret provisioning system that is based on a shared-derivative mechanism. Embodiments of this mechanism use a trusted third-party topology, but only a single instance of a public-private key exchange is required for initialization. Embodiments of the system and methods are secure and any of the derived secret keys are completely renewable in untrusted environments without any reliance on asymmetric cryptography. The derived secrets exhibit zero knowledge attributes and the associated zero knowledge proofs are open and available for review. Embodiments of systems and methods can be implemented in a wide range of previously-deployed devices as well as integrated into a variety of new designs using minimal roots-of-trust.

Claims (42)

1. A method for provisioning a device with an embedded secret comprising:

providing a first embedded key hardware register in the device;

providing a second embedded key hardware register in the device;

providing a pair of keyed hash functions in the device;

permanently writing a known value into the first embedded key hardware register in the device to create an embedded secret;

receiving a first external reference code from a source external to the device; and

creating a second external reference code by hashing the received first external reference code using one of the keyed hash functions, wherein the keyed hash function is keyed using the embedded secret created by the permanent writing of the known value into the first embedded key hardware register wherein creating the second external reference code includes at device power-up, transferring the contents of the first embedded key register to the second embedded key register, where the contents of the second embedded key register are provided as a key to the one of the keyed hash functions, and wherein at device power-up, the contents of the second embedded key register are updated with a value derived from the known value permanently written in the first embedded key register; and

providing an internal MAC output by hashing a message input using the contents of the second embedded key register as the key to one of the keyed hash functions.

2. The method of claim 1 , wherein the derived value is derived by hashing an external message input using the known value as the key to a hash function.

3. The method of claim 1 , further comprising:

receiving an external reference code input value; and

comparing the received external reference code input value to a calculated internal reference.

4. The method of claim 3 , further comprising conditioning the availability of the internal MAC output based on the comparison of the received external reference code input value to the calculated internal reference.

5. The method of claim 4 , wherein the internal MAC output is made available outside the device only when the received external reference code input value matches the calculated internal reference.

6. A system for provisioning a device with an embedded secret comprising:

a processor;

a secure execution controller;

first and second embedded key hardware registers in the device; and

at least one non-transitory computer-readable storage medium storing computer instructions translatable by the processor to perform:

providing a pair of keyed hash functions in the device;

receiving a first external reference code from a source external to the device;

permanently writing a known value into the first embedded key hardware register in the device to create an embedded secret; and

creating a second external reference code by hashing the received first external reference code using one of the keyed hash functions, wherein the keyed hash function is keyed using the embedded secret created by the permanent writing of the known value into the first embedded key hardware register wherein creating the second external reference code includes at device power-up, transferring the contents of the first embedded key register to the second embedded key register where the contents of the second embedded key register are provided as a key to the one of the keyed hash functions, and wherein at device power-up, the contents of the second embedded key register are updated with a value derived from the known value permanently written in the first embedded key register; and

providing an internal MAC output by hashing a message input using the contents of the second embedded key register as the key to one of the keyed hash functions.

7. The system of claim 6 , wherein the derived value is derived by hashing an external message input using the known value as the key to a hash function.

8. The system of claim 6 , wherein the instructions translatable by the processor further comprise:

receiving an external reference code input value; and

comparing the received external reference code input value to a calculated internal reference.

9. The system of claim 8 , wherein the instructions translatable by the processor further comprise conditioning the availability of the internal MAC output based on the comparison of the received external reference code input value to the calculated internal reference.

10. The system of claim 9 , wherein the internal MAC output is made available outside the device only when the received external reference code input value matches the calculated internal reference.

11. A method for provisioning a device with a group secret key that is sharable with similar devices comprising:

providing a first embedded key hardware register in the device;

providing a second embedded key hardware register in the device;

providing a pair of keyed hash functions in the device;

permanently writing a known value into the first embedded key hardware register in the device to create an embedded secret;

at device power-up, transferring the contents of the first embedded key register to the second embedded key register, wherein the contents of the second embedded key register are provided as a key to one of the pair of keyed hash functions;

after device power-up, updating the contents of the second embedded key register with a value derived from the known value permanently written in the first embedded key register;

providing an internal MAC output by hashing a message input using a derivation of the contents of the first embedded key register as the key to one of the pair of keyed hash functions;

receiving an external message input from a source external to the device; and

using the internal MAC output and the external message input to derive a group secret key, wherein the group secret key includes secret portion and a public portion, and wherein the public portion of the group secret key identifies a group to which the device belongs.

12. The method of claim 11 , further comprising generating an embedded secret from internal MAC output and an input field from the external message input using an exclusive OR function.

13. The method of claim 11 , further comprising a third embedded key register in the device, wherein the derived group secret key is stored in the third embedded key register.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2021
From: RUBICON LABS INC.
To: TORUS VENTURES LLC
Reel/Frame 057761/0598 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: OXFORD, WILLIAM V.; WOODCOCK, GERALD E., III; SMITH, STEPHEN E.; SCHULTZ, RODERICK; PORTNOI, MARCOS; JUENGST, STUART W.; SCHAD, CHARLES T.; ENEBOE, MICHAEL K.; USACH, ALEXANDER; EVANS, KEITH
To: RUBICON LABS, INC.
Reel/Frame 044101/0279 →
Continuity (2)
Provisional Application 62351601 · Jun 17, 2016
Related Publication 20170366527A1 · Dec 21, 2017