POSS(U) = {pwU, bU, {IDU}} |
(U16) Update(IDU, IDSn, X, TU, α, ω) |
BEL(U) = {#(pwU), #(bU)} |
(U17) Receive(Sn, {Y, TS, δ, τ}) |
BL(U) |
(U18) Check-freshness(T′S) |
Phase 1 |
(U19) Check (δ, Hash(h(·); Contat(IDU, X, X′,TU, IDSn, Y, TS))) |
(U1)
|
(U2) Send (GW,{IDU,
}) |
(U20) KUS ← Scalar-multiplication(rU, Y) |
(U3) Update(IDU,
) |
(U21) Check(τ, Hash(h(·); Contat(Y, T′S, δ, KUS))) |
(U4) Receive(GW, {AU, BU, WU, h(·)}) |
(U22) sk ← Hash(h(·); Contat(X, Y, KUS)) |
Phase 2 |
Phase 3 |
(U5)
|
(U23)
|
(U6) h(x⊕y) ← XOR(
, AU) |
(U24) B′U ← Hash(h(·); Concat (IDU,
, h(x(⊕ y)) |
(U7) B′U ← Hash(h(·);Concat (IDU,
, h(x⊕y))) |
(U25) Check(B′U, BU) |
(U8) Check(B′U, BU) |
(U26) KU ← XOR(Hash(h(·); Concat(IDU,
)), WU) |
(U9) KU ← XOR(Hash(h(·); Concat(IDU,
)),WU) |
(U27) h(x(⊕ y) ← XOR(
, AU) |
(U10) Generate-nonce(rU) |
(U28)
|
(U11) X ← Scalar-multiplication(rU, P) |
(U29) A′U ← XOR (
, h(x ⊕ y)) |
(U12) X′ ← Scalar-multiplication(rU, KU) |
(U30) B′U ← Hash(h(·); Concat(IDU,
, h(x(⊕ y))) |
(U13) ω ← Hash(h(·); Concat(IDU, Hash(h(·);IDSn, h(x ⊕ y)), TU)) |
(U31) W′U ← XOR(Hash(h(·); Concat(IDU,
)), KU) |
(U32) AU ← A′U
|
(U14) α ← Hash(h(·); Concat(IDU, IDSn, X, X′, TU,ω)) |
(U33) BU ← B′U
|
(U15) Send(Sn, {IDU, IDSn, X, TU, α, ω}) |
(U34) WU ← W′U
|