# US 12,217,110 B1 · Cards, devices, systems, methods and dynamic security codes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,110 B1
- Document ID: US12217110B1
- Status: Granted
- Kind: B1
- Application number: 16/147,479
- Filed: 2018-09-28
- Granted: 2025-02-04
- Earliest claimed: 2012-05-15
- Assignees: Dynamics Inc.
- Applicants: Dynamics Inc.
- Inventors: Gautam Batra
- Web page: https://patentgrep.com/patent/US12217110B1

## CPC

- G06Q 20/341: {Active cards, i.e. cards including their own processing means, e.g. including an IC or chip}
- G06K 19/077: Constructional details, e.g. mounting of circuits in the carrier
- G06K 19/07749: {the record carrier being capable of non-contact communication, e.g. constructional details of the antenna of a non-contact smart card}
- G07F 7/1008: {Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system}
- G06K 19/06206: {the magnetic marking being emulated}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06K: GRAPHICAL DATA READING (image or video recognition or understanding G06V); PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G07F: COIN-FREED OR LIKE APPARATUS (coin sorting G07D3/00; coin testing G07D5/00; {handling coins or paper currencies apart from payment activated apparatus G07D; payment architectures, schemes or protocols G06Q20/00})

## Abstract

A dynamic code may be validated by comparing the dynamic code to a verification code. The card may generate the dynamic code using a random object and a function. The random object may be generated using a random object generator. The function may be determinable using a function determination object and a look-up-table (LUT), the function determination object associable to exponents and operators, listed in the LUT, that may be combined with base variables to determine the function. The dynamic code may be determined by substituting portions of the random object for the base variables in the function. The card may communicate the dynamic code, the random object and an identifier to a remote processing facility. The remote processing facility may use the identifier to determine the function, use the random object to determine a verification code and compare the verification code to the dynamic code.

## Claims

### Claim 1

A method, comprising:
receiving a random object, a dynamic code and an identifier;
obtaining a function determination object using the identifier;
determining a function using the function determination object;
determining a verification code using the function and the random object; and
comparing the verification code to the dynamic code.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
authorizing a transaction based on the comparing the verification code.

### Claim 3 (depends on 1)

The method of claim 1, wherein each of the random object, the dynamic code, the function determination object and the verification code include information indicative of a number.

### Claim 4 (depends on 1)

The method of claim 1, wherein the determining a function includes obtaining a plurality of base variables, a plurality of exponents based on the function determination object, and at least one operator based on the function determination object and a look-up-table (LUT), and using the base variables, exponents and at least one operator to determine the function, and
the determining a verification code includes replacing the base variables with values based on the random object.

### Claim 5 (depends on 1)

The method of claim 1, wherein the random object is a first three digit number,
the dynamic code is a second three digit number,
the function determination object is a five digit number,
the determining a function includes obtaining three base variables, three exponents based on three digits of the five digit number, and two operators from a look-up-table (LUT) based on two digits of the five digit number, and combining the base variables, exponents and operators to determine the function, and
the determining a verification code includes replacing each of the three base variables with a different digit of the first three digit number.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
validating the dynamic code based on the comparing the verification code,
wherein the random object is a first three digit number,
the dynamic code is a second three digit number,
the verification code is a third three digit number,
the function determination object is a random five digit number,
the determining a function includes obtaining three base variables and three exponents, and obtaining two operators based on the five digit number and one or more fields of a look-up-table (LUT), and combining the base variables, exponents and operators to obtain a polynomial function,
the operators are each one of addition, subtraction, multiplication and division,
the determining a verification code includes replacing each of the three base variables with a different digit of the first three digit number, and obtaining a solution of the polynomial function, and
the validating the dynamic code includes communicating validation upon determining a match between the second and third three digit numbers.

### Claim 7 (depends on 1)

The method of claim 1, wherein the dynamic code is one of a dynamic card verification value (CVV) and/or card identification number (CID).

### Claim 8

A method, comprising:
generating a random object using a random object generator,
determining a dynamic code based on a function and the random object; and
communicating the random object, the dynamic code and an identifier to a processing device.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
determining the function based on a function determination object.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
determining the function based on a function determination object,
wherein the random object is a first three digit number,
the dynamic code is a second three digit number,
the function determination object is a five digit number,
the determining the function includes obtaining three base variables, obtaining three exponents based on the five digit number, and obtaining two operators from a look-up-table (LUT) based on the five digit number, and combining the base variables, exponents and operators to obtain a polynomial function, and
the operators are each one of addition, subtraction, multiplication and division.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
determining the function based on a function determination object,
wherein the determining the function includes obtaining a plurality of base variables, and obtaining a plurality of exponents and at least one operator based on at least one of the function determination object and a look-up-table (LUT), and using the base variables, exponents and at least one operator to determine the function, and
the determining a dynamic code includes replacing the base variables with values based on the random object.

### Claim 12

A device, comprising:
a random object generator configured to generate a random object;
a memory configured to store base variables, a look-up-table (LUT) and a function determination object;
a processor configured to determine a function based on the base variables, the function determination object and the LUT, and to determine a dynamic code based on the function and the random object; and
a communication interface configured to communicate the random object and the dynamic code to a processing entity.

### Claim 13 (depends on 12)

The device of claim 12, wherein the device is a powered card.

### Claim 14 (depends on 12)

The device of claim 12, wherein the device is a powered card, and
the dynamic code is one of a dynamic card verification value (CVV) and/or card identification number (CID).

### Claim 15 (depends on 12)

The device of claim 12, wherein the random object is a first three digit number,
the dynamic code is a second three digit number,
the function determination object is a five digit number, and
the processor is configured to determine the function by obtaining three exponents and two operators based on at least one of the LUT and the five digit number, and to combine the base variables, exponents and operators to obtain a polynomial function, and to determine the dynamic code by substituting each digit of the first three digit number for a different one of the base variables in the polynomial function.

### Claim 16 (depends on 12)

The device of claim 12, wherein the communication interface is configured to communicate the random object and the dynamic code to the processing entity via a card reader using at least one of a magnetic stripe communications device, a radio frequency identification (RFID) antenna, an exposed integrated circuit (IC) chip, and an EMV chip.

### Claim 17 (depends on 12)

The device of claim 12, wherein the communication interface is configured to communicate an identifier.

### Claim 18 (depends on 12)

The device of claim 12, wherein the communication interface is configured to communicate at least one of a user identification, an account identification and a card identification.

### Claim 19 (depends on 12)

The device of claim 12, wherein the function is one of about 2700 unique polynomial functions.

### Claim 20

A device, comprising:
a random object generator configured to generate a random object;
a memory configured to store a function;
a processor configured to determine a dynamic code based on the function and the random object; and
a communication interface configured to communicate the random object and the dynamic code to a remote facility.
