IP Library › Granted Patent US 12,470,379
Granted Patent B2
US 12,470,379 · App. 17/981,548 · Granted Nov 11, 2025

Link encryption and key diversification on a hardware security module

Inventors: Alexandre Berzati (Fuveau, FR); Loic Bonizec (Saint Maximin, FR); Dmitry Ryumkin (Kanata, CA); Darren Johnson (Ottawa, CA)
Assignee: THALES DIS CPL USA, INC.
H04L9/0877G06F13/4282H04L9/0631H04L9/3239G06F2213/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 12,470,379
App. No.
17/981,548
Granted
Nov 11, 2025
Kind
B2
Abstract

A Hardware Security Module (HSM) ( 900 ), and method thereof, suitable for use in securely servicing cryptographic requests from multiple tenant applications to preserve end-to-end privacy is provided. A Link Encryption and Key Diversification interoperability ( 43 ) between two processors provides cryptographic and logical isolation between multiple tenant applications on the HSM ( 900 ) that use and share more than one PCIe Physical Function ( 30 ) over more than one Virtual Function (VF) ( 21 ) to one or more Crypto Units (CU) ( 61 ) for satisfying a request ( 46 ) of an HSM cryptographic services. An Output Feedback (OFB) block with CRC support is further provided with encryption and decryption. The HSM as configured is more resistant to side channel attacks.

Claims (61)

1 . An electronic hardware sub-system within a Hardware Security Module (HSM) suitable for use in securely servicing cryptographic requests from multiple tenant applications thereon to preserve end-to-end privacy, the electronic hardware sub-system comprising:

a hardware Main Processor (MP) incorporating more than one Virtual Functions (VFs) providing cryptographic services over more than one Peripheral Component Interconnect Express (PCIe) Physical Function (PF); and

a hardware Security Processor (SP) responsive and supportive to the cryptographic services over a PCle communication channel by way of one or more Crypto Units (CU) thereon communicatively coupled to the more than one Peripheral Component Interconnect Express (PCle) Physical Function (FP);

wherein the MP includes its own Key Diversification Function (KDF) to produce VF Keys specific to each particular VF thereon, and the SP includes its own KDF to produce same VF Keys specific to a corresponding designated CU thereon for establishing a secure PCle communication channel there between;

whereby the KDF produces a VF Key that logically isolates a particular VF from other VFs that all share the corresponding designated CU of the one or more CUs via end-to-end encryption of data lines terminating on a respective cryptographic block of the particular VF and the designated CU,

the KDF receiving as input: a Session Key, a Virtual Function (VF) Identifier (ID), a Nonce, and an optional Initialization Vector (IV),

wherein the MP executes its own Key Diversification Function and mixes sensitive data, encrypted by the VF Key, with non-sensitive data, encrypted by the Session Key, for both the particular VF and the other VFs in a same packet, and

sends the packet to the SP with a packet header that logically isolates the particular VF from the other VFs;

wherein the SP executes its own Key Diversification Function and identifies the designated CU from a VF Number and an encoding flag in the packet header;

wherein the designated CU:

checks in its VF Key Cache indexed by the Nonce and the VF Number recovered from the packet header if the VF Key is available for that designated CU to use, otherwise,

generates the VF Key by way of the KDF with the inputs;

wherein the SP decrypts from the same packet, the sensitive data using the VF Key according to the encoding flag;

wherein a request comprises a mix of secure and non-secure data, and the packet header for the request indicates which data are encrypted and not encrypted so that the designated Crypto Unit will respectively decrypt and not decrypt the data received;

whereby the KDF provides a Link Encryption and Key Diversification interoperability between the MP and the SP providing cryptographic and logical isolation between each particular VF of the MP and the corresponding CU of the SP over the secure PCle communication channel for multiple tenant applications hosted by the MP on the HSM individually using and sharing the more than one PCle PF over the more than one Virtual Function (VF) to the one or more Crypto Units (CU) for satisfying the request of the cryptographic services.

2 . The electronic hardware sub-system of claim 1 , wherein the Session Key and the VF Key are created by one of a DH, ECDH or Kyber key exchange using the NIST P521 curve,

wherein by way of the MP, the key exchange is

