A verified, efficient embedding of a verifiable assembly language

26Citations
Citations of this article
26Readers
Mendeley users who have this article in their library.

Abstract

High-performance cryptographic libraries often mix code written in a high-level language with code written in assembly. To support formally verifying the correctness and security of such hybrid programs, this paper presents an embedding of a subset of x64 assembly language in F that allows efficient verification of both assembly and its interoperation with C code generated from F. The key idea is to use the computational power of a dependent type system's type checker to run a verified verification-condition generator during type checking. This allows the embedding to customize the verification condition sent by the type checker to an SMT solver. By combining our proof-by-reflection style with SMT solving, we demonstrate improved automation for proving the correctness of assembly-language code. This approach has allowed us to complete the first-ever proof of correctness of an optimized implementation of AES-GCM, a cryptographic routine used by 90% of secure Internet traffic.

Cite

CITATION STYLE

APA

Fromherz, A., Giannarakis, N., Hawblitzel, C., Parno, B., Rastogi, A., & Swamy, N. (2019). A verified, efficient embedding of a verifiable assembly language. Proceedings of the ACM on Programming Languages, 3(POPL). https://doi.org/10.1145/3290376

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free