Fiabilité/Sécurité des Circuits Intégrés - Cours d'introduction Guillaume Duc - Cours d'introduction
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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