Research Article

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

Algorithm 6

role gateway (Ui, Sj, GW: agent,
      Kdi,Kei, Kxj, Xgwn: symmetric_key,
      H: hash_func,
      SND_UG,RCV_UG,SND_SG,RCV_SG: channel(dy))
played_by GW
def=
 local State: nat,
 T1,T2,A,B,IDi,SIDj,M2,M3,M4,M6,M7,Ki,Keinew,K3: text
 const sc_user_id,sc_sensor_id:protocol_id
 init State: = 2
 transition
 1. State = 2  ⋀ RCV_UG(A’.
            xor(H(Ki’.Xgwn),(IDi’.SIDj’.H(A’.IDi’.SIDj’.Kdi.T1’))).
            Ki’.
            T1’
            )=|>
 State’:= 3  ⋀ T2’: = new()
         ⋀ M3’:= H(A’.SIDj’.Kxj.T2’)
         ⋀ SND_SG(A’.M3’.T2’)
         ⋀ secret(IDi,sc_user_id,{Ui,GW})
         ⋀ secret(SIDj,sc_sensor_id,{Ui,GW})
 2. State = 5  ⋀ RCV_SG(B
             .M4’
             .H(Kxj.M3.M4’.B)
             )=|>
 State’:=6  ⋀ K3’:= new()
             ⋀ Keinew’:= H(K3’.Xgwn)
             ⋀ M7’:= H(Kei.K3’.Kdi.T1.M4’)
             ⋀ M6’:= xor((Keinew’.K3’.M7’),Kei)
             ⋀ SND_UG(B.M6’)
end role