HAL will be down for maintenance from Friday, June 10 at 4pm through Monday, June 13 at 9am. More information
Skip to Main content Skip to Navigation
Conference papers

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 metadata

Cited literature [22 references]  Display  Hide  Download

Contributor : Darius Mercadier Connect in order to contact the contributor
Submitted on : Tuesday, October 16, 2018 - 2:43:53 PM
Last modification on : Thursday, February 3, 2022 - 11:18:56 AM


Files produced by the author(s)



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⟩



Record views


Files downloads