IP Library Granted Patent US 7,823,768
Granted Patent B2
US 7,823,768 · App. 11/619,747 · Granted Nov 2, 2010

System and method of code generation and authentication

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 7,823,768
App. No.
11/619,747
Granted
Nov 2, 2010
Kind
B2
Abstract

Systems and methods of code generation and authentication are disclosed here. One embodiment includes receiving a request for a batch of codes, each code being unique for a separate unit item, generating a batch of codes, each code being unique for a separate unit item, wherein a subsection of the code comprises a check value, and encrypting the code. In response to receiving a request to authenticate a code, decrypting the code to access a subsection of the code comprising a check value, comparing the check value to a value to authenticate the code. In one embodiment, the encrypting further comprises encrypting the code with a key, and including a key identifier as a subsection of the encrypted code; and decrypting the code further comprises using the key identifier included in the encrypted code to access the key to decrypt the code. Further more, in one embodiment, the batch of codes are provided to be marked on a plurality of products as at least one of a numeric representation, an alphanumeric representation, or a graphic symbol.

Claims (42)

1. A method comprising:

receiving a request for a batch of codes, each code being unique for a separate unit item; and

generating the batch of codes, using a processor, each code being unique for a separate unit item, wherein the generation of each code of the batch comprises

generating a unique item number for the code being generated,

generating a first string by appending a batch number and a check value to the unique item number,

generating a second string including a key ID, the key ID being associated with an encryption key,

generating an obscured string by obscuring the second string,

generating an encrypted string by encrypting the first string using the encryption key, and

generating the code by appending the obscured string to the encrypted string.

2. The method of claim 1 wherein generating the unique item number comprises incrementing a stored value representing a number of codes generated.

3. The method of claim 1 wherein generating the unique item number comprises determining the unique item number by adding an increment to a previously generated unique item number.

4. The method of claim 1 wherein obscuring the second string includes computing a hash of the encrypted string.

5. The method of claim 1 wherein generating the first string further includes appending an alternative value to the batch number, check value, and unique item number.

6. The method of claim 1 wherein the generation of each code of the batch further comprises converting the encrypted string into an alphanumeric representation.

7. The method of claim 1 further comprising

receiving a code from the batch of codes,

extracting the check value from the code, and

comparing the check value to an expected check value.

8. The method of claim 7 wherein extracting the check value and comparing the check value to the expected check value comprises

using a first encryption key to decrypt the encrypted string to extract a wrong check value,

determining that the wrong check value does not match the expected check value, and

using a second encryption key to decrypt the encrypted string to extract the check value.

9. The method of claim 7 wherein extracting the check value comprises

extracting a key ID from the code,

recovering the first string by decrypting the encrypted string using the key ID, and

reading the check value from the first string.

10. The method of claim 9 wherein extracting the key ID from the code includes

reading the obscured string from the code, and

deobscuring the obscured string.

11. The method of claim 7 further comprising converting an alphanumeric representation of the code into a binary representation thereof.

12. A method comprising:

receiving a code from a consumer device;

reading an obscured string from the code;

deobscuring the obscured string to reveal a first string including a key ID;

using the key ID to select a decryption key;

decrypting, using the decryption key, at least a portion of the code, with a processor, to reveal a second string including a check value, a unique item number, and a batch number appended together;

reading the check value from the second string; and

authenticating the code by verifying that the check value matches an expected check value.

13. The method of claim 12 further comprising sending an indication of authentication to the consumer device.

14. The method of claim 12 further comprising sending product information to the consumer device.

15. The method of claim 12 further comprising sending client information to the consumer device.

16. The method of claim 12 further comprising receiving location information from the consumer device.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2015
From: YOTTAMARK, INC.
To: TRIMBLE NAVIGATION LIMITED
Reel/Frame 035715/0239 →
CHANGE OF NAME Recorded Mar 3, 2008
From: INFINITY CODING SOLUTIONS, INC.
To: YOTTAMARK, INC.
Reel/Frame 020592/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2007
From: SELF, MATTHEW; GRANT, ELLIOT
To: INFINITY CODING SOLUTIONS, INC.
Reel/Frame 018710/0525 →