cryptoint: Daniel J. Bernstein verteidigt konstante Laufzeiten gegen Compiler-Optimierungen
The cryptoint library (2025) [pdf]
gcc und clang optimieren C/C++-Code zunehmend so, dass vermeintlich konstante Laufzeiten durch versteckte Branches und Timing-Variationen aufgeweicht werden. Die cryptoint-Bibliothek von Daniel J. Bernstein bietet Funktionen wie crypto_int64_max, die solche Optimierungen unterbinden – portabel über eine volatile Nullvariable oder plattformspezifischen Assembly-Code. Bereits 7026 Zeilen in SUPERCOP sowie lib25519, libmceliece und OpenSSH nutzen cryptoint. Jede Funktion wird per symbolischer Ausführung und SMT-Solving auf Äquivalenz geprüft.
Es ist keine vergebliche Mühe: Es ist solides Ingenieurshandwerk.