As cryptographic proofs have become essentially unverifiable,
cryptographers have argued in favor of developing techniques that help
tame the complexity of their proofs. Game-based techniques provide a
popular approach in which proofs are structured as sequences of games,
and in which proof steps establish the validity of transitions between
successive games. Code-based techniques form an instance of this
approach that takes a code-centric view of games, and that relies on
programming language theory to justify proof steps. While code-based
techniques contribute to formalize the security statements precisely
and to carry out proofs systematically, typical proofs are so long and
involved that formal verification is necessary to achieve a high
degree of confidence.
Certicrypt is a framework that enables the machine-checked
construction and verification of code-based proofs. The framework is
built upon the general-purpose proof assistant Coq, and draws on many
areas, including probability, complexity, algebra, and semantics of
programming languages. Certicrypt provides certified tools to reason
about the equivalence of probabilistic programs, including a
relational Hoare logic, a theory of observational equivalence,
verified program transformations, and specific game-based techniques
such as reasoning about failure events and lazy sampling.
The talk will present the main components of CertiCrypt and some
of its applications.
Joint work with Benjamin Gregoire, Daniel Hedin, Sylvain Heraud,
Federico Olmedo and Santiago Zanella.
|