cpsa-3.3.0: tst/dh_test.scm
(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman) (bound 20))
(comment
(defprotocol foo diffie-hellman
(defrole init
(vars (h base) (k akey) (x expn))
(trace
(send (enc (exp (gen) x) k))
(recv (enc (exp h x) k))
)
(non-orig (invk k))
(uniq-gen x)
)
)
(defskeleton foo
(vars (h base))
(defstrand init 2 (h h)))
(defprotocol bar diffie-hellman
(defrole init
(vars (h base) (x z expn))
(trace
(send (exp (gen) x))
(recv (exp (gen) (mul x z)))
)
(uniq-gen x)
)
)
(defskeleton bar
(vars (x expn))
(defstrand init 2 (x x)))
(defprotocol bar2 diffie-hellman
(defrole init
(vars (h base) (x z expn))
(trace
(send (exp h x))
(recv (exp (gen) x))
)
(uniq-gen x)
)
)
(defskeleton bar2
(vars (x expn))
(defstrand init 2 (x x)))
(defprotocol baz diffie-hellman
(defrole init
(vars (h base) (x z expn) (k akey))
(trace
(send (enc (exp (gen) x) k))
(recv (enc (exp (gen) (mul x z)) k))
)
(uniq-gen x)
(non-orig (invk k))
)
)
(defskeleton baz
(vars (x expn))
(defstrand init 2 (x x)))
(defprotocol bazar diffie-hellman
(defrole init
(vars (h base) (t text) (x z expn) (k skey))
(trace
(send (enc (exp (gen) (mul x z)) k))
(recv (exp (gen) x))
)
(uniq-orig t)
(pen-non-orig k)
(uniq-gen x)
)
(defrole revealer
(vars (m mesg) (k skey))
(trace
(recv (enc m k))
(send k)))
)
(defskeleton bazar
(vars (k skey))
(defstrand init 2 (k k)))
(defprotocol foo2 diffie-hellman
(defrole init
(vars (h base) (x expn))
(trace
(send (cat (exp (gen) x)
(enc "foo" (exp h x))))
(recv (exp h x)))
(uniq-gen x)))
(defskeleton foo2
(vars )
(defstrand init 2))
)
(defprotocol foo3 diffie-hellman
(defrole resp
(vars (h base))
(trace (recv h)))
(defrole init
(vars (x expn))
(trace (send (exp (gen) x)))))
(defskeleton foo3
(vars (x expn))
(defstrand resp 1 (h (exp (gen) x)))
(non-orig x))