IP Library Granted Patent US 8,842,836
Granted Patent B2
US 8,842,836 · App. 12/324,505 · Granted Sep 23, 2014

System for and method of cryptographic provisioning

Inventors: Anthony C. Fascenda (North Bethesda, MD); Emil Sturniolo (Medina, OH); Robert Cichielo (Asbury, NJ); Paul Benware (Mendon, NY)
Assignee: Koolspan, Inc.
G06F21/72H04L9/0897G06F21/78H04L2209/80
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 8,842,836
App. No.
12/324,505
Granted
Sep 23, 2014
Kind
B2
Abstract

A system for and method of securely provisioning a module with cryptographic parameters, such as cryptographic keys and key tables, is presented. Such modules may be used to enable encrypted communications between mobile phones to which they are coupled. The system and method prevent a malevolent individual involved in manufacturing the modules from compromising the security of the module. In particular, the modules are provisioned by an entity different from the manufacturer.

Claims (41)

1. A method of provisioning a module with cryptographic parameters, wherein the module comprises a first nonvolatile memory, a second nonvolatile memory, a third nonvolatile memory, and a processor, the method comprising:

storing a first cryptographic key in at least one of the first nonvolatile memory and the second nonvolatile memory; and

storing a first program encrypted using the first cryptographic key in at least one of the first nonvolatile memory and the second nonvolatile memory, wherein the first program is configured to:

generate, within the module and using the processor, a memory protection key and a bootstrap key;

encrypt, within the module, the memory protection key using the bootstrap key, whereby encrypting the memory protection key with the bootstrap key generates an encrypted memory protection key and a first authenticator;

store, within the first nonvolatile memory, the encrypted memory protection key and the first authenticator; and

store, within the second nonvolatile memory, the bootstrap key; and

pass the encrypted memory protection key outside the module using a first program command;

receiving, via an interface, the encrypted memory protection key as a returned encrypted memory protection key; and

storing the returned encrypted memory protection key in a third nonvolatile memory.

2. The method of claim 1 , wherein the first nonvolatile memory and the second nonvolatile memory are logically partitioned portions of a single physical persistent memory.

3. The method of claim 1 further comprising storing in the module additional programming, encrypted using the memory protection key.

4. The method of claim 1 further comprising, when the module is activated, decrypting, within the module, the encrypted memory protection key, whereby decrypting the encrypted memory protection key generates a second authenticator; comparing the first authenticator and the second authenticator; and disabling at least some operations of the module if a result of the comparing indicates a lack of authenticity.

5. The method of claim 1 wherein the module lacks a power supply.

6. The method of claim 1 wherein a form factor for the module is selected from the group consisting of: SD, mini SD, micro SD, PCMCIA, P2, Compact Flash, Memory Stick, PRO Memory Stick, PRO Duo Memory Stick, Micro Memory Stick, Multi Media Card, SmartMedia Memory Card, MultiMedia Memory Card, Reduced Size MultiMedia Memory Card, MultiMedia Memory Card Mobile, MultiMedia Memory Card Plus, MultiMedia Memory Card Micro, xD Memory Card, SIP, DIP and USB.

7. The method of claim 1 further comprising, prior to the step of storing a first cryptographic key, receiving the module, wherein the received module comprises a test program and a test key, wherein the test program and test key are configured to test that the module has been correctly manufactured.

8. The method of claim 1 further comprising:

accessing a public key associated with an entity;

encrypting a symmetric key using the public key, whereby an encrypted symmetric key is generated;

transmitting the encrypted symmetric key to the entity;

receiving, from the entity, at least one key encrypted with the symmetric key; and

decrypting, within the module, the at least one key.

9. The method of claim 8 further comprising: encrypting the at least one key using the memory protection key, whereby an encrypted symmetric key is generated; and storing the encrypted symmetric key in the second nonvolatile memory.

10. The method of claim 1 , wherein the first program command is a unique first program command.

11. The method of claim wherein the third nonvolatile memory is embedded nonvolatile RAM.

12. A system for provisioning a module with cryptographic parameters, wherein the module comprises a first nonvolatile memory, a second nonvolatile memory, a third nonvolatile memory, and a processor, the system comprising:

a first storage module that stores a first cryptographic key in at least one of the first nonvolatile memory and the second nonvolatile memory; and

a second storage module that stores a first program encrypted using the first cryptographic key in at least one of the first nonvolatile memory and the second nonvolatile memory, wherein the first program is configured to:

generate, within the module and using the processor, a memory protection key and a bootstrap key;

encrypt, within the module, the memory protection key using the bootstrap key, whereby encrypting the memory protection key with the bootstrap key generates an encrypted memory protection key and a first authenticator;

store, within the first nonvolatile memory, the encrypted memory protection key and the first authenticator; and

store, within the second nonvolatile memory, the bootstrap key; and

pass the encrypted memory protection key outside the module using a first program command;

wherein the module is further configured to receive, via an interface, the encrypted memory protection key as a returned encrypted memory protection key; and store the returned encrypted memory protection key in a third nonvolatile memory.

13. The system of claim 12 , wherein the first nonvolatile memory and the second nonvolatile memory are logically partitioned portions of a single physical persistent memory.

14. The system of claim 12 further comprising storing in the module additional programming, encrypted using the memory protection key.

15. The system of claim 12 wherein the first program is further configured to, when the module is activated, decrypt, within the module, the encrypted memory protection key, whereby decrypting the encrypted memory protection key generates a second authenticator; compare the first authenticator and the second authenticator; and disable at least some operations of the module if a result of the comparing indicates a lack of authenticity.

16. The system of claim 12 wherein the module lacks a power supply.

17. The system of claim 12 wherein a form factor for the module is selected from the group consisting of: SD, mini SD, micro SD, PCMCIA, P2, Compact Flash, Memory Stick, PRO Memory Stick, PRO Duo Memory Stick, Micro Memory Stick, Multi Media Card, SmartMedia Memory Card, MultiMedia Memory Card, Reduced Size MultiMedia Memory Card, MultiMedia Memory Card Mobile, MultiMedia Memory Card Plus, MultiMedia Memory Card Micro, xD Memory Card, SIP, DIP and USB.

18. The system of claim 12 , wherein the first program command is a unique first program command.

19. The system of claim 12 , wherein the third nonvolatile memory is embedded nonvolatile RAM.

Assignments (2)
SECURITY AGREEMENT Recorded Sep 24, 2013
From: KOOLSPAN, INC.
To: SILICON VALLEY BANK
Reel/Frame 031282/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2009
From: FASCENDA, ANTHONY C.; STURNIOLO, EMIL; CICHIELO, ROBERT; BENWARE, PAUL
To: KOOLSPAN, INC.
Reel/Frame 022386/0264 →
Continuity (4)
Provisional Application 61103111 · Oct 6, 2008
Provisional Application 60990145 · Nov 26, 2007
Provisional Application 61032196 · Feb 28, 2008
Related Publication 20090169013A1 · Jul 2, 2009