IP Library Granted Patent US 8,555,065
Granted Patent B2
US 8,555,065 · App. 13/216,433 · Granted Oct 8, 2013

Method and apparatus for transmitting, receiving and decoding data using encoded patterns of changing colors

Inventor: Jeffrey Thomas Cesnik (Winchester, VA)
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 8,555,065
App. No.
13/216,433
Granted
Oct 8, 2013
Kind
B2
Abstract

A system and method for encoding, transmitting and decoding data is described which defines a plurality of bit patterns into a predetermined color combination of red/green/blue colors. A message is formed from the plurality of bit patterns and the message is then arranged into a recognizable format with a message protocol. The message is transmitted to a decoder, which decodes the message and displays the message on a display. A use is provided to establish a two factor authentication mechanism to authenticate a user by a requester.

Claims (64)

1. A method of encoding, transmitting and decoding data by a processor comprising the steps of:

a. defining a plurality of bit patterns, each said bit pattern corresponding to a predetermined color combination of red, green and blue channels;

b. encoding a message from said plurality of bit patterns;

c. arranging said message into a recognizable format with a message protocol;

d. transmitting said message as a sequence of flashing colors to a decoder;

e. decoding said message by said decoder; and

f. displaying said message on a display.

2. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said encoding step comprises the steps of defining a set of variables including:

a. letting M represent said message to be transmitted and received, defined by an n-bit sequence M=(b 1 , b 2 , . . . , b n );

b. letting C be a set of k colors reserved for data encoding, defined as C=(c 1 , c 2 , . . . , c k ), with each c i defined as an RGB tuple (r i , g i , b i ) and where k is a power of two;

c. letting c b be a color BLACK, which may appear in C;

d. letting c w be a reserved color WHITE, not appearing in C;

e. letting c r be an optional reserved color indicating a sequence of two repeating colors, also not appearing in C;

f. letting d=log 2 (k) be the number of data bits represented per color;

g. letting r be the number of data encoding colors per frame, where a frame is an (r+2) block of sequential colors transmitted in group succession;

h. letting f: [0, k−1]→C be a function defined by f(i)=c i+1 , to be used to encode any d-bit value as a color;

i. letting f−1: C→[0, k−1] be a function defined by f−1(c i )=i−1, which is the inverse of f and is used to decode colors to d-bit values;

j. letting j=n/d, which will be the length of the color sequence to encode M;

k. performing the encoding steps of:

l. padding M so its length is the next multiple of (d*r) to ensure that M's encoding ends on an exact frame boundary;

m. dividing M into j sequential and distinct d-bit subsequences (M 1 , M 2 , . . . , M j ) such that M=M 1 M 2 . . . M j ;

n. encoding the subsequences using f into a color sequence E=(e 1 , e 2 , . . . , e j ) where e i =f(M i ); and

o. inserting the subsequence (c w , c b ) every r-th color in E, starting at M 1 ; whereby the subsequence (c w , c b ) serves as a frame delimiter within the protocol as well as max/min calibration values used for value normalization and color detection.

3. A method of encoding, transmitting and decoding data by a processor according to claim 2 wherein an optional step after step n. includes replacing each repeating pair of colors (e i , e i+1 ) where e i =e i+1 with (e i , c r ) whereby repeating colors are encoded with a color transition which is more likely to be detected and decoded properly.

4. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said decoding step comprises the steps of defining a set of variables including:

a. letting M represent said message to be transmitted and received, defined by an n-bit sequence M=(b 1 , b 2 , . . . , b n );

b. letting C be a set of k colors reserved for data encoding, defined as C=(c 1 , c 2 , . . . , c k ), with each c i defined as an RGB tuple (r i , g i , b i ) and where k is a power of two;

c. letting c b be a color BLACK, which may appear in C;

d. letting c w be a reserved color WHITE, not appearing in C;

e. letting c r be an optional reserved color indicating a sequence of two repeating colors, also not appearing in C;

f. letting d=log 2 (k), the number of data bits represented per color;

