- Added a few protocols to the list.
This commit is contained in:
		
							parent
							
								
									84689052ac
								
							
						
					
					
						commit
						a3f9d0dc65
					
				
							
								
								
									
										74
									
								
								spdl/denning-sacco-shared.spdl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								spdl/denning-sacco-shared.spdl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,74 @@ | |||||||
|  | /* | ||||||
|  | * Denning-Sacco shared key | ||||||
|  | * CJ, but modeled after Sjouke's protocol list | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | /* default includes */ | ||||||
|  | 
 | ||||||
|  | /* asymmetric */ | ||||||
|  | 
 | ||||||
|  | const pk,hash: Function; | ||||||
|  | secret sk,unhash: Function; | ||||||
|  | 
 | ||||||
|  | /* symmetric */ | ||||||
|  | 
 | ||||||
|  | usertype SessionKey, Time, Ticket; | ||||||
|  | secret k: Function; | ||||||
|  | 
 | ||||||
|  | /* agents */ | ||||||
|  | 
 | ||||||
|  | const a,b,e: Agent; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* untrusted e */ | ||||||
|  | 
 | ||||||
|  | untrusted e; | ||||||
|  | const ne: Nonce; | ||||||
|  | const kee: SessionKey; | ||||||
|  | 
 | ||||||
|  | compromised k(e,e); | ||||||
|  | compromised k(e,a); | ||||||
|  | compromised k(e,b); | ||||||
|  | compromised k(a,e); | ||||||
|  | compromised k(b,e); | ||||||
|  | 
 | ||||||
