Fiabilité/Sécurité des Circuits Intégrés - Cours d'introduction Guillaume Duc - Cours d'introduction

La page est créée Damien Tessier
 
CONTINUER À LIRE
Fiabilité/Sécurité des Circuits
Intégrés
Cours d’introduction

Guillaume Duc
guillaume.duc@telecom-paristech.fr
2018–2019
Plan

       Introduction
           Généralités
           Fiabilité et Sécurité

       Rappels d’électronique numérique

       Introduction à la sécurité
           Algorithmes de chiffrement
              Considérations générales
              DES
              AES
              RSA
          Fonctions de hachage

       Conclusion

2/93               Télécom ParisTech     Guillaume Duc   2018–2019
Plan

       Introduction
           Généralités
           Fiabilité et Sécurité

       Rappels d’électronique numérique

       Introduction à la sécurité
           Algorithmes de chiffrement
              Considérations générales
              DES
              AES
              RSA
          Fonctions de hachage

       Conclusion

3/93               Télécom ParisTech     Guillaume Duc   2018–2019
Objectifs du module

       Comprendre les enjeux liés à la fiabilité et la sécurité des
       circuits intégrés
       Connaître les attaques classiques contre les circuits
       intégrés ainsi que les contre-mesures associées
       Connaître les indicateurs classiques de la fiabilité des
       systèmes intégrés et leurs méthodes d’estimation
       Connaître les techniques classiques de durcissement des
       systèmes intégrés vis-à-vis des fautes

4/93         Télécom ParisTech   Guillaume Duc          2018–2019
Objectifs du cours

       Découvrir le vocabulaire et les thématiques qui seront
       couvertes par le module
       (Re)Découvrir les notions de base d’électronique
       numérique nécessaires pour suivre le module
       (Re)Découvrir les notions de base de cryptographie
       nécessaires pour la partie sécurité

5/93         Télécom ParisTech   Guillaume Duc        2018–2019
Équipe enseignante

       Télécom ParisTech, Département Communications et
       Électronique (COMELEC), Équipe Secure & Safe
       Hardware (SSH)
         • Lirida Naviner
         • Jean-Luc Danger
         • Guillaume Duc

6/93        Télécom ParisTech   Guillaume Duc    2018–2019
Déroulement & Évaluation

       Horaire des cours : 08h45–12h30
       Supports des cours disponibles à l’adresse :
       https://sen.enst.fr/seti901
       Examen écrit le mercredi 28 novembre

7/93         Télécom ParisTech   Guillaume Duc        2018–2019
Plan

       Introduction
           Généralités
           Fiabilité et Sécurité

       Rappels d’électronique numérique

       Introduction à la sécurité
           Algorithmes de chiffrement
              Considérations générales
              DES
              AES
              RSA
          Fonctions de hachage

       Conclusion

8/93               Télécom ParisTech     Guillaume Duc   2018–2019
Service rendu par un système

       Un système (au sens large : informatique, embarqué,
       circuit électronique...) est conçu pour rendre un service à
       ses utilisateurs, conformément à des spécifications
       Un système va être défaillant à un instant t si le service
       rendu à l’utilisateur n’est plus conforme aux spécifications
       attendues
       Une défaillance correspond à l’altération du service rendu
       par un système

9/93         Télécom ParisTech   Guillaume Duc          2018–2019
Sûreté de fonctionnement [5]

        Sûreté de fonctionnement (Dependability ) : propriété qui
        permet aux utilisateurs du système de placer une
        confiance justifiée dans le service qu’il leur délivre
        Plusieurs facettes
          • Disponibilité (Availability ) : aptitude du système à être prêt
            à délivrer un service correct
          • Fiabilité (Reliability ) : aptitude du système à assurer la
            continuité du service correct durant un certain laps de
            temps
          • Sécurité-innocuité (Safety ) : aptitude du système à éviter
            des conséquences catastrophiques sur son environnement
          • Sécurité (Security ) : aptitude du système à préserver la
            confidentialité et l’intégrité des informations
          • Maintenabilité (Maintainability ) : aptitude du système à être
            maintenu ou remis en état de fonctionnement

10/93         Télécom ParisTech    Guillaume Duc             2018–2019
Fautes, erreurs et défaillances
            Définitions

        Une faute provoque une erreur qui entraîne une défaillance
        Erreur : état du système susceptible de provoquer une
        défaillance (état qui n’est plus conforme aux spécifications)

          • Exemples : résultat incorrect d’un calcul, entier sortant de
            la plage des valeurs admissibles, liste chaînée corrompue,
            etc.
        Faute : évènement ayant entraîné l’erreur
          • Sources : faute de programmation, usure d’un composant
            physique, malveillance, etc.
        La faute peut elle même être le résultat d’une défaillance
          • Exemple : la faute de programmation est le résultat de la
            défaillance du processus de développement

11/93         Télécom ParisTech   Guillaume Duc            2018–2019
Fautes, erreurs et défaillances
                Exemple

        V = Debit × Temps ; Si V ≥ Volume cuve alors fermer valve
            On suppose que Volume cuve = 20, Debit = 10,
            Temps = 2
            Faute : dans le module matériel réalisant la multiplication,
            la défaillance d’un transistor (due au vieillissement)
            entraîne des résultats potentiellement erronés en sortie
            Si V = 20, pas d’erreur, la faute est dormante
            Si V 6= 20, la faute est active et vient de provoquer une
            erreur
              • Si V > 20, la valve se ferme et donc le système continue à
                fonctionner normalement
              • Si V < 20, la valve reste ouverte et la cuve déborde
                l’erreur se propage et entraîne une défaillance

