VLDB 2026 Research / reviewers in the wild / expert
José Bacelar Almeida
dblp:66/3456 · also José Carlos Bacelar Almeida
· DBLP profile ↗
25ranked-venue papers
23as first author
7since 2021 · last 2025
0000-0003-0011-7455ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Security and privacy · 15 · 15 first-author · 4 since 2021Software engineering, systems software and programming languages · 7 · 6 first-author · 3 since 2021Theory of computation · 4 · 2 first-author · 2 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Jazzline: Composable CryptoLine Functional Correctness Proofs for Jasmin ProgramsabstractJasmin is a programming language for high-speed and high-assurance cryptography. Correctness proofs of Jasmin programs are typically carried out deductively in EasyCrypt. This allows generality, modularity and composable reasoning, but does not scale well for low-level architecture-specific routines. CryptoLine offers a semi-automatic approach to formally verify algebraically-rich low-level cryptographic routines. CryptoLine proofs are self-contained: they are not integrated into higher-level formal verification developments. This paper shows how to soundly use CryptoLine to discharge subgoals in functional correctness proofs for complex Jasmin programs. We extend Jasmin with annotations and provide an automatic translation into a CryptoLine model, where most complex transformations are certified. We also formalize and implement the automatic extraction of the semantics of a CryptoLine proof to EasyCrypt. Our motivating use-case is the X-Wing hybrid KEM, for which we present the first formally verified implementation. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Lionel Blatter, Gustavo Xavier Delerue Marinho Alves, João Diogo Duarte, Benjamin Grégoire, Tiago Oliveira 0004, Miguel Quaresma, Pierre-Yves Strub, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang |
CCS | 1 |
| 2025 | Leakage-Free Probabilistic Jasmin ProgramsabstractThis paper presents a semantic characterization of leakage-freeness through timing side-channels for Jasmin programs. Our characterization covers probabilistic Jasmin programs that are not constant-time. In addition, we provide a characterization in terms of probabilistic relational Hoare logic and prove the equivalence between both definitions. We also prove that our new characterizations are compositional and relate our new definitions to existing ones from prior work, which could only be applied to deterministic programs. To provide practical evidence, we use the Jasmin framework to develop a rejection sampling algorithm and provide an EasyCrypt proof that ensures the algorithm's implementation is leakage-free while not being constant-time. José Bacelar Almeida, Denis Firsov, Tiago Oliveira 0004, Dominique Unruh |
CPP | 1 |
| 2025 | Faster Verification of Faster Implementations: Combining Deductive and Circuit-Based Reasoning in EasyCryptabstractWe propose a hybrid formal verification approach that combines high-level deductive reasoning and circuit-based reasoning and apply it to highly optimized cryptographic assembly code. Our approach permits scaling up formal verification in two complementary directions: 1) it reduces the proof effort required for low-level functions where the computation logics are obfuscated by the intricate use of architecture-specific instructions and 2) it permits amortizing the effort of proving one implementation by using equivalence checking to propagate the guarantees to other implementations of the same computation using different optimizations or targeting different architectures. We demonstrate our approach via an extension to the EasyCrypt proof assistant and by revisiting formally verified implementations of ML-KEM in Jasmin. As a result, we obtain the first formally verified implementation of ML-KEM that offers performance comparable to the fastest non-verified implementation in x86-64 architectures. José Bacelar Almeida, Gustavo Xavier Delerue Marinho Alves, Manuel Barbosa, Gilles Barthe, Luís Esquível, Vincent Hwang, Tiago Oliveira 0004, Hugo Pacheco 0001, Peter Schwabe, Pierre-Yves Strub |
SP | 1 |
| 2024 | Formally Verifying Kyber - Episode V: Machine-Checked IND-CCA Security and Correctness of ML-KEM in EasyCrypt
José Bacelar Almeida, Santiago Arranz-Olmos, Manuel Barbosa, Gilles Barthe, François Dupressoir, Benjamin Grégoire, Vincent Laporte, Jean-Christophe Léchenet, Cameron Low, Tiago Oliveira 0004, Hugo Pacheco 0001, Miguel Quaresma, Peter Schwabe, Pierre-Yves Strub |
CRYPTO (2) | 1 |
| 2022 | Verified Password Generation from Password Composition Policies
Miguel Grilo, João Campos, João F. Ferreira 0001, José Bacelar Almeida, Alexandra Mendes |
IFM | 4 |
| 2022 | A formal treatment of the role of verified compilers in secure computation
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Hugo Pacheco 0001, Vitor Pereira 0002, Bernardo Portela |
J. Log. Algebraic Methods Program. | 1 |
| 2021 | Machine-checked ZKP for NP relations: Formally Verified Security Proofs and Implementations of MPC-in-the-HeadabstractMPC-in-the-Head (MitH) is a general framework that enables constructing efficient zero-knowledge (ZK) protocols for NP relations from secure multiparty computation (MPC) protocols. In this paper we present the first machine-checked implementations of MitH. José Bacelar Almeida, Manuel Barbosa, Manuel L. Correia, Karim M. El Defrawy, Stéphane Lengrand, Hugo Pacheco 0001, Vitor Pereira 0002 |
CCS | 1 |
| 2020 | The Last Mile: High-Assurance and High-Speed Cryptographic ImplementationsabstractWe develop a new approach for building cryptographic implementations. Our approach goes the last mile and delivers assembly code that is provably functionally correct, protected against side-channels, and as efficient as hand-written assembly. We illustrate our approach using ChaCha20-Poly1305, one of the two ciphersuites recommended in TLS 1.3, and deliver formally verified vectorized implementations which outperform the fastest non-verified code.We realize our approach by combining the Jasmin framework, which offers in a single language features of high-level and low-level programming, and the EasyCrypt proof assistant, which offers a versatile verification infrastructure that supports proofs of functional correctness and equivalence checking. Neither of these tools had been used for functional correctness before. Taken together, these infrastructures empower programmers to develop efficient and verified implementations by "game hopping", starting from reference implementations that are proved functionally correct against a specification, and gradually introducing program optimizations that are proved correct by equivalence checking.We also make several contributions of independent interest, including a new and extensible verified compiler for Jasmin, with a richer memory model and support for vectorized instructions, and a new embedding of Jasmin in EasyCrypt. © 2020 IEEE. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Benjamin Grégoire, Adrien Koutsos, Vincent Laporte, Tiago Oliveira 0004, Pierre-Yves Strub |
SP | 1 |
| 2019 | Machine-Checked Proofs for Cryptographic Standards: Indifferentiability of Sponge and Secure High-Assurance Implementations of SHA-3abstractWe present a high-assurance and high-speed implementation of the SHA-3 hash function. Our implementation is written in the Jasmin programming language, and is formally verified for functional correctness, provable security and timing attack resistance in the EasyCrypt proof assistant. Our implementation is the first to achieve simultaneously the four desirable properties (efficiency, correctness, provable security, and side-channel protection) for a non-trivial cryptographic primitive. Concretely, our mechanized proofs show that: 1) the SHA-3 hash function is indifferentiable from a random oracle, and thus is resistant against collision, first and second preimage attacks; 2) the SHA-3 hash function is correctly implemented by a vectorized x86 implementation. Furthermore, the implementation is provably protected against timing attacks in an idealized model of timing leaks. The proofs include new EasyCrypt libraries of independent interest for programmable random oracles and modular indifferentiability proofs. José Bacelar Almeida, Cécile Baritel-Ruet, Manuel Barbosa, Gilles Barthe, François Dupressoir, Benjamin Grégoire, Vincent Laporte, Tiago Oliveira 0004, Alley Stoughton, Pierre-Yves Strub |
CCS | 1 |
| 2019 | A Machine-Checked Proof of Security for AWS Key Management Service
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Matthew Campagna, Ernie Cohen, Benjamin Grégoire, Vitor Pereira 0002, Bernardo Portela, Pierre-Yves Strub, Serdar Tasiran |
CCS | 1 |
| 2018 | Enforcing Ideal-World Leakage Bounds in Real-World Secret Sharing MPC FrameworksabstractWe give a language-based security treatment of domain-specific languages and compilers for secure multi-party computation, a cryptographic paradigm that enables collaborative computation over encrypted data. Computations are specified in a core imperative language, as if they were intended to be executed by a trusted-third party, and formally verified against an information-flow policy modelling (an upper bound to) their leakage. This allows non-experts to assess the impact of performance-driven authorized disclosure of intermediate values. Specifications are then compiled to multi-party protocols. We formalize protocol security using (distributed) probabilistic information-flow and prove security-preserving compilation: protocols only leak what is allowed by the source policy. The proof exploits a natural but previously missing correspondence between simulation-based cryptographic proofs and (composable) probabilistic non-interference. Finally, we extend our framework to justify leakage cancelling, a domain-specific optimization that allows to first write an efficient specification that fails to meet the allowed leakage upper-bound, and then apply a probabilistic pre-processing that brings leakage to the acceptable range. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Hugo Pacheco 0001, Vitor Pereira 0002, Bernardo Portela |
CSF | 1 |
| 2018 | Teaching how to program using automated assessment and functional glossy games (experience report)abstractOur department has long been an advocate of the functional-first school of programming and has been teaching Haskell as a first language in introductory programming course units for 20 years. Although the functional style is largely beneficial, it needs to be taught in an enthusiastic and captivating way to fight the unusually high computer science drop-out rates and appeal to a heterogeneous population of students. This paper reports our experience of restructuring, over the last 5 years, an introductory laboratory course unit that trains hands-on functional programming concepts and good software development practices. We have been using game programming to keep students motivated, and following a methodology that hinges on test-driven development and continuous bidirectional feedback . We summarise successes and missteps, and how we have learned from our experience to arrive at a model for comprehensive and interactive functional game programming assignments and a general functionally-powered automated assessment platform , that together provide a more engaging learning experience for students. In our experience, we have been able to teach increasingly more advanced functional programming concepts while improving student engagement. José Bacelar Almeida, Alcino Cunha, Nuno Macedo 0001, Hugo Pacheco 0001, José Proença |
Proc. ACM Program. Lang. | 1 |
| 2017 | Jasmin: High-Assurance and High-Speed CryptographyabstractJasmin is a framework for developing high-speed and high-assurance cryptographic software. The framework is structured around the Jasmin programming language and its compiler. The language is designed for enhancing portability of programs and for simplifying verification tasks. The compiler is designed to achieve predictability and efficiency of the output code (currently limited to x64 platforms), and is formally verified in the Coq proof assistant. Using the supercop framework, we evaluate the Jasmin compiler on representative cryptographic routines and conclude that the code generated by the compiler is as efficient as fast, hand-crafted, implementations. Moreover, the framework includes highly automated tools for proving memory safety and constant-time security (for protecting against cache-based timing attacks). We also demonstrate the effectiveness of the verification tools on a large set of cryptographic routines. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Arthur Blot, Benjamin Grégoire, Vincent Laporte, Tiago Oliveira 0004, Hugo Pacheco 0001, Pierre-Yves Strub |
CCS | 1 |
| 2017 | A Fast and Verified Software Stack for Secure Function EvaluationabstractWe present a high-assurance software stack for secure function evaluation (SFE). Our stack consists of three components: i. a verified compiler (CircGen) that translates C programs into Boolean circuits; ii. a verified implementation of Yao's SFE protocol based on garbled circuits and oblivious transfer; and iii. transparent application integration and communications via FRESCO, an open-source framework for secure multiparty computation (MPC). CircGen is a general purpose tool that builds on CompCert, a verified optimizing compiler for C. It can be used in arbitrary Boolean circuit-based cryptography deployments. The security of our SFE protocol implementation is formally verified using EasyCrypt, a tool-assisted framework for building high-confidence cryptographic proofs, and it leverages a new formalization of garbled circuits based on the framework of Bellare, Hoang, and Rogaway (CCS 2012). We conduct a practical evaluation of our approach, and conclude that it is competitive with state-of-the-art (unverified) approaches. Our work provides concrete evidence of the feasibility of building efficient, verified, implementations of higher-level cryptographic systems. All our development is publicly available. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, François Dupressoir, Benjamin Grégoire, Vincent Laporte, Vitor Pereira 0002 |
CCS | 1 |
| 2016 | Verifiable Side-Channel Security of Cryptographic Implementations: Constant-Time MEE-CBC
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, François Dupressoir |
FSE | 1 |
| 2016 | Verifying Constant-Time Implementations
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, François Dupressoir, Michael Emmi |
USENIX Security Symposium | 1 |
| 2016 | On the Formalization of Some Results of Context-Free Language Theory
Marcus V. M. Ramos, Ruy J. G. B. de Queiroz, Nelma Moreira, José Bacelar Almeida |
WoLLIC | 4 |
| 2014 | CAOVerif: An open-source deductive verification platform for cryptographic software implementations
José Bacelar Almeida, Manuel Barbosa, Jean-Christophe Filliâtre, Jorge Sousa Pinto, Bárbara Vieira |
Sci. Comput. Program. | 1 |
| 2013 | Certified computer-aided cryptography: efficient provably secure machine code from high-level implementationsabstractWe present a computer-aided framework for proving concrete security bounds for cryptographic machine code implementations. The front-end of the framework is an interactive verification tool that extends the EasyCrypt framework to reason about relational properties of C-like programs extended with idealised probabilistic operations in the style of code-based security proofs. The framework also incorporates an extension of the CompCert certified compiler to support trusted libraries providing complex arithmetic calculations or instantiating idealized components such as sampling operations. This certified compiler allows us to carry to executable code the security guarantees established at the high-level, and is also instrumented to detect when compilation may interfere with side-channel countermeasures deployed in source code. José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, François Dupressoir |
CCS | 1 |
| 2013 | Formal verification of side-channel countermeasures using self-composition
José Bacelar Almeida, Manuel Barbosa, Jorge Sousa Pinto, Bárbara Vieira |
Sci. Comput. Program. | 1 |
| 2012 | Full proof cryptography: verifiable compilation of efficient zero-knowledge protocolsabstractDevelopers building cryptography into security-sensitive applications face a daunting task. Not only must they understand the security guarantees delivered by the constructions they choose, they must also implement and combine them correctly and efficiently. Cryptographic compilers free developers from this task by turning high-level specifications of security goals into efficient implementations. Yet, trusting such tools is hard as they rely on complex mathematical machinery and claim security properties that are subtle and difficult to verify. In this paper we present ZKCrypt, an optimizing cryptographic compiler achieving an unprecedented level of assurance without sacrificing practicality for a comprehensive class of cryptographic protocols, known as Zero-Knowledge Proofs of Knowledge. The pipeline of ZKCrypt integrates purpose-built verified compilers and verifying compilers producing formal proofs in the CertiCrypt framework. By combining the guarantees delivered by each stage, ZKCrypt provides assurance that the output implementation securely realizes the abstract proof goal given as input. We report on the main characteristics of ZKCrypt, highlight new definitions and concepts at its foundations, and illustrate its applicability through a representative example of an anonymous credential system José Bacelar Almeida, Manuel Barbosa, Endre Bangerter, Gilles Barthe, Stephan Krenn, Santiago Zanella-Béguelin |
CCS | 1 |
| 2010 | A Certifying Compiler for Zero-Knowledge Proofs of Knowledge Based on Sigma-Protocols
José Bacelar Almeida, Endre Bangerter, Manuel Barbosa, Stephan Krenn, Ahmad-Reza Sadeghi, Thomas Schneider 0003 |
ESORICS | 1 |
| 2010 | Partial Derivative Automata Formalized in Coq
José Bacelar Almeida, Nelma Moreira, David Pereira, Simão Melo de Sousa |
CIAA | 1 |
| 2009 | Verifying Cryptographic Software Correctness with Respect to Reference Implementations
José Bacelar Almeida, Manuel Barbosa, Jorge Sousa Pinto, Bárbara Vieira |
FMICS | 1 |
| 2004 | Bounded Version Vectors
José Bacelar Almeida, Paulo Sérgio Almeida, Carlos Baquero |
DISC | 1 |