/* * Modeled from ISO standard * * signature * ttp * five-pass * mutual * * B initiates and A communicates with T * * parameters: * * NAME * IA * IB * ResA * ResB * TokenAB * TokenBA (although identical in both cases) * TokenTA * */ protocol NAME(A,B,T) { role A { fresh Ra,Rpa: Nonce; var Rb: Nonce; var Text1,Text3,Text4,Text5,Text8,Text9: Ticket; fresh Text2,Text6,Text7: Ticket; recv_1(B,A, Rb,IB,Text1 ); send_2(A,T, Rpa,Rb,IA,Text2 ); recv_3(T,A, Text5, TokenTA ); claim(A,Running,B,Ra,Rb,Text6); send_4(A,B, IA, TokenAB ); recv_5(B,A, TokenBA ); claim(A,Commit,B,Ra,Rb,Text8); claim(A,Alive); } role B { fresh Text1,Text8,Text9: Ticket; fresh Rb: Nonce; var Text3,Text4,Text6,Text7: Ticket; var Ra,Rpa: Nonce; send_1(B,A, Rb,IB,Text1 ); recv_4(A,B, IA, TokenAB ); claim(B,Running,A,Ra,Rb,Text8); send_5(B,A, TokenBA ); claim(B,Commit,A,Ra,Rb,Text6); claim(B,Alive); } role T { var Rpa,Rb: Nonce; var Text2: Ticket; fresh Text3,Text4,Text5: Ticket; recv_2(A,T, Rpa,Rb,IA,Text2 ); send_3(T,A, Text5, TokenTA ); } }