MERCADIER Darius
Direction de recherche : Gilles MULLER
Co-encadrement : DAGAND Pierre-Évariste
Usuba, Optimizing Bitslicing Compiler
Le bitslicing est une technique utilisée pour implémenter des primitives cryptographiques efficaces et s'exécutant en temps constant. Cependant, écrire, optimiser, et sécuriser manuellement des programmes bitslicés est une tâche fastidieuse, nécessitant des connaissances en cryptographie, en microarchitecture des processeurs et en attaques par canaux cachés. Afin de remédier à ces difficultés, nous proposons Usuba, un langage dédié permettant d'implémenter des algorithmes de cryptographie symétrique. Usuba permet aux développeurs d'écrire des spécifications de haut niveau sans se soucier de leur parallélisation: un programme Usuba est une description scalaire d'une primitive, à partir de laquelle le compilateur Usuba, Usubac, produit automatiquement un code bitslicé et vectorisé.
Afin de produire du code efficace pour les processeurs haut de gamme, Usubac applique plusieurs optimisations spécialement conçues pour les primitives cryptographiques, telles que l'entrelacement et l'ordonnancement d'instructions. Ainsi, le code produit par notre compilateur offre des performances comparables à du code assembleur ou C optimisé à la main.
De plus, afin de générer des implémentations sécurisées contre des attaques par canaux cachés, nous proposons deux extensions de Usubac. Lorsque les attaques par analyse de courant sont un risque à considérer, Usubac est capable de protéger les implémentations qu'il produit à l'aide de masquage booléen. Si, additionellement, des attaques par injection de fautes doivent être prévenues, alors Usubac peut générer du code pour SKIVA, un processeur 32-bit offrant des instructions permettant de combiner des contre-mesures pour du code bitslicé.
Soutenance : 20/11/2020
Membres du jury :
BHARGAVAN Karthik (Directeur de recherche, Inria) [Rapporteur]
BLAZY Sandrine (Professeur des Universités, IRISA) [Rapporteur]
COLLANGE Caroline (Chargé de recherche, Inria)
LEROY Xavier (Professeur, Collège de France)
PORNIN Thomas (Directeur technique, NCC Group)
VERGNAUD Damien (Professeur des Universités, Sorbonne Université)
MULLER Gilles (Directeur de recherche, Inria)
DAGAND Pierre-Évariste (Chargé de recherche, Sorbonne Université)
Publications 2018-2022
-
2022
- S. Belaid, D. Mercadier, M. Rivain, A. Taleb : “IronMask: Versatile Verification of Masking Security”, 2022 IEEE Symposium on Security and Privacy (SP), San Francisco, United States, pp. 142-160, (IEEE) (2022)
-
2020
- D. Mercadier : “Usuba, Optimizing Bitslicing Compiler”, soutenance de thèse, soutenance 20/11/2020, direction de recherche Muller, Gilles, co-encadrement : Dagand, Pierre-Évariste (2020)
- P. Kiaei, D. Mercadier, P.‑E. Dagand, K. Heydemann, P. Schaumont : “Custom Instruction Support for Modular Defense against Side-channel and Fault Attacks”, International Workshop on Constructive Side-Channel Analysis and Secure Design, COSADE 2020, Lecture Notes in Computer Science, Lugano, Switzerland (2020)
- S. Belaid, P.‑E. Dagand, D. Mercadier, M. Rivain, R. Wintersdorff : “Tornado: Automatic Generation of Probing-Secure Masked Bitsliced Implementations”, EUROCRYPT, vol. 12107, Lecture Notes in Computer Science, Zagreb / Virtual, Croatia, pp. 311-341, (Springer) (2020)
-
2019
- D. Mercadier, P.‑E. Dagand : “Usuba: high-throughput and constant-time ciphers, by construction”, PLDI 2019 - 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, Phoenix, United States, pp. 157-173, (ACM Press) (2019)
-
2018
- D. Mercadier, P.‑E. Dagand, L. Lacassagne, G. Muller : “Usuba, Optimizing & Trustworthy Bitslicing Compiler”, WPMVP’18 - Workshop on Programming Models for SIMD/Vector Processing, Vienna, Austria, (ACM Press) (2018)