Conception d'algorithmes à clé secrète personnalisables et implémentables sur FPGA

par Loïc Besson

Projet de thèse en Mathématiques et Informatique

Sous la direction de Louis Goubin et de Jacques Patarin.

Thèses en préparation à Paris Saclay , dans le cadre de Sciences et Technologies de l'Information et de la Communication , en partenariat avec LMV - Laboratoire de Mathématiques de Versailles (laboratoire) , Cryptologie et Sécurité de l'Information (equipe de recherche) et de université de Versailles-Saint-Quentin-en-Yvelines (établissement de préparation de la thèse) depuis le 01-05-2018 .


  • Résumé

    Le sujet de cette thèse est assez large : cryptographie à clé secrète et plus précisément le chiffrement par bloc. Cela impliquera d'étudier des spécificités multiples et variées que sont l'authentification, une implémentation dite légère, une résistance aux attaques par canaux cachés mais également la possibilité d'une personnalisation de l'algorithme en fin de chaine de développement. Ci-après sont définis et explicités les différents axes d'étude qui devront être étudiés durant cette thèse CIFRE, ainsi que l'ordre prévu pour l'étude de ces différents sujets. 1) Chiffrement par bloc léger Avec le chiffrement à flot, le chiffrement par bloc est un des deux types d'algorithmes de chiffrement symétrique. La principale différence entre ces deux types venant du fait que, dans notre cas, les messages sont chiffrés (ou déchiffrés) par blocs, c'est-à-dire qu'un bloc de taille fixe de bits est traité à la fois. La taille de ces blocs est généralement comprise entre 64 et 512 bits mais il existe des algorithmes utilisant encore des versions avec des tailles de blocs de 32 bits [3]. Les plus connus des algorithmes de chiffrement par bloc sont le DES, standard aujourd'hui dépassé et l'AES, son remplacent actuel, qui représente le standard depuis le début des années 2000. Il en existe beaucoup [4] et le tri devra être fait entre les différentes primitives possibles pour en développer un ou de nouveaux. Un algorithme de chiffrement par bloc léger reprend les mêmes caractéristiques qu'un algorithme de chiffrement par bloc mais est soumis à des contraintes supplémentaires découlant de l'environnement restreint sur lequel il doit être implémenté. En effet, de plus en plus d'applications embarquées voient le jour et nécessitent d'être sécurisées. Les paramètres à prendre en compte lors du design d'un algorithme léger sont bien sûr sa sécurité, mais également la surface qu'il occupe (surface matérielle ou taille mémoire pour une application logicielle), sa consommation, ainsi que ses performances en termes de vitesse de calcul et débit maximum. Les plus connus sont SIMON, SPECK [3] et PRESENT [5]. De nouveaux continuent à être développés pour toujours améliorer les performances en termes de taille, de débit ou de consommation, comme GIFT [6] qui est une amélioration de PRESENT. 2) Attaques par canaux cachés Une attaque par canal auxiliaire (en anglais Side-Channel Attack) désigne une attaque qui recherche et exploite des failles dans l'implémentation matérielle et/ou logicielle d'une procédure de sécurité. Une sécurité théorique (ou mathématique) ne garantit pas une sécurité en pratique. Il existe différents types d'attaques et différents canaux exploitables. [7] [8] Certaines attaques sont non invasives car elles n'endommagent pas le composant et se contentent de procéder à une observation extérieure du matériel. Pour le type d'algorithme qui doit être développé, il va être intéressant de mener des analyses de consommation sur le circuit procédant au chiffrement et au déchiffrement. En effet, ces analyses sont souvent menées sur un algorithme dans le but de récupérer des informations de consommation sur les opérations réalisées dans le but de remonter à la clé utilisée. D'autres analyses sont possibles dans ce but, comme les attaques par analyses temporelles. Certaines attaques sont dites invasives car elles modifient, endommagent le matériel, voire le détruisent. Dans notre cas, il sera intéressant d'étudier comment le système développé sur FPGA réagira à des attaques par fautes. Cela consiste à modifier un ou plusieurs bits dans un message, sur une mémoire, sur une tuile du FPGA ou dans une variable de l'algorithme, pour analyser comment celui-ci va se comporter. Les attaques par canaux cachés doivent être adaptées à l'algorithme ciblé et aux différentes opérations utilisées pour le chiffrement et à ses implémentations. Certaines techniques sont utilisables sur tous types d'algorithmes [9], mais les plus efficaces restent de cibler l'attaque [10] [9] [11]. 3) Masquage et contre-mesures Le but de toute contremesure est d'éviter que des fuites d'informations aient lieu lorsque le circuit ou le FPGA exécute l'algorithme de chiffrement. Un des points les plus étudiés dans ce sens est de rendre la consommation d'un appareil électrique indépendante des valeurs intermédiaires calculées pendant l'éxécution de l'algorithme utilisé. Le masquage permet ceci en obfuscant les valeurs qui sont utilisées dans les calculs. En effet, le principe est d'introduire un ensemble de valeurs aléatoires qui vont venir rendre plus difficiles les analyses pour un attaquant. Le masquage peut être implémenté au niveau algorithmique. Dans notre cas, selon le type de primitives cryptographiques utilisées, les schémas de masquage pourront différer mais il est possible d'imaginer que des boîtes de substitution (ou SBOX) seront utilisées et que c'est une des parties sensibles qu'il faudra étudier lors de cette thèse. Certaines méthodes fonctionnent pour résister à des attaques relativement simples [12] mais demandent des ressources limitées en génération d'aléa. D'autres peuvent permettre de résister à des attaques plus complexes [13] mais demandent de plus grandes quantités d'aléa et des générateurs de nombres aléatoires très performants. Il conviendra de trouver le juste milieu entre quantité d'aléa à générer, sécurité visée, et augmentation de consommation induite par le masquage. Un autre enjeu est de réussir à masquer l'algorithme sans connaître la personnalisation et sans pouvoir prendre en compte sa valeur, tout en conservant une sécurité maîtrisée et équivalente. 4) Cryptanalyse La cryptanalyse est la science qui consiste à décrypter un message chiffré, c'est-à-dire tenter de retrouver ce message sans posséder la clé de chiffrement. Le processus par lequel on tente de comprendre un message en particulier est appelé une attaque. Une attaque est souvent caractérisée par les données qu'elle nécessite : attaque sur texte chiffré seul, attaque à texte clair connu, attaque à texte clair choisi, attaque à texte chiffré choisi. Les attaques ont alors en général pour but de retrouver la clé de chiffrement et non seulement le message clair. C'est le premier type d'analyse mathématique qu'il conviendra de mener sur les nouveaux algorithmes pour vérifier leur sécurité sur le plan algorithmique et mathématique. La cryptanalyse est bien sûre différente selon l'algorithme, néanmoins, certaines techniques sont applicables à tous ou peuvent donner des pistes à creuser par la suite. 5) Authentification Dans l'application visée pour l'algorithme, il est nécessaire de pouvoir fournir la confidentialité mais également d'authentifier l'émetteur, ce qui va permettre de pouvoir échanger des messages de manière sécurisée. Ce projet va donc également traîter du problème du chiffrement authentifié (Authenticated Encryption Problem en anglais) [14]. Il faut pouvoir assurer l'intégrité des communications, en plus de la confidentialité de celles-ci. Il existe pour cela différents modes pour parvenir à une authentification de l'émetteur envoyant un message [15]. Au vu de l'application visée, le but est d'échanger un tag d'identification en plus du message chiffré. Il faudra également étudier les possibilités de conserver le côté léger de l'algorithme en appliquant les futures propriétés d'authentification [16]. 6) Personnalisation Un des enjeux de cette thèse est d'aboutir à une famille d'algorithmes possédant les services de sécurité voulus mais qui pourra également être personnalisée par le client (ajout de boîte de substitution par exemple) en respectant une ligne directrice donnée. Le principe est d'offrir la possibilité à l'utilisateur d'avoir un outil de chiffrement efficace et connu de lui seul puisqu'il possèdera une partie significative et essentielle sur laquelle lui seul aura la main. Le but de cette thèse sera donc d'apporter cette possibilité à l'utilisateur tout en lui garantissant que s'il respecte les lignes directrices données pour cette personnalisation, il pourra prétendre à une sécurité équivalente à celle de l'algorithme avec la personnalisation de base, que ce soit en terme de cryptanalyse mais également de résistance aux attaques par canaux cachés.

  • Titre traduit

    Design of secret key algorithms, customizable and implementable on FPGA


  • Résumé

    The subject of this thesis is quite broad: secret key cryptography and more precisely block ciphers. This will involve studying multiple and varied specificities such as authentication, a so-called lightweight implementation, resistance to side-channel attacks but also the possibility of customizing the algorithm at the end of a development chain. Hereinafter are defined and explained the different areas of study that will have to be studied during this CIFRE thesis, as well as the planned order for the study of these different subjects. 1) Light block encryption With stream encryption, block cipher is one of two types of symmetric ciphering algorithms. The main difference between these two types comes from the fact that, in our case, the messages are encrypted (or decrypted) in blocks, that is to say that a block of fixed size of bits is processed at a time. The size of these blocks is generally between 64 and 512 bits, but there are algorithms that still use versions with 32-bit block sizes [3]. The best-known block ciphering algorithms are the now standard DES and the AES, its current replacement, which has been the standard since the beginning of the 2000s. There are many [4] and the sorting will have to be made between the different primitives possible to develop one or new ones. A lightweight block cipher algorithm has the same characteristics as a block cipher algorithm but is subject to additional constraints arising from the restricted environment on which it must be implemented. Indeed, more and more embedded applications are emerging and need to be secured. The parameters to take into account when designing a lightweight algorithm are of course its security, but also the surface it occupies (hardware area or memory size for a software application), its consumption, as well as its performance in terms of computational speed and maximum throughput. The best known are SIMON, SPECK [3] and PRESENT [5]. New ones continue to be developed to always improve performance in terms of size, throughput or consumption, like GIFT [6] which is an improvement of PRESENT. 2) Attacks by Side-channels Side-Channel Attack refers to an attack that looks for and exploits vulnerabilities in the hardware and / or software implementation of a security procedure. A theoretical (or mathematical) security does not guarantee security in practice. There are different types of attacks and different exploitable channels. [7] [8] Some attacks are non-invasive because they do not damage the component and are content to make an external observation of the material. For the type of algorithm that must be developed, it will be interesting to conduct consumption analyzes on the circuit performing encryption and decryption. Indeed, these analyzes are often conducted on an algorithm in order to retrieve consumption information on the operations performed in order to go back to the key used. Other analyzes are possible for this purpose, such as attacks by temporal analyzes. Some attacks are called invasive because they modify, damage or even destroy the equipment. In our case, it will be interesting to study how the system developed on FPGA will react to fault attacks. This consists of modifying one or more bits in a message, on a memory, on an FPGA tile or in a variable of the algorithm, to analyze how it will behave. Side-channel attacks must be tailored to the targeted algorithm and to the different operations used for encryption and its implementations. Some techniques can be used on all types of algorithms [9], but the most effective remain to target the attack [10] [9] [11]. 3) Masking and countermeasures The goal of any countermeasure is to prevent information leaks from occurring when the circuit or FPGA executes the encryption algorithm. One of the most studied points in this direction is to make the consumption of an electrical device independent of the intermediate values ​​calculated during the execution of the algorithm used. Masking allows this by obfuscating the values ​​that are used in the calculations. Indeed, the principle is to introduce a set of random values ​​that will come to make more difficult the analyzes for an attacker. Masking can be implemented at the algorithmic level. In our case, depending on the type of cryptographic primitives used, masking schemes may differ but it is possible to imagine that substitution boxes (or SBOX) will be used and that it is one of the sensitive parts that will have to be studied. during this thesis. Some methods work to resist relatively simple attacks [12] but require limited resources in hazard generation. Others may be able to withstand more complex attacks [13] but require larger amounts of randomness and high-performance random number generators. It will be necessary to find the right balance between amount of hazard to be generated, targeted security, and increase in consumption induced by masking. Another challenge is to successfully hide the algorithm without knowing the customization and without being able to take into account its value, while maintaining a controlled and equivalent security. 4) Cryptanalysis Cryptanalysis is the science of decrypting an encrypted message, that is, trying to retrieve the message without having the encryption key. The process by which one tries to understand a particular message is called an attack. An attack is often characterized by the data it requires: attack on encrypted text alone, known plaintext attack, chosen plaintext attack, chosen encrypted text attack. The attacks are usually intended to find the encryption key and not just the clear message. This is the first type of mathematical analysis that will need to be conducted on new algorithms to verify their security on the algorithmic and mathematical level. Cryptanalysis is of course different depending on the algorithm, however, some techniques are applicable to all or may lead to digging later. 5) Authentication In the intended application for the algorithm, it is necessary to be able to provide confidentiality but also to authenticate the sender, which will allow to be able to exchange messages in a secure manner. This project will also deal with the problem of Authenticated Encryption Problem [14]. We must be able to ensure the integrity of communications, in addition to the confidentiality of these. There are different ways to achieve authentication of the sender sending a message [15]. In view of the intended application, the purpose is to exchange an identification tag in addition to the encrypted message. It will also be necessary to study the possibilities of keeping the light side of the algorithm by applying the future authentication properties [16]. 6) Customization One of the challenges of this thesis is to come up with a family of algorithms with the required security services, but which can also be customized by the client (adding a substitution box for example) according to a given guideline. The principle is to offer the possibility to the user to have an effective encryption tool known only to him since he will possess a significant and essential part on which he alone will have the hand. The purpose of this thesis will be to provide this opportunity to the user while ensuring that if he respects the guidelines given for this customization, he can claim a security equivalent to that of the algorithm with the customization of base, whether in terms of cryptanalysis but also resistance to attacks by Side-channels.