Analyse et amélioration de la logique double rail pour la conception de circuits sécurisés

Avec le développement du marché des nouvelles technologies de l’information et des télécommunications, la notion de confidentialité des données occupe une place croissante parmi les différentes préoccupations des concepteurs de circuits intégrés. Pour satisfaire un niveau de confidentialité satisfaisant, ces derniers se basent généralement sur la cryptographie. L’objectif est de rendre les données inintelligibles sauf par celui qui en possède la clef de déchiffrement. Incluant en son sein un ou plusieurs blocs cryptographiques, la carte à puce apparaît comme le support incontournable des applications sécurisées. Les domaines d’applications en sont nombreux : paiement, télévision à la demande, téléphonie mobile, médical, transport public, contrôle d’accès, etc.

En terme de sécurité, notamment dans le domaine plus particulier des transactions bancaires, le code PIN d’une carte à puce, la clef privée qu’elle peut contenir ou toute autre information confidentielle sont considérés comme inviolables. En effet, durant les trois dernières décennies, de gros efforts ont été consentis pour développer des algorithmes de chiffrement. Si ces efforts ont aboutis à la définition d’algorithmes de chiffrement standard particulièrement robustes aux attaques logiques, peu ou pas d’efforts ont été dévolus à la sécurisation des plateformes matérielles exécutant ces algorithmes. Par voie de conséquence, il existe aujourd’hui des attaques matérielles capables de retrouver les informations secrètes contenues dans la puce. On parle de cryptanalyse matérielle.

La cryptanalyse matérielle désigne l’ensemble des techniques qui consistent à exploiter les failles de la puce elle-même pour en extraire les données secrètes. Il en existe trois grandes catégories: les attaques invasives, les attaques semi-invasives et les attaques non-invasives. Une attaque invasive est une attaque qui va agir physiquement sur la puce et peut conduire jusqu’à sa destruction. De la même manière qu’une attaque invasive, une attaque semiinvasive agit physiquement sur la puce sans pour autant la détériorer et comme une attaque non-invasive, elle exploite les corrélations entre les données manipulées et les signaux compromettants. Une attaque non-invasive englobe l’ensemble des techniques qui consistent à exploiter uniquement les signaux compromettants.

Les attaques par canaux cachés: état de l’art 

Pour garantir la sécurité des données qui transitent dans les canaux de communication, les concepteurs de composants sécurisés (cartes à puce) font appel à la cryptographie. Après une introduction à la cryptographie et une présentation de quelques algorithmes cryptographiques, nous verrons que si les composants sécurisés sont considérés comme inviolables, la réalité est qu’il existe un certain nombre d’attaques capables d’extraire les informations secrètes contenues en leur sein. On distingue notamment les attaques logiques et les attaques matérielles. Pour rendre ces attaques inopérantes, des contre-mesures ont été proposées. Cependant, la quasi-totalité d’entre elles ne font que rendre les attaques beaucoup plus complexes sans pour autant les éradiquer.

Avec le développement des réseaux de télécommunication, les transactions financières n’empruntent plus seulement des réseaux fermés ou privés mais un réseau mondial et accessible par tous. A partir du moment où ces transactions sont susceptibles d’être interceptées ou « écoutées », la sécurité des données doit être garantie. Aujourd’hui, les techniques issue de la cryptographie (cryptologie) sont les seules solutions permettant d’assurer la confidentialité et l’intégrité des transactions sur un réseau ouvert (internet, réseau des cartes bancaires, etc.) [Abr91]. Si les cartes à puce de première génération ne permettaient que de conserver et de gérer des informations sensibles telles que les numéros de compte, les mots de passe ou encore les informations médicales, elles offrent aujourd’hui la possibilité d’effectuer des opérations cryptographiques particulièrement complexes. En effet, les cartes à puce les plus perfectionnées contiennent des microprocesseurs relativement puissants (jusqu’à 32bits), des quantités de mémoire significatives (jusqu’à 100Mb), mais aussi et surtout des cryptoprocesseurs tels que des DES, des triples DES, ou encore des AES. Du fait de l’importance des enjeux stratégiques et économiques relatifs aux transactions effectuées avec les cartes à puce, ces dernières doivent être capables de résister à toutes sortes d’agressions et attaques connues. Si les algorithmes de chiffrement implantés dans ces cartes garantissent un très haut niveau de résistance aux attaques exploitant les signaux booléens échangés par la carte avec son environnement, les cartes à puce ne présentent pas le même degré de résistance aux attaques matérielles ou physiques. Les attaques matérielles font partie d’une vaste famille de techniques cryptanalytiques. Cellesci exploitent des comportements, représentatifs de certaines étapes des algorithmes de chiffrement, pouvant être aisément observés au travers de syndromes physiques qu’exhibe leur implémentation matérielle. Dans le domaine des attaques matérielles, les attaques sont nombreuses et portent sur différents paramètres ou syndromes. On en distingue trois grandes catégories d’agression : les attaques invasives, les attaques semi invasives et les attaques noninvasives. Les attaques non-invasives, communément appelées attaques par canaux cachés, se révèlent être les plus dangereuses dans la mesure où leur mise en œuvre ne nécessite relativement peu de moyen financier et de compétences techniques pour être menées avec succès. Du côté des concepteurs de circuits sécurisés, des contre-mesures ont été proposées pour rendre ces attaques plus difficiles à mettre en œuvre voire inopérantes. Dans ce chapitre, après quelques généralités sur la cryptologie, nous étudierons ces différentes attaques. Du fait de leur dangerosité, nous nous attarderons un peu plus sur les attaques matérielles. Avant de conclure ce chapitre, nous dresserons un bref état de l’art sur les différentes contre-mesures.

