IP Library › Granted Patent US 12,732,360
Granted Patent B2
US 12,732,360 · App. 17/883,378 · Granted Sep 8, 2026

Distribution of private session key to a network communication device for secured RDMA communications

Inventors: Renato J. Recio (Austin, TX); Eran Gampel (Tel Aviv, IL); Gal Sagi (Hod Hasharon, IL); Ryan Moats (Omaha, NE); Bernard Metzler (Zurich, CH); Ravinder Reddy Amanaganti (San Ramon, CA); Etai Lev Ran (Nofit, IL); Dean Har'el Lorenz (Haifa, IL)
Assignee: International Business Machines Corporation
H04L9/088H04L9/30H04L67/1097
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,732,360
App. No.
17/883,378
Granted
Sep 8, 2026
Kind
B2
Abstract

A network communication device can receive a private session key from a data processing system. A first work queue element can be received in a send queue of the network communication device. The first work queue element can indicate outbound session data to be communicated to a client device. Responsive to receiving the first work queue element, the network communication device can generate encrypted outbound session data by encrypting the outbound session data using the private session key. The network communication device can communicate, via remote directory memory access (RDMA) over a secured communication tunnel, the encrypted outbound session data to the client device.

Claims (73)

1 . A method, comprising:

receiving, by a network communication device from a data processing system, a private session key;

receiving in a send queue of the network communication device, from the data processing system, a first work queue element, the first work queue element indicating outbound session data to be communicated to a client device;

responsive to receiving the first work queue element, generating, by the network communication device, encrypted outbound session data by encrypting the outbound session data using the private session key; and

communicating, by the network communication device, via remote directory memory access (RDMA) over a secured communication tunnel, the encrypted outbound session data to the client device.

2 . The method of claim 1 , further comprising:

receiving, by the network communication device from the client device, via the RDMA over the secured communication tunnel, inbound encrypted session data;

generating, by the network communication device, inbound session data by decrypting the inbound encrypted session data using the private session key;

storing, by the network communication device, the inbound session data to a memory buffer of the data processing system;

indicating, by the network communication device, where the inbound session data is stored in the memory buffer by updating a memory translation and protection table; and

generating a queue element of a receive queue or a queue element of a shared receive queue indicating data in the memory translation and protection table generated for the inbound session data.

3 . The method of claim 1 , further comprising:

communicating, by the network communication device via the RDMA, a public key to the client device; and

receiving, by the network communication device via the RDMA, a pre-master key from the client device,

wherein the private session key is determined based on the pre-master key.

4 . The method of claim 1 , further comprising:

performing, by the network communication device, a private session key exchange, the private session key exchange establishing a secure tunnel for RDMA communications between the network communication device and the client device using the private session key.

5 . The method of claim 1 , further comprising:

receiving, by the network communication device, in a session key control queue of the network communication device, from the data processing system, a second work queue element, the second work queue element indicating the private session key is to be used to encrypt the outbound session data; and

responsive to receiving the second work queue element, adding the private session key for use by the network communication device to encrypt the outbound session data.

6 . The method of claim 1 , further comprising:

receiving, by the network communication device, in a session key control queue of the network communication device, from the data processing system, a second work queue element, the second work queue element indicating the private session key is to be deleted or destroyed; and

responsive to receiving the second work queue element, deleting or destroying, by the network communication device, the private session key.

7 . The method of claim 6 , further comprising:

responsive to the network communication device deleting or destroying the private session key, generating, by the network communication device, a completion queue element in a completion queue, the completion queue element indicating the private session key has been deleted or destroyed.

8 . The method of claim 1 , wherein the communicating, by the network communication device, via the RDMA over the secured communication tunnel, the encrypted outbound session data to the client device comprises:

communicating the outbound session data to another network communication device used by the client device.

9 . A network communication device, comprising:

a processor programmed to initiate executable operations comprising:

receiving, from a data processing system, a private session key;

receiving in a send queue of the network communication device, from the data processing system, a first work queue element, the first work queue element indicating outbound session data to be communicated to a client device;

responsive to receiving the first work queue element, generating encrypted outbound session data by encrypting the outbound session data using the private session key; and

communicating, via remote directory memory access (RDMA) over a secured communication tunnel, the encrypted outbound session data to the client device.

10 . The network communication device of claim 9 , the executable operations further comprising:

receiving, by the network communication device from the client device, via the RDMA over the secured communication tunnel, inbound encrypted session data;

generating, by the network communication device, inbound session data by decrypting the inbound encrypted session data using the private session key;

storing, by the network communication device, the inbound session data to a memory buffer of the data processing system;

indicating, by the network communication device, where the inbound session data is stored in the memory buffer by updating a memory translation and protection table; and

generating a queue element of a receive queue or a queue element of a shared receive queue indicating data in the memory translation and protection table generated for the inbound session data.

11 . The network communication device of claim 9 , the executable operations further comprising:

communicating, by the network communication device via the RDMA, a public key to the client device; and

receiving, by the network communication device via the RDMA, a pre-master key from the client device,

wherein the private session key is determined based on the pre-master key.

12 . The network communication device of claim 9 , the executable operations further comprising:

performing, by the network communication device, a private session key exchange, the private session key exchange establishing a secure tunnel for RDMA communications between the network communication device and the client device using the private session key.

13 . The network communication device of claim 9 , the executable operations further comprising:

receiving, by the network communication device, in a session key control queue of the network communication device, from the data processing system, a second work queue element, the second work queue element indicating the private session key is to be used to encrypt the outbound session data; and

responsive to receiving the second work queue element, adding the private session key for use by the network communication device to encrypt the outbound session data.

14 . The network communication device of claim 9 , the executable operations further comprising:

receiving, by the network communication device, in a session key control queue of the network communication device, from the data processing system, a second work queue element, the second work queue element indicating the private session key is to be deleted or destroyed; and

responsive to receiving the second work queue element, deleting or destroying, by the network communication device, the private session key.

15 . The network communication device of claim 14 , the executable operations further comprising:

responsive to the network communication device deleting or destroying the private session key, generating, by the network communication device, a completion queue element in a completion queue, the completion queue element indicating the private session key has been deleted or destroyed.

16 . The network communication device of claim 9 , wherein the communicating, by the network communication device, via the RDMA over the secured communication tunnel, the encrypted outbound session data to the client device comprises:

communicating the outbound session data to another network communication device used by the client device.

17 . A computer program product, comprising:

one or more computer readable storage mediums having program code stored thereon, the program code stored on the one or more computer readable storage mediums collectively executable by a network communication device to initiate operations including:

receiving, from a data processing system, a private session key;

receiving in a send queue of the network communication device, from the data processing system, a first work queue element, the first work queue element indicating outbound session data to be communicated to a client device;

responsive to receiving the first work queue element, generating encrypted outbound session data by encrypting the outbound session data using the private session key; and

communicating, via remote directory memory access (RDMA) over a secured communication tunnel, the encrypted outbound session data to the client device.

18 . The computer program product of claim 17 , wherein the program code is executable by the network communication device to initiate the operations further comprising:

receiving, by the network communication device from the client device, via the RDMA over the secured communication tunnel, inbound encrypted session data;

generating, by the network communication device, inbound session data by decrypting the inbound encrypted session data using the private session key;

storing, by the network communication device, the inbound session data to a memory buffer of the data processing system;

indicating, by the network communication device, where the inbound session data is stored in the memory buffer by updating a memory translation and protection table; and

generating a queue element of a receive queue or a queue element of a shared receive queue indicating data in the memory translation and protection table generated for the inbound session data.

19 . The computer program product of claim 17 , wherein the program code is executable by the network communication device to initiate the operations further comprising:

communicating, by the network communication device via the RDMA, a public key to the client device; and

receiving, by the network communication device via the RDMA, a pre-master key from the client device,

wherein the private session key is determined based on the pre-master key.

20 . The computer program product of claim 17 , wherein the program code is executable by the network communication device to initiate the operations further comprising:

performing, by the network communication device, a private session key exchange, the private session key exchange establishing a secure tunnel for RDMA communications between the network communication device and the client device using the private session key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2022
From: RECIO, RENATO J.; GAMPEL, ERAN; SAGI, GAL; MOATS, RYAN; METZLER, BERNARD; AMANAGANTI, RAVINDER REDDY; LEV RAN, ETAI; LORENZ, DEAN HAR'EL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060750/0362 →
Continuity (1)
Related Publication 20240048373A1 · Feb 8, 2024
References Cited (126)
US 7036010B2 · Wray · 2006 [cited by applicant]
US 7437550B2 · Savage · 2008 [cited by examiner]
US 7631182B1 · Droux et al. · 2009 [cited by applicant]
US 8019868B2 · Rao · 2011 [cited by applicant]
US 9231923B1 · Cignetti · 2016 [cited by applicant]
US 9608962B1 · Chang · 2017 [cited by applicant]
US 10177909B1 · Sullivan et al. · 2019 [cited by applicant]
US 10432590B2 · Skuratovich et al. · 2019 [cited by applicant]
US 10432591B2 · Skuratovich et al. · 2019 [cited by applicant]
US 10469461B1 · Singh · 2019 [cited by applicant]
US 10581819B1 · Lototskiy · 2020 [cited by applicant]
US 10721059B2 · Choi · 2020 [cited by examiner]
US 10785198B2 · Pahl et al. · 2020 [cited by applicant]
US 10909250B2 · Rudzitis et al. · 2021 [cited by applicant]
US 11082411B2 · Li · 2021 [cited by examiner]
US 11240007B1 · Higgins · 2022 [cited by applicant]
US 11343247B1 · Ozarkar · 2022 [cited by applicant]
US 11368298B2 · Mestery et al. · 2022 [cited by applicant]
US 11765142B1 · Recio et al. · 2023 [cited by applicant]
US 11916890B1 · Recio et al. · 2024 [cited by applicant]
US 11924179B2 · Recio et al. · 2024 [cited by applicant]
US 12063207B2 · Nawaz · 2024 [cited by applicant]
US 12200118B1 · Copparapu · 2025 [cited by examiner]
US 20030105725A1 · Hoffman · 2003 [cited by examiner]
US 20060013397A1 · Dorsch · 2006 [cited by examiner]
US 20070110054A1 · Kozakai · 2007 [cited by applicant]
US 20080040775A1 · Hoff · 2008 [cited by applicant]
US 20080147555A1 · Cromer · 2008 [cited by applicant]
US 20100146582A1 · Jaber · 2010 [cited by applicant]
US 20100325418A1 · Kanekar · 2010 [cited by applicant]
US 20110153793A1 · Tan · 2011 [cited by applicant]
US 20110153985A1 · Saha · 2011 [cited by applicant]
US 20110314284A1 · Chou · 2011 [cited by applicant]
US 20120078994A1 · Jackowski · 2012 [cited by applicant]
US 20120177202A1 · Dayka · 2012 [cited by applicant]
US 20120278878A1 · Barkie · 2012 [cited by applicant]
US 20130179685A1 · Weinstein · 2013 [cited by applicant]
US 20130268643A1 · Chang · 2013 [cited by applicant]
US 20140208123A1 · Roth · 2014 [cited by applicant]
US 20140226661A1 · Mekkattuparamban · 2014 [cited by applicant]
US 20140280948A1 · Schmidt · 2014 [cited by applicant]
US 20150121076A1 · Wante · 2015 [cited by applicant]
US 20160088029A1 · Grndal et al. · 2016 [cited by applicant]
US 20160099917A1 · Glazemakers · 2016 [cited by applicant]
US 20160173488A1 · Xie · 2016 [cited by applicant]
US 20170006034A1 · Link, II · 2017 [cited by applicant]
US 20170013015A1 · Dinha · 2017 [cited by applicant]
US 20170033930A1 · Costa · 2017 [cited by applicant]
US 20170034129A1 · Sawant · 2017 [cited by applicant]
US 20170063808A1 · Manapragada · 2017 [cited by applicant]
US 20170085372A1 · Anderson · 2017 [cited by applicant]
US 20170093820A1 · Forguson · 2017 [cited by applicant]
US 20170118180A1 · Takahashi · 2017 [cited by applicant]
US 20170279607A1 · Kent · 2017 [cited by examiner]
US 20170279784A1 · Kent · 2017 [cited by examiner]
US 20170373828A1 · Michiels · 2017 [cited by applicant]
US 20180034791A1 · Erez · 2018 [cited by applicant]
US 20180041613A1 · Lapidous · 2018 [cited by applicant]
US 20180062835A1 · Hamel · 2018 [cited by applicant]
US 20180091483A1 · Eiriksson et al. · 2018 [cited by applicant]
US 20180165224A1 · Brown · 2018 [cited by applicant]
US 20180234401A1 · Cates · 2018 [cited by applicant]
US 20180367525A1 · Kassimis et al. · 2018 [cited by applicant]
US 20190014145A1 · Levine · 2019 [cited by applicant]
US 20190132120A1 · Zhang · 2019 [cited by examiner]
US 20190141041A1 · Bhabbur · 2019 [cited by examiner]
US 20190190887A1 · Yan · 2019 [cited by applicant]
US 20190199835A1 · Deval · 2019 [cited by applicant]
US 20190372936A1 · Sullenberger · 2019 [cited by applicant]
US 20200053124A1 · Manasse et al. · 2020 [cited by applicant]
US 20200067891A1 · Singh et al. · 2020 [cited by applicant]
US 20200099671A1 · Shaw · 2020 [cited by applicant]
US 20200127981A1 · Yang · 2020 [cited by applicant]
US 20200220713A1 · Li · 2020 [cited by applicant]
US 20200236140A1 · Srinivasan · 2020 [cited by applicant]
US 20200403919A1 · Cui · 2020 [cited by applicant]
US 20210099286A1 · Xiao · 2021 [cited by applicant]
US 20210127269A1 · Gupta · 2021 [cited by applicant]
US 20210176217A1 · Liu · 2021 [cited by applicant]
US 20210185025A1 · Wang · 2021 [cited by applicant]
US 20210226935A1 · Mundt · 2021 [cited by applicant]
US 20210250174A1 · Cheng et al. · 2021 [cited by applicant]
US 20210392080A1 · Shen · 2021 [cited by applicant]
US 20220053326A1 · Geng et al. · 2022 [cited by applicant]
US 20220070676A1 · De Graaff · 2022 [cited by examiner]
US 20220103530A1 · Daly et al. · 2022 [cited by applicant]
US 20220173886A1 · Sardesai · 2022 [cited by applicant]
US 20220224529A1 · Mestery et al. · 2022 [cited by applicant]
US 20220247696A1 · He et al. · 2022 [cited by applicant]
US 20220263811A1 · Kampati et al. · 2022 [cited by applicant]
US 20220394014A1 · Wang · 2022 [cited by applicant]
US 20230007709A1 · Paladugu et al. · 2023 [cited by applicant]
US 20230058273A1 · Sundar · 2023 [cited by applicant]
US 20230103518A1 · Rogers et al. · 2023 [cited by applicant]
US 20230297406A1 · Rogers et al. · 2023 [cited by applicant]
US 20240048536A1 · Recio et al. · 2024 [cited by applicant]
US 20240048537A1 · Recio et al. · 2024 [cited by applicant]
US 20240048538A1 · Recio et al. · 2024 [cited by applicant]
US 20240048541A1 · Recio et al. · 2024 [cited by applicant]
CN 103227742A · 2013 [cited by applicant]
CN 108293058A · 2018 [cited by applicant]
CN 113826353A · 2021 [cited by applicant]
CN 114788225A · 2022 [cited by applicant]
DE 112023003385T5 · 2025 [cited by applicant]
GB 2637621A · 2025 [cited by applicant]
WO 2021138511A1 · 2021 [cited by applicant]
WO 2024032312A1 · 2024 [cited by applicant]
WO 2024032313A1 · 2024 [cited by applicant]
WIPO Appln. No. PCTCN2023107105, International Search Report and Written Opinion, Sep. 2, 20231, 8 pg. [cited by applicant]
WIPO Appln. No. PCTCN2023107214, International Search Report and Written Opinion, Sep. 20, 2023, 7 pg. [cited by applicant]
Lescisin, M. et al., “SocialSDN: Design and Implementation of a Secure Internet Protocol Tunnel Between Social Connections,” In 2021 IEEE Int'l. Systems Conf. (SysCon), Dec. 31, 2021, 8 pg. [cited by applicant]
Cui, T.et al., “Offloading Load Balancers onto SmartNICs,” In Proceedings of the 12th ACM SIGOPS Asia-Pacific Workshop on Systems, Aug. 24, 2021, pp. 56-62. [cited by applicant]
Kim, D. et al., “A Case for SmartNIC-accelerated Private Communication,” 4th Asia-Pacific Workshop on Networking, Aug. 3, 2020, pp. 30-35. [cited by applicant]
Kumari, A.K. et al., “A Symmetric Two-Server Password based Authentication and Key Exchange Protocol Deployed in PaaS,” International Journal of Computer Applications, International Conference on Innovations in Computin… [cited by applicant]
Tork, M. et al., “Lynx: A SmartNIC-driven Accelerator-centric Architecture for Network Servers,” In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operati… [cited by applicant]
Pfister, G.F., “An introduction to the infiniband architecture,” High Performance Mass Storage and Parallel I/O, Chap. 42, Jun. 2001, pp. 617-632. [cited by applicant]
“Getting Started with IBM Cloud Hyper Protect Crypto Services,” [online] IBM Cloud Docs, Hyper Protect Crypto Services, Last modified Jun. 28, 2022 [retrieved Aug. 8, 2022], retrieved from the Internet: <https://cloud.i… [cited by applicant]
Taranov, K. et al., “sRDMA—Efficient {NIC-based} Authentication and Encryption for Remote Direct Memory Access,” In 2020 USENIX Annual Technical Conference (USENIX ATC 20), Jul. 15-17, 2020, pp. 691-704. [cited by applicant]
Mell, P. et al., The NIST Definition of Cloud Computing, National Institute of Standards and Technology, U.S. Dept. of Commerce, Special Publication 800-145, Sep. 2011, 7 pg. [cited by applicant]
Recio, R.J. et al., “RFC 5040: A remote direct memory access protocol specification,” [online] Standards Track, Tech-invite, Oct. 2007, retrieved from the Internet: <https://www.rfc-editor.org/rfc/rfc5040>, 22 pg. [cited by applicant]
“TCP offload engine,” [online] from Wikipedia, the free encyclopedia, Jun. 6, 2022, retrieved from the Internet: <https://en.wikipedia.org/wiki/TCP_offload_engine>, 7 pg. [cited by applicant]
IBM: List of IBM Patents or Patent Applications Treated as Related, Aug. 9, 2022, 2 pg. [cited by applicant]
Recio, R.J. et al., “API Based Distribution of Private Session Key to Network Communication Device for Secured Communications”, U.S. Appl. No. 17/883,349, filed Aug. 8, 2022, 42 pages (A copy is not provided as this app… [cited by applicant]
Recio, R.J. et al., “Based Distribution of Private Session Key to Network Communication Device for Secured Communicationss”, U.S. Appl. No. 17/883,328, filed Aug. 8, 2022, 42 pages (A copy is not provided as this applic… [cited by applicant]
Recio, R.J. et al., “Distribution of a Cryptographic Service Provided Private Session Key to Network Communication Device for Secured Communications”, U.S. Appl. No. 17/883,425, filed Aug. 8, 2022, 46 pages (A copy is n… [cited by applicant]
Recio, R.J. et al., “Distribution of Private Session Key and Offloading a Protocol Stack to a Network Communication Device for Secured Communications”, U.S. Appl. No. 17/883,449, filed Aug. 8, 2022, 42 pages (A copy is … [cited by applicant]