Logical relations for encryption
- 29 August 2005
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. 11 (4) , 256-269
- https://doi.org/10.1109/csfw.2001.930151
Abstract
The theory of relational parametricity and its logical relations proof technique are powerful tools for reasoning about information hiding in the polymorphic λ-calculus. We investigate the application of these tools in the security domain by defining a cryptographic λ-calculus - an extension of the standard simply typed λ-calculus with primitives for encryption, decryption, and key generation - and introducing syntactic logical relations (in the style of Pitts and Birkedal-Harper) for this calculus that can be used to prove behavioral equivalences between programs that use encryption.We illustrate the framework by encoding some simple security protocols, including the Needham-Schroeder public-key protocol. We give a natural account of the well-known attack on the original protocol and a straightforward proof that the improved variant of the protocol is secure.Keywords
This publication has 16 references indexed in Scilit:
- Authenticity by typing for security protocolsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Relational Interpretations of Recursive Types in an Operational SettingInformation and Computation, 1999
- Proof techniques for cryptographic processesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1999
- A Calculus for Cryptographic Protocols: The Spi CalculusInformation and Computation, 1999
- The SLam calculusPublished by Association for Computing Machinery (ACM) ,1998
- An attack on the Needham-Schroeder public-key authentication protocolInformation Processing Letters, 1995
- Formal verification of cryptographic protocols: A surveyPublished by Springer Nature ,1995
- On the security of public key protocolsIEEE Transactions on Information Theory, 1983
- Using encryption for authentication in large networks of computersCommunications of the ACM, 1978
- Protection in programming languagesCommunications of the ACM, 1973