The Cryptographic Abstract Machine

The Cryptographic Abstract Machine is an executional model of cryptographic actions, independent of the concrete cryptographic procedures employed, even of the abstraction level of the underlying model of cryptography. This is motivated both by a theoretical purpose of relating the dynamics of protocol executions at different levels of abstraction, and by a practical purpose of enabling automatic generation of provably correct code implementing protocol roles from high level specifications. Here we define the CrAM and show how slightly refurbished message patterns of [RRS03] can be compiled to CrAM code both for analysis and for creation of messages, and prove the correctness and completeness of that compilation.

[1]  Tatsuaki Okamoto,et al.  Advances in Cryptology — ASIACRYPT 2000 , 2000, Lecture Notes in Computer Science.

[2]  Bogdan Warinschi,et al.  Completeness Theorems for the Abadi-Rogaway Language of Encrypted Expressions , 2004, J. Comput. Secur..

[3]  John C. Mitchell,et al.  A compositional logic for protocol correctness , 2001, Proceedings. 14th IEEE Computer Security Foundations Workshop, 2001..

[4]  Gavin Lowe,et al.  Breaking and Fixing the Needham-Schroeder Public-Key Protocol Using FDR , 1996, Softw. Concepts Tools.

[5]  Charles Wallace,et al.  The semantics of the C++ programming language , 1995, Specification and validation methods.

[6]  Joshua D. Guttman,et al.  Mixed strand spaces , 1999, Proceedings of the 12th IEEE Computer Security Foundations Workshop.

[7]  Mihir Bellare,et al.  Relations among Notions of Security for Public-Key Encryption Schemes , 1998, IACR Cryptol. ePrint Arch..

[8]  Dean Rosenzweig,et al.  Privacy, Abstract Encryption and Protocols: An ASM Model - Part I , 2003, Abstract State Machines.

[9]  Egon Börger,et al.  Correctness of Compiling Occam to Transputer Code , 1996, Comput. J..

[10]  Joshua D. Guttman,et al.  Strand Spaces: Proving Security Protocols Correct , 1999, J. Comput. Secur..

[11]  G. Lowe,et al.  Breaking and Fixing the Needham-Schroeder Public-Key Protocol using CSP and FDR , 1996 .

[12]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[13]  Ronald L. Rivest,et al.  The MD5 Message-Digest Algorithm , 1992, RFC.

[14]  John C. Mitchell,et al.  Relating strands and multiset rewriting for security protocol analysis , 2000, Proceedings 13th IEEE Computer Security Foundations Workshop. CSFW-13.

[15]  Elvinia Riccobene,et al.  A Realistic Environment for Crypto-Protocol Analyses by ASMs , 1998, Workshop on Abstract State Machines.

[16]  James K. Huggins,et al.  The Static and Dynamic Semantics of C , 2000 .

[17]  Egon Börger Specification and validation methods , 1995 .

[18]  Martin Odersky,et al.  Abstract State Machines - Theory and Applications , 2002, Lecture Notes in Computer Science.

[19]  Bogdan Warinschi,et al.  A computational analysis of the Needham-Schroeder-(Lowe) protocol , 2003, 16th IEEE Computer Security Foundations Workshop, 2003. Proceedings..

[20]  Gerhard Goos,et al.  Verifying Compilers and ASMs , 2000, Abstract State Machines.

[21]  Egon Börger,et al.  Java and the Java Virtual Machine: Definition, Verification, Validation , 2001 .

[22]  Yuri Gurevich,et al.  The Semantics of the C Programming Language , 1992, CSL.

[23]  Angelo Gargantini,et al.  Abstract State Machines 2003 , 2003, Lecture Notes in Computer Science.

[24]  Martín Abadi,et al.  Reconciling Two Views of Cryptography (The Computational Soundness of Formal Encryption)* , 2000, Journal of Cryptology.

[25]  Egon Börger,et al.  The WAM - Definition and Compiler Correctness , 1995, Logic Programming: Formal Methods and Practical Applications.

[26]  Chanathip Namprempre,et al.  Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm , 2000, ASIACRYPT.

[27]  Elvinia Riccobene,et al.  Formal Analysis of the Kerberos Authentication System , 1997, J. Univers. Comput. Sci..

[28]  Air Force Air Force Materiel Command Hq FIPS-PUB-180-1 , 1995 .

[29]  F. Javier Thayer Fábrega,et al.  Strand spaces: proving security protocols correct , 1999 .

[30]  Prof. Dr. Robert F. Stärk,et al.  Java and the Java Virtual Machine , 2001, Springer Berlin Heidelberg.

[31]  Christoph Beierle,et al.  Logic Programming: Formal Methods and Practical Applications , 1994 .

[32]  Lawrence C. Paulson,et al.  Proving security protocols correct , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[33]  John C. Mitchell,et al.  A Compositional Logic for Proving Security Properties of Protocols , 2003, J. Comput. Secur..

[34]  Hugo Krawczyk,et al.  Advances in Cryptology - CRYPTO '98 , 1998 .

[35]  Alex K. Simpson,et al.  Computational Adequacy in an Elementary Topos , 1998, CSL.