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

2010

A Certifying Compiler for Zero-Knowledge Proofs of Knowledge Based on Sigma-Protocols

Authors
Almeida, JB; Bangerter, E; Barbosa, M; Krenn, S; Sadeghi, AR; Schneider, T;

Publication
IACR Cryptology ePrint Archive

Abstract

2012

Full Proof Cryptography: Verifiable Compilation of Efficient Zero-Knowledge Protocols

Authors
Almeida, JB; Barbosa, M; Bangerter, E; Barthe, G; Krenn, S; Béguelin, SZ;

Publication
IACR Cryptology ePrint Archive

Abstract

2010

A Certifying Compiler for Zero-Knowledge Proofs of Knowledge Based on Sigma-Protocols

Authors
Almeida, JB; Bangerter, E; Barbosa, M; Krenn, S; Sadeghi, AR; Schneider, T;

Publication
COMPUTER SECURITY-ESORICS 2010

Abstract
Zero-knowledge proofs of knowledge (ZK-PoK) are important building blocks for numerous cryptographic applications. Although ZK-PoK have a high potential impact, their real world deployment is typically hindered by their significant complexity compared to other (non-interactive) crypto primitives. Moreover, their design and implementation are time-consuming and error-prone. We contribute to overcoming these challenges as follows: We present a comprehensive specification language and a compiler for ZK-PoK protocols based on Sigma-protocols. The compiler allows the fully automatic translation of an abstract description of a proof goal into an executable implementation. Moreover, the compiler overcomes various restrictions of previous approaches, e.g., it supports the important class of exponentiation homomorphisms with hidden-order co-domain, needed for privacy-preserving applications such as DAA. Finally, our compiler is certifying, in the sense that it automatically produces a formal proof of the soundness of the compiled protocol for a large class of protocols using the Isabelle/HOL theorem prover.

2012

Full proof cryptography: Verifiable compilation of efficient zero-knowledge protocols

Authors
Almeida, JB; Barbosa, M; Bangerter, E; Barthe, G; Krenn, S; Beguelin, SZ;

Publication
Proceedings of the ACM Conference on Computer and Communications Security

Abstract
Developers 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. Copyright © 2012 ACM.

2005

Recursion patterns and time-analysis

Authors
Barbosa, A; Cunha, A; Pinto, JS;

Publication
ACM SIGPLAN NOTICES

Abstract
This paper explores sonic ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds. and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.

2010

Deductive verification of cryptographic software

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

Publication
Innovations in Systems and Software Engineering

Abstract
We apply state-of-the art deductive verification tools to check security-relevant properties of cryptographic software, including safety, absence of error propagation, and correctness with respect to reference implementations. We also develop techniques to help us in our task, focusing on methods oriented towards increased levels of automation, in scenarios where there are clear obvious limits to such automation. These techniques allow us to integrate automatic proof tools with an interactive proof assistant, where the latter is used off-line to prove once-and-for-all fundamental lemmas about properties of programs. The techniques developed have independent interest for practical deductive verification in general. © 2010 Springer-Verlag London Limited.

  • 14
  • 19