|  | protocol denningsaccoshared(A,S,B) | ||||||
|  | { | ||||||
|  | 	role A | ||||||
|  | 	{ | ||||||
|  | 		var t: Time; | ||||||
|  | 		var T: Ticket; | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 
 | ||||||
|  | 		send_1 (A,S, A,S ); | ||||||
|  | 		read_2 (S,A, {B, kab, t, T}k(A,S) ); | ||||||
|  | 		send_3 (A,B, T); | ||||||
|  | 
 | ||||||
|  | 		claim_4 (A, Secret, kab); | ||||||
|  | 		claim_5 (A, Nisynch); | ||||||
|  | 		claim_6 (A, Niagree); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role S | ||||||
|  | 	{ | ||||||
|  | 		const t: Time; | ||||||
|  | 		const kab: SessionKey; | ||||||
|  | 
 | ||||||
|  | 		read_1 (A,S, A,S ); | ||||||
|  | 		send_2 (S,A, {B, kab, t, { kab, A,t }k(B,S) }k(A,S) ); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role B | ||||||
|  | 	{ | ||||||
|  | 		var t: Time; | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 
 | ||||||
|  | 		read_3 (A,B, { kab, A,t }k(B,S) ); | ||||||
|  | 
 | ||||||
|  | 		claim_7 (B, Secret, kab); | ||||||
|  | 		claim_8 (B, Nisynch); | ||||||
|  | 		claim_9 (B, Niagree); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -36,7 +36,7 @@ ScytherProgram = "../src/scyther" | |||||||
| 
 | 
 | ||||||
| # Scyther parameters | # Scyther parameters | ||||||
| ScytherDefaults	= "--summary" | ScytherDefaults	= "--summary" | ||||||
| ScytherMethods	= "--match=1 --arachne" | ScytherMethods	= "--match=0 --arachne" | ||||||
| ScytherBounds	= "--timer=300 --max-runs=5 --max-depth=25 --max-length=30" | ScytherBounds	= "--timer=300 --max-runs=5 --max-depth=25 --max-length=30" | ||||||
| 
 | 
 | ||||||
| # Build a large part of the command line (for Scyther) already | # Build a large part of the command line (for Scyther) already | ||||||
|  | |||||||
							
								
								
									
										79
									
								
								spdl/ns-symmetric-amended.spdl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								spdl/ns-symmetric-amended.spdl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,79 @@ | |||||||
|  | /* | ||||||
|  |  * Needham-Schroeder symmetric | ||||||
|  |  * Amended version (from Sjouke's interpret.) | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /* symmetric */ | ||||||
|  | 
 | ||||||
|  | usertype SessionKey; | ||||||
|  | secret k: Function; | ||||||
|  | 
 | ||||||
|  | /* agents */ | ||||||
|  | 
 | ||||||
|  | const a,b,e: Agent; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* untrusted e */ | ||||||
|  | 
 | ||||||
|  | untrusted e; | ||||||
|  | const ne: Nonce; | ||||||
|  | const kee: SessionKey; | ||||||
|  | 
 | ||||||
|  | compromised k(e,e); | ||||||
|  | compromised k(e,a); | ||||||
|  | compromised k(e,b); | ||||||
|  | compromised k(a,e); | ||||||
|  | compromised k(b,e); | ||||||
|  | 
 | ||||||
|  | /* {}x used for public (invertible) function modeling */ | ||||||
|  | 
 | ||||||
|  | usertype PseudoFunction; | ||||||
|  | const succ: PseudoFunction; | ||||||
|  | 
 | ||||||
|  | usertype Ticket; | ||||||
|  | 
 | ||||||
|  | protocol nssymmetric(A,S,B)  | ||||||
|  | { | ||||||
|  | 	role A | ||||||
|  | 	{ | ||||||
|  | 		const na: Nonce; | ||||||
|  | 		var T1: Ticket; | ||||||
|  | 		var T2: Ticket; | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 		var nb: Nonce; | ||||||
|  | 
 | ||||||
|  | 		send_1(A,B, A ); | ||||||
|  | 		read_2(B,A, T1 ); | ||||||
|  | 		send_3(A,S, A,B,na,T1 ); | ||||||
|  | 		read_4(S,A, { na,B,kab,T2 }k(A,S) ); | ||||||
|  | 		send_5(A,B, T2 ); | ||||||
|  | 		read_6(B,A, { nb }kab ); | ||||||
|  | 		send_7(A,B, { {nb}succ }kab ); | ||||||
|  | 
 | ||||||
|  | 		claim_8(A, Secret, kab); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role S | ||||||
|  | 	{ | ||||||
|  | 		const kab: SessionKey; | ||||||
|  | 		var na: Nonce; | ||||||
|  | 		var nb: Nonce; | ||||||
|  | 
 | ||||||
|  | 		read_3(A,S, A,B,na, { A,nb }k(B,S) ); | ||||||
|  | 		send_4(S,A, { na,B,kab, { kab,A }k(B,S) }k(A,S) ); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role B | ||||||
|  | 	{ | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 		const nb: Nonce; | ||||||
|  | 
 | ||||||
|  | 		read_1(A,B, A ); | ||||||
|  | 		send_2(B,A, { A,nb }k(B,S) ); | ||||||
|  | 		read_5(A,B, { kab,A }k(B,S) ); | ||||||
|  | 		send_6(B,A, { nb }kab ); | ||||||
|  | 		read_7(A,B, { {nb}succ }kab ); | ||||||
|  | 
 | ||||||
|  | 		claim_9(B, Secret, kab); | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										72
									
								
								spdl/ns-symmetric.spdl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								spdl/ns-symmetric.spdl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | |||||||
|  | /* | ||||||
|  |  * Needham-Schroeder symmetric | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /* symmetric */ | ||||||
|  | 
 | ||||||
|  | usertype SessionKey; | ||||||
|  | secret k: Function; | ||||||
|  | 
 | ||||||
|  | /* agents */ | ||||||
|  | 
 | ||||||
|  | const a,b,e: Agent; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* untrusted e */ | ||||||
|  | 
 | ||||||
|  | untrusted e; | ||||||
|  | const ne: Nonce; | ||||||
|  | const kee: SessionKey; | ||||||
|  | 
 | ||||||
|  | compromised k(e,e); | ||||||
|  | compromised k(e,a); | ||||||
|  | compromised k(e,b); | ||||||
|  | compromised k(a,e); | ||||||
|  | compromised k(b,e); | ||||||
|  | 
 | ||||||
|  | /* {}x used for public (invertible) function modeling */ | ||||||
|  | 
 | ||||||
|  | usertype PseudoFunction; | ||||||
|  | const succ: PseudoFunction; | ||||||
|  | 
 | ||||||
|  | usertype Ticket; | ||||||
|  | 
 | ||||||
|  | protocol nssymmetric(A,S,B)  | ||||||
|  | { | ||||||
|  | 	role A | ||||||
|  | 	{ | ||||||
|  | 		const na: Nonce; | ||||||
|  | 		var T: Ticket; | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 		var nb: Nonce; | ||||||
|  | 
 | ||||||
|  | 		send_1(A,S, A,B,na ); | ||||||
|  | 		read_2(S,A, { na,B,kab,T }k(A,S) ); | ||||||
|  | 		send_3(A,B, T ); | ||||||
|  | 		read_4(B,A, { nb }kab ); | ||||||
|  | 		send_5(A,B, { {nb}succ }kab ); | ||||||
|  | 
 | ||||||
|  | 		claim_6(A, Secret, kab); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role S | ||||||
|  | 	{ | ||||||
|  | 		const kab: SessionKey; | ||||||
|  | 		var na: Nonce; | ||||||
|  | 
 | ||||||
|  | 		read_1(A,S, A,B,na ); | ||||||
|  | 		send_2(S,A, { na,B,kab, { kab,A }k(B,S) }k(A,S) ); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role B | ||||||
|  | 	{ | ||||||
|  | 		var kab: SessionKey; | ||||||
|  | 		const nb: Nonce; | ||||||
|  | 
 | ||||||
|  | 		read_3(A,B, { kab,A }k(B,S) ); | ||||||
|  | 		send_4(B,A, { nb }kab ); | ||||||
|  | 		read_5(A,B, { {nb}succ }kab ); | ||||||
|  | 
 | ||||||
|  | 		claim_7(B, Secret, kab); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @ -15,6 +15,7 @@ broken1.spdl | |||||||
| carkey-ni2.spdl | carkey-ni2.spdl | ||||||
| carkey-ni.spdl | carkey-ni.spdl | ||||||
| ccitt509-ban.spdl | ccitt509-ban.spdl | ||||||
|  | denning-sacco-shared.spdl | ||||||
| five-run-bound.spdl | five-run-bound.spdl | ||||||
| #gong-nonce-b.spdl | #gong-nonce-b.spdl | ||||||
| #gong-nonce.spdl | #gong-nonce.spdl | ||||||
| @ -22,6 +23,8 @@ helloworld.spdl | |||||||
| isoiec11770-2-13.spdl | isoiec11770-2-13.spdl | ||||||
| #kaochow-palm.spdl | #kaochow-palm.spdl | ||||||
| kaochow.spdl | kaochow.spdl | ||||||
|  | ns-symmetric.spdl | ||||||
|  | ns-symmetric-amended.spdl | ||||||
| ns3-brutus.spdl | ns3-brutus.spdl | ||||||
| ns3.spdl | ns3.spdl | ||||||
| nsl3-nisynch-rep.spdl | nsl3-nisynch-rep.spdl | ||||||
| @ -45,4 +48,5 @@ woolam-ce.spdl | |||||||
| woolam-cmv.spdl | woolam-cmv.spdl | ||||||
| yahalom-ban.spdl | yahalom-ban.spdl | ||||||
| yahalom-lowe.spdl | yahalom-lowe.spdl | ||||||
|  | yahalom-paulson.spdl | ||||||
| yahalom.spdl | yahalom.spdl | ||||||
|  | |||||||
| @ -1,3 +1,7 @@ | |||||||
|  | /* | ||||||
|  |  * Woo-lam version from Spore, as it is in Sjouke's list | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
| usertype Server, SessionKey, Token, Ticket; | usertype Server, SessionKey, Token, Ticket; | ||||||
| secret k: Function; | secret k: Function; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,7 @@ | |||||||
| // Yahalom protocol | /* | ||||||
|  |  * Yahalom Lowe | ||||||
|  |  * As in Sjouke's list | ||||||
|  |  */ | ||||||
| 
 | 
 | ||||||
| usertype Sessionkey; | usertype Sessionkey; | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										63
									
								
								spdl/yahalom-paulson.spdl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								spdl/yahalom-paulson.spdl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | |||||||
|  | /* | ||||||
|  |  * Yahalom Paulson-strengthened | ||||||
|  |  * As in Sjouke's list | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | usertype Sessionkey, Ticket; | ||||||
|  | 
 | ||||||
|  | const Alice,Bob,Simon,Eve : Agent; | ||||||
|  | secret k : Function; | ||||||
|  | 
 | ||||||
|  | untrusted Eve; | ||||||
|  | compromised k(Eve,Simon); | ||||||
|  | const ne: Nonce; | ||||||
|  | const kee: Sessionkey; | ||||||
|  | 
 | ||||||
|  | protocol yahalomlowe(I,R,S) | ||||||
|  | { | ||||||
|  | 	role I | ||||||
|  | 	{ | ||||||
|  | 		const ni: Nonce; | ||||||
|  | 		var nr: Nonce; | ||||||
|  | 		var kir: Sessionkey; | ||||||
|  | 		var T: Ticket; | ||||||
|  | 
 | ||||||
|  | 		send_1(I,R, I,ni); | ||||||
|  | 		read_3(S,I, nr, {R,kir,ni}k(I,S), T ); | ||||||
|  | 		send_4(I,R, T, {nr}kir ); | ||||||
|  | 
 | ||||||
|  | 		claim_8(I, Secret,kir); | ||||||
|  | 		claim_9(I, Nisynch); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role R | ||||||
|  | 	{ | ||||||
|  | 		const nr: Nonce; | ||||||
|  | 		var ni: Nonce; | ||||||
|  | 		var kir: Sessionkey; | ||||||
|  | 
 | ||||||
|  | 		read_1(I,R, I,ni); | ||||||
|  | 		send_2(R,S, R,nr,{I,ni}k(R,S) ); | ||||||
|  | 		read_4(I,R, {I,R,kir,nr}k(R,S), {nr}kir ); | ||||||
|  | 
 | ||||||
|  | 		claim_10(R, Secret,kir); | ||||||
|  | 		claim_11(R, Nisynch); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	role S | ||||||
|  | 	{ | ||||||
|  | 		const kir: Sessionkey; | ||||||
|  | 		var ni,nr: Nonce; | ||||||
|  | 
 | ||||||
|  | 		read_2(R,S, R,nr, {I,ni}k(R,S) ); | ||||||
|  | 		send_3(S,I, nr, { R,kir,ni }k(I,S), {I,R,kir,nr}k(R,S) ); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | run yahalomlowe.I(Agent,Agent,Simon); | ||||||
|  | run yahalomlowe.R(Agent,Agent,Simon); | ||||||
|  | run yahalomlowe.S(Agent,Agent,Simon); | ||||||
|  | 
 | ||||||
|  | run yahalomlowe.I(Agent,Agent,Simon); | ||||||
|  | run yahalomlowe.R(Agent,Agent,Simon); | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user