From ee3b996ff757c69de1e773ee58afc8a04a6aed27 Mon Sep 17 00:00:00 2001 From: gijs Date: Wed, 18 May 2005 09:47:06 +0000 Subject: [PATCH] Adding two variants of splice as, based on the version in spdl, but using normalized role names. --- spdl/SPORE/splice-as-hc.spdl | 75 ++++++++++++++++++++++++++++++++++++ spdl/SPORE/splice-as.spdl | 75 ++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 spdl/SPORE/splice-as-hc.spdl create mode 100644 spdl/SPORE/splice-as.spdl diff --git a/spdl/SPORE/splice-as-hc.spdl b/spdl/SPORE/splice-as-hc.spdl new file mode 100644 index 0000000..2581d72 --- /dev/null +++ b/spdl/SPORE/splice-as-hc.spdl @@ -0,0 +1,75 @@ +# Hwang and Chen Modified SPLICE/AS +# +# Modelled after the description in the SPORE library +# http://www.lsv.ens-cachan.fr/spore/spliceas2.html +# + + +usertype TimeStamp, LifeTime; + +const pk: Function; +secret sk: Function; +inversekeys (pk,sk); +const inc,dec: Function; +inversekeys (inc,dec); + +protocol spliceAS(I,R,S) +{ + role I + { + const N1,N2: Nonce; + const T: TimeStamp; + const L: LifeTime; + + send_1(I,S, I, R, N1 ); + read_2(S,I, S, {S, I, N1, R, pk(R)}sk(S) ); + send_3(I,R, I, R, {I, T, L, {N2}pk(R)}sk(R) ); + read_6(R,I, R, I, {R, {N2}inc}pk(I) ); + + claim_7(I, Secret, N2); + claim_9(I, Niagree); + claim_10(I, Nisynch); + } + + role S + { + var N1,N3: Nonce; + + read_1(I,S, I, R, N1 ); + send_2(S,I, S, {S, I, N1, R, pk(R)}sk(S) ); + read_4(R,S, R, I, N3 ); + send_5(S,R, S, {S, R, N3, I, pk(I)}sk(S) ); + } + + role R + { + const N3: Nonce; + var N2: Nonce; + var T: TimeStamp; + var L: LifeTime; + + var ni: Nonce; + const nr: Nonce; + + read_3(I,R, I, R, {I, T, L, {N2}pk(R)}sk(I) ); + send_4(R,S, R, I, N3 ); + read_5(S,R, S, {S, R, N3, I, pk(I)}sk(S) ); + send_6(R,I, R, I, {R, {N2}inc}pk(I) ); + + claim_8(R, Secret, N2); + claim_11(R, Niagree); + claim_12(R, Nisynch); + } +} + +const Al,Bo,Eve: Agent; + +untrusted Eve; +const ne: Nonce; +compromised sk(Eve); + +run spliceAS.I(Agent,Agent,Agent); +run spliceAS.R(Agent,Agent,Agent); +run spliceAS.S(Agent,Agent,Agent); + + diff --git a/spdl/SPORE/splice-as.spdl b/spdl/SPORE/splice-as.spdl new file mode 100644 index 0000000..9dad516 --- /dev/null +++ b/spdl/SPORE/splice-as.spdl @@ -0,0 +1,75 @@ +# SPLICE/AS +# +# Modelled after the description in the SPORE library +# http://www.lsv.ens-cachan.fr/spore/spliceas.html +# + + +usertype TimeStamp, LifeTime; + +const pk: Function; +secret sk: Function; +inversekeys (pk,sk); +const inc,dec: Function; +inversekeys (inc,dec); + +protocol spliceAS(I,R,S) +{ + role I + { + const N1,N2: Nonce; + const T: TimeStamp; + const L: LifeTime; + + send_1(I,S, I, R, N1 ); + read_2(S,I, S, {S, I, N1, pk(R)}sk(S) ); + send_3(I,R, I, R, {I, T, L, {N2}pk(R)}sk(R) ); + read_6(R,I, R, I, {R, {N2}inc}pk(I) ); + + claim_7(I, Secret, N2); + claim_9(I, Niagree); + claim_10(I, Nisynch); + } + + role S + { + var N1,N3: Nonce; + + read_1(I,S, I, R, N1 ); + send_2(S,I, S, {S, I, N1, pk(R)}sk(S) ); + read_4(R,S, R, I, N3 ); + send_5(S,R, S, {S, R, N3, pk(I)}sk(S) ); + } + + role R + { + const N3: Nonce; + var N2: Nonce; + var T: TimeStamp; + var L: LifeTime; + + var ni: Nonce; + const nr: Nonce; + + read_3(I,R, I, R, {I, T, L, {N2}pk(R)}sk(I) ); + send_4(R,S, R, I, N3 ); + read_5(S,R, S, {S, R, N3, pk(I)}sk(S) ); + send_6(R,I, R, I, {R, {N2}inc}pk(I) ); + + claim_8(R, Secret, N2); + claim_11(R, Niagree); + claim_12(R, Nisynch); + } +} + +const Al,Bo,Eve: Agent; + +untrusted Eve; +const ne: Nonce; +compromised sk(Eve); + +run spliceAS.I(Agent,Agent,Agent); +run spliceAS.R(Agent,Agent,Agent); +run spliceAS.S(Agent,Agent,Agent); + +