Cryptographie 

La cryptographie est l’ensemble des techniques permettant de chiffrer des données afin de pouvoir garantir leur confidentialité, leur authenticité et leur intégrité lors de leur transfert sur des canaux non sécurisés. En effet, les algorithmes cryptographiques vont appliquer des transformations bijectives aux données permettant de les rendre inintelligibles à toutes personnes ne possédant pas la clef de chiffrement. C’est ce qu’on appelle le chiffrement qui, à partir d’un texte en clair, donne un texte chiffré ou encore un cryptogramme. Inversement, le déchiffrement est l’action qui permet de reconstruire le texte en clair à partir du texte chiffré et d’une clef secrète.

Les algorithmes cryptographiques sont généralement classés selon deux grandes catégories: les algorithmes cryptographiques à clef secrète et les algorithmes cryptographiques à clef publique. Les algorithmes à clef privé, ou encore algorithmes symétriques, se caractérisent par l’utilisation de la même clef pour effectuer le chiffrement et le déchiffrement. Ceci implique donc le transfert sécurisé de la clef de chiffrement aux différentes personnes souhaitant communiquer de manière sécurisée par la suite. Parmi les algorithmes de chiffrement à clef privée, on distingue les algorithmes DES, AES [FIPS197], etc.. Les algorithmes à clef publiques, ou encore algorithmes asymétriques, se caractérisent par l’utilisation de deux clefs : une clef privée et une clef publique. Ce type d’algorithme a été proposé par W. Diffie et M Hellman en 1976 [Dif76] afin de résoudre le problème lié aux transferts de clefs secrètes. En effet, dans ce type de chiffrement, tout le monde peut utiliser la clef publique pour expédier des messages chiffrés que seul le détenteur de la clef privée peut déchiffrer. Parmi les algorithmes à clefs asymétriques on trouve notamment le RSA, le DSADH, le ElGamal, les courbes elliptiques.

L’algorithme DES: Data Encryption Standard 

La norme de chiffrement Data Encryption Standard (DES) [FIPS46a] est une proposition du National Bureau of Standards (NSB) américain datant du milieu des années 70. Il s’agissait alors de définir un algorithme robuste, gratuit et destiné au grand public. Comme la majorité des algorithmes de chiffrement à clef secrète, le DES a été conçu selon le principe des schémas de Feistel [Sch01].

Schémas de Feistel 

Le premier objectif de tout algorithme à clef secrète est de rendre le message chiffré d’apparence aléatoire afin de limiter les risques d’attaques, par analyse linéaire par exemple. Le problème du chiffrement est donc bien la définition de fonctions aléatoires. Si l’on sait depuis longtemps construire des fonctions pseudo-aléatoires, il a fallu attendre la fin des années 70 et plus particulièrement les travaux de Feistel pour être capables de construire des fonctions bijectives aléatoires. La solution proposée par Feistel est très élégante. Elle s’appuie sur l’utilisation d’une fonction f pseudo aléatoire prenant en entrées de mots de n bits et délivrant en sortie des mots de n bits.

