239 karma · joined April 29, 2015
Which is it ? (my understanding is that a proof assistant is interactive, like Coq, Agda, etc)
I agree, I see a few ways that it could go wrong:
- Code is proven correct against the specification, but specification is wrong/buggy
- source code is correct/secure, but compiler is overzealous and botch the securities guarantees.
Also https://eprint.iacr.org/ is used a lot for publishing crypto preprints
How would the compiler knows if the code it's given is constant-time ? It's actually a property quite hard to verify due to pointer aliasing or whatnot.
Another angle is to have a compiler that always outputs constant-time code. It's always possible, at least for crypto code according to Peter Schwabe, just that it's probably not going to be very fast code...