IP Library Granted Patent US 11,616,640
Granted Patent B2
US 11,616,640 · App. 16/820,122 · Granted Mar 28, 2023

Method for encryption and decryption, programmable switch and computer program product

Inventors: Chenxi Hu (Beijing, CN); Shixu Dong (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
H04L9/0819H04L9/14G16Y10/75G16Y30/10
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,616,640
App. No.
16/820,122
Granted
Mar 28, 2023
Kind
B2
Abstract

Embodiments of the present disclosure relate to a method for encryption and decryption, a programmable switch, and a computer program product. The method comprises receiving, at a programmable switch, encrypted data to be sent to a certain Internet of Things (IoT) device, wherein the encrypted data is encrypted using a public key of the programmable switch. The method further comprises decrypting the encrypted data using a private key of the programmable switch to obtain decrypted data, and then sending the decrypted data from the programmable switch to the IoT device. According to the embodiments of the present disclosure, the encryption and decryption operations of the IoT device can be transferred to the programmable switch for processing, and the programmable switch is used to help the IoT device perform encryption and decryption.

Claims (101)

1. A method, comprising:

receiving, at a programmable switch, encrypted data directed to an Internet of Things (IoT) device, the encrypted data being encrypted using a public key of the programmable switch;

decrypting the encrypted data using a private key of the programmable switch to obtain decrypted data; and

sending the decrypted data from the programmable switch to the IoT device;

wherein the private key is set based at least in part on input from the IoT device and associated in the programmable switch with a designated source address of a source different from the IoT device;

wherein the decrypting of the encrypted data using the private key is triggered responsive to a determination by the programmable switch that the encrypted data was received from the source address; and

wherein the programmable switch comprises an edge switch of an edge device configured to couple the IoT device to a network, the edge switch implementing a plurality of serverless functions including at least a first serverless function for performing encryption operations in the edge switch and a second serverless function for performing decryption operations in the edge switch;

the method further comprising:

receiving, from the IoT device, a decryption request for one or more packets having the source address, the decryption request being received prior to receipt of a given one of the one or more packets from the source address;

based on a determination that the given packet is received from the source address, decrypting the given packet by the programmable switch; and

performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch.

2. The method of claim 1 , wherein the encrypted data is received from user equipment, and the decrypted data contains an execution command, the method further comprising:

receiving an execution result of the execution command from the IoT device;

encrypting the execution result using a public key of the user equipment; and

sending the encrypted execution result to the user equipment.

3. The method of claim 1 , wherein performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch comprises:

authenticating the IoT device online by implementing an asymmetric encryption function for the IoT device in the programmable switch.

4. The method of claim 3 , wherein authenticating the IoT device online comprises:

receiving a device identifier of the IoT device and a token for authentication from the IoT device;

encrypting the device identifier and the token using a public key of an authentication server;

sending the device identifier and the token that are encrypted to the authentication server; and

receiving an authentication response message from the authentication server, the authentication response message being encrypted using the public key of the programmable switch.

5. The method of claim 4 , wherein authenticating the IoT device online further comprises:

decrypting the authentication response message using the private key of the programmable switch to obtain an authentication result; and

based on a determination that the authentication result indicates that the IoT device has passed the authentication:

granting an access right to the IoT device;

storing the device identifier of the IoT device and a corresponding port; and

sending an indication of authentication success to the IoT device.

6. The method of claim 1 , further comprising:

sending, based on a determination that a request for a serverless list is received from the IoT device, the serverless list to the IoT device;

receiving, from the IoT device, an encryption request for one or more packets associated with a destination address; and

based on a determination that a given packet directed to the destination address is received from the IoT device, encrypting the given packet by the programmable switch.

7. The method of claim 1 , further comprising:

generating an asymmetric key using a processing unit in the programmable switch, the asymmetric key including the public key and private key of the programmable switch; and

performing at least one of asymmetric encryption and asymmetric decryption using a programmable switch chip in the programmable switch.

8. A programmable switch, comprising:

a processing unit; and

a memory coupled to the processing unit and storing instructions that, when executed by the processing unit, perform the following actions:

receiving encrypted data directed to an Internet of Things (IoT) device, the encrypted data being encrypted using a public key of the programmable switch;

decrypting the encrypted data using a private key of the programmable switch to obtain decrypted data; and

sending the decrypted data to the IoT device;

wherein the private key is set based at least in part on input from the IoT device and associated in the programmable switch with a designated source address of a source different from the IoT device;

wherein the decrypting of the encrypted data using the private key is triggered responsive to a determination by the programmable switch that the encrypted data was received from the source address; and

wherein the programmable switch comprises an edge switch of an edge device configured to couple the IoT device to a network, the edge switch implementing a plurality of serverless functions including at least a first serverless function for performing encryption operations in the edge switch and a second serverless function for performing decryption operations in the edge switch;

the actions further comprising:

receiving, from the IoT device, a decryption request for one or more packets having the source address, the decryption request being received prior to receipt of a given one of the one or more packets from the source address;

based on a determination that the given packet is received from the source address, decrypting the given packet by the programmable switch; and

performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch.

9. The programmable switch of claim 8 , wherein the encrypted data is received from user equipment, the decrypted data contains an execution command, and the actions further comprise:

receiving an execution result of the execution command from the IoT device;

encrypting the execution result using a public key of the user equipment; and

sending the encrypted execution result to the user equipment.

10. The programmable switch of claim 8 , wherein performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch comprises:

authenticating the IoT device online by implementing an asymmetric encryption function for the IoT device in the programmable switch.

11. The programmable switch of claim 10 , wherein authenticating the IoT device online comprises:

receiving a device identifier of the IoT device and a token for authentication from the IoT device;

encrypting the device identifier and the token using a public key of an authentication server;

sending the device identifier and the token that are encrypted to the authentication server; and

receiving an authentication response message from the authentication server, the authentication response message being encrypted using the public key of the programmable switch.

12. The programmable switch of claim 11 , wherein authenticating the IoT device online further comprises:

decrypting the authentication response message using the private key of the programmable switch to obtain an authentication result; and

based on a determination that the authentication result indicates that the IoT device has passed the authentication:

granting an access right to the IoT device;

storing the device identifier of the IoT device and a corresponding port; and

sending an indication of authentication success to the IoT device.

13. The programmable switch of claim 8 , wherein the actions further comprise:

sending, based on a determination that a request for a serverless list is received from the IoT device, the serverless list to the IoT device;

receiving, from the IoT device, an encryption request for one or more packets associated with a destination address; and

based on a determination that a given packet directed to the destination address is received from the IoT device, encrypting the given packet by the programmable switch.

14. The programmable switch of claim 8 , further comprising:

a processing unit configured to generate an asymmetric key that includes the public key and private key of the programmable switch; and

a programmable switch chip configured to perform at least one of asymmetric encryption and asymmetric decryption.

15. A computer program product that is tangibly stored on a non-transitory computer-readable medium and contains computer-executable instructions that, when executed, cause a computer to implement a method, the method comprising:

receiving, at a programmable switch, encrypted data directed to an Internet of Things (IoT) device, the encrypted data being encrypted using a public key of the programmable switch;

decrypting the encrypted data using a private key of the programmable switch to obtain decrypted data; and

sending the decrypted data from the programmable switch to the IoT device;

wherein the private key is set based at least in part on input from the IoT device and associated in the programmable switch with a designated source address of a source different from the IoT device;

wherein the decrypting of the encrypted data using the private key is triggered responsive to a determination by the programmable switch that the encrypted data was received from the source address; and

wherein the programmable switch comprises an edge switch of an edge device configured to couple the IoT device to a network, the edge switch implementing a plurality of serverless functions including at least a first serverless function for performing encryption operations in the edge switch and a second serverless function for performing decryption operations in the edge switch;

the method further comprising:

receiving, from the IoT device, a decryption request for one or more packets having the source address, the decryption request being received prior to receipt of a given one of the one or more packets from the source address;

based on a determination that the given packet is received from the source address, decrypting the given packet by the programmable switch; and

performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch.

16. The computer program product of claim 15 , wherein the encrypted data is received from user equipment, and the decrypted data contains an execution command, the method further comprising:

receiving an execution result of the execution command from the IoT device;

encrypting the execution result using a public key of the user equipment; and

sending the encrypted execution result to the user equipment.

17. The computer program product of claim 15 , wherein performing online authentication of the IoT device via the programmable switch utilizing an additional cryptographic function implemented in the programmable switch comprises:

authenticating the IoT device online by implementing an asymmetric encryption function for the IoT device in the programmable switch.

18. The computer program product of claim 17 , wherein authenticating the IoT device online comprises:

receiving a device identifier of the IoT device and a token for authentication from the IoT device;

encrypting the device identifier and the token using a public key of an authentication server;

sending the device identifier and the token that are encrypted to the authentication server; and

receiving an authentication response message from the authentication server, the authentication response message being encrypted using the public key of the programmable switch.

19. The computer program product of claim 15 , wherein the method further comprises:

sending, based on a determination that a request for a serverless list is received from the IoT device, the serverless list to the IoT device;

receiving, from the IoT device, an encryption request for one or more packets associated with a destination address; and

based on a determination that a given packet directed to the destination address is received from the IoT device, encrypting the given packet by the programmable switch.

20. The computer program product of claim 15 , wherein the method further comprises:

generating an asymmetric key using a processing unit in the programmable switch, the asymmetric key including the public key and private key of the programmable switch; and

performing at least one of asymmetric encryption and asymmetric decryption using a programmable switch chip in the programmable switch.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: HU, CHENXI; DONG, SHIXU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052179/0221 →