Conception et analyse d’un algorithme asymétrique de cryptographie boîte blanche 1 Thématiques Cryptologie, compilation. 2 Laboratoire Secure-IC S.A.S., une PME de 35 personnes, basée à Paris (14ème arrondissement). Le stage se déroule dans l’équipe « Thought Leadership », en charge de la R&D de la société. 3 Nom et adresse électronique du directeur de stage Sylvain GUILLEY, X97. [email protected] 4 Nom et adresse électronique du directeur du laboratoire Sylvain GUILLEY, X97. [email protected] 5 Présentation générale du domaine Un algorithme cryptographique utilise des secrets. Par exemple, RSA ou les corps elliptiques permettent de réaliser une signature digitale ou un déchiffrement grâce à une clé privée. Il est bien sûr nécessaire de protéger cette clé. Or, dans certains contextes, il n’existe aucun endroit dans la plateforme pour la stocker de façon sécurisée. Il est donc nécessaire de l’enfouir dans le programme de signature digitale (ou de déchiffrement). Cependant, la tâche paraît complexe, car un attaquant peut décompiler le programme, puis l’analyser « pas par pas » à l’aide d’un dévermineur. 1 6 Objectif du stage Dans ce stage, nous étudierons la possibilité d’implémenter un algorithme cryptographique asymétrique (e.g., RSA, ECC) de façon « boîte blanche ». Ce travail n’est a priori pas évident, car la plupart des implémentation boîte blanche de la cryptographie symétrique ont été cassées [WMGP07]. En effet, la pratique courante est de dissimuler les clés dans des tables apparemment aléatoires, mais qui révèlent, par combinaison, la valeur des translations appliquées (qui dépendent directement des clés que l’on souhaite cacher). Des notions formelles de sécurité ont été établies [SWP09]. Néanmoins, il se trouve que cet effort n’est pas suffisant, du moins dans la cas de la cryptographie symétrique. Effectivement, un article récent a démontré qu’il est possible d’extraire la plupart des clés grâce à une analyse non pas seulement des données, mais aussi des adresses [BHMT16]. La quasi-totalité des efforts actuels de la communauté cryptologique en terme de protection et d’attaque a été déployé pour la cryptographique symétrique (DES, AES, etc.). Or il y a aussi un besoin de « whiteboxer » des algorithmes cryptographiques asymétriques. L’objectif du stage est de spécifier une façon de protéger l’algorithme RSA, puis d’analyser sa sécurité. Un effort particulier sera porté sur l’optimisation en vitesse d’exécution de l’algorithme RSA boîte blanche. 7 Compétences espérées Programmation C/C++, compilation (GCC), debug (GDB). Références [BHMT16] Joppe W. Bos, Charles Hubain, Wil Michiels, and Philippe Teuwen. Differential Computation Analysis : Hiding Your White-Box Designs is Not Enough. In Benedikt Gierlichs and Axel Y. Poschmann, editors, Cryptographic Hardware and Embedded Systems - CHES 2016 - 18th International Conference, Santa Barbara, CA, USA, August 17-19, 2016, Proceedings, volume 9813 of Lecture Notes in Computer Science, pages 215–236. Springer, 2016. [SWP09] Amitabh Saxena, Brecht Wyseur, and Bart Preneel. Towards Security Notions for White-Box Cryptography. In Pierangela Samarati, Moti Yung, Fabio Martinelli, and Claudio Agostino Ardagna, editors, ISC, volume 5735 of Lecture Notes in Computer Science, pages 49–58. Springer, 2009. [WMGP07] Brecht Wyseur, Wil Michiels, Paul Gorissen, and Bart Preneel. Cryptanalysis of WhiteBox DES Implementations with Arbitrary External Encodings. In Selected Areas in Cryptography, 14th International Workshop, SAC 2007, volume 4876 of LNCS, pages 264–277. Springer, 2007. 2