Method for providing asymmetric identification and access with respect to a radio-frequency tag
11610071 · 2023-03-21
Assignee
Inventors
Cpc classification
G06K7/10366
PHYSICS
G06K7/0008
PHYSICS
International classification
Abstract
A method for providing identification and access with respect to a passive radio-frequency tag in a tag population, including, receiving a command for initiating an inventory round or a command for initiating a tag access, the command including, as a parameter, a number including an identifier of a reader, generating a 16-bit value referred to as first or second binding handle, the first or second binding handle including N juxtaposed bits forming the reader identifier, backscattering the first or second binding handle, receiving an ACK command, analyzing the identification parameter of the ACK command, and in a case where the identification parameter includes the reader identifier then ignoring the ACK command, only tags having the selected inventoried flag value for the session number are inventoried, the first initiating command only including the same inventoried flag for every inventoried tags during a session and wherein the at least other inventoried flag value is never used during the session.
Claims
1. A method for providing asymmetric identification and access with respect to a passive radio-frequency tag in a tag population, the passive tag being configured to receive commands, including commands for acknowledging a tag, an ACK command comprising an identification parameter being a 16-bit number, the tag having: a slot counter holding a value determining a point in an inventory round at which the tag may respond to a reader, a random number generator or a pseudo-random number generator, configured to generate a 16-bit value when the tag starts participating in the inventory round, and configured to generate another 16-bit value when the reader starts accessing the tag, a state that characterizes a behavior of the tag and a response to the commands of the reader, said state being part of a state list including Ready, which is a holding state for a tag not currently participating in the inventory round, Arbitrate, which is holding state for a tag currently participating in the inventory round and whose slot counter holds a nonzero value, and Open or secured, which are states a tag transitions to when a reader starts accessing the tag, said method comprising the following steps, performed by the tag initially in the Ready state: receiving an inventory initiating command to initiate the inventory round, said inventory initiating command comprising, as a parameter, a reader identifier being a N-bit number, N being an integer in a range (1, 15), generating, with the random number generator or the pseudo-random number generator, a 16-bit value being a first binding handle, said first binding handle comprising N juxtaposed bits forming the reader identifier, backscattering the first binding handle, said first binding handle being received by the reader, receiving an access initiating command to initiate a tag access, said access initiating command having the first binding handle as a parameter, generating, with the random number generator or the pseudo-random number generator, a 16-bit value being a second binding handle, said second binding handle comprising N juxtaposed bits forming the reader identifier, said reader identifier being located within the second binding handle at a location similar to a location of the reader identifier within the first binding handle, backscattering the second binding handle, said second binding handle being received by the reader, transitioning to the Open or Secured state, receiving an ACK command, comparing the reader identifier with a code formed by N bits of the identification parameter of said ACK command that are positioned at a location similar to the location of the reader identifier within the first or second binding handle, and when said code and said reader identifier differ, ignoring said ACK command, the tag having an inventoried flag for each session a reader may use to identify the tag within the inventory round, said inventoried flag having a value indicating whether the tag may respond to the reader, the inventoried flag comprising at least two possible values, A or B, the first initiating command including a session number as a parameter, and one selected inventoried flag value of the at least two possible values, the method further comprising the following step, performed after receiving the inventory initiating command: setting the inventoried flag to the selected value for the session specified in the inventory initiating command, wherein only tags having the selected inventoried flag value for the session number are inventoried, the first initiating command only including a same inventoried flag for every inventoried tag during a session, and wherein the at least other inventoried flag value is never used during the session.
2. The method according to claim 1, wherein when said code and said reader identifier match, comparing other bits of the parameter with other bits of the second binding handle, and when said bits match, responding to the ACK command.
3. The method according to claim 1, wherein the state list comprises Reply, which is a state a tag currently participating in the inventory round transitions to when the value in its slot counter becomes zero, the random number generator or pseudo-random number generator being arranged to generate a Q-bit value when the tag starts participating in the inventory round, Q being an integer in the range, the inventory initiating command comprising Q as a slot-count parameter, the method further comprising the following step, performed after receiving the inventory initiating command: generating, with the random number generator or the pseudo-random number generator, a Q-bit value and loading the Q-bit value into the slot counter, and transitioning to the Arbitrate state if said Q-bit value is nonzero, or to the Reply state otherwise.
4. The method according to claim 3, wherein the first binding handle and the second binding handle comprise Q juxtaposed bits different from the N juxtaposed bits, said Q juxtaposed bits forming the Q-bit value, the Q-bit value being positioned within the first binding handle at a location similar to a location of the Q-bit value within the second binding handle.
5. The method according to claim 3, wherein Q is in a range 0 to 5.
6. The method according to claim 4, wherein 16-N-Q bits left in the first and second binding handles are generated randomly by the random number generator or the pseudo-random number generator.
7. The method according to claim 1, wherein the selected inventoried flag is always A for each session.
8. The method according to claim 1, wherein the reader identifier is a 5-bit number, and N=5.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention will be described subsequently with reference to the attached drawings, given by way of example, but in no way limited thereto, in which:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION OF THE INVENTION
(7) The method according to the invention is supposed to be carried out by a radio-frequency passive tag. Said tag comprises means to carry out the Gen2V2 protocol, so it has, as it has been explained before in more details: a memory in which an EPC code and an access password are stored four inventoried flags, one for each session S1, S2, S3, S4 the reader may use to identify the tag within an inventory round. Each inventoried flag has either value A or value B, said value indicating whether the tag may respond to the reader. a slot counter holding a value determining the point, in an inventory round initiated by the reader, at which the tag may respond. a random number generator or pseudo-random number generator, arranged to generate: a 16-bit value referred to as RN16, when it starts participating in an inventory round, that is to say in response to a Query, QueryRep or QueryAdjust command with appropriate parameters a Q-bit value, Q being an integer in the range (0, 15), when it starts participating in an inventory round, that is to say in response to a Query, QueryRep or QueryAdjust with appropriate parameters a 16-bit value referred to as handle, when it starts participating in an access operation, that is to say in response to a Req_RN command having the RN16 as a parameter.
(8) As defined in the Gen2V2 protocol, the tag's behavior and response to a reader's command is defined by its state, which are, among others: Ready, which is a holding state for a tag not currently participating in an inventory round Arbitrate, which is holding state for a tag participating in an inventory round and whose slot counter holds a nonzero value Reply, which is a state a tag in the Arbitrate state transitions to when the value in its slot counter reaches zero Acknowledged, which is a state a tag in the Reply state transitions to when it receives an ACK command whose identification parameter is identical to its RN16 Open or Secured, which are states a tag in the Acknowledged state transitions to when it receives an Req_RN command whose parameter is identical to its RN16.
(9) According to the invention, an additional command is added to the set of commands defined in the Gen2V2 protocol. This command, referred to as inventory initiating command, provides similar functionality to the command sequence Select/Query. The inventory initiating command has the following parameters: a session number Sx (S1, S2, S3 or S4) only one inventoried flag value IFVx for a single session (preferably A), so that only tags having the selected inventoried flag value for the session number are inventoried, the other inventoried flag (B) value is never used during the session a slot-count parameter Q, Q being an integer in the range (0, 15) an identifier RD of the reader that issues the inventory initiating command, in the form of a N-bit value, N being an integer in the range (1, 15).
(10) Upon receipt of an inventory initiating command while in the Ready state, the tag shall: set its inventoried flag (A) for the session Sx instructed in the inventory initiating command, to the value IFVx specified in the inventory initiating command, generate, by means of the random number generator or pseudo-random number generator, a Q-bit value and loading it into the slot counter transition to the Arbitrate state if said Q-bit value is nonzero, or to the Reply state otherwise generate, by means of the random number generator or pseudo-random number generator, a 16-bit value referred to as first binding handle, said first binding handle comprising N juxtaposed bits forming the reader identifier RD specified in the inventory initiating command, Q juxtaposed bits forming the Q-bit value, and 16-N-Q random bits. Preferably, N=5 and Q is in the range 0 to 5. In the described embodiment, the binding handle has the following structure: the 4 most significant bits represent the reader identifier, the 4 least significant bits represent the Q-bit value, and the 8 middle bits are a random value. In another embodiment, the first binding handle comprises N juxtaposed bits, preferably 4 or 5, forming the reader identifier RD specified in the inventory initiating command, and 16-N random bits. In this other embodiment, the binding handle has preferably the following structure: the 4 or 5 most significant bits represent the reader identifier, and the 12 or 11 least important bits are a random value. backscatter the first binding handle.
(11) A tag that has previously received a first initial command within a same inventory and access sequence shall, upon receipt of a Req_RN command while in the Acknowledged state, in a case where said Req_RN has the tag's first binding handle as a parameter: transition to the Open or Secured state, the choice of ending state depending on the Tag's access password (in the access password is zero, then the tag shall transition to the Secured state; if the access password is nonzero, then the tag shall transition to the Open state) generate, by means of the random number generator or pseudo-random number generator, a 16-bit value referred to as second binding handle, said second binding handle having the same structure as the first binding handle: for instance the 4 most significant bits represent the reader identifier, the 4 least significant bits represent the Q-bit value, and the 8 middle bits are a random value. backscatter the second binding handle.
(12) By way of example only,
(13)
(14) In a step 1, Reader E generates an RF field. As a result, Tags 1, 2 and 3, which are in the read zone for Reader E, enter the Ready state. At this stage, for each of these Tags, the slot counter does not contain any value, no first or second binding handle has been generated yet, the session to be used with Reader E has not been defined yet, and the inventoried flag value is not applicable since the session is undefined.
(15) In a step 2, Reader E issues a first initiation command having as parameters: the session number S2 the only one inventoried flag value (preferably A) 8 as a slot-count parameter Q the reader identifier C (in hexadecimal, that is to say 1100 in the binary system).
(16) As a result, Tags 1, 2 and 3 set their inventoried flag value for session S2 to A. In addition, Tags 1, 2 and 3 generate a 8-bit number and a 16-bit number (first binding handle) using their random number generator or pseudo-random number generator. In the described embodiment, the binding handles have the following structure: the 4 most significant bits represent the reader identifier, the 4 least significant bits represent the Q-bit value, and the 8 middle bits are a random value. In the illustrated example, the 8-bit number and the first binding handle generated by Tag 1 are 1 and C661; the 8-bit number and the first binding handle generated by Tag 2 are 2 and C772; and the 8-bit number and the first binding handle generated by Tag 3 are 3 and C883. Moreover, Tag 1, 2 and 3 enter the Arbitrate state. Besides that, the communication slot is set to zero.
(17) In a step 3, Reader E waits for time T1 and does not receive any reply, since none of Tags 1, 2 or 3 has zero as a value in their slot counter.
(18) In a step 4, Reader E issues a QueryRep command, said command comprising the session number of the previous Query command, that is to say S2. As a result, Tags 1, 2 and 3, whose slot counters hold nonzero values, decrement their slot counter. Moreover, since the value in Tag 1's slot counter turns zero, Tag 1 transitions to the Reply state. The communication slot is increased to one.
(19) In a step 5, Tag 1 backscatters its first binding handle, said first binding handle being received by Reader E.
(20) In a step 6, Reader E acknowledges Tag 1 by echoing the first binding handle within an ACK command. As a result, Tag 1 transitions to the Acknowledged state.
(21) In a step 7, Tag 1 sends its EPC code, said EPC code being received by Reader E.
(22) In a step 8, Reader E sends a Req_RN command comprising Tag 1's first binding handle, which makes Tag 1 transition to the Open or Secured state, depending on Tag 1's access password.
(23) In a step 9, Tag 1 generates, stores and backscatters a new 16-bit random or pseudo-random number, the second binding handle, said second binding handle being received by Reader E. In the described example, the second binding handle generated by Tag 1 is CDD1.
(24) In a step 10, Reader E sends an Authenticate command comprising Tag 1's second binding handle. As a result, Tag 1 transitions to the Open state.
(25) In a step 11, Tag 1 backscatters a Crypto response, said Crypto response being received by Reader E.
(26) In a step 12, Reader E issues a QueryRep command so as to identify other Tags. Said command comprises the session number of the previous Query command, that is to say S2. As a result, Tag 1 inverts its inventoried flag (A.fwdarw.B) and transitions to the Ready state. Besides that, the other Tags having the inventoried flag value A for session S2 and whose slot counter holds a nonzero value, that is to say Tags 2 and 3, decrement their slot counter. Since the value in Tag 2's slot counter turns zero, Tag 2 transitions to the Reply state. The communication slot is increased to two.
(27) In a step 13, Tag 2 backscatters its first binding handle, said first binding handle being received by Reader E.
(28) In a step 14, Reader E acknowledges Tag 2 by echoing the first binding handle within an ACK command. As a result, Tag 2 transitions to the Acknowledged state.
(29) In a step 15, Tag 2 sends its EPC code, said EPC code being received by Reader E.
(30) In a step 16, Reader E sends a Req_RN command comprising Tag 2's first binding handle, which makes Tag 2 transition to the Open or Secured state, depending on Tag 2's access password.
(31) In a step 17, Tag 2 generates, stores and backscatters a new 16-bit random or pseudo-random number, the second binding handle, said second binding handle being received by Reader E. In the described example, the second binding handle generated by Tag 2 is CEE2.
(32) In a step 18, Reader E sends an Authenticate command comprising Tag 2's second binding handle. As a result, Tag 2 transitions to the Open state.
(33) In a step 19, Tag 2 backscatters a crypto response, said crypto response being received by Reader E.
(34) In a step 20, Reader E issues a QueryRep command so as to identify other Tags. Said command comprises the session number of the previous Query command, that is to say S2. As a result, Tag 2 inverts its inventoried flag (A.fwdarw.B) and transitions to the Ready state. Besides that, all Tags with inventoried flag value A for session S2 and whose slot counter holds a nonzero value, that is to say Tag 3 only, decrement their slot counter. Since the value in Tag 3's slot counter turns zero, Tag 3 transitions to the Reply state. The communication slot is increased to three.
(35) In a step 21, Tag 3 backscatters its first binding handle, said first binding handle being received by Reader E.
(36) In a step 22, Reader E acknowledges Tag 3 by echoing its first binding handle within an ACK command. As a result, Tag 3 transitions to the Acknowledged state.
(37) In a step 23, Tag 3 sends its EPC code, said EPC code being received by Reader E.
(38) In a step 24, Reader E sends a Req_RN command comprising Tag 3's first binding handle, which makes Tag 3 transition to the Open or Secured state, depending on Tag 3's access password.
(39) In a step 25, Tag 3 generates, stores and backscatters a new 16-bit random or pseudo-random number, the second binding handle, said second binding handle being received by Reader E. In the described example, the handle generated by Tag 3 is CFF3.
(40) In a step 26, Reader E sends an Authenticate command comprising Tag 3's handle. As a result, Tag 3 transitions to the Open state.
(41) In a step 27, Tag 3 backscatters a Crypto response, said Crypto response being received by Reader E.
(42) In a step 28, Reader E issues a QueryRep command so as to identify other Tags. Said command comprises the session number of the previous Query command, that is to say S2. As a result, Tag 3 inverts its inventoried flag (A.fwdarw.B) and transitions to the Ready state. Nothing else happens since there are no more tags in Reader E's read zone that have A as an inventoried flag value for session S2. The communication slot is increased to four.
(43) In a step 29, Reader E waits for time T1 and does not receive any reply to the previous QueryRep command.
(44) In a step 30, Reader E issues another QueryRep comprising the session number of the previous Query command, that is to say S2. Nothing happens since there are no more tags in Reader E's read zone that have A as an inventoried flag value for session S2. The communication slot is increased to five.
(45) In a step 31, Reader E waits for time T1 and does not receive any reply to the previous QueryRep command.
(46) In a step 32, Reader E issues another QueryRep comprising the session number of the previous Query command, that is to say S2. Nothing happens since there are no more tags in Reader E's read zone that have A as an inventoried flag value for session S2. The communication slot is increased to six.
(47) In a step 33, Reader E waits for time T1 and does not receive any reply to the previous QueryRep command.
(48) In a step 34, Reader E issues another QueryRep comprising the session number of the previous Query command, that is to say S2. Nothing happens since there are no more tags in Reader E's read zone that have A as an inventoried flag value for session S2. The communication slot is increased to seven.
(49) In a step 35, Reader E waits for time T1 and does not receive any reply to the previous QueryRep command. Since the slot-count parameter is 8 and the communication slot has reached 7, the inventory round is ended after this last unsuccessful attempt to identify other Tags.
(50) As already mentioned, Tag 3 is in the read zone for both Reader E and Reader G, which implies that Tag 3 may receive, at any time of an identification and access sequence according to the invention, an ACK command issued by Reader G and intended for another tag, let us say Tag 4. Thus, according to the invention, Tag 3 analyzes the bits of the identification parameter of the ACK command where Tag 3's identifier is supposed to be positioned (in the preferred embodiment, the 4 most significant bits of said identification parameter), so as to determine which reader has issued said command. Of course, Reader G may use with Tag 4 an identification and access sequence according to the invention (that is to say a sequence comprising a inventory initiating command), or a classic inventory and access sequence according to the Gen2V2 protocol (that is to say a sequence comprising a Select and a Query command). In the first case, the identification parameter included in the ACK command is Tag 4's first or second binding handle, said first or second binding handle comprising Tag 4's identifier. Thus, the bits of the identification parameter of the ACK command where Tag 3's identifier is supposed to be positioned form Tag 4's identifier instead, and Tag 3 concludes the ACK command is invalid. In the second case, the identification parameter included in the ACK command is a 16-bit random number, either Tag 4's RN16 or Tag 4's handle. Thus, the bits of the identification parameter of the ACK command where Tag 3's identifier is supposed to be do not form any reader identifier and Tag 3 concludes the ACK command is invalid.
(51) When Tag 3, performing with Reader E an identification and access sequence according to the invention, receives an ACK command issued by Reader G: if Tag 3's state is not Open or Secured, then Tag 3 ignores ACK command from Reader G (as defined by the Gen2V2 protocol) if Tag 3's state is Open or Secured, the identification parameter do have the correct reader identifier, but the identification parameter differs from Tag 3's second binding handle, then Tag 3 will transition to Arbitrate and stop communication with Reader E (as defined by the Gen2V2 protocol) if Tag 3's state is Open or Secured, the identification parameter do have the correct reader identifier, and the identification parameter is equal to Tag 3's second binding handle, then Tag 3 responds to the ACK command and may no longer be in sync with Reader E (as defined by the Gen2V2 protocol) but if Tag 3's state is Open or Secured and if the identification parameter do not have the correct reader identifier, then Tag 3 ignores ACK command from Reader G, which was on other objective of the present invention.
(52) It should be noted that Tag 3 may receive other kinds of commands from Reader G: if Tag 3 receives an inventory initiation command from Reader G, Tag 3 shall switch from Reader E to Reader G and may be subsequently inventoried and accessed by Reader G if Tag 3 receives a Req_RN command from Reader G, then if Tag 3's state is Ready, Arbitrate, or Reply, or if the 16-bit number comprised in said command does not match the expected value, then Tag 3 shall ignore the Req_RN command. Otherwise, if the 16-bit value matches the expected value (which is highly unlikely, though), then Tag3 shall respond to the Req_RN and may no longer be in sync with Reader E. if Tag 3 receives an Authenticate command from Reader G, then if Tag 3's state is Ready, Arbitrate, Reply or Acknowledged, or if the 16-bit value comprised in said command does not match the expected binding handle value, then Tag 3 shall ignore said command. Otherwise, if the 16-bit value matches the expected value (which is highly unlikely), then Tag 3 shall respond to the Authenticate command and may no longer be in sync with Reader E. if Tag 3 receives a Select command from Reader G, Tag 3 shall switch from Reader E to Reader G and may be subsequently inventoried and accessed by Reader G if Tag 3 receives a Query command from Reader G, Tag 3 shall switch from Reader E to Reader G and may be subsequently inventoried and accessed by Reader G. if Tag 3 receives a QueryRep or a QueryAdjust command from Reader G, Tag 3 shall ignore said command as Tag 3's session is different from the session that is mentioned in said command.
(53) Although the exemplary embodiments have been described in detail with particular reference to certain aspects thereof, it should be understood that the invention is capable of other embodiments and its details are capable of modifications in various obvious respects. As is readily apparent to those skilled in the art, variations and modifications can be effected while remaining within spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and FIGURES are for illustrative purposes only and do not in any way limit the invention, which is defined by the claims.