IP Library Granted Patent US 11,921,905
Granted Patent B2
US 11,921,905 · App. 17/046,535 · Granted Mar 5, 2024

Secure collaboration between processors and processing accelerators in enclaves

Inventors: Uday Savagaonkar (Redmond, WA); Eric Northup (Seattle, WA)
Assignee: Google LLC
G06F21/72G06F13/4221G06F21/602G06F21/79G06F2213/0026
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 11,921,905
App. No.
17/046,535
Granted
Mar 5, 2024
Kind
B2
Abstract

Aspects of the disclosure relate to providing a secure collaboration between one or more PCIe accelerators and an enclave. An example system may include a PCIe accelerator apparatus. The PCIs accelerator apparatus may include the one or more PCIe accelerators and a microcontroller configured to provide a cryptographic identity to the PCIe accelerator apparatus. The PCIe accelerator apparatus may be configured to use the cryptographic identity to establish communication between the PCIe accelerator apparatus the enclave.

Claims (38)

1. A system for providing a secure collaboration between one or more PCIe accelerators and an enclave defined within memory of a host computing device, the system comprising:

a PCIe accelerator apparatus including:

the one or more PCIe accelerators;

a microcontroller configured to provide a cryptographic hardware identity to the PCIe accelerator apparatus, wherein the PCIe accelerator apparatus is configured to use the cryptographic hardware identity to negotiate a cryptographic session between the PCIe accelerator apparatus and the enclave; and

a cryptographic engine separate from the one or more PCIe accelerators and arranged in a PCIe path of the one or more PCIe accelerators to provide encryption and decryption operations between the one or more PCIe accelerators and the enclave during the cryptographic session.

2. The system of claim 1 , further comprising a circuit board on which each of the one or more PCIe accelerators and the microcontroller are arranged.

3. The system of claim 1 , wherein each of the one or more PCIe accelerators is one of a tensor processing unit or a graphical processing unit.

4. The system of claim 1 , wherein the PCIe accelerator apparatus further comprises an application processor configured to communicate with the enclave.

5. The system of claim 4 , wherein the application processor is incorporated into the microcontroller.

6. The system of claim 4 , wherein the application processor further includes a dedicated function for communicating with an operating system of a computing device on which the enclave resides.

7. The system of claim 6 , wherein the dedicated function is configured to enable a communication path between the application processor and the enclave via the computing device.

8. The system of claim 1 , wherein the cryptographic engine is configured to decrypt information from the enclave that is entering the PCIe accelerator apparatus during the cryptographic session.

9. The system of claim 1 , wherein the cryptographic engine is configured to encrypt information from the PCIe accelerator apparatus that is entering the enclave during the cryptographic session.

10. The system of claim 1 , wherein the cryptographic engine is a line-rate cryptographic engine.

11. The system of claim 1 , wherein the PCIe accelerator apparatus further comprises an application processor configured to manage keys used by the cryptographic engine.

12. The system of claim 1 , wherein the cryptographic engine is a separate component from the one or more PCIe accelerators in the PCIe accelerator apparatus.

13. The system of claim 1 , wherein the cryptographic engine is arranged between the one or more PCIe accelerators and the enclave.

14. A method for providing a secure collaboration between one or more PCIe accelerators of a PCIe accelerator apparatus and an enclave defined within memory of a host computing device, the method comprising:

negotiating, by the PCIe accelerator apparatus, a cryptographic session with the enclave using a cryptographic hardware identity provided by a microcontroller of the PCIe accelerator apparatus; and

during the cryptographic session:

retrieving, by the PCIe accelerator apparatus, encrypted one or both of code or data from the enclave;

decrypting, by a cryptographic engine of the PCIe accelerator apparatus, the encrypted one or both of code or data, the cryptographic engine being separate from the one or more PCIe accelerators and arranged in a PCIe path of the one or more PCIe accelerators;

retrieving, by the one or more PCIe accelerators, the unencrypted one or both of code or data;

processing, by the one or more PCIe accelerators, the unencrypted one or both of code or data to generate results;

encrypting, by the cryptographic engine, the results; and

sending, by the PCIe accelerator apparatus, the encrypted results back to the enclave.

15. The method of claim 14 , wherein the cryptographic session is negotiated through host OS-mediated communication.

16. The method of claim 14 , wherein the encrypted one or both of code or data are retrieved using direct memory access.

17. The method of claim 14 , wherein the encrypted results are sent using direct memory access.

18. A non-transitory computer-readable medium storing instructions executable by one or more processors for providing a secure collaboration between one or more PCIe accelerators of a PCIe accelerator apparatus and an enclave defined within memory of a host computing device, the instructions comprising:

negotiating a cryptographic session with the enclave using a cryptographic hardware identity provided by a microcontroller of the PCIe accelerator apparatus; and

during the cryptographic session:

retrieving encrypted one or both of code or data from the enclave;

decrypting the encrypted one or both of code or data using a cryptographic engine, the cryptographic engine being separate from the one or more PCIe accelerators and arranged in a PCIe path of the one or more PCIe accelerators;

retrieving the unencrypted one or both of code or data;

processing the unencrypted one or both of code or data to generate results;

encrypting the results using the cryptographic engine; and

sending the encrypted results back to the enclave.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2020
From: SAVAGAONKAR, UDAY; NORTHUP, ERIC
To: GOOGLE LLC
Reel/Frame 054127/0626 →
Continuity (3)
Provisional Application 62672680 · May 17, 2018
Provisional Application 62664438 · Apr 30, 2018
Related Publication 20210034788A1 · Feb 4, 2021
Cited By (5)
US 12,306,996 US 12,362,947 US 12,417,294 US 12,499,263 US 12,541,617