12/93             Télécom ParisTech   Guillaume Duc           2018–2019
Fautes
            Taxonomie

        Phase de création : Développement / Opération
        Origine : Interne / Externe au système
        Dimension : Matérielle / Logicielle
        Cause : Naturelle / Humaine
        Intention : Intentionnelles / Accidentelles
        Persistance : Temporaire / Permanente

13/93         Télécom ParisTech   Guillaume Duc       2018–2019
Défaillances
            Taxonomie

        Nature : De valeur / Temporelle / Arrêt
        Durée : Durable / Temporaire
        Gravité : Bénigne / Significative / Critique / Catastrophique
        (vocabulaire dépendant du domaine considéré)

14/93         Télécom ParisTech   Guillaume Duc          2018–2019
Notions couvertes par ce module

        Système : principalement circuit intégré numérique (et un
        peu système embarqué)
        Attributs de la sûreté de fonctionnement à garantir
          • Fiabilité (Reliability )
          • Sécurité (Security )
        Fautes considérées
          • Matérielles en phase opérationnelle
          • Soit d’origine humaine, intentionnelles et de source externe
            au circuit (principalement pour l’aspect sécurité)
          • Soit d’origine naturelle, accidentelles et de source interne
            au circuit (principalement pour l’aspect fiabilité)

15/93          Télécom ParisTech       Guillaume Duc       2018–2019
Notions couvertes par ce module

        Pour la partie sécurité, d’autres attaques, visant les
        propriétés de sécurité d’un système (confidentialité,
        intégrité...) seront également étudiées
        En effet, il n’est pas nécessaire de provoquer une faute
        dans un système pour violer ces propriétés
        Exemple : SCA

16/93         Télécom ParisTech   Guillaume Duc          2018–2019
Origine des fautes (partie fiabilité)

        Concernant l’aspect fiabilité du cours, les fautes
        considérées peuvent provenir
          • Du procédé de fabrication
          • Du vieillissement des composants
        Résultats
          • Collage d’un nœud à la valeur logique 0 ou 1
          • Augmentation du temps de propagation dans la logique

17/93         Télécom ParisTech   Guillaume Duc          2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

18/93               Télécom ParisTech     Guillaume Duc   2018–2019
La bascule D (flipflop, dff )
               Élément de base de la logique séquentielle

        Fonctionnement
          • À chaque front montant de l’horloge clk
            (passage de 0 → 1) l’entrée D est copiée
            (échantillonnée, mémorisée) sur la sortie Q
          • Entre deux fronts d’horloge, la sortie Q ne
            change pas
                                                                   D          Q
        Table de vérité

           D    clk     Q                                               clk
           0     ↑      0      copie de D sur Q
           1     ↑      1      copie de D sur Q
           ×     0      Q      Q conserve sa valeur
           ×     1      Q      Q conserve sa valeur
           ×     ↓      Q      Q conserve sa valeur

19/93            Télécom ParisTech     Guillaume Duc        2018–2019
Le registre
        Un registre est un ensemble de bascules D fonctionnant
        en parallèle
          • Exemple un registre 4 bits

          D4                        Q4

          D3                        Q3
                                                         4    4
                                                    D             Q
                                         ⇐⇒
          D2                        Q2

                                                    H

          D1                        Q1

          H

20/93           Télécom ParisTech        Guillaume Duc       2018–2019
La bascule D
             Contraintes temporelles

                           clk

                           D

                                      tsu
                                            th
                           Q

                                                 tco

        La donnée doit être stable au front d’horloge :
           • avoir atteint sa valeur tsu avant le front d’horloge (temps de
              pré-positionnement, setup)
           • cette valeur doit être maintenue th après le front d’horloge (temps de
              maintient, hold)
        La copie de l’entrée sur la sortie se fait avec un retard de tco (temps de
        propagation, clock to output)

21/93           Télécom ParisTech           Guillaume Duc               2018–2019
Logique CMOS

        La très vaste majorité des circuits électroniques
        numériques est réalisée en logique CMOS
        (Complementary Metal Oxide Semiconductor )
        Une source d’alimentation Vdd
        Convention logique : 0 ≡ Vss , 1 ≡ Vdd

22/93         Télécom ParisTech   Guillaume Duc         2018–2019
Logique CMOS

                     G
                                                                G
            S                  D
                                                          S              D
            N+                N+
                                                          P+            P+
                    P−
                                                                N−

          Transistor nMOS
                                                        Transistor pMOS
                                                      Canal P
        Canal N
                                                      Passant si Vgs < −|VT |
        Passant si Vgs > VT

23/93             Télécom ParisTech   Guillaume Duc                  2018–2019
Le transistor MOS
              Deux interrupteurs électroniques

                                                                  Vdd
                            D                                        S

             VG                                            VG
                            S                                        D

          Transistor nMOS                               Transistor pMOS

        VG = Vss                                      VG = Vss
         ⇒ interrupteur ouvert                         ⇒ interrupteur fermé
        VG = Vdd                                      VG = Vdd
         ⇒ interrupteur fermé                          ⇒ interrupteur ouvert

24/93             Télécom ParisTech   Guillaume Duc                2018–2019
Inverseur CMOS

                                             Vdd

                                              e                s

                                             Vss

25/93    Télécom ParisTech   Guillaume Duc         2018–2019
Inverseur CMOS

           Entrée logique e = 0
            → Ve = 0
                 → nMOS bloqué                         Vdd
                 → pMOS passant
            → Vs = Vdd
        → Sortie logique s = 1
                                                        e                s

                                                       Vss

25/93              Télécom ParisTech   Guillaume Duc         2018–2019
Inverseur CMOS

           Entrée logique e = 0
            → Ve = 0
                 → nMOS bloqué                         Vdd
                 → pMOS passant
            → Vs = Vdd
        → Sortie logique s = 1
                                                        e                s
           Entrée logique e = 1
            → Ve = Vdd
                 → nMOS passant
                 → pMOS bloqué
            → Vs = 0
                                                       Vss
        → Sortie logique s = 0

