Publication

A deductive verification platform for cryptographic software

View document

Bibliographic Details
Summary:In this paper we describe a deductive verification platform for the CAO language. CAO is a domain-specific language for cryptography. We show that this language presents interesting challenges for formal verification, not only in the rich mathematical type system that it introduces, but also in the cryptography-oriented language constructions that it offers. We describe how we tackle these problems, and also demonstrate that, by relying on the Jessie plug-in included in the Frama-C framework, the development time of such a complex verification tool could be greatly reduced. We base our presentation on real-world examples of CAO code, extracted from the open-source code of the NaCl cryptographic library, and illustrate how various cryptography-relevant security properties can be verified.
Main Authors:Barbosa, Manuel
Other Authors:Pinto, Jorge Sousa; Filliâtre, Jean-Christophe; Vieira, Bárbara Isabel Sousa
Subject:Formal program verification Cryptography
Year:2010
Country:Portugal
Document type:article
Access type:open access
Associated institution:Universidade do Minho
Language:English
Origin:RepositóriUM - Universidade do Minho
Description
Summary:In this paper we describe a deductive verification platform for the CAO language. CAO is a domain-specific language for cryptography. We show that this language presents interesting challenges for formal verification, not only in the rich mathematical type system that it introduces, but also in the cryptography-oriented language constructions that it offers. We describe how we tackle these problems, and also demonstrate that, by relying on the Jessie plug-in included in the Frama-C framework, the development time of such a complex verification tool could be greatly reduced. We base our presentation on real-world examples of CAO code, extracted from the open-source code of the NaCl cryptographic library, and illustrate how various cryptography-relevant security properties can be verified.