5.1. Scheme Description
As shown in
Figure 5, the server stores the current pseudo identifier SID and secret key x of a tag in an index data table. The current pseudo identifier is used as an index in the table. The previous index SID
old and secret key x
old of the tag are also recorded in the table to prevent desynchronization attacks. Similarly, the current pseudo identifier SRID and secret key y of a reader are stored in another index data table and so are the previous ones, as demonstrated in
Figure 6. Our proposed scheme includes an initial phase and an authentication phase.
5.1.1. Initial Phase
- Step 1:
For each legitimate tag, the administrator assigns a pseudo identifier SID and a secret key x. The administrator then sets SID = SID and x = x in the tags’ index data table while SIDold and xold are both set to 0.
- Step 2:
For each legitimate reader, the administrator assigns a pseudo identifier SRID and a secret key y. The administrator then sets SRID = SRID and y = y in the readers’ index data table while SRIDold and yold are both set to 0.
5.1.2. Authentication Phase
The authentication phase of our proposed scheme is presented in
Figure 7. This phase consists of the following steps:
- Step 1:
Reader→Server: M1 = {NR}
The reader generates a random number NR and sends it to the server.
- Step 2:
Server→Reader: M2 = {NS}
After receiving M1, the server generates a random number NT and sends it to the reader.
- Step 3:
Reader→Tag: M3 = {NS}
Upon receipt of M2, the reader forwards NS to the tag.
- Step 4:
Tag→Reader: M4 = {SID, MT1, NT}
Once M3 is received, the tag generates a random number NT, computes MT1 = PRNG(y⨁NS⨁NT), and sends {SID, MT1, NT} to the reader.
- Step 5:
Reader→Server: M5 = {SRID, MR1, SID, MT1, NT}
After M4 arrives, the reader computes MR1 = PRNG(y⨁NS⨁NR) and composes a reply {SRID, MR1, SID, MT1, NT} to the server.
- Step 6:
Server→Reader: M6 = {MR2, MT2}
Upon receiving M5, the server searches for the received SRID in the readers’ index data table. If found, the server reads the corresponding y to check whether PRNG(y⨁NS⨁NR) = MR1. If so, the reader is valid. Then, the server searches for the received SID in the tags’ index data table. If found, the server reads the corresponding x to check whether PRNG(x⨁NS⨁NT) = MT1. If so, the tag is valid.
After confirming the validity of both the reader and tag, the server computes MR2 = PRNG((y + 1)⨁NS⨁NR), SRIDnew = PRNG(SRID⨁y⨁NS⨁NR), ynew = PRNG((y + 2)⨁NS⨁NR), MT2 = PRNG((x + 1)⨁NS⨁NT), SIDnew = PRNG(SID⨁x⨁NS⨁NT), and xnew = PRNG((x + 2)⨁NS⨁NT). Then, the server updates the readers’ index data table. If SRID is found in the new index field, the server lets SRIDold←SRID, yold←y, SRID←SRIDnew, y←ynew. Otherwise, the server just lets SRID←SRIDnew, y←ynew. Similarly, the server updates the tags’ index data table. If SID is found in the new index field, the server lets SIDold←SID, xold←x, SID←SIDnew, x←xnew. Otherwise, the server just lets SID←SIDnew, x←xnew. Once the updating is finished, the server sends {MR2, MT2} to the reader.
- Step 7:
Reader→Tag: M7 = {MT2}
After M6 is received, the reader checks whether PRNG((y + 1)⨁NS⨁NR) = MR2. If so, the server is valid and has updated the readers’ index data table. Since the server sends out MR2 only when the tag is legitimate, the reader authenticates the tag implicitly via MR2. Then, the reader computes SRIDnew = PRNG(SRID⨁y⨁NS⨁NR), ynew = PRNG((y + 2)⨁NS⨁NR), and updates SRID←SRIDnew, y←ynew. After that, the reader sends MT2 to the tag.
- Step 8:
Validation at the tag.
Once M7 arrives, the tag checks whether PRNG((x + 1)⨁NS⨁NT) = MT2. If so, the server is valid and has updated the tags’ index data table. The tag also implicitly authenticates the reader since the tag will not receive a valid MT2 unless the server has authenticated the reader. Then, the tag computes SIDnew = PRNG(SID⨁x⨁NS⨁NT), xnew = PRNG((x + 2)⨁NS⨁NT) and updates SID←SIDnew, x←xnew.
5.2. Security Analysis
Lemma 1. In the proposed scheme, the secret keys cannot be exposed without calling the Reveal oracle.
Proof. In the scheme, the transferred parameters related to the tag secret key x include M
T1 and M
T2, which are generated by M
T1 = PRNG(x⨁N
S⨁N
T) and M
T2 = PRNG((x+1)⨁N
S⨁N
T), respectively. An adversary cannot obtain x from M
T1 or M
T2 because PRNG() is regarded as an irreversible operation [
14]. On the other hand, the transferred parameters related to the reader secret key y include M
R1 and M
R2, which are generated by M
R1 = PRNG(y⨁N
S⨁N
R) and M
R2 = PRNG((y+1)⨁N
S⨁N
R), respectively. Since PRNG() is irreversible, the adversary cannot get y from M
R1 or M
R2. Therefore, unless the adversary calls the Reveal oracle, the secret keys cannot be revealed. □
Lemma 2. In the proposed scheme, two of the message parameters, before and after completing a scheme run with valid scheme parties, cannot be correlated without calling the Reveal oracle.
Proof. For easy reading, we denote a parameter P in the i-th session as iP. Without loss of generality, we assume that an adversary attempts to correlate iP with i+1P. In our proposed scheme, the messages consist of nine parameters: NS, NR, NT, SID, SRID, MT1, MT2, MR1, and MR2.
First, we consider the parameters NS, NR, and NT. NS is a random number generated in each session so the adversary cannot correlate iNS with i+1NS. For the same reason, iNR and iNT cannot be correlated with i+1NR and i+1NT, respectively.
Second, we consider the pseudo identifiers, SID and SRID. The value of i+1SID is PRNG(iSID⨁ix⨁iNS⨁iNT). By Lemma 1, the adversary cannot obtain ix. Thus, it is difficult for the adversary to correlate iSID with i+1SID unless the Reveal oracle is invoked. Similarly, the value of i+1SRID is PRNG(iSRID⨁iy⨁iNS⨁iNR). Because iy is not exposed, the adversary cannot correlate i+1SRID with iSRID.
Finally, we consider the remaining parameters. Since iMT1 = PRNG(ix⨁iNS⨁iNT), i+1x = PRNG((ix + 2 )⨁iNS⨁iNT) and i+1MT1 = PRNG(i+1x⨁i+1NS⨁i+1NT) to correlate iMT1 with i+1MT1, the adversary needs to know ix, which cannot be obtained without the Reveal oracle (by Lemma 1). For the same reason, iMT2, whose value is PRNG((ix + 1)⨁iNS⨁iNT), cannot be correlated with i+1MT2, whose value is PRNG((i+1x+1)⨁i+1NS⨁i+1NT). Similarly, since iMR1 = PRNG(iy⨁iNS⨁iNR), i+1y = PRNG((iy + 2)⨁iNS⨁iNR) and i+1MR1 = PRNG(i+1y⨁i+1NS⨁i+1NR), without the knowledge of iy, the adversary cannot correlate iMR1 with i+1MR1. For the same reason, iMR2, whose value is PRNG(iy + 1⨁iNS⨁iNR), cannot be correlated with i+1MR2, whose value is PRNG((i+1y + 1)⨁i+1NS⨁i+1NR).
Thus, without calling the Reveal oracle, the adversary cannot correlate two of the message parameters that are separated by a complete scheme run with valid scheme parties. □
Theorem 4. In the proposed scheme, tags are universally untraceable.
Proof. In an RFID scheme, a tag is universally untraceable [
33] if an adversary cannot correlate two of the messages sent and received by the tag, separated by a complete scheme run with valid scheme parties. This is modeled by a game between the challenger C as the RFID system and the adversary A. Assumed that both C and A have the power no more than a polynomial-time algorithm:
- (1)
C selects two tags, T0 and T1, a reader R, and a server S, which are all valid.
- (2)
A calls the oracles Execute, Send, and Block for a polynomial number of times on T0, T1, R and S.
- (3)
A stops and notifies C.
- (4)
C randomly selects a bit b and sets T = Tb.
- (5)
A calls the oracles Execute, Send, and Block on T, R and S.
- (6)
A outputs a bit b’. If b’ = b, A wins the game.
The advantage of successful tag identification is defined as AdvA = . If the adversary A has no advantage over the random guess, . Thus, tags are universally untraceable if AdvA is 0.
Suppose the challenger C selects two tags, T0 and T1, a reader R, and a server S for the game. A starts the game and calls the oracles Execute, Send, and Block for a polynomial number of times on T0, T1, R and S. Assume that C carries out a complete instance of the scheme, denoted as the i-th session, with each tag. A records all the outputs of the oracle calls and notifies C. Then, C chooses a random bit b and sets T = Tb. Now, A calls the oracles Execute, Send, and Block on T, R and S. Assume that C carries out a complete instance of the scheme with the tag T, denoted as the i+1-th session. A records all the outputs of the oracle calls and produces a guess bit b’. In the proposed scheme, the tag sends and receives the messages M1, M2, and M7, which consist of the following message parameters: SID, NT, NR, MT1, and MT2. Since A cannot correlate any message parameter in the i-th session with the parameter in the i+1-th session (by Lemma 2), A can only perform a random guess. Therefore, the probability that Pr[b’ = b] is and AdvA is 0. So the tags in our proposed scheme are universally untraceable. □
Theorem 5. The proposed scheme can ensure forward secrecy.
Proof. We model this as the game in the proof of Theorem 1. The challenger C selects two tags, T0 and T1, a reader R, and a server S for the game. The adversary A starts the game and calls the oracles Execute, Send, and Block on T0, T1, R, and S for a polynomial number of times. Assume C carries out a complete instance of the scheme with each tag. A records the outputs of the oracle calls. Then, C generates a random bit b and sets T = Tb. Hereafter, A calls the oracles Reveal(T) to obtain the pseudo identifier and secret key of the tag T. Finally, A outputs a guess bit b’.
Because the current secret key of T is generated from the PRNG of the previous one, A cannot inverse the PRNG function to obtain the previous secret key. Similarly, since the current pseudo identifier of T is generated from the PRNG of the previous one, A cannot deduce the previous pseudo identifier. Besides, by Lemma 2, A cannot correlate the previous pseudo identifier of T, which is either that of T0 or that of T1, with the current pseudo identifier of T. Therefore, A has no advantage over a random guess, which means that the proposed scheme can ensure forward secrecy. □
Theorem 6. The proposed scheme can resist impersonation attacks.
Proof. An adversary may attempt to impersonate as a tag, a reader or a server. We discuss these three cases as follows.
We model this as the following game between the challenger C and the adversary A.
- (1)
C chooses a tag T, a reader R, and a server S, which are all valid.
- (2)
A calls the oracles Execute, Send, and Block for a polynomial number of times on T, R, and S.
- (3)
A stops and notifies C.
- (4)
A invokes the Send oracle to impersonate as a tag.
- (5)
If A is authenticated as a valid tag, A wins the game.
Suppose the challenger C selects a tag T, a reader R, and a server S for the game. A starts the game and calls the oracles Execute, Send, and Block for a polynomial number of times on T, R, and S. Assume that C carries out an instance of the scheme on T, R, and S. A records all the oracle outputs.
To pass the authentication, A must send a valid SID and a valid MT1 = PRNG(x⨁NS⨁NT). To do so, A needs to know the tag secret key x. However, by Lemma 1, A cannot obtain x to generate a valid MT1. On the other hand, assume that A calls the Block oracle to block the message M5 so that no updates will happen, and then notifies C. Hereafter, C carries out a new instance of the scheme on T, R, and S. To impersonate as a tag, A invokes the Send oracle to send the recorded SID, MT1, and NT to the reader R as the response M2. However, since the reader R generates a new NR in this scheme run, the recorded MT1 cannot be valid unless the new NR happens to be the same as the old NR, whose probability is negligible. Therefore, A can hardly impersonate as a valid tag.
Firstly, we consider that the adversary A attempts to impersonate as a valid reader to the tag. The attempt is modeled as the game in the proof of Theorem 2. To be validated by the tag T, A needs to send a valid MT2 = PRNG((x + 1)⨁NS⨁NT). However, by Lemma 1, A cannot obtain x to generate a valid MT2. On the other hand, assume that A blocks M7 to prevent any updating on the tag, and then notifies C. Hereafter, C carries out a new instance of the scheme on T, R, and S. To impersonate as a reader to the tag, A sends the recorded MT2 to the tag T. However, the recorded MT2 cannot be valid unless the old NT is the same as the NT generated in the new scheme run, which has a negligible probability.
Secondly, we consider that A tries to impersonate as a valid reader to the server, which can be modeled as a game similar to the one in the proof of Theorem 2, except that in the last step the adversary A should be authenticated by the server S. To be authenticated, A must send a valid SRID and a valid MR1 = PRNG(y⨁NS⨁NR) to the server. By Lemma 1, the reader secret key y is not exposed so A cannot generate a valid MR1. On the other hand, assume that A blocks M5 to prevent any updating, and then notifies C. Hereafter, C carries out a new instance of the scheme on T, R, and S. To impersonate as a reader to the server, A sends the recorded NR, SRID and MR1 to the server S. Since S generates a new NS in the new scheme run, the recorded MR1 has a negligible probability to be valid.
Therefore, the probability to impersonate as a valid reader is negligible.
We model this attempt as a game similar to the one in the case (a), except that A calls the Send oracle to impersonate as a valid server. To impersonate as a legitimate server, A must send a valid MR2 = PRNG((y + 1)⨁NS⨁NR). However, without the knowledge of y (by Lemma 1), A fails to generate a valid MR2. On the other hand, assume that A blocks M6 to prevent any updating on the reader and tag, and then notifies C. Hereafter, C carries out a new instance of the scheme on T, R, and S. To impersonate as a server, A sends the recorded MR2 to the reader R. Because the new NR is hardly the same as the old NR, the probability that the recorded MR2 can pass the authentication is negligible. Thus, the adversary A can impersonate as a valid server with a negligible probability.
In summary, the proposed scheme can defend against impersonation attacks. □
Theorem 7. The proposed scheme can ensure the resistance of desynchronization attacks.
Proof. In the proposed scheme, the server updates the index data tables after the message M5 is received and verified. If the message M6 is blocked, the reader does not update its pseudo identifier SRID and secret key y. Since SRID and y are stored in the old fields, the server can synchronize with the reader based on them. Assume that there is a new session and M6 is blocked again. In this session, since the server finds the received SRID in the old index field, the old values do not update. Thus, the server can still synchronize with the reader. Similarly, if M6 (or M7) is blocked, the server and tag can keep synchronization between them. On the other hand, as discussed in the proof of Theorem 6, an adversary cannot forge valid MT1 and MR1 to force the server to update the index data tables. Therefore, the proposed scheme is resistant to desynchronization attacks. □
Theorem 8. The proposed scheme is scalable.
Proof. According to Burmester et al. [
34], if the server can find the record of a tag just based on the received data, the time cost can be constant. Otherwise, if some computation operations are needed before checking each record, an exhaustive search operation is needed to authenticate a tag, which results in time measurement attacks [
32]. In the proposed scheme, the tag pseudo identifier is used as the index of the tags’ index data table so the server can find the tag’s record just by the received SID. Similarly, with the received SRID, the server can find the reader’s record. So the proposed scheme requires no exhaustive search operation. Therefore, the proposed scheme is of scalability and can also resist time measurement attacks. □
5.3. Formal Security Analysis with BAN-Logic
In this part, we employ BAN-logic [
35] to perform a formal security analysis of our proposed scheme. The notations of BAN-logic are demonstrated in
Table 2.
Then, we present the BAN-logic rules used in the analysis as below.
R1 (Seeing rule):, it means when P receives a message set {X, Y}, P receives the message X.
R2 (Message-meaning rule):, it means if P believes that P and Q have a shared key K, P receives a message X encrypted by K, which indicates P believes Q has sent X to P.
R3 (Freshness rule):, it means if P believes the message X is fresh, P believes the message set {X, Y} is fresh.
R4 (Nonce-verification rule):, it means if P believes X is fresh, and Q has sent X, which indicates P believes Q believes X.
In the following analysis, the server, reader, and tag are denoted by S, R, and T, respectively.
5.3.1. Idealized Form
Based on the BAN-logic notations, the message transmissions of our proposed scheme are idealized as below.
IM5:
,
5.3.2. Initial Assumptions
The initial assumptions of our proposed scheme are as follows, specifying the initial process and belief of data.
5.3.3. Security Goals
Since our proposed scheme aims to achieve mutual authentication between the genuine scheme parties, the security goals of should be achieved are listed as follows.
5.3.4. Security Proofs
In this part, we prove the security goals of our scheme.
Proof. Given E1, A2, and R2, we obtain
In accordance with A5 and R3, we get
With E2, E3 and R4, we can deduce . Therefore, G1 is proved. □
Proof. Based on IM6 and R1, we get
With E4, A2, and R2, we know
Taking into account E5, E6, and R4, we can prove . Thus, G2 is achieved. □
Proof. According to IM5 and R1, we obtain
By E7, A1, and R2, we have
On the basis of A5 and R3, we get
With E8, E9, and R4, we can deduce . Therefore, G3 is proved. □
Proof. In accordance with IM7, A1, and R2, we get
Taking into account A3 and R3, we obtain
Based on E10, E11, and R4, we can prove . Thus, G4 is achieved. □
Since all security goals are verified, our proposed scheme satisfies the logic security.