2020 · 75 citations · 32 references
ComputingComputer EngineeringComputer ScienceAuthenticationCryptographySecurity ArchitectureAuthenticated EncryptionCryptographic ArchitectureCryptographic ImplementationCryptographic Protocol DesignElliptic Curve CryptographySecurity Protocol VerificationApi DesignCryptographic AccelerationCryptographic Library DesignCryptographic OperationsFormal Verification Of Cryptographic ProtocolsFormal Verification Tools For Cryptographic ProtocolsMerkle TreesSecure Protocol Design
We present EverCrypt: a comprehensive collection of verified, high-performance cryptographic functionalities available via a carefully designed API. The API provably supports agility (choosing between multiple algorithms for the same functionality) and multiplexing (choosing between multiple implementations of the same algorithm). Through abstraction and zero-cost generic programming, we show how agility can simplify verification without sacrificing performance, and we demonstrate how C and assembly can be composed and verified against shared specifications. We substantiate the effectiveness of these techniques with new verified implementations (including hashes, Curve25519, and AES-GCM) whose performance matches or exceeds the best unverified implementations. We validate the API design with two high-performance verified case studies built atop EverCrypt, resulting in line-rate performance for a secure network protocol and a Merkle-tree library, used in a production blockchain, that supports 2.7 million insertions/sec. Altogether, EverCrypt consists of over 124K verified lines of specs, code, and proofs, and it produces over 29K lines of C and 14K lines of assembly code.
32
Finding and understanding bugs in C compilers
Xuejun Yang, Yang Chen, Eric Eide et al. · 2011 · 733 citations
Finding and understanding bugs in C compilers
Xuejun Yang, Yang Chen, Eric Eide et al. · ACM SIGPLAN Notices · 2011 · 586 citations
High-speed high-security signatures
Daniel J. Bernstein, Niels Duif, Tanja Lange et al. · Journal of Cryptographic Engineering · 2012 · 514 citations · Full text
Ramana Kumar, Magnus O. Myreen, Michael Norrish et al. · 2014 · 320 citations
Dependent types and multi-monadic effects in F*
Nikhil Swamy, Cătălin Hriţcu, Chantal Keller et al. · 2016 · 292 citations · Full text