Systems and methods for secure processing with embedded cryptographic unit
First Claim
Patent Images
1. A cryptographic processing unit for cryptographic processing in conjunction with a general purpose processor, the cryptographic processing unit comprising:
- a cryptographic processor, the cryptographic processor configured to;
receive a script identifier from the general purpose processor;
verify that a script identified by the script identifier is authorized for execution on the cryptographic processor;
execute the script to produce a script result; and
determine whether the script result comprises a critical security parameter that cannot be output from the cryptographic processor in unencrypted form;
a protected memory that stores a secret key,wherein the cryptographic processor is further configured to encrypt at least the critical security parameter in the script result using the secret key, wherein the general purpose processor executes a set of instructions stored in a general non-transitory computer readable memory, wherein the cryptographic processing unit is configured to;
access the general non-transitory computer readable memory to read the set of instructions; and
verify, using at least one verification value stored in the protected memory, that the set of instructions has not been altered,wherein the general non-transitory computer readable memory is accessible via a general debugging interface, wherein the cryptographic processing unit further comprises a cryptographic processing unit debugging interface, wherein each of the general debugging interface and the cryptographic processing unit debugging interface is independently controlled, wherein the general debugging interface is controlled using a first electronic fuse block, and wherein the cryptographic processing unit comprises a second electronic fuse block for controlling the cryptographic processing unit debugging interface.
5 Assignments
0 Petitions
Accused Products
Abstract
Processor system with a general purpose processor and a cryptographic processor dedicated to performing cryptographic operations and enforcing the security of critical security parameters. The cryptographic processor prevents exposure of critical security parameters outside the cryptographic processor itself, and instead implements a limited scripting engine, which can be used by the general purpose processor to execute operations that require the critical security parameters.
-
Citations
39 Claims
-
1. A cryptographic processing unit for cryptographic processing in conjunction with a general purpose processor, the cryptographic processing unit comprising:
-
a cryptographic processor, the cryptographic processor configured to; receive a script identifier from the general purpose processor; verify that a script identified by the script identifier is authorized for execution on the cryptographic processor; execute the script to produce a script result; and determine whether the script result comprises a critical security parameter that cannot be output from the cryptographic processor in unencrypted form; a protected memory that stores a secret key, wherein the cryptographic processor is further configured to encrypt at least the critical security parameter in the script result using the secret key, wherein the general purpose processor executes a set of instructions stored in a general non-transitory computer readable memory, wherein the cryptographic processing unit is configured to; access the general non-transitory computer readable memory to read the set of instructions; and verify, using at least one verification value stored in the protected memory, that the set of instructions has not been altered, wherein the general non-transitory computer readable memory is accessible via a general debugging interface, wherein the cryptographic processing unit further comprises a cryptographic processing unit debugging interface, wherein each of the general debugging interface and the cryptographic processing unit debugging interface is independently controlled, wherein the general debugging interface is controlled using a first electronic fuse block, and wherein the cryptographic processing unit comprises a second electronic fuse block for controlling the cryptographic processing unit debugging interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
wherein the verifying comprises computing a second script verification value based on the received script, and comparing the second script verification value to the retrieved script verification value.
-
-
5. The cryptographic processing unit of claim 1, further comprising a non-transitory computer readable memory, wherein the cryptographic processor is configured by instructions stored in the non-transitory computer readable memory, and wherein the instructions specify a limited instruction set that limits instructions able to be used in the script.
-
6. The cryptographic processing unit of claim 5, wherein the limited instruction set is non-Turing-equivalent.
-
7. The cryptographic processing unit of claim 5, wherein the limited instruction set excludes conditional branching instructions.
-
8. The cryptographic processing unit of claim 5, wherein the limited instruction set excludes loop instructions.
-
9. The cryptographic processing unit of claim 1, wherein the cryptographic processor is configured to control the first and second electronic fuse blocks.
-
10. The cryptographic processing unit of claim 1, wherein the general debugging interface and the cryptographic processing unit debugging interface are JTAG interfaces.
-
11. The cryptographic processing unit of claim 1, further comprising a clock source for both the general purpose processor and the cryptographic processor, wherein the clock source is manipulable by the cryptographic processor but not the general purpose processor.
-
12. The cryptographic processing unit of claim 1, further comprising a power supply for providing power to the general purpose processor and the cryptographic processor, wherein the power supply is controllable by the cryptographic processor but not the general purpose processor.
-
13. A cryptographic processor system comprising:
-
a general purpose unit comprising; a general purpose processor configured to execute a general instruction set; a cryptographic unit comprising; a protected memory not readable by the general purpose processor; and a cryptographic processor configured to; receive a script identifier from the general purpose processor; verify that a script identified by the script identifier is authorized for execution on the cryptographic processor; and execute the script to produce a script result; a general debugging interface coupled to the general purpose unit; and a cryptographic unit debugging interface coupled to the cryptographic processing unit, wherein each of the general debugging interface and the cryptographic unit debugging interface is independently controlled, wherein the general debugging interface is controlled using a first electronic fuse block, and wherein the cryptographic unit debugging interface is controlled using a second electronic fuse block. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
wherein the verifying comprises computing a second script verification value based on the received script, and comparing the second script verification value to the retrieved script verification value.
-
-
18. The processor system of claim 14, wherein the cryptographic processing unit further comprises a non-transitory computer readable memory, wherein the cryptographic processor is configured by instructions stored in the non-transitory computer readable memory, and wherein the instructions specify a limited instruction set that limits instructions able to be used in the script.
-
19. The processor system of claim 18, wherein the limited instruction set is non-Turing-equivalent.
-
20. The processor system of claim 18, wherein the limited instruction set excludes conditional branching instructions.
-
21. The processor system of claim 18, wherein the limited instruction set excludes loop instructions.
-
22. The processor system of claim 14, wherein the cryptographic processor is configured to halt the general purpose processor if a fault is detected.
-
23. The processor system of claim 14, wherein the cryptographic unit is configured to flush state if a fault is detected, and to disable at least one external interface of the processor system.
-
24. The processor system of claim 14, further comprising a memory access block, wherein the general purpose unit further comprises a general purpose unit computer-readable memory storing a set of instructions executable by the general purpose processor, and wherein the cryptographic processor is configured to:
-
access the general purpose unit computer readable memory via the memory access block to read the set of instructions; verify, using at least one verification value stored in the protected memory, that the set of instructions has not been altered.
-
-
25. The processor system of claim 14, wherein the general purpose unit comprises a general volatile memory, and wherein the cryptographic unit comprises a protected volatile memory that is accessible only to the cryptographic processor.
-
26. The processor system of claim 25, wherein the cryptographic processor is configured to write a data item to the protected volatile memory.
-
27. The processor system of claim 26, wherein the cryptographic unit is configured to read the data item from the protected volatile memory upon receiving a subsequent script for execution.
-
28. The processor system of claim 26, wherein the cryptographic unit is certified for compliance with a computer security standard, and wherein the general purpose unit is excluded from certification.
-
29. The processor system of claim 28, wherein the computer security standard is FIPS 140-2.
-
30. The processor system of claim 29, wherein the computer security standard is FIPS 140-2 Level 3.
-
31. The processor system of claim 26, wherein the general purpose unit, the cryptographic unit and the communications interface are provided on a single die.
-
32. The processor system of claim 26, wherein the general purpose unit is provided on a first die and the cryptographic unit is provided on a second die.
-
33. The processor system of claim 13, wherein both the first and second electronic fuse blocks are controllable by the cryptographic processor.
-
34. The processor system of claim 13, wherein the general debugging interface and the cryptographic unit debugging interface are JTAG interfaces.
-
35. The processor system of claim 13, further comprising a clock source for both the general purpose processor and the cryptographic processor, wherein the clock source is settable by the cryptographic processor but not the general purpose processor.
-
36. The processor system of claim 13, further comprising a power supply for both the general purpose processor and the cryptographic processor, wherein the power supply is controllable by the cryptographic processor but not the general purpose processor.
-
37. The processor system of claim 13, wherein the cryptographic processor is further configured to determine whether the script result comprises a critical security parameter that cannot be output from the cryptographic processor in unencrypted form.
-
38. The processor system of claim 37, wherein the protected memory stores a secret key, and wherein the cryptographic processor is further configured to encrypt at least the critical security parameter in the script result using the secret key.
-
39. The processor system of claim 38, wherein the protected memory is not readable externally to the cryptographic processing unit.
Specification