IP Library Granted Patent US 12,646,057
Granted Patent B2
US 12,646,057 · App. 18/541,281 · Granted Jun 2, 2026

Communications device, point of sale device, payment device and methods

Inventor: Nilesh Upadhye (London, GB)
Assignee: Vocalink International Limited
G06Q20/3829G06Q20/401H04L9/0869G06Q2220/00H04L2209/56
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,646,057
App. No.
18/541,281
Granted
Jun 2, 2026
Kind
B2
Abstract

A communications device for implementing an electronic payment process, the communications device including a receiver unit operable to receive a secure limited use key (SLUK) from a financial institution that is generated by the financial institution using a first limited use key (LUK) generated using a first key associated with the financial institution, an identifier which identifies a user of the communications device, and a variable code, and a subset of the characters of a passcode associated with the user of the communications device, each character in the subset being identified by its character position in the passcode, and the character position in the passcode of each of the characters in the subset being determined by a predetermined algorithm on the basis of a second key associated with the user of the communications device, the identifier which identifies the user of the communications device and the variable code.

Claims (83)

1 . A payment device associated with a financial institution, comprising:

a receiver unit configured to receive request data from a communications device associated with a user, wherein the request data corresponds to a request for a secure limited use key (SLUK), wherein the SLUK is configured for use by the communications device for an electronic payment process with a point of sale (POS) device;

a controller configured to:

generate a first limited use key (LUK), in response to the received request data, based on a variable code, a user identifier associated with the user, and a financial institution key associated with the financial institution;

determine character positions for a passcode using a predetermined algorithm based on a secret key associated with the user, the user identifier, and the variable code, wherein the passcode is associated with the user, and wherein the character positions correspond to a subset of characters of the passcode;

determine the subset of characters of the passcode based on the determined character positions; and

generate the SLUK based on the first LUK and the determined subset of characters of the passcode; and

a transmitter unit configured to transmit the SLUK and the variable code to the communications device.

2 . The payment device of claim 1 , wherein:

the receiver unit is further configured to receive registration request data from the communications device, wherein the registration request data corresponds to a request to register the communications device with the financial institution for use during one or more payment processes, wherein the one or more payment processes comprise the electronic payment process;

the controller is further configured to generate the user identifier and the secret key; and

the transmitter unit is further configured to transmit the user identifier and the secret key to the communications device.

3 . The payment device of claim 1 , wherein:

the receiver unit is further configured to receive message data from the POS device, wherein the message data comprises:

the user identifier;

a first cryptogram generated by the communications device, wherein the first cryptogram corresponds to a second LUK generated by the communications device based on the SLUK transmitted to the communications device and a partial passcode received from the user, wherein the partial passcode corresponds to positions of the passcode determined by the communications device using the predetermined algorithm;

a first Key Check Value (KCV) generated by the communications device based on the second LUK; and

a datagram generated by the POS device, wherein the datagram indicates a payment value associated with the electronic payment process; and

the controller is further configured to:

regenerate the first LUK based on the user identifier, the financial institution key, and the variable code;

generate a second cryptogram based on the regenerated first LUK; and

compare the first cryptogram and the second cryptogram.

4 . The payment device of claim 3 , wherein:

the controller is further configured to:

determine that the first cryptogram and the second cryptogram match based on the comparison of the first cryptogram and the second cryptogram;

facilitate a payment between an account associated with the user and an account associated with the POS device, wherein the payment corresponds to the payment value indicated by the datagram; and

the transmitter unit is further configured to transmit confirmation data to the communications device, the POS device, or both, wherein the confirmation data indicates the electronic payment process has been successfully completed.

5 . The payment device of claim 3 , wherein the controller is further configured to:

determine that the first cryptogram and the second cryptogram do not match based on the comparison of the first cryptogram and the second cryptogram;

generate a second KCV based on the regenerated first LUK; and

compare the first KCV and the second KCV.

6 . The payment device of claim 5 , wherein the controller is further configured to:

