Untitled
unknown
plain_text
4 years ago
1.6 kB
2
Indexable
%%% Key exchange protocol %%% 1. Alice %%% 2. Bob %%% 3. Third Party Agent role role_A(A:agent,B:agent,T:agent,Kat:symmetric_key,SND,RCV:channel(dy)) played_by A def= local State:nat, Kab:symmetric_key init State := 0 transition 1. State=0 /\ RCV(start) =|> State':=1 /\ Kab':=new() /\ SND({Kab'}_Kat) /\ secret(Kab',sec_1,{A,B,T}) /\ SND(Kab') end role role role_T(T:agent,A:agent,B:agent,Kat,Kbt:symmetric_key,SND,RCV:channel(dy)) played_by T def= local State:nat, Kab:symmetric_key init State := 0 transition 1. State=0 /\ RCV({Kab'}_Kat) =|> State':=1 /\ SND({Kab'}_Kbt) end role role role_B(B:agent,A:agent,T:agent,Kbt:symmetric_key,SND,RCV:channel(dy)) played_by B def= local State:nat, Kab:symmetric_key init State := 0 transition 1. State=0 /\ RCV({Kab'}_Kbt) =|> State':=1 end role role session(A:agent,B:agent,T:agent,Kat,Kbt:symmetric_key) def= local SND3,RCV3,SND2,RCV2,SND1,RCV1:channel(dy) composition role_A(A,B,T,Kat,SND1,RCV1) /\ role_B(B,A,T,Kbt,SND2,RCV2) /\ role_T(T,A,B,Kat,Kbt,SND3,RCV3) end role role environment() def= const kat,kbt,kit:symmetric_key, alice,bob,trusted:agent, sec_1,auth_1:protocol_id intruder_knowledge = {alice,bob, kit} composition session(alice,bob,trusted,kat,kbt)/\session(alice,i,trusted,kat,kit) end role goal secrecy_of sec_1 end goal environment()
Editor is loading...