HACLxN: Verified Generic SIMD Crypto (for All Your Favourite Platforms) (bibtex)
by Polubelova, Marina, Bhargavan, Karthikeyan, Protzenko, Jonathan, Beurdouche, Benjamin, Fromherz, Aymeric, Kulatova, Natalia and Zanella-Béguelin, Santiago
Abstract:
We present a new methodology for building formally verified cryptographic libraries that are optimized for multiple architectures. In particular, we show how to write and verify generic crypto code in the F* programming language that exploits single-instruction multiple data (SIMD) parallelism. We show how this code can be compiled to platforms that support vector instructions, including ARM Neon and Intel AVX, AVX2, and AVX512. We apply our methodology to obtain verified vectorized implementations on all these platforms for the ChaCha20 encryption algorithm, the Poly1305 one-time MAC, and the SHA-2 and Blake2 families of hash algorithms.A distinctive feature of our approach is that we aggressively share code and verification effort between scalar and vectorized code, between vectorized code for different platforms, and between implementations of different cryptographic primitives. By doing so, we significantly reduce the manual effort needed to add new implementations to our verified library. In this paper, we describe our methodology and verification results, evaluate the performance of our code, and describe its integration into the HACL* crypto library. Our vectorized code has already been incorporated into several software projects, including the Firefox web browser.
Reference:
HACLxN: Verified Generic SIMD Crypto (for All Your Favourite Platforms) (Polubelova, Marina, Bhargavan, Karthikeyan, Protzenko, Jonathan, Beurdouche, Benjamin, Fromherz, Aymeric, Kulatova, Natalia and Zanella-Béguelin, Santiago), In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security, Association for Computing Machinery, 2020.
Bibtex Entry:
@inproceedings{haclxn,
author = {Polubelova, Marina and Bhargavan, Karthikeyan and Protzenko, Jonathan and Beurdouche, Benjamin and Fromherz, Aymeric and Kulatova, Natalia and Zanella-B\'{e}guelin, Santiago},
title = {HACLxN: Verified Generic SIMD Crypto (for All Your Favourite Platforms)},
year = {2020},
isbn = {9781450370899},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3372297.3423352},
doi = {10.1145/3372297.3423352},
abstract = {We present a new methodology for building formally verified cryptographic libraries that are optimized for multiple architectures. In particular, we show how to write and verify generic crypto code in the F* programming language that exploits single-instruction multiple data (SIMD) parallelism. We show how this code can be compiled to platforms that support vector instructions, including ARM Neon and Intel AVX, AVX2, and AVX512. We apply our methodology to obtain verified vectorized implementations on all these platforms for the ChaCha20 encryption algorithm, the Poly1305 one-time MAC, and the SHA-2 and Blake2 families of hash algorithms.A distinctive feature of our approach is that we aggressively share code and verification effort between scalar and vectorized code, between vectorized code for different platforms, and between implementations of different cryptographic primitives. By doing so, we significantly reduce the manual effort needed to add new implementations to our verified library. In this paper, we describe our methodology and verification results, evaluate the performance of our code, and describe its integration into the HACL* crypto library. Our vectorized code has already been incorporated into several software projects, including the Firefox web browser.},
booktitle = {Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security},
pages = {899–918},
numpages = {20},
keywords = {SIMD vectorization, cryptographic library, formal verification},
location = {Virtual Event, USA},
series = {CCS '20}
}
Powered by bibtexbrowser