determine that the first KCV and the second KCV match based on the comparison of the first KCV and the second KCV; and

determine that the partial passcode received from the user is correct.

7 . The payment device of claim 5 , wherein the controller is further configured to:

determine that the first KCV and the second KCV do not match based on the comparison of the first KCV and the second KCV; and

determine that the partial passcode received from the user is incorrect.

8 . The payment device of claim 1 , wherein:

the user identifier comprises a token primary account number (PAN);

the financial institution key comprises an Issue Master Key (IMK);

the secret key comprises an Advanced Standards Encryption (AES) 128 bit secret key; or

combinations thereof.

9 . The payment device of claim 1 , wherein generate the first LUK comprises:

retrieve the financial institution key from a storage unit; and

determine the variable code, wherein the variable code corresponds to a format DDDNN, wherein DDD represents a number of days since a predetermined first day of a year and NN is a key sequence number ranging from 00 to 99.

10 . The payment device of claim 1 , wherein the controller configured to determine the character positions for the passcode using the predetermined algorithm is further configured to:

generate a cryptographic random number (CRN) based on the secret key, the user identifier, and the variable code;

determine whether a number of characters of the CRN is greater than or equal to a number of characters of the passcode;

if the number of characters of the CRN is greater than or equal to the number of characters of the passcode, determine whether a number of unique characters of the CRN is greater than or equal to a predetermined number; and

if the number of unique characters of the CRN is greater than or equal to the predetermined number, determine the character positions for the passcode based on the unique characters of the CRN.

11 . The payment device of claim 10 , wherein the controller configured to determine the character positions for the passcode based on the unique characters of the CRN is further configured to:

identify a set of the unique characters of the CRN, wherein a number of the unique characters included in the set is equal to the predetermined number;

determine values for the unique characters included in the set; and

determine the character positions for the passcode based on the values for the unique characters included in the set, wherein a respective character position for the passcode corresponds to a value for a respective unique character included in the set.

12 . The payment device of claim 10 , wherein, if the number of characters of the CRN is less than the number of characters of the passcode, the controller is further configured to:

generate a second CRN based on the secret key, the user identifier, and the variable code;

determine whether a number of characters of the second CRN is greater than or equal to a number of characters of the passcode;

if the number of characters of the second CRN is greater than or equal to the number of characters of the passcode, determine whether a number of unique characters of the second CRN is greater than or equal to the predetermined number; and

if the number of unique characters of the second CRN is greater than or equal to the predetermined number, determine the character positions for the passcode based on the unique characters of the second CRN.

13 . The payment device of claim 10 , wherein:

each unique character has a value that is less than or equal to the number of characters of the passcode;

the predetermined number is equal to a number of characters to be included in the subset of characters of the passcode; and

if the number of unique characters of the CRN is less than the predetermined number, the controller is further configured to:

generate a second CRN based on the secret key, the user identifier, and the variable code;

determine whether a number of characters of the second CRN is greater than or equal to a number of characters of the passcode;

if the number of characters of the second CRN is greater than or equal to the number of characters of the passcode, determine whether a number of unique characters of the second CRN is greater than or equal to the predetermined number; and

if the number of unique characters of the second CRN is greater than or equal to the predetermined number, determine the character positions for the passcode based on the unique characters of the second CRN.

14 . The payment device of claim 10 , wherein the controller configured to generate the CRN is further configured to provide the secret key, the user identifier, and the variable code as inputs to a Format Preserving Encryption (FPE) function.

15 . The payment device of claim 1 , wherein the controller configured to determine the subset of characters of the passcode is further configured to:

retrieve the subset of characters of the passcode from a storage unit of the payment device based on the determined character positions, wherein each character of the subset of characters of the passcode corresponds to a respective determined character position for the passcode.

16 . The payment device of claim 1 , wherein the controller configured to generate the SLUK is further configured to perform an encryption algorithm to wrap the first LUK using the determined subset of characters of the passcode.

17 . A method, comprising:

