IP Library Granted Patent US 10,776,783
Granted Patent B2
US 10,776,783 · App. 15/921,039 · Granted Sep 15, 2020

Method and system for secure key rotation

Inventors: Yasser Abou-Nasr (Chino Hills, CA); Michael Boland (Souderton, CA)
Assignee: Shopkeep Inc.
G06Q20/3829G06Q20/34
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,776,783
App. No.
15/921,039
Granted
Sep 15, 2020
Kind
B2
Abstract

This invention discloses a novel system for securing and using payment token data in a system for processing electronic payment transactions that does not require down-time for rekeying encryption keys when the keys are rotated.

Claims (44)

1. A computer system for executing electronic payment transactions while conducting a key rotation and re-keying comprising:

a transaction server comprised of memory comprised of a first decryption key and a second decryption key corresponding to a first key identifier and a second key identifier stored in the memory,

the transaction server further comprised of a data structure representing a key table, said key table comprised of data representing a third key identifier and a fourth key identifier;

the transaction server comprised of program data that when executed causes the transaction server to:

receive from the key table the third key identifier and the fourth key identifier;

receive a first encrypted data representing a first payment token encrypted by a third encryption key and a second encrypted data representing the first payment token encrypted by a fourth encryption key, each of the third and fourth encryption keys corresponding to the third and fourth key identifiers comprising the key table;

determine which one of either the third or fourth key identifiers correspond to the first or second key identifiers;

select one of the first or second received encrypted data that corresponds to the determined one of the third or fourth key identifiers; and

decrypt the selected received encrypted data using the one of the first or second decryption keys whose key identifier was determined to correspond to the third or fourth key identifier; and

a keying server comprised of program data that when executed causes the keying server to:

receive the first and the second key identifiers, where the first key identifier corresponds to the youngest of the first or second encryption keys;

receive the third and the fourth key identifiers;

receive the first encrypted data and the second encrypted data;

determine whether the pair of third and fourth key identifiers fail to correspond to the pair of first and second key identifiers, and in dependence on such determination, decrypting whichever of the first or second encrypted data corresponds to the fourth key identifier and re-encrypting the decrypted data using the first encryption key that corresponds to the younger of the first or second encryption keys.

2. The system of claim 1 where the program code comprising the transaction server when executed further causes the transaction server to:

receive the first payment token;

receive the second and the third key identifiers;

encrypt the first payment token with the encryption key associated with the second key identifier;

input the encrypted first payment token into a data record entry corresponding to the first payment token, said entry further corresponding to the second key identifier, where the first and second key identifiers are numerically distinct and the first and second encryption keys are numerically distinct.

3. The system of claim 1 where the program code comprising the transaction server when executed further causes the transaction server to:

determine if neither the first nor second key identifiers match either the third or fourth key identifiers, and in dependence thereon, request from a remote server and receive from said remote server encrypted forms of the third decryption key and the fourth decryption key corresponding to the third and fourth key identifiers.

4. The system of claim 1 where the program code comprising the transaction server when executed further causes the transaction server to prevent the key rotation and a rekeying until the system detects a condition that the request from said remote server step returns a null result instead of the third and fourth decryption keys.

5. A method executed by a computer system for executing electronic payment transactions while conducting a key rotation and re-keying, the computer system comprised of a transaction server comprised of memory comprised of a first decryption key and a second decryption key corresponding to a first key identifier and a second key identifier and a data structure representing a key table and a keying server, said method comprising:

at the transaction server,

storing in the key table a third key identifier and a fourth key identifier;

receiving a first encrypted data representing a first payment token encrypted by a third encryption key and a second encrypted data representing the first payment token encrypted by a fourth encryption key, each of the third and fourth encryption keys corresponding to the third and fourth key identifiers comprising the key table;

determining which one of either the third or fourth key identifiers correspond to the first or second key identifiers;

selecting one of the first or second received encrypted data that corresponds to the determined one of the third or fourth key identifiers; and

decrypting the selected received encrypted data using the one of the first or second decryption keys whose key identifier was determined to correspond to the third or fourth key identifier; and

at the keying server,

receiving the first and the second key identifiers, where the first key identifier corresponds to the youngest of the first or second encryption keys;

receiving the third and the fourth key identifiers;

receiving the first encrypted data and the second encrypted data;

determining whether the pair of third and fourth key identifiers fail to correspond to the pair of first and second key identifiers; and

in dependence on such determination, decrypting whichever of the first or second encrypted data corresponds to the fourth key identifier and re-encrypting the decrypted data using the first encryption key that corresponds to the younger of the first or second encryption keys.

6. The method of claim 5 further comprising:

at the transaction server, receiving the first payment token;

receiving the second and the third key identifiers;

encrypting the first payment token with the encryption key associated with the second key identifier; and

inputting the encrypted first payment token into a data record entry corresponding to the first payment token, said entry further corresponding to the second key identifier, where the first and second key identifiers are numerically distinct and the first- and second encryption keys are numerically distinct.

7. The method of claim 5 further comprising:

at the transaction server,

determining if neither the first nor second key identifiers match either the third or fourth key identifiers, and in dependence thereon, requesting from a remote server and receiving from said remote server encrypted forms of the third decryption key and the fourth decryption key corresponding to the third and fourth key identifiers.

8. The method of claim 7 further comprising: preventing the key rotation and the rekeying until the system detects a condition that the request from said remote server step returns a null result instead of the third and fourth decryption keys.

Assignments (7)
MERGER Recorded Dec 8, 2020
From: SHOPKEEP INC.
To: LIGHTSPEED COMMERCE USA INC.
Reel/Frame 054572/0166 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2020
From: ORIX GROWTH CAPITAL LLC
To: SHOPKEEP INC.
Reel/Frame 054519/0407 →
RELEASE OF SECURITY INTEREST Recorded Nov 27, 2020
From: PACIFIC WESTERN BANK
To: SHOPKEEP INC.
Reel/Frame 054477/0805 →
CHANGE OF NAME Recorded May 9, 2019
From: SHOPKEEP.COM, INC.
To: SHOPKEEP INC.
Reel/Frame 049132/0503 →
SECURITY INTEREST Recorded Oct 10, 2018
From: SHOPKEEP INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 047124/0001 →
SECURITY INTEREST Recorded Sep 19, 2018
From: SHOPKEEP INC.
To: PACIFIC WESTERN BANK
Reel/Frame 046914/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: ABOU-NASR, YASSER; BOLAND, MICHAEL
To: SHOPKEEP.COM, INC.
Reel/Frame 045237/0832 →
Continuity (2)
Continuation 13798832 · Mar 13, 2013
Related Publication 20180260812A1 · Sep 13, 2018