Description
Durant ma thèse j’ai travaillé à la conception de méthodes automatisées permettant l’identification d’algorithmes cryptographiques dans des programmes compilés en langage machine. Ce besoin bien spécifique trouve une partie de son origine dans le domaine de l’évaluation logicielle. L’utilisation d’algorithmes cryptographiques se fait dans le but d’obtenir des fonctions de sécurité telles que la confidentialité, l’intégrité et l’authenticité pour la cryptographie symétrique ou des fonctions plus diverses comme la signature numérique, l’établissement de secrets partagés ou le chiffrement à clé publique pour la cryptographie asymétrique. Cependant le choix des algorithmes, leur implémentation et leur utilisation au sein d’un programme informatique sont autant de points sensibles pouvant remettre en cause la robustesse de ces fonctions de sécurité. Il est donc primordiale dans le cadre de l’évaluation logicielle d’analyser les implémentations cryptographiques afin de s’assurer de leur bon niveau de sécurité. Si dans bien des cas il est possible et plus commode de conduire cette analyse à partir du code source, il n’en demeure pas moins important de pouvoir également opérer à partir du code machine. En effet le code source n’est ni toujours disponible (évaluation pour le compte d’une tierce partie ou avec des informations limitées dans le but de simuler un attaquant réel) ni toujours fiable (biais délibéré ou non entre le code source et le code machine, dû par exemple aux optimisations du compilateur). L’idée n’est pas ici d’automatiser un type d’analyse particulier (par exemple: vérifier l’absence de corrélation entre temps d’exécution et paramètres secrets pour empêcher les attaques par canaux temporels), mais d’automatiser l’identification des algorithmes cryptographiques, première étape nécessaire à toute analyse plus approfondie. A ce titre, les résultats obtenus ne permettront pas directement dans bien des cas de juger du bon niveau de sécurité des mécanismes cryptographiques, mais serviront de socle à l’évaluateur pour débuter son analyse. Pour ce travail je me suis limité à la cryptographie symétrique, proposant deux méthodes: une pour l’identification des primitives cryptographiques et l’autre pour l’identification des modes opératoires. Note: ces deux méthodes n’ayant pas été conçues pour l’analyse de code obfuscé, elles n’offrent aucune garantie de bon fonctionnement dans ce domaine.
Next sessions
-
Key Attack on the ACDGV Matrix Encryption Scheme
Speaker : Anmoal Porwal - Technical University of Munich
I will present our key-recovery attack on the ACDGV public-key encryption scheme proposed at ASIACRYPT 2024 by Aragon, Couvreur, Dyseryn, Gaborit, and Vinçotte. The secret key is a Gabidulin code hidden by appending random rows and columns and by left- and right-multiplication with invertible matrices. Our attack exploits the resulting algebraic structure to recover an equivalent secret key. It[…]-
Cryptography
-
Asymmetric primitive
-
-
Module Learning With Errors and Structured Extrapolated Dihedral Cosets
Speaker : Jinwei Zheng - Télécom Paris
The Module Learning With Errors (MLWE) problem is the fundamental hardness assumption underlying the key encapsulation and signature schemes ML-KEM and ML-DSA, which have been selected by NIST for post-quantum cryptography standardization. Understanding its quantum hardness is crucial for assessing the security of these standardized schemes. Inspired by the equivalence between LWE and[…]-
Cryptography
-