When the reader
starts a communication with the tag, the tag sends its current
identifier ID and updates its current identifier to p(ID). The
reader looks up its database to find a tuple that contains
the current identifier of the tag. If the reader finds a tuple,
it authenticates the tag and removes all elements which are
before the current identifier of tag from the tuple in order to
prevent replay attacks. However, this protocol is susceptible
to DoS attacks because the tag must be re-initialized after at
most k authentication sessions.