25/93              Télécom ParisTech   Guillaume Duc         2018–2019
Généralisation à une porte complexe

        Une porte avec les entrées {e1 , e2 , . . .} et la sortie S
           Deux réseaux duaux :                                                Vdd
              nMOS : permet la mise à 0
              pMOS : permet la mise à 1
                                                                                    P
           Les deux réseau ne doivent jamais
           être passants en même temps                         E                        S
                                                         {e1 , e2 , . . .}
           Pour que S soit une fonction                                             N
           logique :
              • Si N est passant P bloqué
              • Si P est passant N bloqué

26/93               Télécom ParisTech   Guillaume Duc                   2018–2019
La porte non-et (NAND)

                        Vdd

                             A       B

                                                     Out

                                 A

                                 B

                        Vss

27/93    Télécom ParisTech           Guillaume Duc         2018–2019
CMOS & Consommation

        Lorsque la sortie d’une porte ne change pas d’état, pas de
        consommation       consommation statique nulle (ou
        quasiment)
        Lorsque la sortie d’une porte change d’état (passage
        0 → 1 ou 1 → 0), la porte consomme      consommation
        dynamique non nulle
          • Cette consommation est liée au chargement/déchargement
            des capacités parasites connectées en sortie de la porte
            (fils et grilles des transistors connectés)
        Donc la consommation d’un circuit est liée au nombre de
        sorties de portes changeant d’état
        Cette propriété peut être exploitée pour retrouver des
        secrets manipulés par le circuit (voir cours sur les SCA)

28/93         Télécom ParisTech   Guillaume Duc         2018–2019
CMOS & Temps de propagation

        Lorsque les entrées d’une porte logique changent, il faut
        un certain temps pour que sa sortie reflète le nouvel état
        des entrées
        Ce temps est appelé temps de propagation
        Il est également lié au chargement/déchargement des
        capacités parasites en sortie des portes
        Pendant ce temps, la sortie peut être fausse (vis-à-vis de
        la fonction réalisée et de l’état actuel des entrées) et ne
        doit donc pas être prise en compte

29/93         Télécom ParisTech   Guillaume Duc         2018–2019
Fréquence de fonctionnement

                                  Combinatoire

        Circuit numérique : parties combinatoires encadrées par
        des registres
        Pour assurer un bon fonctionnement Tclk > tco + tcrit + tsu
        où tcrit est le temps de propagation dans le plus long
        chemin combinatoire (chemin critique)
        Si cette contrainte n’est pas respectée    fautes

30/93         Télécom ParisTech     Guillaume Duc       2018–2019
Évolution du temps de propagation

        Pour un circuit fixe, le temps de propagation sur le chemin
        critique augmente (et donc la fréquence maximale de
        fonctionnement du circuit diminue) avec :
          • L’augmentation de la température
          • La diminution de la tension d’alimentation
        Ces paramètres, contrôlables par l’utilisateur, peuvent lui
        permettre de faire commettre des fautes au circuit

31/93         Télécom ParisTech   Guillaume Duc          2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

32/93               Télécom ParisTech     Guillaume Duc   2018–2019
Modèle de sécurité

        Dès lors que l’on veut étudier la sécurité d’un système, il
        faut :
          • Identifier les différents éléments de valeur dans le système
          • Identifier les propriétés de sécurité à garantir pour chacun
            de ces éléments
          • Caractériser les moyens à disposition de l’adversaire dont
            on cherche à se protéger
               – Connaissances, outils à disposition, budget, temps
               – Exemples : Utilisateur technophile dans son garage, étudiant
                 ayant accès à un laboratoire universitaire, NSA

33/93         Télécom ParisTech    Guillaume Duc              2018–2019
Propriétés de sécurité
        Confidentialité Garantir que seuls les personnes/programmes
                      autorisés peuvent accéder à une information
           Intégrité Garantir qu’une information ne peut pas être
                      modifiée, involontairement ou volontairement, ou
                      garantir la détection de cette altération
        Authentification Prouver l’identité d’une personne, d’un
                      programme, d’une machine, etc.
        Disponibilité Garantir qu’un système reste en permanence
                      utilisable par les personnes autorisées
         Traçabilité Permettre de savoir qui a fait quoi sur un système
                      informatique
        Non-répudiation et Imputation Impossibilité pour un utilisateur
                      de contester une opération qu’il a réalisée, et
                      impossibilité pour un utilisateur de s’attribuer les
                      actions d’un autre
34/93              Télécom ParisTech   Guillaume Duc          2018–2019
Cryptologie

        La science du secret
        Se divise en deux domaines
          • Cryptographie qui vise à protéger des messages
          • Cryptanalyse qui vise à analyser (casser) des messages
            protégés
        Les algorithmes de cryptographie vont être utilisés pour
        garantir différentes propriétés de sécurité (principalement
        confidentialité, intégrité, authentification) sur les
        informations sensibles d’un système pendant leur
        stockage, leur traitement et leur transmission

35/93         Télécom ParisTech   Guillaume Duc         2018–2019
Cryptographie
            Familles d’algorithmes

        Algorithmes sans clé
          • Fonction de hachage (MD5, SHA1, SHA2, SHA3...)
          • Générateur de nombres aléatoires
        Algorithmes à clé symétrique
          • Chiffrement
              – Par bloc (DES, AES...)
              – Par flux/flot (RC4...)
          • Fonction de hachage à clé ou MAC (Message
            Authentication Code)
        Algorithmes à clé publique (asymétrique)
          • Chiffrement (RSA...)
          • Signature (RSA, DSA...)

36/93         Télécom ParisTech   Guillaume Duc         2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

