packages feed

cpsa-4.4.1: tst/disclosure.scm

;;; Here's a protocol where there are two ways for the init strand to
;;; be satisfied.  The responder can use the key to extract that
;;; nonce.  Or else the adversary can get the key from the init's last
;;; send, and use that in *the next* session to extract the nonce
;;; without the responder's help.

;;; This is a simplest example in which CPSA needs to introduce a
;;; listener to explore the possibility that the adversary can do the
;;; decryption.  It certainly illustrates that the generalization
;;; steps that discard listeners are a natural part of finding the
;;; minimal shapes.

(herald disclosure)

(defprotocol disc basic
  (defrole init
    (vars (a b name) (k skey) (n text))
    (trace
     (send (enc a b n k))
     (recv n)
     (send k))
    (pen-non-orig k))

  (defrole resp
    (vars (a b name) (k skey) (n text))
    (trace
     (recv (enc a b n k))
     (send n))))

(defskeleton disc
  (vars (n text))
  (defstrand init 2 (n n))
  (uniq-orig n))