Research Article

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

Box 2

role sensor (Ui, Sj, GW  : agent,
Kxj: symmetric_key,
H: hash_func,
P: text,
SND_US,RCV_US,SND_SG,RCV_SG: channel(dy))
played_by Sj
def=
local State  : nat,
T1,T2,K2, Na,Nb,SK  : text,
Y,X,Z  : message
const user_sensor_sk:protocol_id
initState 1
transition
(1) State= 1 RCV_US(Na.Y.Z.T1) =>
State ≔ 3 T2 ≔ new()
K2 ≔ new()
Nb ≔ exp(P,K2)
SND_SG( Na
.Y
.Z
.T1
.Nb
.H(Nb.Z.Kxj.T2)
.T2 )
(2) State = 2 RCV_SG( H(Na.Kxj.H(Nb.Z.Kxj.T2).T2)
.X ) =>
State ≔ 4 SK ≔ H(exp(Na,K2))
witness(Sj,Ui,user_sensor_sk,SK)
request(Sj,Ui,user_sensor_sk,SK)
SND_US(Nb
.X)
end role