37/93               Télécom ParisTech     Guillaume Duc   2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

38/93               Télécom ParisTech     Guillaume Duc   2018–2019
Chiffrement
             Généralités

                    E : {0, 1}n × {0, 1}ke → {0, 1}m
                                         P, Ke 7→ C = EKe (P)
                   D : {0, 1} × {0, 1}kd → {0, 1}n
                                    m

                                         C, Kd 7→ P = DKd (C)

        P est le message en clair (plaintext)
        C est le message chiffré (ciphertext)
        Ke est le secret (clé) utilisé pour le chiffrement
        Kd est le secret (clé) utilisé pour le déchiffrement
        E est la fonction de chiffrement
        D est la fonction de déchiffrement (notée aussi E −1 )
        Si Ke = Kd on parle de cryptographie/chiffrement symétrique (K = Ke est
        appelée clé secrète)
        Si Ke 6= Kd on parle de cryptographie/chiffrement asymétrique (Ke est appelée
        clé publique et Kd est appelée clé privée)

39/93           Télécom ParisTech       Guillaume Duc                  2018–2019
Chiffrement
            Généralités

        Pour un bon algorithme de chiffrement, étant donné C, il
        doit être impossible pour un adversaire ne connaissant pas
        la clé Kd de retrouver P tel que P = DKd (C)
        De même, connaissant P1 , . . . , PN et C1 , . . . , CN tels que
        Pi = DKd (Ci ), il doit être impossible pour un adversaire de
        retrouver Kd
        Principe de Kerckhoffs [2, 3] : la sécurité ne repose pas sur
        le fait que E et D soient secrets (les algorithmes sont
        publics ou ont vocation à le devenir)
        Les algorithmes de chiffrement sont principalement utilisés
        pour garantir la confidentialité d’une information

40/93          Télécom ParisTech   Guillaume Duc            2018–2019
Chiffrement
            Exemple (cryptographie symétrique)

        Alice et Bernard veulent échanger des messages
        confidentiels sur un canal de communication non sécurisé
          • Alice et Bernard disposent tout les deux d’un secret
            partagé K avant le début de la communication
          • Alice chiffre son message m avec la clé K : c = EK (m) et
            envoie c à Bernard
          • Bernard déchiffre c : EK−1 (c) = EK−1 (EK (m)) = m
          • Ève qui espionne la communication récupère c mais ne
            peut pas retrouver m car elle ne connaît pas la clé K
        Inconvénient : nécessité d’un secret partagé (problèmes :
        établissement et nombre de secret à gérer)
        Avantage : les algorithmes de chiffrement symétriques
        sont souvent rapides

41/93         Télécom ParisTech   Guillaume Duc           2018–2019
Chiffrement
            Exemple (cryptographie asymétrique)

        Alice et Bernard veulent échanger des messages
        confidentiels sur un canal de communication non sécurisé
          • Alice possède la clé publique KeB de Bernard et seul ce
            dernier possède la clé privée correspondante KdB
          • Alice chiffre son message m : c = EKeB (m) et envoie c à
            Bernard
          • Bernard déchiffre c : DK B (c) = m
                                     d

          • Ève qui espionne la communication récupère c mais ne
            peut pas retrouver m car elle ne connaît pas la clé KdB
        Avantage : pas de secrets partagés
        Inconvénients : les algorithmes de chiffrement
        asymétriques sont souvent lents, comment prouver que
        l’on possède bien la clé publique de son correspondant et
        pas celle d’un adversaire (man-in-the-middle) ?

42/93         Télécom ParisTech   Guillaume Duc            2018–2019
Taxonomie des algorithmes de chiffrement

        Algorithmes de chiffrement symétriques
          • Algorithmes de chiffrement par bloc (block cipher,
            exemples : AES, DES)
          • Algorithmes de chiffrement par flot (stream cipher,
            exemple : RC4)
        Algorithmes de chiffrement asymétriques (exemple : RSA)

43/93         Télécom ParisTech   Guillaume Duc            2018–2019
Algorithme de chiffrement par bloc
            Block cipher

                   E : {0, 1}n × {0, 1}k → {0, 1}n
                                    P, K 7→ C = EK (P)

        n est la taille d’un bloc (en bits, en général 64 ou 128)
        k la taille de la clé (en bits, en général 128 ou 256)
        Si on veut chiffrer des messages dont la taille est différente
        de n, il faut utiliser un mode d’opération

44/93         Télécom ParisTech   Guillaume Duc           2018–2019
Modes d’opération usuels
            ECB — Electronic CodeBook

                  P1                P2              P3

            K     E            K    E         K     E    Chiffrement

                  C1                C2              C3

                  C1                C2              C3

            K     D            K    D         K     D    Déchiffrement

                  P1                P2              P3

        Problème de sécurité avec ce mode (identification de
        motifs : deux clairs identiques donnent le même chiffré)

45/93           Télécom ParisTech        Guillaume Duc            2018–2019
Modes d’opération usuels
               CBC — Cipher Block Chaining

                            P1            P2                 P3

                                                                  Chiffrement
                      K      E       K     E             K   E

          IV                C1            C2                 C3

          IV                C1            C2                 C3

                      K      D       K     D             K   D
                                                                  Déchiffrement

                            P1            P2                 P3

        IV (Initialization Vector ) est généré aléatoirement pour
        chaque message chiffré et transmis (en clair)

46/93            Télécom ParisTech       Guillaume Duc               2018–2019
Modes d’opération usuels
            CTR — Counter Mode
                     N                 N +1             N +2

               K     E            K     E           K    E
                                                               Chiffrement
               P1                 P2               P3
                    C1                  C2               C3

                     N                 N +1             N +2

               K     E            K     E           K    E
                                                               Déchiffrement
              C1                  C2               C3
                    P1                  P2               P3

        N est un nombre aléatoire, transmis en clair avec le
        message
        On ne doit jamais chiffrer deux blocs avec le même
        compteur
