Software-based countermeasures provide effective mitigation against side-channel attacks, often with minimal efficiency and deployment overheads. Their effectiveness is often amenable to rigorous analysis: specifically, several popular countermeasures can be formalized as information flow policies, and correct implementation of the...
-
July 9, 2018 (v1)Conference paperUploaded on: December 4, 2022
-
October 6, 2015 (v1)Conference paper
International audience
Uploaded on: March 25, 2023 -
August 22, 2021 (v1)Journal article
We define a continuation-passing style (CPS) translation for a typed-calculus with probabilistic choice, unbounded recursion, and a tick operator-for modeling cost. The target language is a (non-probabilistic)-calculus, enriched with a type of extended positive reals and a fixpoint operator. We then show that applying the CPS transform of an...
Uploaded on: December 4, 2022 -
December 1, 2019 (v1)Journal article
We define a call-by-value variant of Gödel 's System T with references, and equip it with a linear dependent type and effect system, called d that can estimate the complexity of programs, as a function of the size of their inputs. We prove that the type system is intentionally sound, in the sense that it over-approximates the complexity of...
Uploaded on: December 4, 2022 -
November 15, 2021 (v1)Conference paper
Many security properties of interest are captured by instrumented semantics that model the functional behavior and the leakage of programs. For several important properties, including cryptographic constant-time (CCT), leakage models are sufficiently abstract that one can define instrumented semantics for high-level and low-level programs. One...
Uploaded on: December 4, 2022 -
November 7, 2022 (v1)Conference paper
International audience
Uploaded on: February 22, 2023 -
January 18, 2017 (v1)Conference paper
Couplings are a powerful mathematical tool for reasoning about pairs of probabilistic processes. Recent developments in formal verification identify a close connection between couplings and pRHL, a relational program logic motivated by applications to provable security, enabling formal construction of couplings from the probability theory...
Uploaded on: February 28, 2023 -
April 25, 2020 (v1)Conference paper
Logical relations are one among the most powerful techniques in the theory of programming languages, and have been used extensively for proving properties of a variety of higher-order calculi. However, there are properties that cannot be immediately proved by means of logical relations, for instance program continuity and differen-tiability in...
Uploaded on: December 4, 2022 -
August 29, 2022 (v1)Journal article
We study the nature of applicative bisimilarity in λ-calculi endowed with operators for sampling from contin- uous distributions. On the one hand, we show that bisimilarity, logical equivalence, and testing equivalence all coincide with contextual equivalence when real numbers can be manipulated through continuous functions only. The key...
Uploaded on: February 22, 2023 -
September 16, 2022 (v1)Publication
In this paper, we develop semantic foundations for precise cost analyses of programs running on architectures with multi-scalar pipelines and in-order execution with branch prediction. This model is then used to prove the correction of an automatic cost analysis we designed. The analysis is implemented and evaluated in an extant framework for...
Uploaded on: December 3, 2022 -
July 5, 2016 (v1)Conference paper
Over the last decade, differential privacy has achieved widespread adoption within the privacy community. Moreover, it has attracted significant attention from the verification community, resulting in several successful tools for formally proving differential privacy. Although their technical approaches vary greatly, all existing tools rely on...
Uploaded on: February 28, 2023 -
November 15, 2021 (v1)Conference paper
In this paper we enhance the EasyCrypt proof assistant to reason about computational complexity of adversaries. The key technical tool is a Hoare logic for reasoning about computational complexity (execution time and oracle calls) of adversarial computations. Our Hoare logic is built on top of the module system used by EasyCrypt for modeling...
Uploaded on: December 3, 2022 -
June 25, 2019 (v1)Conference paper
Code-based game-playing is a popular methodology for proving security of cryptographic constructions and side-channel countermeasures. This methodology relies on treating cryptographic proofs as an instance of relational program verification (between probabilistic programs), and decomposing the latter into a series of elementary relational...
Uploaded on: December 4, 2022 -
March 27, 2023 (v1)Publication
In this paper we enhance the EasyCrypt proof assistant to reason about computational complexity of ad-versaries. The key technical tool is a Hoare logic for reasoning about computational complexity (executiontime and oracle calls) of adversarial computations. Our Hoare logic is built on top of the module system usedby EasyCrypt for modeling...
Uploaded on: March 31, 2023 -
July 12, 2016 (v1)Conference paper
We propose a probabilistic Hoare logic aHL based on the union bound, a tool from basic probability theory. While the union bound is simple, it is an extremely common tool for analyzing randomized algorithms. In formal verification terms, the union bound allows flexible and compos-itional reasoning over possible ways an algorithm may go wrong....
Uploaded on: February 28, 2023 -
November 7, 2022 (v1)Conference paper
Cryptographic constant-time (CT) is a popular programming discipline used by cryptographic libraries to protect themselves against timing attacks. The CT discipline aims to enforce that program execution does not leak secrets, where leakage is defined by a formal leakage model. In practice, different leakage models coexist, sometimes even...
Uploaded on: December 3, 2022 -
December 2017 (v1)Journal article
Program sensitivity, also known as Lipschitz continuity, describes how small changes in a program's input lead to bounded changes in the output. We propose an average notion of program sensitivity for probabilistic programs-expected sensitivity-that averages a distance function over a probabilistic coupling of two output distributions from two...
Uploaded on: December 4, 2022 -
May 7, 2017 (v1)Conference paper
Proof by coupling is a classical proof technique for establishing probabilistic properties of two probabilistic processes, like stochastic dominance and rapid mixing of Markov chains. More recently, couplings have been investigated as a useful abstraction for formal reasoning about relational properties of probabilistic programs, in particular...
Uploaded on: February 28, 2023 -
February 23, 2021 (v1)Journal article
We propose a new approach for building efficient, provably secure, and practically hardened implementations of masked algorithms. Our approach is based on a Domain Specific Language in which users can write efficient assembly implementations and fine-grained leakage models. The latter are then used as a basis for formal verification, allowing...
Uploaded on: December 3, 2022 -
October 15, 2018 (v1)Conference paper
Symbolic methods have been used extensively for proving security of cryptographic protocols in the Dolev-Yao model, and more recently for proving security of cryptographic primitives and constructions in the computational model. However, existing methods for proving security of cryptographic constructions in the computational model often...
Uploaded on: December 4, 2022 -
2015 (v1)Conference paper
Probabilistic coupling is a powerful tool for analyzing prob-abilistic processes. Roughly, coupling two processes requires finding an appropriate witness process that characterizes both processes in the same probability space. Applications of coupling include reasoning about convergence of distributions, and stochastic dominance—a probabilistic...
Uploaded on: February 28, 2023 -
April 14, 2018 (v1)Conference paper
Research on deductive verification of probabilistic programs has considered expectation-based logics, where pre-and post-conditions are real-valued functions on states, and assertion-based logics, where pre-and post-conditions are boolean predicates on state distributions. Both approaches have developed over nearly four decades, but they have...
Uploaded on: December 4, 2022 -
October 24, 2016 (v1)Conference paper
Differential privacy is a promising formal approach to data privacy, which provides a quantitative bound on the privacy cost of an algorithm that operates on sensitive information. Several tools have been developed for the formal verification of differentially private algorithms, including program logics and type systems. However, these tools...
Uploaded on: February 28, 2023 -
January 2020 (v1)Journal article
Timing side-channels are arguably one of the main sources of vulnerabilities in cryptographic implementations. One effective mitigation against timing side-channels is to write programs that do not perform secret-dependent branches and memory accesses. This mitigation, known as "cryptographic constant-time", is adopted by several popular...
Uploaded on: December 4, 2022 -
April 2015 (v1)Conference paper
In this paper, we study the problem of automatically verifying higher-order masking countermeasures. This problem is important in practice, since weaknesses have been discovered in schemes that were thought secure, but is inherently exponential: for t-order masking, it involves proving that every subset of t intermediate variables is...
Uploaded on: March 25, 2023