“…This approach has been followed in modeling many protocols (e.g., [3,4,9,13,18,19,37,39]). Techniques from the programming-language literature, such as typing, have been employed for proofs, sometimes with substantial extensions or variations; specialpurpose techniques have also been developed and exploited, as in the tool ProVerif on which we rely below (e.g., [2,10,23,24,28,33,36]).…”