Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Manuel Barbosa

2009

Verifying Cryptographic Software Correctness with Respect to Reference Implementations

Authors
Almeida, JB; Barbosa, M; Pinto, JS; Vieira, B;

Publication
FORMAL METHODS FOR INDUSTRIAL CRITICAL SYSTEMS

Abstract
This paper presents techniques developed to check program equivalences in the context of cryptographic software development, where specifications are typically reference implementations. The techniques allow for the integration of interactive proof techniques (required given the difficulty and generality of the results sought) in a verification infrastructure that is capable of discharging many verification conditions automatically. To this end, the difficult results in the verification process (to be proved interactively) are isolated as a set of lemmas. The fundamental notion of natural invariant is used to link the specification level and the interactive proof construction process.

2009

Deductive Verification of Cryptographic Software

Authors
Barbosa, M; Almeida, JB; Pinto, JS; Vieira, B;

Publication
First NASA Formal Methods Symposium - NFM 2009, Moffett Field, California, USA, April 6-8, 2009.

Abstract

2010

A Deductive Verification Platform for Cryptographic Software

Authors
Barbosa, M; Pinto, JS; Filliâtre, JC; Vieira, B;

Publication
ECEASST

Abstract

2023

Fixing and Mechanizing the Security Proof of Fiat-Shamir with Aborts and Dilithium

Authors
Barbosa, M; Barthe, G; Doczkal, C; Don, J; Fehr, S; Grégoire, B; Huang, YH; Hülsing, A; Lee, Y; Wu, X;

Publication
IACR Cryptol. ePrint Arch.

Abstract

2023

Execution Time Program Verification with Tight Bounds

Authors
Silva, AC; Barbosa, M; Florido, M;

Publication
PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, PADL 2023

Abstract
This paper presents a proof system for reasoning about execution time bounds for a core imperative programming language. Proof systems are defined for three different scenarios: approximations of the worst-case execution time, exact time reasoning, and less pessimistic execution time estimation using amortized analysis. We define a Hoare logic for the three cases and prove its soundness with respect to an annotated cost-aware operational semantics. Finally, we define a verification conditions (VC) generator that generates the goals needed to prove program correctness, cost, and termination. Those goals are then sent to the Easycrypt toolset for validation. The practicality of the proof system is demonstrated with an implementation in OCaml of the different modules needed to apply it to example programs. Our case studies are motivated by real-time and cryptographic software.

2021

Mechanized Proofs of Adversarial Complexity and Application to Universal Composability

Authors
Barbosa, M; Barthe, G; Grégoire, B; Koutsos, A; Strub, PY;

Publication
IACR Cryptol. ePrint Arch.

Abstract

  • 15
  • 19