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.
If (TGTi) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-2 GW computes the following.
XSi = h(H_IDixs)
RNi = viXsi
X* = DIDih(XsiRNiTi)
MUiG* = h((X* ⊕ h(H_IDiK))∥XsiRNiTi)
GW compares MUiG* with MUiG. If MUiG*=MUiG, then the next step proceeds; otherwise, this phase is aborted.
A-3 GW computes the following. TG is the current timestamp of GW system. Sj is the nearest sensor node that can respond to Ui 's request.
Xsj=h(SIDjxs)
MGSj = h(DIDiSIDjXsjTG)
GW sends the authentication request {DIDi, MGSj, TG} to Sj.
A-4 GW checks if (T jTG) ≤ ΔT, where Tj is the current timestamp of Sj.
If (T jTG) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-5 Sj computes MGSj*=h(DIDi||SIDj||Xsi*TG).
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.
yj=RNjXsj*
zi = MGSj*⊕RNj
MSjG=h(ziXsj*Tj)
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.
If (TG′ − Tj) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted
A-8 GW computes the following.
RNj = yjXsi
zi*=MGSjRNj
MSjG*=h(zi*XsjTj)
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(DIDiMGSjMUiGXsiTG′)
wi=zi*Xsi
yi=RNjXsi
qj=XsjRNj
GW sends the authentication request {yi, wi, MGUi, qj, TG′)} to Ui.
A-10 Ui checks if (Ti′−TG′) ≤ ΔT, where Ti′ is the current timestamp of Ui. If (Ti′−TG′) ≤ ΔT, then the next step proceeds; otherwise, this phase is aborted.
A-11 The smart card computes the following:
RNj =yiXsi
zi*=wiXsi
MGSj*=zi*RNj
MGUi*=h(DIDiMGSj*MUiGXsiTG)
The smart card compares MGUi* with MGUi. If MGUi* =MGUi, then mutual authentication between Ui and SNj is completed successfully; otherwise, this phase is aborted.
A-12 The smart card computes the following to get a session key for communication with Sj. Meanwhile, Sj also computes KS = f((DIDiRNi), Xsj to share a session key with Ui.
Xsj = qjRNj
Ks = f((DIDiRNj), Xsj)