Contactless proximity automated data collection system and method
First Claim
1. A method for exchanging data in a contactless proximity automated data collection system between a tag and a host computer, the method comprising the steps of:
- transmitting an imawake message from the tag to the host computer;
transmitting a first host message from the host computer to the tag in response to the imawake message, the first host message comprising one of a readpage message and a writepage message;
determining whether the first host message is valid at the tag;
transmitting a second tag message from the tag to the host computer if the first host message is valid, the second tag message comprising one of a sendingpage message if the first host message is a readpage message and an acknowledge message if the first host message is a writepage message; and
transmitting a non-acknowledge message from the tag to the host computer if the first host message is invalid.
0 Assignments
0 Petitions
Accused Products
Abstract
A fast data transfer collection system using message authentication and contactless RF proximity card technology in non-contact storage and retrieval applications. The system is generally comprised of Host computers (application computer systems), Target radio frequency (RF) terminals, and a plurality of portable Tags (“smart” or “proximity” cards). A Host provides specific application functionality to a Tag holder, with a high degree of protection from fraudulent use. A Target provides control of the RF antenna and resolves collisions between multiple Tags in the RF field. A Tag provides reliable, high speed, and well authenticated secure exchanges of data/information with the Host resulting from the use of a custom ASIC design incorporating unique analog and digital circuits, nonvolatile memory, and state logic. Each Tag engages in a transaction with the Target in which a sequence of message exchanges allow data to be read(written) from(to) the Tag. These exchanges establish the RF communication link, resolve communication collisions with other Tags, authenticate both parties in the transaction, rapidly and robustly relay information through the link, and ensure the integrity and incorruptibility of the transaction. The system architecture provides capabilities to ensure the integrity of the data transferred thus eliminating the major problem of corrupting data on the card and in the system. The architecture and protocol are designed to allow simple and efficient integration of the transaction product system into data/information processing installations.
211 Citations
20 Claims
-
1. A method for exchanging data in a contactless proximity automated data collection system between a tag and a host computer, the method comprising the steps of:
-
transmitting an imawake message from the tag to the host computer;
transmitting a first host message from the host computer to the tag in response to the imawake message, the first host message comprising one of a readpage message and a writepage message;
determining whether the first host message is valid at the tag;
transmitting a second tag message from the tag to the host computer if the first host message is valid, the second tag message comprising one of a sendingpage message if the first host message is a readpage message and an acknowledge message if the first host message is a writepage message; and
transmitting a non-acknowledge message from the tag to the host computer if the first host message is invalid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
the readpage message comprises a start of message character, a message identification character, and a page number;
the writepage message comprises a start of message character, a message identification character, a write sequence number, a page number and page content bytes;
the imawake message comprises a start of message character, a message identification character, a tag identification number, a tag random number, and a tag block directory;
the sendingpage message comprises a start of message character, a message identification character, a page number, and page content bytes;
the acknowledge message comprises a start of message character, a message identification character, and a page number; and
the non-acknowledge message comprises a message identification character.
-
-
4. The method of claim 1, wherein:
-
the imawake message, the readpage message, and the writepage message each comprise a message authentication code; and
the step of determining whether the first host message is valid comprises comparing the message authentication code from the imawake message to the message authentication code from the readpage or writepage message and determining that the readpage or writepage message is valid only if the message authentication codes are identical.
-
-
5. The method of claim 4, wherein the message authentication code is a six byte value computed from a plurality of tag data comprising a tag random number and a tag serial number.
-
6. The method of claim 4, wherein
the tag comprises a tag memory divided into a plurality of blocks, wherein each block is further divided into a plurality of pages, the plurality of blocks comprising a tag identifier block and a plurality of application data blocks; each block of the plurality of application data blocks comprises a page of the plurality of pages having a read key buffer and a write key buffer for storing a block read key and a block write key.
-
7. The method of claim 6, wherein
the readpage message further comprises a readpage key; -
the writepage message further comprises a writepage key; and
the step of determining whether the first host message is valid comprises comparing the block read key and the readpage key and determining that the readpage message is valid only if the block read key and the readpage key are identical, or comparing the block write key and the writepage key and determining that the writepage message is valid only if the block write key and the writepage key are identical.
-
-
8. The method of claim 6, wherein the plurality of pages of the tag identifier block comprise a tag identifier page for storing a tag identifier, a tag random number page for storing a tag random number, and temporary data pages for storing the message authentication code, further comprising the step of generating the message authentication code from the tag random number and the tag identifier.
-
9. A method for exchanging data in an automated data collection system between a host computer, a target and a tag of the plurality of tags, the method comprising the steps of:
-
a. performing a collision resolution data exchange between the target and the plurality of tags for choosing a tag of the plurality of tags for communication with the host computer; and
b. exchanging data between the host computer and the tag by means of the target, the target forwarding the data from the host computer to the tag or from the tag to the host computer, comprising the steps of;
transmitting an imawake message from the tag to the host computer, the imawake message comprising a message authentication code for uniquely identifying the tag;
checking at the host computer whether the imawake message is valid utilizing the message authentication code;
transmitting a readpage message from the host computer to the tag to request data if the imawake message is valid, the readpage message comprising the message authentication code;
transmitting the requested data in a sendingpage message from the tag to the host computer in response to the readpage message if the message authentication code of the readpage message is valid, the sendingpage message comprising the message authentication code;
transmitting a writepage message from the host computer to the tag to write new data to the tag if the message authentication code of the sendingpage message is valid, the writepage message comprising the message authentication code;
transmitting an acknowledge message from the tag to the host computer in response to the writepage message if the message authentication code of the writepage message is valid, the acknowledge message comprising the message authentication code;
transmitting a nonacknowledge message from the tag to the host computer in response to the read page or the writepage message if the message authentication code is invalid;
sending an instruction from the host computer to the target to repeat step a. in response to one of an acknowledge message, a nonacknowledge message, and an invalid message authentication code. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
a. transmitting a wakeup message from the target to the plurality of tags;
b. transmitting a ping message from at least one tag of the plurality of tags to the target in response to one of the wakeup message and a ponginvalid message;
c. waiting a specified time period at the target to receive a ping message and determining at the target if the ping message is valid;
d. transmitting the ponginvalid message to the plurality of tags in response to the ping message if the ping message is invalid, and repeating one of step c. if the specified time period is not elapsed and steps a. through d. if the specified time period is elapsed;
e. sending a pongvalid message from the target to the at least one tag in response to the ping message if the ping message is valid; and
f. sending the imawake message from the at least one tag to the target in response to the pongvalid message, the imawake message comprising the message authentication code, wherein the at least one tag is identified as the tag for communication with the host computer.
-
-
13. The method for exchanging data as in claim 12, wherein the ping message comprises a first byte of a random number generated by the tag, and a second byte of the random number XORed with a predetermined hexadecimal number, and wherein the step c. of determining at the target if the ping message is valid comprises determining whether the first byte is equal to the second byte XORed with the pre-determined hexadecimal number.
-
14. The method for exchanging data as in claim 9, wherein the tag comprises:
-
an RF transceiver;
message processing logic; and
non-volatile memory organized in a plurality of blocks comprising a tag identification block and a plurality of application blocks, each application block protected from unauthorized use by a read key and a write key that are unique to the tag, and wherein each block is associated with a specific application type.
-
-
15. The method for exchanging data as in claim 14, wherein the step of transmitting a writepage message from the host computer to the tag further comprises the step of:
writing the new data to a specified application block of the plurality of blocks of the tag upon verification by the message processing logic that the writepage message comprises the write key associated with the specified application block.
-
16. The method for exchanging data as in claim 14, wherein the step of transmitting a readpage message from the host computer to the tag further comprises the step of:
reading the requested data from a specified application block of the plurality of blocks of the tag upon verification by message processing logic that the readpage message comprises the read key associated with the specified application block.
-
17. A method of data exchange between a host computer, a target and a tag, the host computer coupled to the target, the target for transmitting data to and receiving data from the tag, the method comprising the steps of:
-
transmitting a wakeup message from the target to the tag;
transmitting a response message from the tag to the target;
verifying the validity of the response message at the target;
transmitting an acceptance message from the target to the tag if the response message is valid indicating that the tag is cleared to communicate with the host computer;
transmitting an imawake message from the tag to the target in response to the acceptance message, the imawake message comprising a message authentication code that is unique to the tag;
forwarding the imawake message from the target to the host computer;
entering a pass-through communication mode at the target to allow communication between the host and the tag;
verifying at the host computer that the message authentication code of the imawake message is valid according to information stored at the host computer;
sending a readpage message from the host computer to the tag if the message authentication code is valid to request application data from the tag, the readpage message comprising the message authentication code;
verifying that the readpage message is valid at the tag comprising the step of verifying that the message authentication code is the same as the message authentication code of the imawake message; and
sending a data message from the tag to the target, the data message comprising the requested application data and the message authentication code. - View Dependent Claims (18, 19, 20)
sending a writepage message from the host computer to the tag, the writepage message comprising new data, the message authentication code, the write key, and a requested application block;
verifying that the writepage message is valid at the tag comprising the steps of verifying that the message authentication code is the same as the message authentication code of the imawake message, and verifying that the write key of the writepage message is the same as the write key stored on the tag for the requested application block; and
sending an acknowledge message from the tag to the host computer, the acknowledge message comprising the message authentication code;
verifying that the acknowledge message is valid at the host computer comprising the step of verifying that the message authentication code of the acknowledge message is the same as the message authentication code of the writepage message, wherein a valid acknowledge message indicates that the new data was received by the tag.
-
Specification