IP Library › Granted Patent US 12,363,082
Granted Patent B2
US 12,363,082 · App. 18/147,369 · Granted Jul 15, 2025

High bandwidth encryption engines in a multipathing IP network

Inventors: Govind Prasad Sharma (Union City, CA); Prabhu Balakannan (Milpitas, CA); Sivakumar Kailas (San Ramon, CA)
Assignee: Cisco Technology, Inc.
H04L63/0478H04L12/4633
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,363,082
App. No.
18/147,369
Granted
Jul 15, 2025
Kind
B2
Abstract

Techniques for generating a per-packet initialization vector for high bandwidth encryption engines in a multipathing IP network are described herein. In examples, a network switch of a first datacenter site may receive a data packet to be sent to a second datacenter site over a network. The data packet may be encrypted according to a virtual extensible LAN (VxLAN) protocol and to be transmitted in a VxLAN tunnel created for the first datacenter site and the second datacenter site. An encryption engine implemented at the network switch may generate an initialization vector (IV) for the data packet based on a packet number (PN) associated with the data packet. The encryption engine may use the IV and information associated with a security association (SA) assigned to the packet to encrypt the data packet. In some examples, a full 64-bit PN may be used to compute the IV for the data packet.

Claims (67)

1. A method comprising:

receiving, at a first device, a packet to be sent, over a network and in an encrypted tunnel, to a second device;

generating, at the first device, an initialization vector (IV) for the packet based at least in part on a packet number (PN) associated with the packet;

constructing, at the first device, a security header based at least in part on the PN;

encrypting, at the first device, the packet based at least in part on the IV and information associated with a security association (SA) assigned to the packet to generate an encrypted packet, including:

replacing, at the first device, user data in the packet with encrypted user data,

inserting, at the first device, an integrity checksum value (ICV) into the packet, and

inserting, at the first device, the security header into the packet; and

transmitting, from the first device, the encrypted packet to the second device in the encrypted tunnel over the network.

2. The method of claim 1 , wherein the PN is represented in a length of 64 bits, and the method further comprises:

generating, at the first device, the IV for the packet using the 64 bits.

3. The method of claim 1 , further comprising:

obtaining, from a database, the SA assigned to the packet, wherein the information associated with the SA includes the PN, a security association key (SAK), a security channel identifier (SCI), and an association number (AN).

4. The method of claim 3 , further comprising:

constructing, at the first device, the security header to include at least the PN, the SCI and the AN.

5. The method of claim 1 , further comprising:

generating, at the first device, the ICV based on the IV.

6. The method of claim 3 , further comprising:

encrypting, at the first device, the user data of the packet based at least in part on the IV, the SAK, and the SCI to generate the encrypted user data.

7. The method of claim 1 , further comprising:

incrementing, at the first device, the PN by one to generate a second PN; and

updating, at the first device, the SA to include the second PN.

8. The method of claim 1 , wherein the packet is encapsulated using a virtual extensible local area network (VxLAN) overlay protocol.

9. A first device comprising:

a processor; and

a non-transitory computer-readable media storing instructions that, when executed by the processor, cause the processor to perform operations including:

receiving a packet to be sent, over a network and in an encrypted tunnel, to a second device;

generating an initialization vector (IV) for the packet based at least in part on a packet number (PN) associated with the packet;

constructing a security header to include at least the PN;

encrypting the packet based at least in part on the IV and information associated with a security association (SA) assigned to the packet to generate an encrypted packet, including:

replacing user data in the packet with encrypted user data,

inserting an integrity checksum value (ICV) into the packet, and

inserting the security header into the packet; and

transmitting, over the network and in the encrypted tunnel, the encrypted packet to the second device.

10. The first device of claim 9 , wherein the PN is represented in a length of 64 bits, and the operations further comprise:

generating the IV for the packet using the 64 bits.

11. The first device of claim 9 , wherein the operations further comprise:

obtaining, from a database, the SA assigned to the packet, wherein the information associated with the SA includes the PN, a security association key (SAK), a security channel identifier (SCI), and an association number (AN).

12. The first device of claim 11 , wherein the operations further comprise:

constructing the security header to further include at least the SCI and the AN.

13. The first device of claim 9 , wherein the operations further comprise:

generating the ICV based at least in part on the IV.

14. The first device of claim 11 , wherein the encrypting comprises:

encrypting, at the first device, the user data of the packet based at least in part on the IV, the SAK, and the SCI to generate the encrypted user data.

15. The first device of claim 9 , wherein the operations further comprise:

incrementing the PN by one to generate a second PN; and

updating the SA to include the second PN.

16. The first device of claim 9 , the packet is encapsulated using a virtual extensible local area network (VxLAN) overlay protocol.

17. A second device comprising:

a processor; and

a non-transitory computer-readable media storing instructions that, when executed by the processor, cause the processor to perform operations including:

receiving, over a network and via an encrypted tunnel, a packet from a first device;

retrieving a packet number (PN) associated with the packet from a security header of the packet;

generating a first integrity checksum value (ICV) based at least in part on the PN;

performing an integrity check for the packet by comparing the first ICV with a second ICV in the packet;

in response to the packet passing the integrity check, decrypting the packet based at least in part on information associated with a security association (SA) assigned to the packet to generate a decrypted packet, including:

replacing user data in the packet with decrypted user data, and

removing the security header and the second ICV from the packet; and

transmitting, over the network, the decrypted packet to a destination device.

18. The second device of claim 17 , wherein the PN is in a length of 64 bits, and the operations further comprise:

using the PN as is for an initialization vector (IV) for the packet;

obtaining, from the database, the SA assigned to the packet, wherein the information associated with the SA includes at least a security association key (SAK);

retrieving a security channel identifier (SCI) from the security header; and

generating the first ICV based at least in part on the IV, the SAK, the SCI, and user data of the packet.

19. The second device of claim 18 , wherein the decrypting comprises:

decrypting the user data of the packet based at least in part on the IV, the SAK, and the SCI.

20. The second device of claim 17 , wherein the encrypted tunnel is a virtual extensible local area network (VxLAN) tunnel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2022
From: SHARMA, GOVIND PRASAD; BALAKANNAN, PRABHU; KAILAS, SIVAKUMAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 062226/0653 →
Continuity (1)
Related Publication 20240223544A1 · Jul 4, 2024
References Cited (21)
US 6975626B1 · Eberle · 2005 [cited by examiner]
US 7061929B1 · Eberle · 2006 [cited by examiner]
US 7065580B1 · Eberle · 2006 [cited by examiner]
US 10778662B2 · Sharma et al. · 2020 [cited by applicant]
US 11943621B2 · Xhafa · 2024 [cited by examiner]
US 20040088536A1 · Lim · 2004 [cited by examiner]
US 20050005093A1 · Bartels · 2005 [cited by examiner]
US 20120076153A1 · Manzella · 2012 [cited by examiner]
US 20140208132A1 · Cheston · 2014 [cited by examiner]
US 20200106702A1 · Acharya et al. · 2020 [cited by applicant]
US 20200187010A1 · Xhafa · 2020 [cited by examiner]
US 20200235914A1 · Zhang et al. · 2020 [cited by applicant]
US 20200366715A1 · Chopra et al. · 2020 [cited by applicant]
US 20210144075A1 · Indiresan et al. · 2021 [cited by applicant]
US 20210385169A1 · Urman · 2021 [cited by examiner]
US 20220393856A1 · Goel · 2022 [cited by examiner]
Cisco.com, “Cloudsec Encryption”, available at <<https://www.cisco.com/c/en/us/td/docs/dcn/mso/3x/configuration/cisco-aci-multi-site-configuration-guide-301/aci-multi-site-cloudsec.html>>, Apr. 12, 2021, 16 pages. [cited by applicant]
Lackorzynski et al., “Secure and Efficient Tunneling of Macsec for Modern Industrial Use Cases”, arXiv preprint arXiv:2205.12748, May 25, 2022, 10 pages. [cited by applicant]
IEEE: “IEEE Standard for Local and Metropolitan Area Networks Media Access Control (MAC) Security Amendment 2: Extended Packet Numbering”, IEEE Standard, IEEE, Piscataway, NJ, USA, Feb. 12, 2013, 67 Pages, XP068045832, … [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2023/086050, mailed Mar. 28, 2024, 16 Pages. [cited by applicant]
Wahid et al., “Secure Bridging in Large Scale Deployment of Ethernet”, Proceedings of the 2010 International Conference on Security and Cryptography (SECRYPT), IEEE, Jul. 26, 2010, 11 Pages, XP031936460, figures 1, 4, p… [cited by applicant]