Ordering from Satan's menu: a survey of requirements specification for formal analysis of cryptographic protocols
The application of formal methods to cryptographic protocol analysis has been a growth area recently. Most of the attention has been paid to the design of languages for the specification of cryptographic protocols and algorithms for evaluating their ...
A simple framework for real-time cryptographic protocol analysis with compositional proof rules
A real-time process algebra, enhanced with specific constructs for handling cryptographic primitives, is proposed to model cryptographic protocols in a simple way. We show that some security properties, such as authentication and secrecy, can be re-...
Security properties: two agents are sufficient
We consider an important family of cryptographic protocols and a class of security properties which encompasses secrecy and authentication. We show that it is always sufficient to consider a bounded number of agents b (b = 2 for secrecy properties for ...
On the secure implementation of security protocols
We consider the problem of implementing a security protocol in such a manner that secrecy of sensitive data is not jeopardized. Implementation is assumed to take place in the context of an API that provides standard cryptography and communication ...
Building certified libraries for PCC: dynamic storage allocation
Proof-carrying code (PCC) allows a code producer to provide to a host a program along with its formal safety proof. The proof attests to a certain safety policy enforced by the code, and can be mechanically checked by the host. While this language-based ...
Correctness of data representations involving heap data structures
While the semantics of local variables in programming languages is by now well-understood, the semantics of pointer-addressed heap variables is still an outstanding issue. In particular, the commonly assumed relational reasoning principles for data ...
Register allocation by proof transformation
This paper presents a proof-theoretical framework that accounts for the entire process of register allocation--liveness analysis is proof reconstruction (similar to type inference), and register allocation is proof transformation from a proof system ...
Type error slicing in implicitly typed higher-order languages
Previous methods have generally identified the location of a type error as a particular program point or the program subtree rooted at that point. We present a new approach that identifies the location of a type error as a set of program points (a slice)...
Type inference for a distributed π-calculus
We study the type inference problem for a distributed π-calculus with explicit notions of locality and migration. Location types involve names that may be bound in terms. This requires an accurate new approach. We define a notion of principal typing. We ...
Automatic software model checking via constraint logic
This paper proposes the use of constraint logic to perform model checking of imperative, infinite-state programs. We present a semantics-preserving translation from an imperative language with recursive procedures and heap-allocated mutable data ...