From b44676db2b267d3d32d01fde649b73b057491d2a Mon Sep 17 00:00:00 2001 From: ccremers Date: Mon, 25 Oct 2004 11:13:39 +0000 Subject: [PATCH] - Added another protocol. --- spdl/boyd.spdl | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 spdl/boyd.spdl diff --git a/spdl/boyd.spdl b/spdl/boyd.spdl new file mode 100644 index 0000000..2864b14 --- /dev/null +++ b/spdl/boyd.spdl @@ -0,0 +1,76 @@ +usertype Sessionkey; +usertype Macseed; +secret k: Function; +const m: Function; +secret unm: Function; +const f: Function; + +inversekeys (m, unm); + +/* + * Boyd key agreement + * + * Boyd & Mathuria: Protocols for authentication and key establishment + * (2003) p. 101 + */ + +protocol boyd(I,R,S) +{ + role I + { + const ni: Nonce; + var nr: Nonce; + var ks: Macseed; + + send_1 (I,S, I,R, ni ); + read_3 (R,I, { I,R, ks }k(I,S), m(ni, m(ks,ni,nr)), nr ); + send_4 (I,R, m(nr, m(ks,ni,nr)) ); + + claim_6 (I, Secret, m(ks,ni,nr) ); + claim_8 (I, Nisynch); + } + + role R + { + var ni: Nonce; + const nr: Nonce; + var ks: Macseed; + + read_2 (S,R, { I,R, ks }k(I,S), { I,R, ks }k(R,S), ni ); + send_3 (R,I, { I,R, ks }k(I,S), m(ni, m(ks,ni,nr)), nr ); + read_4 (I,R, m(nr, m(ks,ni,nr)) ); + + claim_7 (R, Secret, m(ks,ni,nr)); + claim_9 (R, Nisynch); + } + + role S + { + var ni,nr: Nonce; + const ks: Macseed; + + read_1 (I,S, I,R, ni ); + send_2 (S,R, { I,R, ks }k(I,S), { I,R, ks }k(R,S), ni ); + } +} + +const Alice,Bob,Simon,Eve: Agent; + +untrusted Eve; +const ne: Nonce; +const mcsde: Macseed; +const ke: Sessionkey; +compromised k(Eve,Eve); +compromised k(Eve,Alice); +compromised k(Eve,Bob); +compromised k(Eve,Simon); +compromised k(Alice,Eve); +compromised k(Bob,Eve); +compromised k(Simon,Eve); + +run boyd.I(Agent,Agent,Simon); +run boyd.R(Agent,Agent,Simon); +run boyd.S(Agent,Agent,Simon); +run boyd.I(Agent,Agent,Simon); +run boyd.R(Agent,Agent,Simon); +run boyd.S(Agent,Agent,Simon);