IP Library Granted Patent US 12,432,187
Granted Patent B2
US 12,432,187 · App. 18/345,278 · Granted Sep 30, 2025

Secure stream protocol for serial interconnect

Inventors: Vedvyas Shanbhogue (Austin, TX); Siddhartha Chhabra (Portland, OR); David J. Harriman (Portland, OR); Raghunandan Makaram (Northborough, MA); Ioannis T. Schoinas (Portland, OR)
Assignee: Intel Corporation
H04L63/0457G06F13/4282G06F21/606G06F21/64G06F2213/0026H04L9/3242H04L63/0464
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 12,432,187
App. No.
18/345,278
Granted
Sep 30, 2025
Kind
B2
Abstract

Methods, systems, and apparatuses associated with a secure stream protocol for a serial interconnect are disclosed. An apparatus comprises a first device comprising circuitry to, using an end-to-end protocol, secure a transaction in a first secure stream based at least in part on a transaction type of the transaction, where the first secure stream is separate from a second secure stream. The first device is further to send the transaction secured in the first secure stream to a second device over a link established between the first device and the second device, where the transaction is to traverse one or more intermediate devices from the first device to the second device. In more specific embodiments, the first secure stream is based on one of a posted transaction type, a non-posted transaction type, or completion transaction type.

Claims (85)

1. An apparatus comprising:

first interface circuitry to:

secure a first transaction layer packet (TLP) in a first stream of a plurality of streams based, at least in part, on a first transaction type of the first TLP, wherein the first stream is to include one or more transaction layer packets (TLPs) of the first transaction type, wherein the first transaction type is one of a plurality of transaction types including a posted transaction type and a non-posted transaction type, wherein to secure the first TLP in the first stream is to include:

encrypting a first data portion of the first TLP based at least in part on a first encryption key assigned to the first stream;

computing a first message authentication code over at least the encrypted first data portion and a first header in the first TLP; and

adding the first message authentication code to the first TLP; and

secure a second TLP in a second stream of the plurality of streams based at least in part on a second transaction type that is different from the first transaction type, wherein the second stream is to include one or more other transaction layer packets (TLPs) of the second transaction type, wherein to secure the second TLP in the second stream is to include:

encrypting a second data portion of the second TLP based at least in part on a second encryption key that is different than the first encryption key and is assigned to the second stream.

2. The apparatus of claim 1 , wherein the first interface circuitry is further to:

send the first TLP secured in the first stream to second interface circuitry of a target device, wherein the first TLP is to traverse one or more intermediate devices from the first interface circuitry to the second interface circuitry; and

send the second TLP secured in the second stream to the second interface circuitry of the target device.

3. The apparatus of claim 2 , wherein two or more transaction layer packets (TLPs) of the posted transaction type in the first stream are to be received by the second interface circuitry in a same order that the first interface circuitry is to send the two or more TLPs.

4. The apparatus of claim 1 , wherein the first TLP comprises a first prefix including a trusted bit.

5. The apparatus of claim 4 , wherein the first prefix is to include the trusted bit to indicate whether the first TLP originated from a trusted domain.

6. The apparatus of claim 4 , wherein the first message authentication code is to be computed, in part, over the first prefix.

7. The apparatus of claim 1 , wherein the first data portion of the first TLP is to be encrypted based, in part, on a first counter assigned to the first stream.

8. The apparatus of claim 1 , wherein to secure the second TLP in the second stream is to include:

encrypting the second data portion of the second TLP based, in part, on a second counter assigned to the second stream;

computing a second message authentication code over at least the encrypted second data portion and a second header in the second TLP; and

adding the second message authentication code to the second TLP.

9. The apparatus of claim 1 , wherein the first interface circuitry is further to:

insert a first value of a first posted request sent counter in the second TLP, wherein the first value is to represent a number of transaction layer packets (TLPs) of the posted transaction type sent by the first interface circuitry to second interface circuitry of a target device since a last TLP of the non-posted transaction type was sent.

10. The apparatus of claim 9 , wherein the first interface circuitry is further to:

increment the first posted request sent counter based on the first TLP being the posted transaction type.

