diff --git a/Scyther Files/KeyExchange.spdl b/Scyther Files/KeyExchange.spdl new file mode 100644 index 0000000000000000000000000000000000000000..c571a444da73efe6e7a33d02b8b65bddc33223a9 --- /dev/null +++ b/Scyther Files/KeyExchange.spdl @@ -0,0 +1,41 @@ + +hashfunction hashed; + +protocol KeyExchange(Monitor,CloudServer) +{ + role Monitor + + { + + fresh MonitorValue : Nonce; + var CloudServerValue : Nonce; + + send_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer)); + recv_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),CloudServer}pk(Monitor)); + send_3(Monitor,CloudServer, hashed(CloudServerValue)); + + claim_Monitor1(Monitor,Niagree); + claim_Monitor2(Monitor,Nisynch); + claim_Monitor3(Monitor, Secret, MonitorValue); + claim_Monitor4(Monitor, Secret, CloudServerValue); + + } + + role CloudServer + + { + + var MonitorValue: Nonce; + fresh CloudServerValue: Nonce; + + recv_1(Monitor,CloudServer,{Monitor,MonitorValue}pk(CloudServer)); + send_2(CloudServer,Monitor, {CloudServerValue,hashed(MonitorValue),CloudServer}pk(Monitor)); + recv_3(Monitor,CloudServer, hashed(CloudServerValue)); + + claim_CloudServer1(CloudServer,Niagree); + claim_CloudServer2(CloudServer,Nisynch); + claim_CloudServer3(CloudServer, Secret, MonitorValue); + claim_CloudServer4(CloudServer, Secret, CloudServerValue); + + } +}