Comme on peut le constater, l’algorithme de chiffrement va procéder en chiffrant des blocs de 2n bits (G+D), qu’on partage en deux parties : gauche G et droite D. L’image du bloc (G, D) par le schéma de Feistel est le bloc (L, R) de 2n bits tel que L=D et R= G ‘xor’ f(D) où f est la fonction pseudo aléatoire considérée. Feistel a démontré que la fonction associée à ce schéma est une fonction bijective. Toutefois comme on peut le constater seul les n bits de G sont chiffrés. Pour chiffrer l’ensemble du texte il faut donc appliquer de manière itérative ce schéma. On parle alors de ronde.

Dans le cas plus spécifique du DES, 16 itérations du schéma Feistel sont effectuées pour traiter des mots de 64 bits. La clef de chiffrement utilisée est de 64 bits dont 8 bits de parité. Pour chaque ronde, le DES utilise une sous-clef de 48 bits calculée en fonction de la sous clef précédente grâce à un réseau de permutations et de décalages .

Cryptanalyse

A l’inverse de la cryptographie, la cryptanalyse est l’étude des procédés cryptographiques dans le but de trouver leurs faiblesses et de déchiffrer illégitimement les textes chiffrés. Le décryptage est l’action consistant à retrouver le texte en clair sans connaître la clef de déchiffrement. Une tentative de cryptanalyse est communément appelée attaque. Lorsqu’une attaque permet de déchiffrer un message chiffré à l’aide d’un cryptosystème, on dit alors que l’algorithme de chiffrement a été « cassé ».

D’une manière générale, on suppose toujours que le cryptanalyste connaît le détail des algorithmes, fonctions mathématiques ou protocoles employés. Même si ce n’est pas toujours le cas en pratique. Il serait en effet particulièrement risqué de se baser sur le secret des mécanismes utilisés pour assurer la sécurité d’un système.

On distingue habituellement quatre méthodes de cryptanalyse:
• Une attaque sur texte chiffré seulement consiste à retrouver la clef de déchiffrement à partir d’un ou plusieurs textes chiffrés;
• Une attaque sur texte clair connu consiste à retrouver la clef de déchiffrement à partir d’un ou plusieurs textes chiffrés, connaissant le texte en clair correspondant;
• Une attaque sur texte clair choisi consiste à retrouver la clef de déchiffrement à partir d’un ou plusieurs textes chiffrés, l’attaquant ayant la possibilité de les générer à partir de textes en clair;
• Une attaque sur texte chiffré choisi consiste à retrouver la clef de déchiffrement à partir d’un ou plusieurs textes chiffrés, l’attaquant ayant la possibilité de les générer à partir de textes en clair.

Il existe deux grandes familles d’attaques contre les cartes à puce ou plus précisément contre les systèmes cryptographiques: les attaques logiques et les attaques matérielles.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction générale : contexte et motivation
Chapitre I : Les attaques par canaux cachés: état de l’art
I-1-Introduction
I-2-La cryptologie
I-3-Attaques logiques
I-4-Attaques matérielles
I-5-Attaques matérielles: contre-mesures
I-6-Classification des attaquants et niveaux de sécurité
I-7-Conclusion
Chapitre II : Attaque DPA: étude et analyse
II-1-Introduction
II-2-Fondement des attaques en puissance
II-3-Attaque par analyse simple de consommation (SPA)
II-4-Attaque par analyse différentielle de consommation (DPA)
II-5-Contre-mesures
II-6-Conclusion
Chapitre III : La logique double rail, une contre-mesure à la DPA ?
III-1-Introduction
III-2-Pourquoi la logique double rail?
III-3-Circuits asynchrones et circuits double rail
III-4-Les types d’implantation de cellules double rail
III-5-Définition et caractérisation d’une bibliothèque double rail
III-6-Analyse de robustesse
III-7-Conclusion
Chapitre IV : La logique double rail: impact de la synthèse physique et étude formelle
IV-1-Introduction
IV-2-Placement routage et choix de librairie
IV-3-Méthodes de placement routage spécifique
IV-4-Etude formelle de la robustesse de la logique double rail à la DPA
IV-5-Conclusion
Chapitre V : La logique « pseudo » triple rail sécurisée
V-1-Introduction
V-2-Fondamentaux de la logique STTL
V-3-Analyse des performances
V-4-Validations expérimentales
V-5-Conclusion
Chapitre VI : Conclusion
Bibliographie
Bibliographie personnelle

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *