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
-
Lie algebras and the security of cryptosystems based on classical varieties in disguise
Speaker : Mingjie Chen - KU Leuven
In 2006, de Graaf et al. proposed a strategy based on Lie algebras for finding a linear transformation in the projective linear group that connects two linearly equivalent projective varieties defined over the rational numbers. Their method succeeds for several families of “classical” varieties, such as Veronese varieties, which are known to have large automorphism groups. In this talk, we[…]-
Cryptography
-
-
Some applications of linear programming to Dilithium
Speaker : Paco AZEVEDO OLIVEIRA - Thales & UVSQ
Dilithium is a signature algorithm, considered post-quantum, and recently standardized under the name ML-DSA by NIST. Due to its security and performance, it is recommended in most use cases. During this presentation, I will outline the main ideas behind two studies, conducted in collaboration with Andersson Calle-Vierra, Benoît Cogliati, and Louis Goubin, which provide a better understanding of[…] -
Wagner’s Algorithm Provably Runs in Subexponential Time for SIS^∞
Speaker : Johanna Loyer - Inria Saclay
At CRYPTO 2015, Kirchner and Fouque claimed that a carefully tuned variant of the Blum-Kalai-Wasserman (BKW) algorithm (JACM 2003) should solve the Learning with Errors problem (LWE) in slightly subexponential time for modulus q = poly(n) and narrow error distribution, when given enough LWE samples. Taking a modular view, one may regard BKW as a combination of Wagner’s algorithm (CRYPTO 2002), run[…]-
Cryptography
-
-
CryptoVerif: a computationally-sound security protocol verifier
Speaker : Bruno Blanchet - Inria
CryptoVerif is a security protocol verifier sound in the computational model of cryptography. It produces proofs by sequences of games, like those done manually by cryptographers. It has an automatic proof strategy and can also be guided by the user. It provides a generic method for specifying security assumptions on many cryptographic primitives, and can prove secrecy, authentication, and[…]-
Cryptography
-
-
Structured-Seed Local Pseudorandom Generators and their Applications
Speaker : Nikolas Melissaris - IRIF
We introduce structured‑seed local pseudorandom generators (SSL-PRGs), pseudorandom generators whose seed is drawn from an efficiently sampleable, structured distribution rather than uniformly. This seemingly modest relaxation turns out to capture many known applications of local PRGs, yet it can be realized from a broader family of hardness assumptions. Our main technical contribution is a[…]-
Cryptography
-