(The bug was found via comparing the output of libsecp256k1 and OpenSSL on "specially-constructed random inputs.")
(The bug was found via comparing the output of libsecp256k1 and OpenSSL on "specially-constructed random inputs.")
Particularly slide 20.
It doesn't find cases where they are both wrong, but often finds cases where one of them is wrong.
It is a very common testing strategy with maths libraries.
There idea is to do this against all the MAJOR interfaces that we all depend on TCP/IP, x86 memory model and stuff like that.
[1] http://events.ccc.de/congress/2014/Fahrplan/events/6574.html (the talk is on youtube or on ccc video streaming side)
http://media.ccc.de/browse/congress/2014/31c3_-_6574_-_en_-_...
Here is the official CCC channel: https://www.youtube.com/user/mediacccde
The official recording: http://media.ccc.de/browse/congress/2014/31c3_-_6574_-_en_-_...
The official recording on their official YT channel: https://www.youtube.com/watch?v=MBIHPLFmcgA
Not when developing crypto. You have to look at execution speed, too, to prevent timing attacks.
It doesn't matter if it takes 1s or 10s, but that it takes 10s every time (to verify a password, for example)