Research Article

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

Algorithm 5

role sensor (Ui, Sj, GW: agent,
     Kxj: symmetric_key,
     H: hash_func,
     P: text,
     SND_SG,RCV_SG: channel(dy))
played_by Sj
def=
 local State: nat,
 T2,K2,A,B,SK,M3,M4,M5,SIDj :text
 const shared_key:protocol_id
 init State:= 4
 transition
  1. State = 4  ⋀ RCV_SG(A’
              .H(A’.SIDj’.Kxj.T2’)
              .T2’
              )=|>
   State’:= 3   ⋀ K2’:= new()
           ⋀ B:= exp(P,K2’)
           ⋀ SK’:= H(exp(A’,K2))
           ⋀ M4’:= H(B.SK.A’)
           ⋀ M5’:= H(Kxj.H(A’.SIDj’.Kxj.T2’).M4’.B)
           ⋀ SND_SG(B.M4’.M5’)
           ⋀ witness(Ui,Sj,shared_key,SK’)
           ⋀ request(Ui,Sj,shared_key,SK’)
 end role