Usuba, Optimizing & Trustworthy Bitslicing Compiler

Abstract : Bitslicing is a programming technique commonly used in cryptography that consists in (efficiently) implementing a combinatorial circuit in software. It results in a massively parallel program, immune to cache-timing attacks by design. However, writing a program in bitsliced form requires extreme minutia. This paper introduces Usuba, a synchronous dataflow language producing bitsliced C code. Usuba is both a domain-specific language – providing syntactic support for the implementation of cryptographic algorithms – as well as a domain-specific compiler – taking advantage of well-defined semantics invariants to perform various optimizations before handing the generated code to an (optimizing) C compiler. On the Data Encryption Standard (DES) algorithm, we show that Usuba outperforms a reference, hand-tuned implementation by 15% (using Intel's 64 bits general-purpose registers and depending on the underlying C compiler) whilst our implementation also transparently supports modern SIMD extensions (SSE, AVX, AVX-512), other architectures (ARM Neon, IBM Altivec) as well as multiple processors through an OpenMP backend.
Complete list of metadatas

Cited literature [22 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-01657259
Contributor : Darius Mercadier <>
Submitted on : Tuesday, October 16, 2018 - 2:43:53 PM
Last modification on : Friday, July 5, 2019 - 3:26:03 PM

File

Usuba.pdf
Files produced by the author(s)

Identifiers

Citation

Darius Mercadier, Pierre-Évariste Dagand, Lionel Lacassagne, Gilles Muller. Usuba, Optimizing & Trustworthy Bitslicing Compiler. WPMVP’18 - Workshop on Programming Models for SIMD/Vector Processing, Feb 2018, Vienna, Austria. ⟨10.1145/3178433.3178437⟩. ⟨hal-01657259v2⟩

Share

Metrics

Record views

217

Files downloads

758