11. The apparatus of claim 1 , wherein the first interface circuitry is further to:

receive, from second interface circuitry of a target device, a third TLP of a completion transaction type, the third TLP secured in a third stream of the plurality of streams based, at least in part, on the completion transaction type of the third TLP.

12. The apparatus of claim 11 , wherein the first interface circuitry is further to:

compute a third message authentication code based, at least in part, on an encrypted third data portion and a third header in the third TLP; and

verify integrity of the third TLP based on comparing the third message authentication code and another message authentication code in the third TLP.

13. The apparatus of claim 11 , wherein the first interface circuitry is further to:

obtain, from the third TLP, a second value of a second posted request sent counter maintained by the second interface circuitry of the target device; and

based in part on the second value, determine whether any TLPs of the posted transaction type were dropped or delayed since a last TLP of the completion transaction type was sent via the third stream.

14. The apparatus of claim 1 , wherein the encrypted first data portion and the first message authentication code are to be computed using an Advanced Encryption Standard-Galois Counter Mode (AES-GCM) security scheme.

15. The apparatus of claim 1 , wherein a link for communication between the first interface circuitry and second interface circuitry of a target device, is to be established based on a peripheral component interconnect express (PCIe) protocol with a secure stream protocol.

16. A system comprising:

a first endpoint including a processor and a first input/output (I/O) interface; and

a second endpoint including a second I/O interface, the second I/O interface communicatively coupled to the first I/O interface, wherein the first I/O interface is to:

secure a first transaction layer packet (TLP) in a first stream of a plurality of streams based, at least in part, on a first transaction type of the first TLP, the first transaction type being a posted transaction type, wherein to secure the first TLP in the first stream is to include:

encrypting a first data portion of the first TLP based in part on a first counter assigned to the first stream;

computing a first message authentication code over at least the encrypted first data portion and a first header in the first TLP; and

adding the first message authentication code to the first TLP;

increment a second counter based on the first TLP being a posted transaction type;

send the first TLP to the second endpoint;

secure a second TLP in a second stream of the plurality of streams based, at least in part, on a second transaction type of the second TLP, the second transaction type being a non-posted transaction type;

insert, in the second TLP, a value of the second counter; and

set the second counter to zero based on the second TLP being the non-posted transaction type.

17. The system of claim 16 , wherein the second I/O interface is to:

receive the first TLP and one or more other transaction layer packets (TLPs) of the posted transaction type in the first stream in a same order that the first I/O interface is to send the first TLP and the one or more other TLPs.

18. The system of claim 16 , wherein the first TLP comprises a trusted bit in a prefix, the trusted bit to indicate whether the first TLP originated from a trusted domain in the first endpoint.

19. The system of claim 16 , wherein the second I/O interface is to:

secure a third TLP in a third stream of the plurality of streams based, at least in part, on a completion transaction type of the third TLP, wherein to secure the third TLP in the third stream is to include:

encrypting a second data portion of the third TLP based, in part, on a third counter assigned to the third stream;

computing a second message authentication code over at least the encrypted second data portion and a second header in the third TLP; and

adding the second message authentication code to the third TLP; and

send the third TLP to the first endpoint.

20. The system of claim 16 , wherein the first I/O interface comprises a transmitter, and wherein the second I/O interface comprises a receiver.

21. One or more non-transitory computer-readable media with instructions stored thereon, wherein the instructions are executable to cause a machine to:

secure, at a first device, a first transaction layer packet (TLP) in a first stream of a plurality of streams based, at least in part, on a first transaction type of the first TLP, wherein the first stream is to include one or more transaction layer packets (TLPs) of the first transaction type, wherein the first transaction type is one of a plurality of transaction types including a posted transaction type, a non-posted transaction type, and a completion transaction type, wherein to secure the first TLP in the first stream is to include:

encrypting a first data portion of the first TLP based at least in part on a first encryption key assigned to the first stream;

computing a first message authentication code over at least the encrypted first data portion and a first header in the first TLP; and

adding the first message authentication code to the first TLP; and

secure a second TLP in a second stream of the plurality of streams based, at least in part, on a second transaction type that is different from the first transaction type, wherein the second stream is to include one or more other transaction layer packets (TLPs) of the second transaction type, wherein to secure the second TLP in the second stream is to include:

