| 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 |
|