47/93         Télécom ParisTech               Guillaume Duc                  2018–2019
Modes d’opération

        D’autres modes d’opération existent
        Le choix du mode d’opération est critique pour la sécurité
          • ECB est déconseillé (identification de motifs)
          • CBC est vulnérable lorsqu’une collision survient (après en
            moyenne 2n/2 blocs chiffrés où n est la taille d’un bloc en
            bits)
          • Mode compteur : ne jamais chiffrer deux blocs avec le
            même compteur

48/93         Télécom ParisTech   Guillaume Duc            2018–2019
Blocs de base

        Selon Shannon [8], un algorithme de chiffrement est basé
        sur deux propriétés : la diffusion et la confusion
        Confusion : rendre la relation entre la clé symétrique et le
        texte chiffré la plus complexe possible
        Diffusion : la redondance statistique sur le texte en clair
        doit être dissipée dans les statistiques du texte chiffré (les
        statistiques du texte chiffré doivent donner le moins
        d’informations possible sur le texte clair)
          • L’inversion d’un bit en entrée doit changer chaque bit en
            sortie avec une probabilité 1/2

49/93         Télécom ParisTech   Guillaume Duc            2018–2019
Blocs de base

        La confusion est réalisée par des tables de substitution
        (Substitution Box (S-Box)) qui permettent d’introduire de la
        non linéarité dans les calculs
          • DES : 8 fonctions différentes 6 bits vers 4 bits
          • AES : 1 fonction 8 bits vers 8 bits
        La diffusion est réalisée de diverses façons
          • DES : Permutations
          • AES : Opérations ShiftRows et MixColumns

50/93         Télécom ParisTech   Guillaume Duc                2018–2019
Tables de substitution (S-Box)

        Fonction logique n bits vers m bits fortement non linéaire
        Implémentation logicielle
          • Table en mémoire
        Implémentation matérielle
          • Logique (portes ou LUT sur un FPGA)
          • Table en ROM

51/93         Télécom ParisTech   Guillaume Duc         2018–2019
Permutations

        Permutations des bits à l’intérieur d’un mot (ex.
        permutations de DES)
          • Implémentation matérielle triviale
          • Implémentation logicielle beaucoup plus coûteuse
            (complexité en O(n) où n est la taille (en bit) du mot) car les
            processeurs généralistes ne disposent pas d’instructions
            pour la permutation de bits
        Permutations de mots (ex. ShiftRows d’AES)
          • Implémentation triviale en matériel ou en logiciel
            (adressage)

52/93         Télécom ParisTech    Guillaume Duc             2018–2019
Schéma général

        Les algorithmes classiques de chiffrement par bloc
        présentent une structure itérative
        Opération de base (tour / ronde / round) répétée un certain
        nombre de fois (16 pour DES, 10, 12 ou 14 pour AES)
        Chaque ronde utilise une sous-clé dérivée de la clé
        principale grâce à un algorithme baptisé key schedule
        Structure idéale pour une implémentation matérielle
        itérative

53/93         Télécom ParisTech   Guillaume Duc        2018–2019
Implémentation matérielle itérative
            Schéma général

        P                                               Data path
                                                  C

                                             SK

        K
                                                    Key schedule

54/93         Télécom ParisTech   Guillaume Duc   2018–2019
Implémentation matérielle itérative
            Problèmes

        Chemin critique souvent long (génération de la sous-clé en
        parallèle avec la première partie du chemin de données
        puis addition de la sous-clé et seconde partie du chemin
        de données)
          • Possibilité, en ajoutant un cycle, de calculer en parallèle le
            calcul de la ronde n et celui de la sous-clé nécessaire à la
            ronde n + 1, et donc de réduire le chemin critique
        Nécessite d’appliquer les boites S en parallèle (duplication
        du matériel, obligatoire pour DES puisque les boites sont
        différentes, mais pour AES, duplication 16 fois de la
        boite S)
          • Pour AES, possibilité de traiter colonne par colonne et ainsi
            réduire l’utilisation matérielle (voir plus loin)

55/93         Télécom ParisTech    Guillaume Duc             2018–2019
Implémentation matérielle itérative
            Problèmes

        Fuite d’information importante à des moment précis (fronts
        d’horloge) lors de la mise à jour des registres d’état (clé et
        données)
        Ces registres contiennent des variables internes de
        l’algorithme qui ne sont pas censées être accessibles par
        l’adversaire
        Voir cours sur les SCA

56/93         Télécom ParisTech   Guillaume Duc          2018–2019
Implémentation matérielle pipelinée

        Moyennant la duplication du matériel nécessaire pour faire
        le calcul d’une ronde, il est possible de pipeliner
        l’algorithme
        Le pipeline ne réduit pas le temps nécessaire (latence)
        pour chiffrer un bloc mais augmente le débit (nombre de
        blocs chiffrés pendant une période de temps donnée)
        Cependant, certains modes d’opération se prêtent mal à la
        parallélisation (comme par exemple le mode CBC en
        chiffrement)

57/93         Télécom ParisTech   Guillaume Duc       2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

58/93               Télécom ParisTech     Guillaume Duc   2018–2019
Introduction

        Algorithme de chiffrement par bloc, standardisé en 1977
        par le National Bureau of Standards américain (FIPS PUB
        46)
        Basé sur l’algorithme Lucifer proposé par IBM et modifié
        par la NSA (National Security Agency )
        Traite des blocs de 64 bits
        Clés de 56 bits (et non 64 !)
        Schéma de Feistel à 16 rondes

