Research Article

Hierarchical Group Based Mutual Authentication and Key Agreement for Machine Type Communication in LTE and Future 5G Networks

Algorithm 3

Role of MTCD in HLPSL.
role mtcd(MTCD,GW,MME: agent,
      Kg1_1,Gkg1: symmetric_key,
      IMSIg1_1, GIDg1:text,
      HMAC: function,
      F1,F2,F3,F4,F5,F6,KDF:function,
      SQN:text,
      SND,RCV,SNDG,RCVG:channel(dy))
played_by MTCD def=
local State:nat,
  Rg1_1:text,
  MACg1_1:text,
  GMACg1_1:text,
  Authhss,Rmme,Rhss,Macmme:text,
  SNID:text
init State:=0
transition
   State=0 RCV(start)=|>
    State':=3 Rg1_1':=new() MACg1_1':= (IMSIg1_1.Rg1_1'_Gkg1 GMACg1_1':=
(IMSIg1_1.Rg1_1'.MACg1_1'._Gkg1 SNDG(IMSIg1_1.Rg1_1'.MACg1_1'.GIDg1.GMACg1_1')
witness(MME,MTCD,mme_mtcd_rg11,Rg1_1')
   State=3
RCV(Rhss'.((Rhss'._((Rhss'.SNID_Gkg1)).Rmme'.((Rmme'.(Rhss'.((Rhss'.GIDg1_
((Rhss'.SNID_Gkg1)))_((Rhss'.SNID_Gkg1))) =|>
    State':=6 SNDG((Rhss'.Rg1_1_Kg1_1) request(MTCD,MME,mtcd_mme_rhss,Rhss')
request(MTCD,MME,mtcd_mme_rmme,Rmme')
end role