Correction codes at the service of cryptography
Les codes correcteurs au service de la cryptographie symétrique et asymétrique
Résumé
In the first part of this thesis, we are studying different masking methods to protect embedded cryptosystems against physical attacks. Just after the birth of the advanced encryption standard called AES, various studies have shown that side channel attacks (SCA) represent a threat to cryptosystems implemented in embedded devices. The measurement of power consumption during an encryption operation, or the calculation of the time taken by calculi may disclose information about the manipulated values during the execution of the encryption algorithm. This leads to practical attacks on the electrical components. The electromagnetic radiation and even the sounds emitted by the rotor machines can also give the attacker a window of visibility on the intermediate values during the calculation. This type of attack provides a noisy version of values (such as the Hamming weight of some sensitive data) to the opponent. In addition, fault injection attacks (FIA) consist in acting on the environmental conditions of the system (voltage, temperature, radiation...) to generate faults during the execution of the encryption or decryption algorithm and then observe the resulting behavior. Such attacks can be designed by simply illuminating a transistor with a laser beam, which generates a malfunction related to the change of the working frequency during the calculation and which causes a bad value of certain bits. We are presenting some masking methods to protect the AES against SCA and FIA. Each of these methods is based on a particular structure (secret sharing, inner product, correcting codes ...). We are also studying the details of the AES to better evaluate in a finer way how these methods apply and measure the complexity of each. To do this, we reconstruct each of the transformations that composes the AES using these different masking methods.
This study shows the difficulty of both masking in the two operations that compose the AES (addition and multiplication) and in the same time detecting potential errors. To overcome this problem, we designed a masking method based on LCD codes. This method initially introduced in 2014 by Claude Carlet and Sylvain Guilley protects against both types of attacks. However, masking the multiplication remained an open problem. To solve this problem we chose to restructure this method using a representation of finite fields instead of vector spaces. The new method thus makes it possible to mask the addition and the multiplication, to detect the potential errors, and brings an interesting gain in terms of algorithmic complexity (we go from a quadratic complexity to a linear complexity).
In the second part, we study issues related to key management for asymmetric encryption systems. In 1976, Diffie and Hellman marked the beginning of a new era in the field of cryptography with the invention of public key cryptography. Public key cryptography is preferable to symmetric cryptography since it allows secured communication without the need for prior exchange of a secret key. Two years after the invention of public key cryptography, the first encryption scheme was proposed by Rivest, Shamir and Adleman, this scheme is known today as the RSA. Although these systems are effective for exchanging keys, they unfortunately do not identify the owner of a public key. It was therefore necessary to find a solution that would create this link between the public key and the identity of its owner in order to protect against identity usurpation.
In this thesis, we are therefore studying different key management infrastructures. Particularly, certificate-based schemes (PKI) and identity-based encryption (IBE). We are studying the work done in recent years on IBE. We outline the requirements that must be met by a key management system. These requirements relate particularly to the problem of revocation, key-escrow, and decentralization. Finally, we present a flexible version of IBE to meet these requirements.
Dans la première partie de cette thèse nous étudions les différentes méthodes de masquage permettant de lutter contre les attaques physiques sur les cryptosystèmes embarqués. Rappelons les données du problème. Juste après la naissance du nouveau standard de chiffrement symétrique appelé AES au début de ce siècle, des travaux ont montré que les attaques par canaux auxiliaires (SCA) constituent une menace pour les systèmes de chiffrement implémentés dans des dispositifs embarqués. La consommation électrique pendant une opération de chiffrement ou le temps de calcul peuvent divulguer des informations sur des valeurs intermédiaires manipulées au cours de l’exécution de l’algorithme de chiffrement. Ceci entraîne des attaques pratiques sur les composants électriques. Les rayonnements électromagnétiques, et même les sons émis par les machines à rotor peuvent également donner à l’attaquant une fenêtre de visibilité sur les valeurs intermédiaires au cours du calcul. Ce type d’attaques fournit à l’adversaire une version bruitée de certaines valeurs comme le poids de Hamming de certaines données sensibles. Par ailleurs, les attaques par injection de faute (FIA) consistent à agir sur les conditions environnementales du système (tension, température, rayonnement, lumière, ...) pour générer des erreurs pendant l’exécution de l’algorithme de chiffrement ou déchiffrement et observer ensuite le comportement résultant. De telles attaques peuvent être conçues en ciblant simplement un transistor avec un faisceau laser, ce qui génère un dysfonctionnement lié à la modification de la fréquence du travail pendant le calcul, entraînant une mauvaise valeur de certains bits.
Nous présentons quelques méthodes de masquage pour protéger l’AES contre les SCA et FIA. Chacune de ces méthodes repose sur une structure particulière (le partage du secret, le produit scalaire, les codes correcteurs...). Nous étudions également le détail de la structure de l’AES pour mieux évaluer comment s’implémentent ces méthodes et mesurer la complexité de chacune. Pour ce faire, nous reconstruisons chacune des transformations qui composent l’AES en utilisant ces différentes méthodes de masquage. Cette étude montre la difficulté de masquer à la fois les deux opérations qui interviennent dans les fonctions de l’AES (addition et multiplication) et en même temps de détecter les erreurs potentielles. Pour surmonter ce problème, nous avons conçu un masquage basé sur les codes LCD. Cette méthode a été introduite initialement en 2014 par Claude Carlet et Sylvain Guilley, et permet de protéger contre les deux types d’attaques. Cependant, le masquage de la multiplication restait un problème ouvert. Pour le résoudre nous avons choisi de restructurer cette méthode en utilisant une représentation de corps finis au lieu d’espaces vectoriels. La nouvelle méthode permet ainsi de masquer l’addition et la multiplication, de détecter les erreurs potentielles, et apporte également un gain intéressant en terme de complexité algorithmique (nous passons d’une complexité quadratique à une complexité linéaire).
Dans la deuxième partie, nous étudions les problématiques liées à la gestions des clés pour les systèmes de chiffrement asymétriques. En 1976, Diffie et Hellman ont marqué le début d’une nouvelle ère dans le domaine de la cryptographie avec l’invention de la cryptographie asymétrique (à clé publique). La cryptographie asymétrique est préférable à la cryptographie symétrique, puisqu’ elle permet de communiquer en toute sécurité sans passer par l’échange préalable d’une clé secrète. Deux ans après l’invention de la cryptographie asymétrique, le premier algorithme de chiffrement a été proposé par Rivest, Shamir et Adleman, ce schéma est connu jusqu’à nos jours sous le nom de RSA. Bien que ces systèmes soient efficaces en particulier pour échanger les clés, ils ne permettent malheureusement pas d’identifier le propriétaire d’une clé publique. Il a fallu donc trouver une solution qui permette de créer ce lien entre la clé publique et l’identité de son possesseur dans le but de se protéger contre l’usurpation d’identité. Nous étudions donc les différentes infrastructures de gestion de clés. En particulier les schémas basés sur les certificats (PKI), et le chiffrement basé sur l’identité (IBE). Nous étudions les travaux réalisés ces dernières années sur IBE. Nous exposons les exigences que doit satisfaire un système de gestion de clés, ces exigences concernent particulièrement le problème de révocation, l’autorité de séquestre, et la décentralisation. Enfin nous présentons une version flexible d’IBE pour satisfaire ces exigences, et qui répond à besoin réel dans le monde industriel.
Origine | Fichiers produits par l'(les) auteur(s) |
---|