Usuba, Optimizing & Trustworthy Bitslicing Compiler - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2018

Usuba, Optimizing & Trustworthy Bitslicing Compiler

Résumé

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.
Fichier principal
Vignette du fichier
Usuba.pdf (634.2 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01657259 , version 1 (07-12-2017)
hal-01657259 , version 2 (16-10-2018)

Identifiants

Citer

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⟩
523 Consultations
1625 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More