Paper 2025/759

Let's DOIT: Using Intel's Extended HW/SW Contract for Secure Compilation of Crypto Code

Santiago Arranz-Olmos, Max Planck Institute for Security and Privacy
Gilles Barthe, Max Planck Institute for Security and Privacy, IMDEA Software
Benjamin Grégoire, Research Centre Inria Sophia Antipolis
Jan Jancar, Masaryk University
Vincent Laporte, Centre Inria de l'Université de Lorraine
Tiago Oliveira, Sandbox AQ
Peter Schwabe, Max Planck Institute for Security and Privacy, Radboud University Nijmegen
Abstract

It is a widely accepted standard practice to implement cryptographic software so that secret inputs do not influence the cycle count. Software following this paradigm is often referred to as "constant-time" software and typically involves following three rules: 1) never branch on a secret-dependent condition, 2) never access memory at a secret-dependent location, and 3) avoid variable-time arithmetic operations on secret data. The third rule requires knowledge about such variable-time arithmetic instructions, or vice versa, which operations are safe to use on secret inputs. For a long time, this knowledge was based on either documentation or microbenchmarks, but critically, there were never any guarantees for future microarchitectures. This changed with the introduction of the data-operand-independent-timing (DOIT) mode on Intel CPUs and, to some extent, the data-independent-timing (DIT) mode on Arm CPUs. Both Intel and Arm document a subset of their respective instruction sets that are intended to leak no information about their inputs through timing, even on future microarchitectures if the CPU is set to run in a dedicated DOIT (or DIT) mode. In this paper, we present a principled solution that leverages DOIT to enable cryptographic software that is future-proof constant-time, in the sense that it ensures that only instructions from the DOIT subset are used to operate on secret data, even during speculative execution after a mispredicted branch or function return location. For this solution, we build on top of existing security type systems in the Jasmin framework for high-assurance cryptography. We then use our solution to evaluate the extent to which existing cryptographic software built to be "constant-time" is already secure in this stricter paradigm implied by DOIT and what the performance impact is to move from constant-time to future-proof constant-time.

Metadata
Available format(s)
PDF
Category
Implementation
Publication info
Preprint.
Keywords
data-operand-independent timingJasminhigh-assuranceconstant-time
Contact author(s)
santiago arranz-olmos @ mpi-sp org
History
2025-04-30: approved
2025-04-28: received
See all versions
Short URL
https://ia.cr/2025/759
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2025/759,
      author = {Santiago Arranz-Olmos and Gilles Barthe and Benjamin Grégoire and Jan Jancar and Vincent Laporte and Tiago Oliveira and Peter Schwabe},
      title = {Let's {DOIT}: Using Intel's Extended {HW}/{SW} Contract for Secure Compilation of Crypto Code},
      howpublished = {Cryptology {ePrint} Archive, Paper 2025/759},
      year = {2025},
      url = {https://eprint.iacr.org/2025/759}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.