59/93         Télécom ParisTech   Guillaume Duc       2018–2019
Sécurité (1/2)

        4 clés faibles et 12 clés semi-faibles à éviter
          • Clé faible : EK (EK (M)) = M
          • Clés semi-faibles : EK1 (Ek2 (M)) = M
        Cryptanalyse différentielle : résistant (grâce aux
        modifications apportées aux S-Box) [1]
        Cryptanalyse linéaire : nécessite 243 clairs connus [6]
        Impraticable
        Force brute : taille de la clé trop faible (56 bits) pour les
        puissances de calcul actuelles        Machine RIVYERA [7]
        (128 FPGA) teste toutes les clés (256 ) en moins de
        24 heures

60/93         Télécom ParisTech   Guillaume Duc            2018–2019
Sécurité (2/2)

        DES n’est plus utilisé qu’en mode EDE (Triple DES) :
        C = EK3 (EK−1
                    2
                      (EK1 (P)))
          • Clé de 168 bits (3 × 56) mais sécurité effective de 112 bits
            (attaque meet-in-the-middle)
          • Toujours utilisé, particulièrement dans les applications
            bancaires (ex. standard EMV)

61/93         Télécom ParisTech   Guillaume Duc             2018–2019
Schéma de Feistel
                               Plaintext (64 bits)

                                       IP
                              L0                R0
                                                      SK1
                                       F
                   1 tour

                              L1                R1
                                                      SK2
        16 tours                       F

                              L2                R2
                                        ..            ..
                                         .             .

                              L16               R16

                                       FP
                              Ciphertext (64 bits)

62/93     Télécom ParisTech     Guillaume Duc         2018–2019
Fonction de Feistel (DES)

               Ri (32 bits)                          SKi (48 bits)

                      E
                          48

        S1       S2            S3   S4        S5     S6      S7        S8

                                             32

                                         P

63/93         Télécom ParisTech      Guillaume Duc                2018–2019
Key Scheduling (DES)
                                       K (64 bits)

                                             PC1
                                               56
                                  28                  28
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

65/93               Télécom ParisTech     Guillaume Duc   2018–2019
Introduction

        Algorithme de chiffrement par bloc, standardisé par le
        NIST (National Institute of Standards and Technology ) en
        2001 après un concours international
        Algorithme original : Rijndael de Joan DAEMEN et Vincent
        R IJMEN (Belgique)
        Traite des blocs de 128 bits (16 octets)
        Clés de 128, 192 ou 256 bits
        10, 12 ou 14 tours en fonction de la taille de la clé
        Architecture SPN (Substitution Permutation Network )

66/93         Télécom ParisTech   Guillaume Duc           2018–2019
Opérations

        Tour initial
          • AddRoundKey
        Tours suivants
          •   SubBytes
          •   ShiftRows
          •   MixColumns
          •   AddRoundKey
        Tour final
          • SubBytes
          • ShiftRows
          • AddRoundKey

67/93          Télécom ParisTech   Guillaume Duc   2018–2019
Opération SubBytes

        a0,0   a0,1   a0,2     a0,3                   b0,0   b0,1   b0,2    b0,3

        a1,0   a1,1   a1,2     a1,3                   b1,0   b1,1   b1,2    b1,3

        a2,0   a2,1   a2,2     a2,3                   b2,0   b2,1   b2,2    b2,3

        a3,0   a3,1   a3,2     a3,3        S          b3,0   b3,1   b3,2    b3,3

           bi,j = S(ai,j )

68/93             Télécom ParisTech   Guillaume Duc             2018–2019
Opération ShiftRows

        a0,0   a0,1   a0,2     a0,3                   a0,0   a0,1   a0,2    a0,3

        a1,0   a1,1   a1,2     a1,3                   a1,1   a1,2   a1,3    a1,0

        a2,0   a2,1   a2,2     a2,3                   a2,2   a2,3   a2,0    a2,1

        a3,0   a3,1   a3,2     a3,3                   a3,3   a3,0   a3,1    a3,2

69/93             Télécom ParisTech   Guillaume Duc             2018–2019
Opération MixColumns

        a0,0   a0,1   a0,2    a0,3                   b0,0   b0,1   b0,2   b0,3

        a1,0   a1,1   a1,2    a1,3                   b1,0   b1,1   b1,2   b1,3

        a2,0   a2,1   a2,2    a2,3                   b2,0   b2,1   b2,2   b2,3

        a3,0   a3,1   a3,2    a3,3                   b3,0   b3,1   b3,2   b3,3

                                     ⊗c(x)

         Multiplication de chaque colonne par un polynôme (dans
         un corps particulier)
         Permet la diffusion

70/93            Télécom ParisTech   Guillaume Duc                 2018–2019
Opération AddRoundKey

                   a0,0   a0,1   a0,2   a0,3                   b0,0   b0,1   b0,2   b0,3

                   a1,0   a1,1   a1,2   a1,3                   b1,0   b1,1   b1,2   b1,3

                   a2,0   a2,1   a2,2   a2,3                   b2,0   b2,1   b2,2   b2,3

                   a3,0   a3,1   a3,2   a3,3                   b3,0   b3,1   b3,2   b3,3

                   k0,0   k0,1   k0,2   k0,3

                   k1,0   k1,1   k1,2   k1,3

                   k2,0   k2,1   k2,2   k2,3

                   k3,0   k3,1   k3,2   k3,3

        bi,j = ai,j ⊕ ki,j

71/93           Télécom ParisTech              Guillaume Duc                               2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

72/93               Télécom ParisTech     Guillaume Duc   2018–2019
Introduction

        Inventé par Ron R IVEST, Adi S HAMIR et Leonard
        A DLEMAN en 1977
        Algorithme de chiffrement asymétrique, mais également
        de signature numérique
        Sécurité basée sur la difficulté de factorisation de grands
        nombres (une clé RSA de 768 bits (soit 232 chiffres
        décimaux) a été cassée (factorisée) en 2009 [4])

