IP Library Granted Patent US 10,425,224
Granted Patent B1
US 10,425,224 · App. 15/638,853 · Granted Sep 24, 2019

Identity confirmation using private keys

Inventors: Prasad Peddada (Alameda, CA); Taher ElGamal (Atherton, CA)
Assignee: salesforce.com, inc.
H04L9/0825H04L63/0478H04L9/30
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,425,224
App. No.
15/638,853
Granted
Sep 24, 2019
Kind
B1
Abstract

Systems and methods for identify confirmation and transaction security are described. The system transmits to a client computing system an encrypted challenge generated using a public key of an asymmetric key pair and a first partially decrypted challenge generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted challenge. The system receives a decrypted challenge generated by applying a second private key fragment of the private key to the encrypted challenge to generate a second partially decrypted challenge, applying a third private key fragment of the private key to the encrypted challenge to generate a third partially decrypted challenge, and combining the first partially decrypted challenge, the second partially decrypted challenge and the third partially decrypted challenge to generate the decrypted challenge. The system uses the decrypted challenge for verification.

Claims (42)

1. A computer-generated method for identity verification, the method comprising:

transmitting, by a server computing system to a client computing system, an encrypted challenge generated using a public key of an asymmetric key pair;

transmitting, by the server computing system to the client computing system, a first partially decrypted challenge generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted challenge;

receiving, by the server computing system from the client computing system, a decrypted challenge, the decrypted challenge generated by:

(i) applying a second private key fragment of the private key to the encrypted challenge to generate a second partially decrypted challenge, the second private key fragment stored in the client computing system,

(ii) applying a third private key fragment of the private key to the encrypted challenge to generate a third partially decrypted challenge, the third private key fragment provided by a user of the client computing system, and

(iii) combining the first partially decrypted challenge, the second partially decrypted challenge and the third partially decrypted challenge to generate the decrypted challenge; and

comparing, by the server computing system, the decrypted challenge with a challenge used to encrypt the encrypted challenge to verify identity.

2. The method of claim 1 , further comprising receiving, by the server computing system from the client computing system, the public key and the first private key fragment.

3. The method of claim 2 , wherein the challenge is generated by the server computing system using a random number generator.

4. The method of claim 3 , further comprising transmitting, by the server computing system to the client computing system, a notification of a successful identity verification based on confirming that the decrypted challenge is the same as the challenge.

5. The method of claim 4 , wherein the private key is fragmented into the first private key fragment, the second private key fragment, and the third private key fragment by the client computing system.

6. The method of claim 5 , further comprising receiving, by the server computing system from the client computing system, a request for identity verification.

7. 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:

transmit an encrypted challenge generated using a public key of an asymmetric key pair;

transmit a first partially decrypted challenge generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted challenge; and

receiving a decrypted challenge, the decrypted challenge generated by:

(i) applying a second private key fragment of the private key to the encrypted challenge to generate a second partially decrypted challenge, the second private key fragment stored in a client computing system,

(ii) applying a third private key fragment of the private key to the encrypted challenge to generate a third partially decrypted challenge, the third private key fragment provided by a user of the client computing system, and

(iii) combining the first partially decrypted challenge, the second partially decrypted challenge and the third partially decrypted challenge to generate the decrypted challenge; and

compare the decrypted challenge with a challenge used to encrypt the encrypted challenge to verify identity.

8. The system of claim 7 , further comprising instructions which when executed, cause the one or more processors to receive the public key and the first private key fragment.

9. The system of claim 8 , wherein the challenge is generated using a random number generator.

10. The apparatus of claim 9 , further comprising instructions which when executed, cause the one or more processors to transmit a notification of successful verification based on confirming that the decrypted challenge is the same as the challenge.

11. The apparatus of claim 10 , wherein the private key is fragmented into the first private key fragment, the second private key fragment, and the third private key fragment by the client computing system.

12. The apparatus of claim 11 , further comprising instructions which when executed, cause the one or more processors to receive a verification request from the client computing system.

13. 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:

transmit an encrypted challenge generated using a public key of an asymmetric key pair;

transmit a first partially decrypted challenge generated by applying a first private key fragment of a private key of the asymmetric key pair to the encrypted challenge; and

receive a decrypted challenge, the decrypted challenge generated by:

(i) applying a second private key fragment of the private key to the encrypted challenge to generate a second partially decrypted challenge, the second private key fragment stored in a client computing system;

(ii) applying a third private key fragment of the private key to the encrypted challenge to generate a third partially decrypted challenge, the third private key fragment provided by a user of the client computing system; and

(iii) combining the first partially decrypted challenge, the second partially decrypted challenge and the third partially decrypted challenge to generate the decrypted challenge; and

compare the decrypted challenge with a challenge used to encrypt the encrypted challenge to verify identity.

14. The computer program product of claim 13 , wherein the program code includes further instructions to receive the public key and the first private key fragment.

15. The computer program product of claim 14 , wherein the challenge is generated using a random number generator.

16. The computer program product of claim 15 , wherein the program code includes further instructions to transmit a notification of successful verification based on confirming that the decrypted challenge is the same as the challenge.

17. The computer program product of claim 16 , wherein the private key is fragmented into the first private key fragment, the second private key fragment, and the third private key fragment by the client computing system.

18. The computer program product of claim 17 , wherein the program code includes further instructions to receive a verification request from the client 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/0036 →