Skip to main content
. 2014 Apr 9;14(4):6443–6462. doi: 10.3390/s140406443

Step 1 In the previous session, when Ui sends the authentication request {DIDi, MUiG, vi, Ti} to GW as shown in Section 2.2, Uα eavesdrops on it.
Step 2 Uα computes the following. RNα is a random nonce generated by Uα. Tα is the current timestamp of Uα system. xs and h(K) are already known to Uα, as mentioned above.
RNi=vixs
h(IDiH_PWi*xs)=DIDih(xs||RNi||Ti)
DIDi=h(IDiH_PWi*xs)h(xsRNiTi)
Ai=h(IDiH_PWi*xs)h(K)
MUiG = h(AixsRNαTα)
vi = RNαxs
Uα sends the authentication request {DIDi, MUiG, vi, Tα} to GW.
Step 3 When GW receives {DIDi, MUiG, vi, Tα}, GW checks if (TGTα) ≤ ΔT, where TG is the current timestamp of GW system. If (TGTα) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
Step 4 GW computes the following.
RNα = vixs
X*=DIDih(xsRNαTα)
MUiG* = h((X* ⊕ h(K))∥xsRNαTα)
GW compares MUiG with MUiG*. GW regards {DIDi, MUiG, vi, Tα} as being sent from a legitimate user because MUiG=MUiG*.