i) negotiated between one or more Central Processing Units (CPU) of the MP, and one or more Central Processing Units (CPU) of the SP, thereby producing the Session Key; and

ii) the VF Key is obtained by a Hash of the Session Key.

3 . The electronic hardware sub-system of claim 2 , wherein the Session Key is computed between the MP and SP at every Power-On-Reset or upon Firmware request.

4 . The electronic hardware sub-system of claim 1 , wherein the SP receives from the MP the request to get a signature(s) of a given Message (M) and modulus (N) where the packet header comprises:

[EncFlag=0−M∥EncFlag=0−N∥EncFlag=1−Enc(s)], where ∥ stands for concatenation, wherein entries of

EncFlag=0−M is a flag indicating to not encrypt (0) the Message (M),

EncFlag=0−N is a flag indicating to not encrypt (0) the Modulus (N),

EncFlag=1−Enc(s) is a flag indicating to encrypt (1) the signature(s),

wherein the EncFlag entries indicate to the SP whether to use the designated CU to decrypt or not decrypt packet data using the VF key.

5 . The electronic hardware sub-system of claim 1 , wherein the MP provides data transfer error detection of data transmitted across the PCIe communication channel via an Output Feedback (OFB) block encryption by:

computing Cyclic Redundancy Check (CRC) on plaintext data to produce (Data) a Derc;

computing the VF Key using VF Number and the Session Key;

encrypting plaintext data in Output Feedback (OFB) Mode using as input the Initialization Vector (IV) to produce encrypted data; and

transmitting the encrypted data and store (Data) the Dcrc in memory.

6 . The electronic hardware sub-system of claim 5 , wherein the SP provides data transfer error detection of data transmitted across the PCIe communication channel via an Output Feedback (OFB) block decryption by:

recovering the Dcrc from Descriptor Field of a received packet message;

recovering the VF Number and compute the VF key or retrieve from key cache;

decrypting the encrypted data in Output Feedback (OFB) Mode using as input the Initialization Vector (IV); and

checking Cyclic Redundancy Check (CRC) on the Decrypted Data and compare to the Dcrc in memory.

7 . A method for a Hardware Security Module (HSM) to securely service cryptographic requests from multiple tenant applications thereon to preserve end-to-end privacy, by way of an electronic hardware sub-system comprising:

a hardware Main Processor (MP) incorporating more than one Virtual Functions (VFs) providing cryptographic services over more than one Peripheral Component Interconnect Express (PCIe) Physical Function (PF); and

a hardware Security Processor (SP) responsive and supportive to the cryptographic services over a PCIe communication channel by way of one or more Crypto Units (CU) thereon communicatively coupled to the more than one Peripheral Component Interconnect Express (PCIe) Physical Function (FP);

wherein the MP includes its own Key Diversification Function (KDF) to produce VF Keys specific to each particular VF thereon, and the SP includes its own KDF to produce same VF Keys specific to a corresponding designated CU thereon for establishing a secure PCle communication channel there between;

whereby the KDF produces a VF Key that logically isolates a particular VF from other VFs that all share the corresponding designated CU of the one or more CUs via end-to-end encryption of data lines terminating on a respective cryptographic block of the particular VF and the designated CU,

the method comprising the steps of:

the KDF receiving as input: a Session Key, a Virtual Function (VF) Identifier (ID), a Nonce, and an optional Initialization Vector (IV), wherein the MP executes its own Key Diversification Function and mixes sensitive data, encrypted by the VF Key, with non-sensitive data, encrypted by the Session Key, for both the particular VF and the other VFs in a same packet, and

sends the packet to the SP with a packet header that logically isolates the particular VF from the other VFs;

wherein the SP executes its own Key Diversification Function and identifies the designated CU from a VF Number and an encoding flag in the packet header;

wherein the designated CU:

checks in its VF Key Cache indexed by the Nonce and VF Number recovered from the packet header if the VF Key is available for that designated CU to use, otherwise,

generates the VF Key by way of the KDF with the inputs;

wherein the SP decrypts from the same packet, the sensitive data using the VF Key according to the encoding flag;

wherein a request comprises a mix of secure and non-secure data, and the packet header for the request indicates which data are encrypted and not encrypted so that the designated Crypto Unit will respectively decrypt and not decrypt the data received;