73/93         Télécom ParisTech   Guillaume Duc         2018–2019
Clés

        Choisir deux nombres premiers p et q (grands)
        n = pq (module public, la taille de la “clé” est la taille de n)
        Calculer φ(n) = (p − 1)(q − 1) (indicatrice d’Euleur en n)
        Choisir e tel que 1 < e < φ(n) et tel que e et φ(n) sont
        premiers entre eux, c’est l’exposant public (en général,
        e = 216 + 1 = 65537)
        Déterminer d tel que ed ≡ 1 (mod φ(n)) (en utilisant par
        exemple l’algorithme d’Euclide étendu)
        La clé publique est (n, e) et la clé privée (n, d)
        Pour trouver la clé privée à partir des informations
        publiques, il est nécessaire de retrouver p et q, ce qui est
        difficile (problème de la factorisation des grands nombres)

74/93          Télécom ParisTech   Guillaume Duc             2018–2019
Chiffrement / Déchiffrement

        Chiffrement : c ≡ me (mod n)
        Déchiffrement : m ≡ c d (mod n)
        En pratique, on effectue rarement que cette opération
        (problèmes de sécurité) mais on rajoute notamment du
        bourrage (padding) aléatoire

75/93         Télécom ParisTech   Guillaume Duc      2018–2019
Preuve

        Petit théorème de Fermat : si p est premier et a n’est pas
        multiple de p, on a a(p−1) ≡ 1 (mod p)
        ed ≡ 1 (mod (p − 1)(q − 1)) donc ed − 1 = h(p − 1)(q − 1)
        Si m ≡ 0 (mod p), med ≡ 0 ≡ m (mod p)
        Si m 6≡ 0 (mod p), med = m(ed−1) m = mh(p−1)(q−1) m =
        (mp−1 )h(q−1) m ≡ 1h(q−1) m ≡ m (mod p)
        De même, on montre que med ≡ m (mod q)
        D’où (me )d ≡ m (mod pq)

76/93         Télécom ParisTech   Guillaume Duc        2018–2019
Exponentiation modulaire
               Algorithme square and multiply (Left to Right)

        Inputs : M , K
        R = 1;
        for i = |K | − 1 ; i ≥ 0 ; i − − do
          R = R 2 (mod n) ;
          if Ki == 1 then
             R = R × M (mod n) ;
          end if
        end for
        Return R = M K (mod n) ;
          Algorithme simple
          Mais vulnérable à des attaques SCA

77/93            Télécom ParisTech   Guillaume Duc              2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

78/93               Télécom ParisTech     Guillaume Duc   2018–2019
Fonction de hachage
            Hash function

                            H : {0, 1}∗ → {0, 1}n
                                     x 7→ h = H(x)

        Propriétés
          • Compression : L’entrée x est de taille arbitraire (finie) et la
            sortie est de taille fixe n
          • Facilité de calcul : Étant donné H et une entrée x, h = H(x)
            est facile à calculer
        Vocabulaire
          • h est appelé hash, haché ou condensé

79/93         Télécom ParisTech     Guillaume Duc            2018–2019
Fonction de hachage à sens unique
            (One-way hash function)

        Propriétés
          • Compression et facilité de calcul
          • Résistance à la première pré-image : Étant donné y , il est
            difficile de trouver une pré-image x tel que y = H(x)
          • Résistance à la seconde pré-image : Étant donnés x et y
            tel quel y = H(x), il est difficile de trouver une deuxième
            pré-image x 0 6= x tel quel H(x) = H(x 0 )

80/93         Télécom ParisTech   Guillaume Duc            2018–2019
Fonction de               hachage        résistante            aux
            collisions
            (Collision resistant hash function)

        Propriétés
          • Compression, facilité de calcul, résistance à la première et
            à la seconde pré-image
          • Résistance aux collisions : Il est difficile de trouver x et
            x 0 6= x tels que H(x) = H(x 0 )

81/93         Télécom ParisTech    Guillaume Duc            2018–2019
Fonction de hachage à clé
            (Keyed hash function)

        Famille de fonctions Hk paramétrées par une clé secrète k
        Propriétés
          • Facilité de calcul : Étant donnés Hk , k et x, il est facile de
            calculer Hk (x)
          • Compression : L’entrée x est de taille arbitraire (finie) et la
            sortie est de taille fixe n
          • Étant donné la description d’une famille H, pour toute valeur
            de k , inconnue de l’adversaire, on a la propriété suivante :
               – Résistance au calcul : Étant donné un ensemble de paires
                 (xi , Hk (xi )), il est difficile de calculer Hk (x) pour une nouvelle
                 entrée x 6= xi

82/93         Télécom ParisTech       Guillaume Duc                   2018–2019
Usages

        Fonctions de hachage : codes de détection de modification
        (Modification Detection Codes — MDC)
          • Fournissent une image représentative (condensé) d’un
            message
          • Usages
               – Garantir l’intégrité d’un message (contre une altération
                 involontaire uniquement si utilisées seules)
               – Preuve de connaissance
               – Dérivation de clés
               – Génération de nombre pseudo-aléatoire
               – Mots de passe à usage unique...
        Fonctions de hachage à clé : codes d’authentification de
        message (Message Authentication Codes — MAC)
          • Utilisés pour garantir l’intégrité et l’authentification de la
            source d’un message

