Cryptographic Verification by Typing for a Sample Protocol Implementation

Cédric Fournet, Karthikeyan Bhargavan, Andrew D. Gordon

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

Type systems are effective tools for verifying the security of cryptographic protocols and implementations. They provide automation, modularity and scalability, and have been applied to large protocols. In this tutorial, we illustrate the use of types for verifying authenticity properties, first using a symbolic model of cryptography, then relying on a concrete computational assumption.

1. We introduce refinement types (that is, types carrying formulas to record invariants) for programs written in F# and verified by F7, an SMT-based type checker.

2. We describe a sample authenticated RPC protocol, we implement it in F#, and we specify its security against active adversaries.

3. We develop a sample symbolic library, we present its main cryptographic invariants, and we show that our RPC implementation is perfectly secure when linked to this symbolic library.

4. We implement the same library using concrete cryptographic primitives, we make a standard computational assumption, and we show that our RPC implementation is also secure with overwhelming probability when linked to this concrete library.
Original languageEnglish
Title of host publicationFoundations of Security Analysis and Design VI
Subtitle of host publicationFOSAD Tutorial Lectures
PublisherSpringer Berlin Heidelberg
Number of pages35
ISBN (Electronic)978-3-642-23082-0
ISBN (Print)978-3-642-23081-3
Publication statusPublished - 2011


Dive into the research topics of 'Cryptographic Verification by Typing for a Sample Protocol Implementation'. Together they form a unique fingerprint.

Cite this