Research Article

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

Box 1

role user (Ui, Sj, GW  : agent,
Kdi: symmetric_key,
Kug: symmetric_key,
H: hash_func,
P: text,
SND_US,RCV_US: channel (dy))
played_by Ui
def=
local State  : nat,
T1,K1,Na,Nb,SIDj,IDi,SK  : text
const user_sensor_sk,sc_user_id:protocol_id
initState 0
transition
(1) State = 0RCV_US(start)=>
State 2 T1 new()
K1 new()
Na exp(P,K1)
SND_US(Na
.xor((IDi.SIDj),Kug)
.H(Na.xor((IDi.SIDj),Kug).Kdi.T1)
.T1)
secret(IDi,sc_user_id,)
secret(IDi,sc_sensor_id,)
(2) State = 2 RCV_US(Nb
.H(Nb.Kdi.H(Na.xor((IDi.SIDj),Kug).Kdi.T1).Na.T1))=>
State 4 SK≔ H(exp(Nb,K1))
witness(Ui,Sj,user_sensor_sk,SK)
request(Ui,Sj,user_sensor_sk,SK)
end role