Paper 2021/415

Efficient Verification of Optimized Code: Correct High-speed X25519

Marc Schoolderman, Jonathan Moerman, Sjaak Smetsers, and Marko van Eekelen

Abstract

Code that is highly optimized poses a problem for program-level verification: programmers can employ various clever tricks that are non-trivial to reason about. For cryptography on low-power devices, it is nonetheless crucial that implementations be functionally correct, secure, and efficient. These are usually crafted in hand-optimized machine code that eschew conventional control flow as much as possible. We have formally verified such code: a library which implements elliptic curve cryptography on 8-bit AVR microcontrollers. The chosen implementation is the most efficient currently known for this microarchitecture. It consists of over 3000 lines of assembly instructions. Building on earlier work, we use the Why3 platform to model the code and prove verification conditions, using automated provers. We expect the approach to be re-usable and adaptable, and it allows for validation. Furthermore, an error in the original implementation was found and corrected, at the same time reducing its memory footprint. This shows that practical verification of cutting-edge code is not only possible, but can in fact add to its efficiency—and is clearly necessary.

Note: Associated proof and code available at https://zenodo.org/record/4640377

Metadata
Available format(s)
PDF
Category
Implementation
Publication info
Preprint. MINOR revision.
Keywords
formal verificationelliptic curve cryptosystem
Contact author(s)
m schoolderman @ cs ru nl
History
2021-03-30: received
Short URL
https://ia.cr/2021/415
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2021/415,
      author = {Marc Schoolderman and Jonathan Moerman and Sjaak Smetsers and Marko van Eekelen},
      title = {Efficient Verification of Optimized Code: Correct High-speed X25519},
      howpublished = {Cryptology ePrint Archive, Paper 2021/415},
      year = {2021},
      note = {\url{https://eprint.iacr.org/2021/415}},
      url = {https://eprint.iacr.org/2021/415}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.