Set-up Phase
In order to protect the secret function A(x,u) and B(x,u), we need to introduce
several variables in the system, su,
,
,λ. The tag-specified secret variables
su,
,
are established at the time when the RFID tag was manufactured, while
λ were randomly chosen at each transmit session. In order to reduce the
computational cost on the tag side, points parameter, including αu,βu,1,βu,0,
were pre-computed and pre-loaded in the code at tag-creation time. Therefore, it
is necessary to have a data structure to maintain such list of points and provide
efficient look-up.
Thus, each smart tag is preloaded with a secret identifier, u, and two polynomial functions:
| Au′(x) | = su ⋅ A(x,u) -![]() | ||
= su ⋅ Au,1 ⋅x + su ⋅ Au,0 -![]() | |||
| Bu′(x) | = su ⋅ B(x,u) -![]() | ||
= su ⋅ Bu,1 ⋅x + su ⋅ Bu,0 -![]() | |||
| αu | = α × su | ||
| βu,1 | = α ⋅λ⋅ ( ⋅ c1 + ⋅ d1) | ||
| βu,0 | = α ⋅λ⋅ ( ⋅ c0 + ⋅ d0) | ||
Communication Phase
The reader initiates the communication by sending a random session
nonce, γ0 to the tag. After receiving data from reader, the tag responses a
random session nonce of its own, called γ1, and hash the concatenations of
these two random session. That is, γ2 = H(γ1|γ0). Following by that, the
user computes its secret function given γ2. Last, the tag sends back a
packet of data < γ1,λ ⋅ Au′(γ2),λ ⋅ Bu′(γ2),αu ⋅ λ,βu,1,βu,0 > to reader
side.
Authentication Phase
With the carefully selected coefficients, the authentication process could be
achieved by checking the following equality, as shown in the next figure
26:
Resistance against Tag Compromise Attack
In order to obfuscate the coefficients in the secret functions A(x,u) and B(x,u),
we use three tag-based parameters, su,
,
. Similarly, the attack could retrieve
4 pieces of information for each tag. However, this scheme can successfully defend
against k-tag compromise attack, and following equations will tell you
why.
| Tag 1 | ![]() | ||
| … | |||
| Tag k | ![]() |
(4k+8) unknowns.
Since there is no other way to solve a linear system where the number of
unknown variables is grater than the number of equation. Therefore, the system
is secure.
| Session 1 | ![]() | ||
| … | |||
| Session k | ![]() |
(k+4) unknowns, since u,su,
,
live through the tag
lifetime. Security wise, this system is vulnerable against eavesdropping
attack.