whereby the KDF provides a Link Encryption and Key Diversification interoperability between the MP and SP providing cryptographic and logical isolation between each particular VF of the MP and the corresponding CU of the SP over the secure PCIe communication channel for multiple tenant applications on the HSM individually using and sharing the more than one PCIe PF over the more than one Virtual Function (VF) to the one or more Crypto Units (CU) for satisfying the request of the cryptographic services.

8 . The method of claim 7 , wherein the Session Key and VF Key are created by one of a DH, ECDH or Kyber key exchange using the NIST P521 curve, wherein by way of the MP, the key exchange is

i) negotiated between one or more Central Processing Units (CPU) of the MP, and one or more Central Processing Units (CPU) of the SP, thereby producing the Session Key; and

ii) the VF Key is obtained by a Hash of the Session Key.

9 . The method of claim 7 , wherein the Session Key is computed between the MP and SP at every Power-On-Reset or upon Firmware request.

10 . The method of claim 7 , wherein the SP receives from the MP a request to get a signature(s) of a given Message (M) and modulus (N) where the packet header comprises:

[EncFlag=0−M∥EncFlag=0−N∥EncFlag=1−Enc(s)], where ∥ stands for concatenation, wherein entries of

EncFlag=0−M is a flag indicating to not encrypt (0) the Message (M),

EncFlag=0−N is a flag indicating to not encrypt (0) the Modulus (N),

EncFlag=1−Enc(s) is a flag indicating to encrypt (1) the signature(s),

wherein the EncFlag entries indicate to the SP whether to use the designated CU to decrypt or not decrypt packet data using the VF key.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: BONIZEC, LOÏC; BERZATI, ALEXANDRE
To: THALES DIS FRANCE SAS
Reel/Frame 072165/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: THALES DIS CPL CANADA, INC.
To: THALES DIS CPL USA, INC.
Reel/Frame 072165/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: THALES DIS FRANCE SAS
To: THALES DIS CPL USA, INC.
Reel/Frame 072165/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2023
From: RYUMKIN, DMITRY; JOHNSON, DARREN
To: THALES DIS CPL CANADA, INC
Reel/Frame 065927/0395 →
Continuity (1)
Related Publication 20240154799A1 · May 9, 2024
References Cited (18)
US 11429414B2 · Liguori et al. · 2022 [cited by applicant]
US 20150358161A1 · Kancharla et al. · 2015 [cited by applicant]
US 20160028551A1 · Hussain · 2016 [cited by examiner]
US 20160142746A1 · Schuberth · 2016 [cited by examiner]
US 20200153623A1 · Asanghanwa · 2020 [cited by examiner]
US 20200177383A1 · Iyer · 2020 [cited by examiner]
US 20200186358A1 · Capola · 2020 [cited by examiner]
US 20200403779A1 · Gopal · 2020 [cited by examiner]
US 20210286901A1 · Sinha · 2021 [cited by examiner]
US 20220067221A1 · Schiattarella · 2022 [cited by examiner]
US 20230188340A1 · Osborn · 2023 [cited by examiner]
AU 2017290741B2 · 2019 [cited by applicant]
DE 102019128141A1 · 2020 [cited by examiner]
WO 2022153055A1 · 2022 [cited by applicant]
International Search Report (PCT/ISA/2010) & Written Opinion (PCT/ISA/237) mailed by ISA/EP on Feb. 8, 2024 for corresponding International Application pursuant to the PCT, NºPCT/US2023/036092 (13 pages). [cited by applicant]
NXP—Freescale C29x Crypto Coprocessor Family Product Brief—Document No. C29xPB—Rev. 1, Jul. 2015 (14 pages). [cited by applicant]
NXP—FTF2016—Technology Forum—QorIQLS2088A PCIE EP SR-IOV Programming Flow—FTF-DES—N1852—Richard Nie—Principal Engineer—FTF-DES-N1852—May 18, 2016—Public Use (80 pages). [cited by applicant]
Accelerating Post-QuantumCryptographyusingan Energy-EfficientTLSCrypto-Processor—UtsavBanerjee, SiddharthDasy and AnanthaP.Chandrakasan—Massachusetts InstituteofTechnology, Cambridge,Ma,USA yIndian InstituteofTechnology… [cited by applicant]