IP Library Granted Patent US 12,603,764
Granted Patent B2
US 12,603,764 · App. 18/769,927 · Granted Apr 14, 2026

Data protection with two password asymmetric encryption

Inventor: Hao Cheng (Oakton, VA)
Assignee: Capital One Services, LLC
H04L9/0825H04L9/0863H04L9/0894H04L9/3213H04L9/3226
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,603,764
App. No.
18/769,927
Granted
Apr 14, 2026
Kind
B2
Abstract

Techniques for protecting data using two password asymmetric encryption based on time-constrained password-based partner tokens. To encrypt data, a first partner computing device receives a first partner token from a second computing device. The first partner computing device decrypts the first partner token to recover first public key data generated by the second partner computing device. The first partner computing device derives a cryptographic encryption key to encrypt the data based on the first public key data, and based on first private key data generated by the first partner computing device. The second computing device may decrypt the encrypted data based on a second partner token generated by the first partner computing device, using a cryptographic decryption key derived using second private key data generated by the second computing device and second public key data generated by the first computing device and embedded and encrypted in the second partner token.

Claims (81)

1 . A method comprising:

receiving, at a first computing device and from a second computing device, a first time-constraint token;

receiving, at the first computing device, a current system time and a predetermined shared secret associated with the first computing device and the second computing device, wherein the current system time is determined using an epoch converter;

deriving, using a first key derivation function and based on the current system time and the predetermined shared secret, a first cryptographic key;

decrypting, by the first computing device and using the first cryptographic key, the first time-constraint token to recover a public key;

deriving, by the first computing device and based on a first password, a private key;

deriving, by the first computing device and based on the private key and the public key, a second cryptographic key; and

encrypting, by the first computing device and based on the second cryptographic key, data to generate encrypted data.

2 . The method of claim 1 , further comprising at least one of:

storing, by the first computing device, the encrypted data, or

sending, by the first computing device and to the second computing device, the encrypted data.

3 . The method of claim 1 , further comprising:

performing, by the first computing device, an error detection calculation on the data to generate first error detection data; and

combining the data and the first error detection data, wherein encrypting further comprises encrypting the combined data and the first error detection data to generate the encrypted data.

4 . The method of claim 3 , wherein combining further comprises concatenating the data and the first error detection data.

5 . The method of claim 3 , wherein combining further comprises interleaving, according to a predetermined interleaving pattern, the data and the first error detection data.

6 . The method of claim 3 , further comprising encoding, using Base64 encoding, the encrypted data.

7 . The method of claim 1 , wherein decrypting further comprises:

decrypting, based on the first cryptographic key, the first time-constraint token to recover first error detection data.

8 . The method of claim 7 , wherein the method further comprises:

performing, by the first computing device, an error detection calculation on the public key to generate second error detection data;

comparing the first error detection data to the second error detection data; and

determining that the first time-constraint token is valid when the first error detection data matches the second error detection data.

9 . The method of claim 7 , further comprising:

determining that the first time-constraint token is invalid as expired;

modifying the current system time to derive a modified current system time;

deriving, using the first key derivation function and based on the modified current system time and the predetermined shared secret, a modified first cryptographic key; and

decrypting, based on the modified first cryptographic key, the first time-constraint token to recover a modified public key and modified first error detection data.

10 . The method of claim 1 , wherein deriving the private key further comprises:

deriving, using a second key derivation function and based on the first password, a first block of data of a first desired size; and

deriving, using a third key derivation function and based on the first block of data, the private key.

11 . The method of claim 1 , further comprising:

receiving, at the second computing device, a second password;

deriving, using a second key derivation function and based on the second password, a first block of data of a first desired size;

deriving, using a third key derivation function and based on the first block of data, the public key;

performing, by the second computing device, an error detection calculation on the public key to generate error detection data;

combining the public key and the error detection data;

receiving, at the second computing device, the current system time and the predetermined shared secret associated with the first computing device and the second computing device;

deriving, using the first key derivation function and based on the current system time and the predetermined shared secret, the first cryptographic key;

encrypting, using the first cryptographic key, the combined public key and the error detection data, to generate output data;

encoding the output data to form the first time-constraint token; and

sending, from the second computing device and to the first computing device, the first time-constraint token.

12 . The method of claim 1 , further comprising:

