Research Article

A Privacy Protection User Authentication and Key Agreement Scheme Tailored for the Internet of Things Environment: PriAuth

Box 3

role gateway (Ui, Sj, GW  : agent,
Kdi, Kxj: symmetric_key,
Kug  : symmetric_key,
H: hash_func,
SND_SG, RCV_SG: channel(dy))
played_by GW
def=
local State  : nat,
T1,T2,Na,Nb,IDi,SIDj  : text
const sk_User_gwn,sk_sensor_gwn,sc_sensor_id,sc_user_id:protocol_id
initState ≔ 5
transition
(1) State= 5 RCV_SG( Na
.xor((IDi.SIDj),Kug)
.H(Na.xor((IDi.SIDj),Kug).Kdi.T1)
.T1
.Nb
.H(Nb.H(Na.xor((IDi.SIDj),Kug).Kdi.T1).Kxj.T2)
.T2) =>
State ≔ 7 SND_SG(
H(Na.Kxj.H(Nb.H(Na.xor((IDi.SIDj),Kug).Kdi.T1).Kxj.T2).T2)
.H(Nb.Kdi.H(Na.xor((IDi.SIDj),Kug).Kdi.T1).Na.T1)
)
secret(IDi,sc_user_id,)
secret(SIDj,sc_sensor_id,)
end role