encrypting a second data portion of the second TLP based at least in part on a second encryption key that is different than the first encryption key and is assigned to the second stream.

22. The one or more non-transitory computer-readable media of claim 21 , wherein the first message authentication code is to be computed, in part, over a trusted bit indicating whether the first TLP originated from a trusted domain.

23. The one or more non-transitory computer-readable media of claim 21 , wherein the first data portion of the first TLP is to be encrypted based, in part, on a first counter assigned to the first stream.

24. An apparatus comprising:

first interface circuitry to:

secure a first transaction layer packet (TLP) in a first stream of a plurality of streams based, at least in part, on the first TLP being a first transaction type, wherein to secure the first TLP in the first stream is to include:

encrypting a first data portion of the first TLP based in part on a first counter assigned to the first stream;

computing a first message authentication code over at least the encrypted first data portion and a first header in the first TLP; and

adding the first message authentication code to the first TLP;

incrementing a second counter based on the first TLP being a posted transaction type;

send the first TLP to second interface circuitry;

secure a second TLP in a second stream of the plurality of streams based, at least in part, on the second TLP being a non-posted transaction type;

insert, in the second TLP, a value of the second counter; and

set the second counter to zero based on the second TLP being the non-posted transaction type.

25. The apparatus of claim 24 , wherein the first message authentication code is to be computed, in part, over a prefix in the first TLP, the prefix including a trusted bit.

26. The apparatus of claim 24 , wherein the first data portion of the first TLP is to be encrypted based, in part, on a first key assigned to the first stream.

27. The apparatus of claim 24 , wherein to secure the second TLP in the second stream is to include:

encrypting a second data portion of the second TLP based, in part, on a third counter assigned to the second stream;

computing a second message authentication code over at least the encrypted second data portion and a second header in the second TLP; and

adding the second message authentication code to the second TLP.

28. The apparatus of claim 24 , wherein the first data portion in the first TLP of the first stream is to be encrypted based, in part, on a first encryption key assigned to the first stream, wherein a second data portion in the second TLP of the second stream is to be encrypted based on a second encryption key and a third counter assigned to the second stream, wherein the first interface circuitry is further to:

send the second TLP to the second interface circuitry.

29. The apparatus of claim 7 , wherein the first counter is a 96-bit counter.

