30

Formal Verification of a Constant-Time Preserving C Compiler

 4 years ago
source link: https://eprint.iacr.org/2019/926
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Cryptology ePrint Archive: Report 2019/926

Formal Verification of a Constant-Time Preserving C Compiler Gilles Barthe and Sandrine Blazy and Benjamin Gr�goire and R�mi Hutin and Vincent Laporte and David Pichardie and Alix Trieu Abstract:

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 cryptographic libraries.

This paper focuses on compilation of cryptographic constant-time programs, and more specifically on the following question: is the code generated by a realistic compiler for a constant-time source program itself provably constant-time? Surprisingly, we answer the question positively for a mildly modified version of the CompCert compiler, a formally verified and moderately optimizing compiler for C. Concretely, we modify the CompCert compiler to eliminate sources of potential leakage. Then, we instrument the operational semantics of CompCert intermediate languages so as to be able to capture cryptographic constant-time. Finally, we prove that the modified CompCert compiler preserves constant-time. Our mechanization maximizes reuse of the CompCert correctness proof, through the use of new proof techniques for proving preservation of constant-time. These techniques achieve complementary trade-offs between generality and tractability of proof effort, and are of independent interest.

Category / Keywords: implementation / Compilation, Formal verification, Constant-time security Original Publication (in the same form): POPL20 Date: received 14 Aug 2019, last revised 7 Nov 2019 Contact author: alix trieu at cs au dk Available format(s): |()[

]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK