IP Library Granted Patent US 10,374,794
Granted Patent B1
US 10,374,794 · App. 15/638,920 · Granted Aug 6, 2019

Secure transmission of tokens using private key fragments

Inventors: Prasad Peddada (Alameda, CA); Taher ElGamal (Atherton, CA)
Assignee: salesforce.com, inc.
H04L9/0825H04L9/0822H04L9/3213
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 10,374,794
App. No.
15/638,920
Granted
Aug 6, 2019
Kind
B1
Abstract

System and methods for secure transmission are described and include receiving, by a first computing system, an encrypted token generated using a public key of an asymmetric key pair; receiving, by the first computing system, a first partially decrypted token generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted token; applying, by the first computing system, a second private key fragment of the private key to the encrypted token to generate a second partially decrypted token; applying, by the first computing system, a third private key fragment of the private key to the encrypted token to generate a third partially decrypted token; and combining the first partially decrypted token, the second partially decrypted token and the third partially decrypted token to generate a decrypted token.

Claims (38)

1. A method comprising:

receiving, by a first computing system, an encrypted token generated using a public key of an asymmetric key pair;

receiving, by the first computing system, a first partially decrypted token generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted token;

applying, by the first computing system, a second private key fragment of the private key to the encrypted token to generate a second partially decrypted token;

applying, by the first computing system, a third private key fragment of the private key to the encrypted token to generate a third partially decrypted token; and

combining the first partially decrypted token, the second partially decrypted token and the third partially decrypted token to generate a decrypted token.

2. The method of claim 1 , wherein the second private key fragment is stored in a storage device associated with the first computing system.

3. The method of claim 2 , wherein the third private key fragment is provided by a user of the first computing system.

4. The method of claim 3 , wherein the encrypted token and the first partially decrypted token are received from a second computing system.

5. The method of claim 4 , further comprising transmitting, by the first computing system, the public key and the first private key fragment to the second computing system.

6. The method of claim 5 , further comprising fragmenting, by the first computing system, the private key into the first, second and third private key fragments.

7. The method of claim 6 , wherein said fragmenting of the private key into the first, second and third private key fragments is applicable only to the first computing system receiving the encrypted token from the second computing system and not applicable to the first computing system receiving another encrypted token from a third computing system.

8. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

receive an encrypted token generated using a public key of an asymmetric key pair;

receive a first partially decrypted token generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted token;

apply a second private key fragment of the private key to the encrypted token to generate a second partially decrypted token;

apply a third private key fragment of the private key to the encrypted token to generate a third partially decrypted token; and

combine the first partially decrypted token, the second partially decrypted token and the third partially decrypted token to generate a decrypted token.

9. The system of claim 8 , wherein the second private key fragment is stored in a storage device associated with a first computing system.

10. The system of claim 9 , wherein the third private key fragment is provided by a user of the first computing system.

11. The system of claim 10 , wherein the encrypted token and the first partially decrypted token are received from a second computing system.

12. The system of claim 11 , further comprising instructions to transmit the public key and the first private key fragment to the second computing system.

13. The system of claim 12 , further comprising instructions to fragment the private key into the first, second and third private key fragments.

14. The system of claim 13 , wherein the instructions to fragment the private key into the first, second and third private key fragments is applicable only to the first computing system receiving the encrypted token from the second computing system and not applicable to the first computing system receiving another encrypted token from a third computing system.

15. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

receive an encrypted token generated using a public key of an asymmetric key pair;

receive a first partially decrypted token generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted token;

apply a second private key fragment of the private key to the encrypted token to generate a second partially decrypted token;

apply a third private key fragment of the private key to the encrypted token to generate a third partially decrypted token; and

combine the first partially decrypted token, the second partially decrypted token and the third partially decrypted token to generate a decrypted token.

16. The computer program product of claim 15 , wherein the second private key fragment is stored in a storage device of a first computing system.

17. The computer program product of claim 16 , wherein the third private key fragment is provided by a user of the first computing system.

18. The computer program product of claim 17 , wherein the encrypted token and the first partially decrypted token are received from a second computing system.

19. The computer program product of claim 18 , further comprising instructions to transmit the public key and the first private key fragment to the second computing system.

20. The computer program product of claim 19 , further comprising instructions to fragment the private key into the first, second and third private key fragments.

21. The computer program product of claim 20 , wherein the instructions to fragment the private key into the first, second and third private key fragments is applicable only to the first computing system receiving the encrypted token from the second computing system and not applicable to the first computing system receiving another encrypted token from a third computing system.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2017
From: PEDDADA, PRASAD; ELGAMAL, TAHER
To: SALESFORCE.COM, INC.
Reel/Frame 042874/0514 →