g. letting r be the number of data encoding colors per frame, where a frame is an (r+2) block of sequential colors transmitted in group succession;

h. letting f: [0, k−1]→C be a function defined by f(i)=c i+1 , to used to encode any d-bit value as a color;

i. letting f −1 : C→[0, k−1] be a function defined by f −1 (c i )=i, which is the inverse of f and is used to decode colors to d-bit values;

j. letting j=n/d, which will be the length of the color sequence to encode M;

k. performing the decoding steps of:

l. dividing S into subsequences, (S 1 , S 2 , . . . , S n ) bounded by local maxima corresponding to c w and of length equal to the number of colors per frame (r), plus the framing delimiters (c w , c b );

m. calibrating and transforming all values within each frame S i , use the local maxima's and minima's r, g, b values corresponding to the transmitted (c w , c b ) values to yielding the original transmitted sequence E;

n. restoring the original M i subsequences of M by applying f −1 to each element of E: (f −1 (e l ), f −1 (e 2 ) . . . , f −1 (e j ))=(f −1 (f(M 1 )), f −1 (f(M 2 )), . . . , f −1 (f(M j ))=(M 1 , M 2 , . . . , M j ); and

o. concatenating each M i to obtain M:

M=M 1 M 2 . . . M j .

5. A method of encoding, transmitting and decoding data by a processor according to claim 4 wherein an optional step after step m. includes restoring duplicate symbols by replacing each e i =c r in E with its predecessor e i −1.

6. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said defining step includes representing a binary number that corresponds to said predetermined color combination of red, green and blue channels.

7. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said defining step includes representing character data that corresponds to said predetermined color combination of red, green and blue channels.

8. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said transmitting step is performed at a bit rate in the range of approximately 30 to 300 bits per second.

9. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said transmitting step of said encoded data is performed by a transmitter selected from the group consisting essentially of a computer screen, a television and a projection system.

10. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein said decoding step is performed by a decoder selected from the group consisting essentially of an RGB color sensor, a cell phone with video capability and a video capable smart device.

11. A method of encoding, transmitting and decoding data by a processor according to claim 1 wherein the arranging protocol step includes a calibration protocol providing a full-intensity combination of red, green and blue color channels at predetermined sequences during the transmission.

12. A two factor authentication method comprising the steps of:

a. Entering a user name to a requester by a user wishing to be authenticated;

b. Looking up a cryptographic key by requester, said key corresponding to a user's implementing device,

c. encoding a challenge as changing colors that only the user's device can successfully decode;

d. presenting the encoded challenge to the user as a sequence of flashing colors on a display screen;

e. holding the implementing device up to the display screen by the user;

f. decoding the challenge by the implementing device;

g. decrypting the challenge by the implementing device;

h. submitting the password and successfully decoded and decrypted challenge by the user to the requester;

i. determining whether or not the challenge corresponds to the encoded challenge by the requester and therefore whether or not the identity and validity of the user corresponds to a stored record.

13. A two factor authentication method according to claim 12 wherein said encoding step comprises encoding a challenge phrase as changing colors that only the user's implementing device can successfully decode.

14. A two factor authentication method according to claim 12 wherein said encoding step comprises encoding a challenge that includes a set of characters as changing colors that only the user's implementing device can successfully decode.

15. A two factor authentication system comprising:

a. a transmitter configured to display a plurality of bit patterns as a sequence of flashing colors in a predetermined color combination of red, green and blue channels;

b. an implementing device having a microprocessor and a display; and

c. said microprocessor configured to decode and decrypt said plurality of bit patterns displayed by said transmitter into a challenge; whereby said challenge is displayed on said display of said implementing device, to provide a security system that allows a user to respond to said transmitter with a decoded and decrypted challenge to pass a two factor authentication test.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: CESNIK, JEFFREY T
To: CLUTCH AUTHENTICATION SYSTEMS, LLC
Reel/Frame 031990/0193 →
Continuity (1)
Related Publication 20130051553A1 · Feb 28, 2013