Attaques exploitant le temps de calcul : modélisation et protections

par Sébastien Carre

Projet de thèse en Information, communications, électronique

Sous la direction de Sylvain Guilley et de Jean-Luc Danger.

Thèses en préparation à l'Institut polytechnique de Paris , dans le cadre de Ecole Doctorale de l'Institut Polytechnique de Paris , en partenariat avec LTCI - Laboratoire de Traitement et Communication de l'Information (laboratoire) , SSH – Secure and Safe Hardware (equipe de recherche) et de Télécom Paris (Palaiseau) (établissement de préparation de la thèse) depuis le 01-09-2017 .


  • Résumé

    La cryptographie est un outil clé dans la sécurisation de notre société digitale. La sécurité s'appuie sur des propriétés mathématiques des algorithmes, comme la difficulté à factoriser un nombre ou à retrouver un antécédent dans une opération de groupe. Ces problèmes permettent de définir des paramètres de sécurité suffisamment grands pour empêcher des attaques. Or, dès lors que la cryptographie est implémentée en pratique, d'autres attaques deviennent possibles. Les attaques sur les canaux cachés (communément appelées SCA, pour Side-Channel Attacks) en font partie. Elles consistent à analyser une fuite physique mesurable, pour en déduire de l'information sur les variables internes au calcul. Leur grande force s'appuie sur le fait qu'elles sont non-invasives ; le cryptosystème en train d'être attaqué ne s'en rend pas compte. Ainsi, de nombreuses informations de fuite peuvent être mesurées sans lever de suspicion auprès du système ciblé. Une classe d'attaque SCA particulièrement redoutable est appelée timing attack. Elle consiste à mesurer un temps d'exécutif caractéristique de l'algorithme attaqué pour retrouver des informations confidentielles qu'il manipule. Si l'idée semble prometteuse, il s'avère en pratique qu'elle est particulièrement complexe, car il existe une très grande multiplicité de sources de fuites en terme de temps de calcul. Considérons un exemple où le temps de calcul dépend d'une clé cryptographique. L'origine de cette dépendance peut se trouver à différents emplacements : - dans le code source ; c'est le cas en particulier des implémentations naïves de la fonction xtime d'AES, qui impliquent une réduction modulaire conditionnelle. - dans les données utilisées par l'algorithme ; Un exemple concerne l'attaque de cryptosystèmes asymétriques. Statistiquement, certaines "nonces" (nombres aléatoires qui permettent de rendre des signatures non reproductibles) sont plus petites, ce qui induit un temps de calcul plus faible. - dans la plateforme matérielle d'exécution ; on peut en mentionner plusieurs, car les architectures sont résolument complexes : caches de niveau 1 et 3, mécanismes de prédiction de branchement, etc. Tous ces problèmes donnent lieu à des attaques qui permettent d'extraire des clés, c'est-à-dire qu'elles sont fatales. Ceci explique que les avancées de la recherche donnent lieu à une évolution des codes dans les bibliothèques cryptographiques. Cependant, il reste aujourd'hui difficile d'appréhender de façon unifiée les risques des timing attacks. Effectivement, les attaques sont caractérisées par différents paramètres, comme le pouvoir de l'attaquant et la possibilité de réaliser un apprentissage.

  • Titre traduit

    Timing attacks: modelization and protections


  • Résumé

    Cryptography is a key tool in securing our digital society. Security relies on the mathematical properties of algorithms, such as the difficulty in factoring to a number or solving the discrete logarithm. These problems make it possible to define security parameters large enough to prevent attacks. However, since cryptography is implemented in practice, other attacks become possible. Attacks on the hidden channels (commonly referred to as Side-Channel Attacks) are part of this. They consist in analyzing a measurable physical leak, in order to deduce information on the variables internal to the calculation. Their great strength is based on the fact that they are non-invasive; The cryptosystem being attacked does not realize it. Thus, many leakage information can be measured without raising suspicion from the targeted system. A particularly efficient SCA attack class is called timing attack. It consists in measuring an executive time characteristic of the attacked algorithm to retrieve confidential information that it manipulates. If the idea seems promising, it proves in practice that it is particularly complex, because there is a very large number of sources of leaks in terms of computation time. Consider an example where the computing time depends on a cryptographic key. The origin of this dependence can be found at different locations: - in the source code; This is the case in particular of the naive implementations of the xtime function of AES, which involve modular conditional reduction. - in the data used by the algorithm; An example is the attack of asymmetrical cryptographic implementations. Statistically, some nouns (random numbers which make it possible to render non-reproducible signatures) are smaller, which induces a lower calculation time. - in the hardware implementation platform; We can mention several, because the architectures are resolutely complex: caches of level 1 and 3, mechanisms of prediction of branching, and so on. All these problems give rise to attacks which make it possible to extract keys, that is to say, they are fatal. This explains why the advances of the research lead to an evolution of the codes in the cryptographic libraries. However, it remains difficult today to unravel the risks of timing attacks. Indeed, attacks are characterized by different parameters, such as the power of the attacker and the possibility of learning.