83/93         Télécom ParisTech     Guillaume Duc               2018–2019
Usages
            Exemple d’intégrité

        Alice désire assurer l’intégrité d’un message m (large)
        transmis sur un lien non sécurisé à Bernard
        Bernard reçoit m0 et veut donc s’assurer que m = m0
        Alice calcule h = H(m) (où H est une fonction de hachage)
        et transmet h (petit, de l’ordre de la centaine de bits) sur un
        canal sécurisé à Bernard
        Bernard calcule h0 = H(m0 ) et compare h et h0
          • Si h 6= h0 alors m 6= m0
          • Si h = h0 alors m = m0 avec une très grande probabilité
            (sinon on a trouvé une collision...)
        Si Ève veut changer m, elle doit trouver m00 6= m tel que
        H(m00 ) = H(m), c’est-à-dire casser la propriété de
        résistance à la seconde pré-image de la fonction H

84/93         Télécom ParisTech   Guillaume Duc           2018–2019
Usages
            Exemple d’authentification

        Alice veut authentifier un message m envoyé à Bernard
        Alice et Bernard partagent un secret k
        Alice calcule h = Hk (m) (où H est une fonction de hachage
        à clé) et envoie (m, h) à Bernard sur un lien non sécurisé
        Bernard reçoit (m0 , h0 ), calcule h00 = Hk (m0 ) et compare h0
        et h00
          • Si h0 6= h00 alors problème
          • Si h0 = h00 , alors m0 a bien été envoyé par quelqu’un en
            possession de k (donc normalement Alice) et n’a pas été
            altéré
        Si Ève veut se faire passer pour Alice, elle doit calculer
        h0 = Hk (m0 ) avec m0 6= m ce qui est difficile si elle ne
        connaît pas k (propriété de résistance au calcul)

85/93         Télécom ParisTech   Guillaume Duc           2018–2019
Exemples

        Fonctions de hachage
          • MD5 (cassée : collisions trouvées)
          • SHA1 (faiblesses identifiées)
          • SHA2, SHA3
        MAC
          • Construction à partir d’un algorithme de chiffrement,
            exemple : CBC-MAC
          • Construction à partir d’une fonction de hachage, exemple :
            HMAC

86/93         Télécom ParisTech   Guillaume Duc           2018–2019
CBC-MAC

                        P1              P2              P3

            0
                   K     E          K   E           K   E

                                                   K0   D
                                                             Optionnel
                                                   K0   E

                                                        H

        E est un algorithme de chiffrement par bloc (D = E −1 )
        La taille du message doit être fixe et connue

87/93           Télécom ParisTech       Guillaume Duc             2018–2019
HMAC

        HMACk (m) = h((k ⊕ opad)||h((k ⊕ ipad)||m))
        Où h est une fonction de hachage

88/93         Télécom ParisTech   Guillaume Duc       2018–2019
Plan

        Introduction
            Généralités
            Fiabilité et Sécurité

        Rappels d’électronique numérique

        Introduction à la sécurité
            Algorithmes de chiffrement
               Considérations générales
               DES
               AES
               RSA
           Fonctions de hachage

        Conclusion

89/93               Télécom ParisTech     Guillaume Duc   2018–2019
Conclusion

        La fiabilité et la sécurité sont deux aspects de la sûreté de
        fonctionnement
        Au sein d’un circuit électronique, plusieurs phénomènes
        (processus de fabrication, vieillissement, etc.) peuvent
        entraîner des fautes pouvant provoquer une défaillance du
        circuit et du système dans lequel il est intégré
        Des fautes peuvent également être provoquées
        volontairement (via la manipulation de l’environnement du
        circuit : température ou tension d’alimentation, ou via
        l’injection de particules énergétiques : laser) afin de violer
        les propriétés de sécurité (confidentialité, intégrité, etc.) du
        système

90/93         Télécom ParisTech   Guillaume Duc            2018–2019
Plan

        Références

91/93            Télécom ParisTech   Guillaume Duc   2018–2019
Références I
        [1] Eli Biham and Adi Shamir.
            Differential cryptanalysis of the full 16-round DES.
            In Advances in Cryptology — CRYPTO’ 92, volume 740 of Lecture Notes in Computer Science, pages
            487–496. Springer Berlin Heidelberg, 1993.
        [2] Auguste Kerckhoffs.
            La cryptographie militaire.
            Journal des sciences militaires, IX :5–38, January 1883.
        [3] Auguste Kerckhoffs.
            La cryptographie militaire.
            Journal des sciences militaires, IX :161–191, February 1883.
        [4] Thorsten Kleinjung, Kazumaro Aoki, Jens Franke, Arjen Lenstra, Emmanuel Thomé, Joppe Bos, Pierrick
            Gaudry, Alexander Kruppa, Peter Montgomery, Dag Arne Osvik, Herman te Riele, Andrey Timofeev, and Paul
            Zimmermann.
            Factorization of a 768-bit RSA modulus.
            Cryptology ePrint Archive, Report 2010/006, 2010.
            http://eprint.iacr.org/2010/006.
        [5] Jean-Claude Laprie, editor.
            Dependability : Basic Concepts and Terminology, In English, French, German, Italian and Japanese, volume 5
            of Dependable Computing and Fault-Tolerant Systems.
            Springer-Verlag Wien, 1992.
        [6] Mitsuru Matsui.
            Linear cryptanalysis method for DES cipher.
            In Advances in Cryptology — EUROCRYPT ’93, volume 765 of Lecture Notes in Computer Science, pages
            386–397. Springer Berlin Heidelberg, 1994.

92/93                      Télécom ParisTech               Guillaume Duc                          2018–2019
Références II

        [7] SciEngines.
            Break des in less than a single day.
            Press Release, 2009.
            http://www.sciengines.com/company/news-a-events/74-des-in-1-day.html.
        [8] Claude E. Shannon.
            Communication theory of secrecy systems.
            Bell System Technical Journal, 28(4) :656–715, 1949.

93/93                      Télécom ParisTech              Guillaume Duc             2018–2019
Vous pouvez aussi lire