Continuity (3)
Continuation 16445019 · Jun 18, 2019
Provisional Application 62815554 · Mar 8, 2019
Related Publication 20230421545A1 · Dec 28, 2023
References Cited (57)
US 8064600B2 · Bates et al. · 2011 [cited by applicant]
US 9363684B2 · Gustafsson et al. · 2016 [cited by applicant]
US 9596075B2 · Winslow et al. · 2017 [cited by applicant]
US 11048800B2 · Sood et al. · 2021 [cited by applicant]
US 11361093B2 · Harriman et al. · 2022 [cited by applicant]
US 11677730B2 · Chen et al. · 2023 [cited by applicant]
US 20040128553A1 · Buer et al. · 2004 [cited by applicant]
US 20050154804A1 · Stewart et al. · 2005 [cited by applicant]
US 20070073954A1 · Wang · 2007 [cited by examiner]
US 20070234035A1 · Hall · 2007 [cited by examiner]
US 20080025289A1 · Kapur · 2008 [cited by examiner]
US 20090006932A1 · Biran et al. · 2009 [cited by applicant]
US 20090248942A1 · Kloeppner · 2009 [cited by examiner]
US 20090254692A1 · Feehrer · 2009 [cited by examiner]
US 20100251055A1 · Murakami et al. · 2010 [cited by applicant]
US 20100306442A1 · Gregg · 2010 [cited by examiner]
US 20100312928A1 · Brownell · 2010 [cited by examiner]
US 20120166582A1 · Binder · 2012 [cited by applicant]
US 20130086586A1 · Lakshmanamurthy et al. · 2013 [cited by applicant]
US 20130089099A1 · Pollock et al. · 2013 [cited by applicant]
US 20140040618A1 · Liu et al. · 2014 [cited by applicant]
US 20140281587A1 · Ignatchenko · 2014 [cited by examiner]
US 20140304450A1 · Maeda et al. · 2014 [cited by applicant]
US 20150124704A1 · Asterjadhi · 2015 [cited by examiner]
US 20150319231A1 · Naouri · 2015 [cited by applicant]
US 20160149696A1 · Winslow et al. · 2016 [cited by applicant]
US 20170213054A1 · Chen et al. · 2017 [cited by applicant]
US 20170220494A1 · Shacham et al. · 2017 [cited by applicant]
US 20180004702A1 · Pappu · 2018 [cited by examiner]
US 20180183581A1 · Elbaz et al. · 2018 [cited by applicant]
US 20190050365A1 · Kopzon et al. · 2019 [cited by applicant]
US 20190052617A1 · Chen et al. · 2019 [cited by applicant]
US 20190058675A1 · Schubert et al. · 2019 [cited by applicant]
US 20190220601A1 · Sood et al. · 2019 [cited by applicant]
US 20190220617A1 · Harriman et al. · 2019 [cited by applicant]
US 20190243796A1 · Ping · 2019 [cited by applicant]
US 20190281025A1 · Harriman et al. · 2019 [cited by applicant]
US 20190306134A1 · Shanbhogue et al. · 2019 [cited by applicant]
US 20200089645A1 · Benjamini · 2020 [cited by examiner]
US 20210344653A1 · Harriman et al. · 2021 [cited by applicant]
CN 101640629B · 2012 [cited by applicant]
JP 2007300370A · 2007 [cited by applicant]
EPO, Office Action issued in EP Patent Application No. 20154933.4, dated Feb. 3, 2022; 4 pages. [cited by applicant]
EPO; Extended European Search Report issued in EP Patent Application No. 20154933.4, dated Jul. 31, 2020; 9 pages. [cited by applicant]
IEEE Computer Society, “IEEE Standard for Information Technology; Telecommunications and Information Exchange Between Systems; Local and Metropolitan Area Networks; Specific Requirements; Part 11: Wireless LAN Medium Ac… [cited by applicant]
IEEE-SA Standards Board, “IEEE Standard for Local and Metropolitan Area Networks: Media Access Control (MAC) Security,” Jun. 8, 2006 (154 pages). [cited by applicant]
Intel Corporation, “PHY Interface For The PCI Express, SATA, USB 3.1, DisplayPort, and Converged IO Architectures, Version 5.2,” Pub Date 2007-2019 (166 pages). [cited by applicant]
M. Shahidul Islam; A common-path optical coherence tomography based electrode for structural imaging of nerves and recording of action potentials; spiedigitallibrary; 2013; p. 1-8. [cited by applicant]
PCI Express, “PCI Express, Base Specification, Revision 4.0, Version 1.0,” Sep. 27, 2017 (1293 pages). [cited by applicant]
PCI Express, “PCI Express, Base Specification, Revision 5.0, Version 1.0,” May 22, 2019 (1299 pages). [cited by applicant]
Trusted Computing Group Incorporated, “TCG Storage Security Subsystem Class: Opal, Specification Version 2.01, Revision 1.00,” Aug. 5, 2015 (80 pages). [cited by applicant]
USPTO Non-Final Office Action in U.S. Appl. No. 16/372,353 mailed on Sep. 9, 2020 (12 pages). [cited by applicant]
USPTO Non-Final Office Action in U.S. Appl. No. 16/445,019 mailed on Dec. 21, 2021 (29 pages). [cited by applicant]
USPTO Non-Final Office Action in U.S. Appl. No. 16/445,019 mailed on Jun. 7, 2022 (38 pages). [cited by applicant]
USPTO Notice of Allowance in U.S. Appl. No. 16/445,019 mailed on Mar. 22, 2023 (9 pages). [cited by applicant]
USPTO Notice of Allowance in U.S. Appl. No. 17/369,824 mailed on Jan. 26, 2023 (4 pages). [cited by applicant]
EESR European Search Report issued in EP Patent Application No. 23187251.6 issued on Jan. 18, 2024 (9 pages). [cited by applicant]