receiving, at the second computing device, the encrypted data;

receiving, at the second computing device and from the first computing device, a second time-constraint token;

receiving, at the second computing device, the current system time and the predetermined shared secret associated with the first computing device and the second computing device;

deriving, at the second computing device, using the first key derivation function and based on the current system time and the predetermined shared secret, the first cryptographic key;

decrypting, using the first cryptographic key, the second time-constraint token to recover a second public key;

performing an error detection calculation on the second public key to generate error detection data;

determining that the second time-constraint token is valid based on the error detection data;

deriving, by the second computing device, and based on a second private key and the second public key, a third cryptographic key, wherein the second private key is derived based on a second password;

decrypting, by the second computing device and based on the third cryptographic key, the encrypted data to recover the data; and

storing, by the second computing device, the data.

13 . A computing device comprising: one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the computing device to:

receive, from a second computing device, a first time-constraint token;

receive a current system time and a predetermined shared secret associated with the computing device and the second computing device, wherein the current system time is determined using an epoch converter;

derive, using a first key derivation function and based on the current system time and the predetermined shared secret, a first cryptographic key;

decrypt, using the first cryptographic key, the first time-constraint token to recover a public key;

derive, based on a first password, a private key;

derive, based on the private key and the public key, a second cryptographic key; and

encrypt, based on the second cryptographic key, data to generate encrypted data.

14 . The computing device of claim 13 , wherein the instructions, when executed by the one or more processors, cause the computing device to perform at least one of:

store the encrypted data, or

send, to the second computing device, the encrypted data.

15 . The computing device of claim 13 , wherein the instructions, when executed by the one or more processors, cause the computing device to:

perform an error detection calculation on the data to generate first error detection data; and

combine the data and the first error detection data, wherein encrypting further comprises encrypting the combined data and the first error detection data to generate the encrypted data.

16 . The computing device of claim 13 , wherein the instructions, when executed by the one or more processors, cause the computing device to derive the public key by:

deriving, using a second key derivation function and based on the first password, a first block of data of a first desired size; and

deriving, using a third key derivation function and based on the first block of data, the private key.

17 . One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps comprising:

receive, at a first computing device and from a second computing device, a first time-constraint token;

receive, at the first computing device, a current system time and a predetermined shared secret associated with the first computing device and the second computing device, wherein the current system time is determined using an epoch converter;

derive, using a first key derivation function and based on the current system time and the predetermined shared secret, a first cryptographic key;

decrypt, by the first computing device and using the first cryptographic key, the first time-constraint token to recover a public key;

derive, by the first computing device and based on a first password, a private key;

derive, by the first computing device and based on the private key and the public key, a second cryptographic key; and

encrypt, by the first computing device and based on the second cryptographic key, data to generate encrypted data.

18 . The one or more non-transitory computer-readable media of claim 17 , wherein the instructions, when executed by the one or more processors, cause the first computing device to perform at least one of:

store the encrypted data, or

send, to the second computing device, the encrypted data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2025
From: CHENG, HAO
To: CAPITAL ONE SERVICES, LLC
Reel/Frame 073185/0240 →
Continuity (2)
Continuation 17874362 · Jul 27, 2022
Related Publication 20240364503A1 · Oct 31, 2024
References Cited (11)
US 5535276A · Ganesan · 1996 [cited by examiner]
US 5778071A · Caputo · 1998 [cited by examiner]
US 11284258B1 · Wei · 2022 [cited by examiner]
US 11456863B1 · Conor · 2022 [cited by examiner]
US 11729150B2 · John · 2023 [cited by examiner]
US 11743047B2 · Rahn · 2023 [cited by examiner]
US 20150319151A1 · Chastain · 2015 [cited by examiner]
US 20200213111A1 · Leavy · 2020 [cited by examiner]
WO 2016033610A1 · 2016 [cited by applicant]
Morris Dworkin “Recommendation for Block Cipher Modes of Operation: Methods for Format-Preserving Encryption” U.S. Department of Commerce NIST Special Publication 800-38G, http://dx.doi.org/10.6028/NIST.SP.800-38G, pp. … [cited by applicant]
Nov. 8, 2023—(WO) International Search Report and Written Opinion—App No. PCT/US2023/028630. [cited by applicant]