receiving, at a payment device associated with a financial institution, request data from a communications device associated with a user, wherein the request data corresponds to a request for a secure limited use key (SLUK), wherein the SLUK is configured for use by the communications device for an electronic payment process with a point of sale (POS) device;

generating, at the payment device, a first limited use key (LUK), in response to the received request data, based on a variable code, a user identifier associated with the user, and a financial institution key associated with the financial institution;

determining, at the payment device, character positions for a passcode using a predetermined algorithm based on a secret key associated with the user, the user identifier, and the variable code, wherein the passcode is associated with the user, and wherein the character positions correspond to a subset of characters of the passcode;

determining, at the payment device, the subset of characters of the passcode based on the determined character positions;

generating, at the payment device, the SLUK based on the first LUK and the determined subset of characters of the passcode; and

transmitting, from the payment device, the SLUK and the variable code to the communications device.

18 . The method of claim 17 , wherein determining, at the payment device, the character positions for the passcode using the predetermined algorithm comprises:

generating a cryptographic random number (CRN) based on the secret key, the user identifier, and the variable code;

determining whether a number of characters of the CRN is greater than or equal to a number of characters of the passcode;

if the number of characters of the CRN is greater than or equal to the number of characters of the passcode, determining whether a number of unique characters of the CRN is greater than or equal to a predetermined number; and

if the number of unique characters of the CRN is greater than or equal to the predetermined number, determining the character positions for the passcode based on the unique characters of the CRN.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2025
From: IPCO 2012 LIMITED
To: VOCALINK INTERNATIONAL LIMITED
Reel/Frame 071977/0354 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2023
From: UPADHYE, NILESH
To: IPCO 2012 LIMITED
Reel/Frame 065884/0048 →
Priority Claims (1)
GB 1611367 · Jun 30, 2016 · national
Continuity (2)
Continuation 16313789
Related Publication 20240127236A1 · Apr 18, 2024
References Cited (17)
US 11847641B2 · Upadhye · 2023 [cited by examiner]
US 20050177522A1 · Williams · 2005 [cited by applicant]
US 20110208964A1 · Sama · 2011 [cited by examiner]
US 20130262317A1 · Collinge et al. · 2013 [cited by applicant]
US 20140169554A1 · Scarisbrick · 2014 [cited by examiner]
US 20150178724A1 · Ngo · 2015 [cited by examiner]
US 20160080381A1 · Hall · 2016 [cited by examiner]
US 20170155513A1 · Acar · 2017 [cited by examiner]
EP 2065856A1 · 2009 [cited by examiner]
EP 3062271A1 · 2016 [cited by applicant]
Roongroj, Mobile Digital Right Management with enhanced security using limited-use session keys, 2015 12th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Information Tec… [cited by examiner]
Chokngamwong, Roongroj, “Mobile Digital Right Management with Enhanced Security Using Limited-Use Session Keys”, 12th International Conference on Electrical Engineering/Electronics, Computer, Telecommunications and Info… [cited by applicant]
PCT International Search Report and Written Opinion, Application No. PCT/GB2017/051902, dated Sep. 18, 2017, 17pp. [cited by applicant]
Menezes A J, et al., “Handbook of Applied Cryptography, Chapter 10: Identification and Entity Authentication”, Handbook of Applied Cryptography, Jan. 1, 1997, pp. 385-440. [cited by applicant]
Slava Gomzin, “Chapter 7 Cryptography in Payments Applications”, Hacking Point of Sale: Payment Application Secrets, Threats, and Solutions, Mar. 2, 2014, pp. 167-193. [cited by applicant]
Alain Hiltgen, et al., “Secure Internet Banking Authentication”, Security & Privacy, IEEE Service Center, Mar. 1, 2006, pp. 24-32. [cited by applicant]
Neuman B C, et al., “Kerberos: an authentication service for computer networks”, IEEE Communications Magazine, EEE Service Center, vol. 32, No. 9, Sep. 1, 1994, pp. 33-38. [cited by applicant]