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

A-1 GW checks if (TGTi) ≤ ΔT, where TG is the current timestamp of GW system, and ΔT is the maximum permitted transmission delay time. If (TGTi) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-2 GW computes the following.
RNi=vixs
X*=DIDih(xsRNiTi)
MUiG*=h((X*⊕h(K))∥xsRNiTi)
GW compares MUiG* with MUiG*. If MUiG* =MUiG, then the next step proceeds; otherwise, this phase is aborted.
A-3 GW computes MGSj=h(DIDiSIDjxsTG). TG is the current timestamp of GW system. Sj is the nearest sensor node that can respond to Ui's request.
GW sends the authentication request {DIDi, MGSj, TG} to Sj.
A-4 GW checks if (TjTG) ≤ ΔT, where Tj is the current timestamp of Sj system.
If (TjTG) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-5 Sj computes MGSj*=h(DIDiSIDjxsTG).
Sj compares MGSj* with MGSj. If MGSj* = MGSj, then the next step proceeds; otherwise, this phase is aborted.
A-6 Sj generates a random nonce RNj and computes the following.
yi = RNjxs
zi = MGSj*⊕RNj
MSjG = h(zixsTj)
Sj sends the authentication request {yi, MSjG, Tj} to GW.
A-7 GW checks if (TG′ − Tj) ≤ ΔT, where TG′ is the current timestamp of GW system.
If (TG′−Tj) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-8 GW computes the following.
RNj=yixs
zi=MGSjRNj
MSjG*=h(zi*xsTj)
GW compares MSjG* with MSjG. If MSjG* = MSjG, then the next step proceeds; otherwise, this phase is aborted.
A-9 GW computes the following.
MGUi = h(DIDiMGSjMUiGxsTG′)
wi=zi*xs
GW sends the authentication request {yi, wi, MGUi, TG′} to Ui.
A-10 Ui checks if (Ti′ − TG′) ≤ ΔT, where Ti′ is the current timestamp of Ui system.
If (Ti′ − TG′) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-11 The smart card computes the following.
RNj = yixs
zi*=wixs
MGSj=zi*RNj
MGUi* = h(DIDiMGSjMUiGxsTG′)
The smart card compares MGUi* with MGUi. If MGUi* = MGUi, then mutual authentication between Ui and Sj is completed successfully; otherwise, this phase is aborted.
A-12 The smart card computes Ks = f((DIDiRNi),xs) to obtain a session key for communication with Sj. Meanwhile, Sj also computes KS = f((DIDiRNi),xs) to share a session key with Ui.