Section: Overall Objectives

Project overview

The overall goal of the Celtique  project is to improve the security and reliability of software with semantic certification that attests to its well-behavedness. The semantic analyses extract approximate but sound descriptions of software behaviour from which a proof of security can be constructed. The analyses of relevance include numerical data flow analysis, control flow analysis for higher-order languages, alias and points-to analysis for heap structure manipulation, and various kinds of information flow analysis.

To achieve this goal, the project conducts work on improving semantic analysis techniques, as well as work on using proof assistants such as Coq to develop and prove properties of these analyses. We are applying such techniques to a variety of source languages, including Java, C, and JavaScript. We also study how these techniques apply to low-level languages, and how they can be combined with certified compilation.

We target three application domains: Java software for small devices (in particular smart cards and mobile telephones), embedded C programs, and web applications.

Celtique  is a joint project with the CNRS, the University of Rennes 1 and ENS Rennes.