se304 — fiabilité/sécurité des circuits intégrés · se304 — fiabilité/sécurité des...
TRANSCRIPT
SE304 — Fiabilité/Sécuritédes Circuits IntégrésCours d’introduction
Guillaume [email protected]
2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
2/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
3/92 Télécom ParisTech Guillaume Duc 2017–2018
Objectifs du module
Comprendre les enjeux liés à la fiabilité et la sécurité descircuits intégrésConnaître les attaques classiques contre les circuitsintégrés ainsi que les contre-mesures associéesConnaître les indicateurs classiques de la fiabilité dessystèmes intégrés et leurs méthodes d’estimationConnaître les techniques classiques de durcissement dessystèmes intégrés vis-à-vis des fautes
4/92 Télécom ParisTech Guillaume Duc 2017–2018
Objectifs du cours
Découvrir le vocabulaire et les thématiques qui serontcouvertes par le module(Re)Découvrir les notions de base d’électroniquenumérique nécessaires pour suivre le module(Re)Découvrir les notions de base de cryptographienécessaires pour la partie sécurité
5/92 Télécom ParisTech Guillaume Duc 2017–2018
Déroulement & Évaluation
Supports des cours disponibles à l’adresse :https://sen.enst.fr/se304
Examen écrit le jeudi 1er février• Durée : 3 heures• 1 feuille A4 autorisées• Tout autre document, calculatrice, ordinateur, interdits
6/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
7/92 Télécom ParisTech Guillaume Duc 2017–2018
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écificationsUn système va être défaillant à un instant t si le servicerendu à l’utilisateur n’est plus conforme aux spécificationsattenduesUne défaillance correspond à l’altération du service rendupar un système
8/92 Télécom ParisTech Guillaume Duc 2017–2018
Sûreté de fonctionnement [5]
Sûreté de fonctionnement (Dependability ) : propriété quipermet aux utilisateurs du système de placer uneconfiance justifiée dans le service qu’il leur délivrePlusieurs 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 detemps
• Sécurité-innocuité (Safety ) : aptitude du système à éviterdes conséquences catastrophiques sur son environnement
• Sécurité (Security ) : aptitude du système à préserver laconfidentialité et l’intégrité des informations
• Maintenabilité (Maintainability ) : aptitude du système à êtremaintenu ou remis en état de fonctionnement
9/92 Télécom ParisTech Guillaume Duc 2017–2018
Fautes, erreurs et défaillancesDéfinitions
Une faute provoque une erreur qui entraîne une défaillanceErreur : état du système susceptible de provoquer unedéfaillance (état qui n’est plus conforme aux spécifications)
• Exemples : résultat incorrect d’un calcul, entier sortant dela 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
10/92 Télécom ParisTech Guillaume Duc 2017–2018
Fautes, erreurs et défaillancesExemple
V = Debit× Temps ; Si V ≥ Volume cuve alors fermer valve
On suppose que Volume cuve = 20, Debit = 10,Temps = 2Faute : 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 sortieSi V = 20, pas d’erreur, la faute est dormanteSi V 6= 20, la faute est active et vient de provoquer uneerreur• 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
11/92 Télécom ParisTech Guillaume Duc 2017–2018
FautesTaxonomie
Phase de création : Développement / OpérationOrigine : Interne / Externe au systèmeDimension : Matérielle / LogicielleCause : Naturelle / HumaineIntention : Intentionnelles / AccidentellesPersistance : Temporaire / Permanente
12/92 Télécom ParisTech Guillaume Duc 2017–2018
DéfaillancesTaxonomie
Nature : De valeur / Temporelle / ArrêtDurée : Durable / TemporaireGravité : Bénigne / Significative / Critique / Catastrophique(vocabulaire dépendant du domaine considéré)
13/92 Télécom ParisTech Guillaume Duc 2017–2018
Notions couvertes par ce module
Système : principalement circuit intégré numérique (et unpeu 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é)
14/92 Télécom ParisTech Guillaume Duc 2017–2018
Notions couvertes par ce module
Pour la partie sécurité, d’autres attaques, visant lespropriétés de sécurité d’un système (confidentialité,intégrité...) seront également étudiéesEn effet, il n’est pas nécessaire de provoquer une fautedans un système pour violer ces propriétésExemple : SCA
15/92 Télécom ParisTech Guillaume Duc 2017–2018
Origine des fautes (partie fiabilité)
Concernant l’aspect fiabilité du cours, les fautesconsidé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
16/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
17/92 Télécom ParisTech Guillaume Duc 2017–2018
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 nechange pas
Table de vérité
D clk Q
0 ↑ 0 copie de D sur Q1 ↑ 1 copie de D sur Q× 0 Q Q conserve sa valeur× 1 Q Q conserve sa valeur× ↓ Q Q conserve sa valeur
D Q
clk
18/92 Télécom ParisTech Guillaume Duc 2017–2018
Le registreUn registre est un ensemble de bascules D fonctionnanten parallèle• Exemple un registre 4 bits
H
D1
D2
D3
D4
Q1
Q2
Q3
Q4
⇐⇒H
D4 4
Q
19/92 Télécom ParisTech Guillaume Duc 2017–2018
La bascule DContraintes temporelles
th
tco
tsu
Q
clk
D
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 depropagation, clock to output)
20/92 Télécom ParisTech Guillaume Duc 2017–2018
Logique CMOS
La très vaste majorité des circuits électroniquesnumériques est réalisée en logique CMOS(Complementary Metal Oxide Semiconductor )Une source d’alimentation Vdd
Convention logique : 0 ≡ Vss, 1 ≡ Vdd
21/92 Télécom ParisTech Guillaume Duc 2017–2018
Logique CMOS
S
G
D
N+ N+
P−
Transistor nMOS
Canal NPassant si Vgs > VT
S
G
D
P+ P+
N−
Transistor pMOSCanal PPassant si Vgs < −|VT |
22/92 Télécom ParisTech Guillaume Duc 2017–2018
Le transistor MOSDeux interrupteurs électroniques
S
D
VG
Transistor nMOS
VG = Vss⇒ interrupteur ouvert
VG = Vdd⇒ interrupteur fermé
Vdd
D
S
VG
Transistor pMOS
VG = Vss⇒ interrupteur fermé
VG = Vdd⇒ interrupteur ouvert
23/92 Télécom ParisTech Guillaume Duc 2017–2018
Inverseur CMOS
Entrée logique e = 0
→ Ve = 0→ nMOS bloqué→ pMOS passant
→ Vs = Vdd
→ Sortie logique s = 1
Entrée logique e = 1
→ Ve = Vdd
→ nMOS passant→ pMOS bloqué
→ Vs = 0
→ Sortie logique s = 0
Vss
Vdd
e s
24/92 Télécom ParisTech Guillaume Duc 2017–2018
Inverseur CMOS
Entrée logique e = 0
→ Ve = 0→ nMOS bloqué→ pMOS passant
→ Vs = Vdd
→ Sortie logique s = 1
Entrée logique e = 1
→ Ve = Vdd
→ nMOS passant→ pMOS bloqué
→ Vs = 0
→ Sortie logique s = 0
Vss
Vdd
e s
24/92 Télécom ParisTech Guillaume Duc 2017–2018
Inverseur CMOS
Entrée logique e = 0
→ Ve = 0→ nMOS bloqué→ pMOS passant
→ Vs = Vdd
→ Sortie logique s = 1
Entrée logique e = 1
→ Ve = Vdd
→ nMOS passant→ pMOS bloqué
→ Vs = 0
→ Sortie logique s = 0
Vss
Vdd
e s
24/92 Télécom ParisTech Guillaume Duc 2017–2018
Généralisation à une porte complexe
Une porte avec les entrées {e1,e2, . . .} et la sortie S
Deux réseaux duaux :nMOS : permet la mise à 0pMOS : permet la mise à 1
Les deux réseau ne doivent jamaisêtre passants en même tempsPour que S soit une fonctionlogique :• Si N est passant P bloqué• Si P est passant N bloqué
Vdd
E{e1,e2, . . .}
S
N
P
25/92 Télécom ParisTech Guillaume Duc 2017–2018
CMOS & Consommation
Lorsque la sortie d’une porte ne change pas d’état, pas deconsommation consommation statique nulle (ouquasiment)Lorsque la sortie d’une porte change d’état (passage0→ 1 ou 1→ 0), la porte consomme consommationdynamique 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 desorties de portes changeant d’étatCette propriété peut être exploitée pour retrouver dessecrets manipulés par le circuit (voir cours sur les SCA)
27/92 Télécom ParisTech Guillaume Duc 2017–2018
CMOS & Temps de propagation
Lorsque les entrées d’une porte logique changent, il fautun certain temps pour que sa sortie reflète le nouvel étatdes entréesCe temps est appelé temps de propagationIl est également lié au chargement/déchargement descapacités parasites en sortie des portesPendant ce temps, la sortie peut être fausse (vis-à-vis dela fonction réalisée et de l’état actuel des entrées) et nedoit donc pas être prise en compte
28/92 Télécom ParisTech Guillaume Duc 2017–2018
Fréquence de fonctionnement
Combinatoire
Circuit numérique : parties combinatoires encadrées pardes registresPour assurer un bon fonctionnement Tclk > tco + tcrit + tsuoù tcrit est le temps de propagation dans le plus longchemin combinatoire (chemin critique)Si cette contrainte n’est pas respectée fautes
29/92 Télécom ParisTech Guillaume Duc 2017–2018
Évolution du temps de propagation
Pour un circuit fixe, le temps de propagation sur le chemincritique augmente (et donc la fréquence maximale defonctionnement 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 luipermettre de faire commettre des fautes au circuit
30/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
31/92 Télécom ParisTech Guillaume Duc 2017–2018
Modèle de sécurité
Dès lors que l’on veut étudier la sécurité d’un système, ilfaut :• 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
32/92 Télécom ParisTech Guillaume Duc 2017–2018
Propriétés de sécuritéConfidentialité Garantir que seuls les personnes/programmes
autorisés peuvent accéder à une informationIntégrité Garantir qu’une information ne peut pas être
modifiée, involontairement ou volontairement, ougarantir la détection de cette altération
Authentification Prouver l’identité d’une personne, d’unprogramme, d’une machine, etc.
Disponibilité Garantir qu’un système reste en permanenceutilisable par les personnes autorisées
Traçabilité Permettre de savoir qui a fait quoi sur un systèmeinformatique
Non-répudiation et Imputation Impossibilité pour un utilisateurde contester une opération qu’il a réalisée, etimpossibilité pour un utilisateur de s’attribuer lesactions d’un autre
33/92 Télécom ParisTech Guillaume Duc 2017–2018
Cryptologie
La science du secretSe 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 pourgarantir différentes propriétés de sécurité (principalementconfidentialité, intégrité, authentification) sur lesinformations sensibles d’un système pendant leurstockage, leur traitement et leur transmission
34/92 Télécom ParisTech Guillaume Duc 2017–2018
CryptographieFamilles 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 (MessageAuthentication Code)
Algorithmes à clé publique (asymétrique)• Chiffrement (RSA...)• Signature (RSA, DSA...)
35/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
36/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
37/92 Télécom ParisTech Guillaume Duc 2017–2018
ChiffrementGénéralités
E : {0,1}n × {0,1}ke → {0,1}m
P,Ke 7→ C = EKe(P)
D : {0,1}m × {0,1}kd → {0,1}n
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 chiffrementKd est le secret (clé) utilisé pour le déchiffrementE est la fonction de chiffrementD est la fonction de déchiffrement (notée aussi E−1)Si Ke = Kd on parle de cryptographie/chiffrement symétrique (K = Ke estappelée clé secrète)Si Ke 6= Kd on parle de cryptographie/chiffrement asymétrique (Ke est appeléeclé publique et Kd est appelée clé privée)
38/92 Télécom ParisTech Guillaume Duc 2017–2018
ChiffrementGénéralités
Pour un bon algorithme de chiffrement, étant donné C, ildoit être impossible pour un adversaire ne connaissant pasla clé Kd de retrouver P tel que P = DKd (C)
De même, connaissant P1, . . . ,PN et C1, . . . ,CN tels quePi = DKd (Ci), il doit être impossible pour un adversaire deretrouver Kd
Principe de Kerckhoffs [2, 3] : la sécurité ne repose pas surle fait que E et D soient secrets (les algorithmes sontpublics ou ont vocation à le devenir)Les algorithmes de chiffrement sont principalement utiliséspour garantir la confidentialité d’une information
39/92 Télécom ParisTech Guillaume Duc 2017–2018
ChiffrementExemple (cryptographie symétrique)
Alice et Bernard veulent échanger des messagesconfidentiels 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 : E−1
K (c) = E−1K (EK (m)) = m
• Ève qui espionne la communication récupère c mais nepeut 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étriquessont souvent rapides
40/92 Télécom ParisTech Guillaume Duc 2017–2018
ChiffrementExemple (cryptographie asymétrique)
Alice et Bernard veulent échanger des messagesconfidentiels sur un canal de communication non sécurisé• Alice possède la clé publique K B
e de Bernard et seul cedernier possède la clé privée correspondante K B
d• Alice chiffre son message m : c = EK B
e(m) et envoie c à
Bernard• Bernard déchiffre c : DK B
d(c) = m
• Ève qui espionne la communication récupère c mais nepeut pas retrouver m car elle ne connaît pas la clé K B
d
Avantage : pas de secrets partagésInconvénients : les algorithmes de chiffrementasymétriques sont souvent lents, comment prouver quel’on possède bien la clé publique de son correspondant etpas celle d’un adversaire (man-in-the-middle) ?
41/92 Télécom ParisTech Guillaume Duc 2017–2018
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)
42/92 Télécom ParisTech Guillaume Duc 2017–2018
Algorithme de chiffrement par blocBlock 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érentede n, il faut utiliser un mode d’opération
43/92 Télécom ParisTech Guillaume Duc 2017–2018
Modes d’opération usuelsECB — Electronic CodeBook
P1
EK
C1
P2
EK
C2
P3
EK
C3
C1
DK
P1
C2
DK
P2
C3
DK
P3
Chiffrement
Déchiffrement
Problème de sécurité avec ce mode (identification demotifs : deux clairs identiques donnent le même chiffré)
44/92 Télécom ParisTech Guillaume Duc 2017–2018
Modes d’opération usuelsCBC — Cipher Block Chaining
IV
P1
EK
C1
P2
EK
C2
P3
EK
C3
IV C1
DK
P1
C2
DK
P2
C3
DK
P3
Chiffrement
Déchiffrement
IV (Initialization Vector ) est généré aléatoirement pourchaque message chiffré et transmis (en clair)
45/92 Télécom ParisTech Guillaume Duc 2017–2018
Modes d’opération usuelsCTR — Counter Mode
N
EK
P1
C1
N + 1
EK
P2
C2
N + 2
EK
P3
C3
N
EK
C1
P1
N + 1
EK
C2
P2
N + 2
EK
C3
P3
Chiffrement
Déchiffrement
N est un nombre aléatoire, transmis en clair avec lemessageOn ne doit jamais chiffrer deux blocs avec le mêmecompteur
46/92 Télécom ParisTech Guillaume Duc 2017–2018
Modes d’opération
D’autres modes d’opération existentLe 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 enbits)
• Mode compteur : ne jamais chiffrer deux blocs avec lemême compteur
47/92 Télécom ParisTech Guillaume Duc 2017–2018
Blocs de base
Selon Shannon [8], un algorithme de chiffrement est basésur deux propriétés : la diffusion et la confusionConfusion : rendre la relation entre la clé symétrique et letexte chiffré la plus complexe possibleDiffusion : la redondance statistique sur le texte en clairdoit être dissipée dans les statistiques du texte chiffré (lesstatistiques du texte chiffré doivent donner le moinsd’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
48/92 Télécom ParisTech Guillaume Duc 2017–2018
Blocs de base
La confusion est réalisée par des tables de substitution(Substitution Box (S-Box)) qui permettent d’introduire de lanon 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
49/92 Télécom ParisTech Guillaume Duc 2017–2018
Tables de substitution (S-Box)
Fonction logique n bits vers m bits fortement non linéaireImplémentation logicielle• Table en mémoire
Implémentation matérielle• Logique (portes ou LUT sur un FPGA)• Table en ROM
50/92 Télécom ParisTech Guillaume Duc 2017–2018
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 lesprocesseurs généralistes ne disposent pas d’instructionspour la permutation de bits
Permutations de mots (ex. ShiftRows d’AES)• Implémentation triviale en matériel ou en logiciel
(adressage)
51/92 Télécom ParisTech Guillaume Duc 2017–2018
Schéma général
Les algorithmes classiques de chiffrement par blocprésentent une structure itérativeOpération de base (tour / ronde / round) répétée un certainnombre 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 scheduleStructure idéale pour une implémentation matérielleitérative
52/92 Télécom ParisTech Guillaume Duc 2017–2018
Implémentation matérielle itérativeSchéma général
K
PC
SK
Data path
Key schedule
53/92 Télécom ParisTech Guillaume Duc 2017–2018
Implémentation matérielle itérativeProblèmes
Chemin critique souvent long (génération de la sous-clé enparallèle avec la première partie du chemin de donnéespuis addition de la sous-clé et seconde partie du cheminde 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 à laronde n + 1, et donc de réduire le chemin critique
Nécessite d’appliquer les boites S en parallèle (duplicationdu matériel, obligatoire pour DES puisque les boites sontdifférentes, mais pour AES, duplication 16 fois de laboite S)• Pour AES, possibilité de traiter colonne par colonne et ainsi
réduire l’utilisation matérielle (voir plus loin)
54/92 Télécom ParisTech Guillaume Duc 2017–2018
Implémentation matérielle itérativeProblèmes
Fuite d’information importante à des moment précis (frontsd’horloge) lors de la mise à jour des registres d’état (clé etdonnées)Ces registres contiennent des variables internes del’algorithme qui ne sont pas censées être accessibles parl’adversaireVoir cours sur les SCA
55/92 Télécom ParisTech Guillaume Duc 2017–2018
Implémentation matérielle pipelinée
Moyennant la duplication du matériel nécessaire pour fairele calcul d’une ronde, il est possible de pipelinerl’algorithmeLe pipeline ne réduit pas le temps nécessaire (latence)pour chiffrer un bloc mais augmente le débit (nombre deblocs chiffrés pendant une période de temps donnée)Cependant, certains modes d’opération se prêtent mal à laparallélisation (comme par exemple le mode CBC enchiffrement)
56/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
57/92 Télécom ParisTech Guillaume Duc 2017–2018
Introduction
Algorithme de chiffrement par bloc, standardisé en 1977par le National Bureau of Standards américain (FIPS PUB46)Basé sur l’algorithme Lucifer proposé par IBM et modifiépar la NSA (National Security Agency )Traite des blocs de 64 bitsClés de 56 bits (et non 64 !)Schéma de Feistel à 16 rondes
58/92 Télécom ParisTech Guillaume Duc 2017–2018
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 auxmodifications apportées aux S-Box) [1]Cryptanalyse linéaire : nécessite 243 clairs connus [6] ImpraticableForce brute : taille de la clé trop faible (56 bits) pour lespuissances de calcul actuelles Machine RIVYERA [7](128 FPGA) teste toutes les clés (256) en moins de24 heures
59/92 Télécom ParisTech Guillaume Duc 2017–2018
Sécurité (2/2)
DES n’est plus utilisé qu’en mode EDE (Triple DES) :C = EK3(E
−1K2
(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 applicationsbancaires (ex. standard EMV)
60/92 Télécom ParisTech Guillaume Duc 2017–2018
Schéma de Feistel
Plaintext (64 bits)
IP
L0 R0
FSK1
L1 R1
FSK2
L2 R2...
...
L16 R16
FP
Ciphertext (64 bits)
1 tour
16 tours
61/92 Télécom ParisTech Guillaume Duc 2017–2018
Fonction de Feistel (DES)
Ri (32 bits)
E48
SKi (48 bits)
S1 S2 S3 S4 S5 S6 S7 S8
P
32
62/92 Télécom ParisTech Guillaume Duc 2017–2018
Key Scheduling (DES)K (64 bits)
PC156
28 28
<<< <<<
PC2SK1 (48 bits)
<<< <<<
PC2SK2 (48 bits)
<<< <<<
PC2SK16 (48 bits)
63/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
64/92 Télécom ParisTech Guillaume Duc 2017–2018
Introduction
Algorithme de chiffrement par bloc, standardisé par leNIST (National Institute of Standards and Technology ) en2001 après un concours internationalAlgorithme original : Rijndael de Joan DAEMEN et VincentRIJMEN (Belgique)Traite des blocs de 128 bits (16 octets)Clés de 128, 192 ou 256 bits10, 12 ou 14 tours en fonction de la taille de la cléArchitecture SPN (Substitution Permutation Network )
65/92 Télécom ParisTech Guillaume Duc 2017–2018
Opérations
Tour initial• AddRoundKey
Tours suivants• SubBytes• ShiftRows• MixColumns• AddRoundKey
Tour final• SubBytes• ShiftRows• AddRoundKey
66/92 Télécom ParisTech Guillaume Duc 2017–2018
Opération SubBytes
a0,0
a1,0
a2,0
a3,0
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
b0,0
b1,0
b2,0
b3,0
b0,1
b1,1
b2,1
b3,1
b0,2
b1,2
b2,2
b3,2
b0,3
b1,3
b2,3
b3,3S
bi,j = S(ai,j)
67/92 Télécom ParisTech Guillaume Duc 2017–2018
Opération ShiftRows
a0,0
a1,0
a2,0
a3,0
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
a0,0 a0,1 a0,2 a0,3
a1,1 a1,2 a1,3 a1,0
a2,2 a2,3 a2,0 a2,1
a3,3 a3,0 a3,1 a3,2
68/92 Télécom ParisTech Guillaume Duc 2017–2018
Opération MixColumns
a0,0
a1,0
a2,0
a3,0
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
b0,0
b1,0
b2,0
b3,0
b0,1
b1,1
b2,1
b3,1
b0,2
b1,2
b2,2
b3,2
b0,3
b1,3
b2,3
b3,3
⊗c(x)
Multiplication de chaque colonne par un polynôme (dansun corps particulier)Permet la diffusion
69/92 Télécom ParisTech Guillaume Duc 2017–2018
Opération AddRoundKey
a0,0
a1,0
a2,0
a3,0
a0,1
a1,1
a2,1
a3,1
a0,2
a1,2
a2,2
a3,2
a0,3
a1,3
a2,3
a3,3
b0,0
b1,0
b2,0
b3,0
b0,1
b1,1
b2,1
b3,1
b0,2
b1,2
b2,2
b3,2
b0,3
b1,3
b2,3
b3,3
k0,0
k1,0
k2,0
k3,0
k0,1
k1,1
k2,1
k3,1
k0,2
k1,2
k2,2
k3,2
k0,3
k1,3
k2,3
k3,3
bi,j = ai,j ⊕ ki,j
70/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
71/92 Télécom ParisTech Guillaume Duc 2017–2018
Introduction
Inventé par Ron RIVEST, Adi SHAMIR et LeonardADLEMAN en 1977Algorithme de chiffrement asymétrique, mais égalementde signature numériqueSécurité basée sur la difficulté de factorisation de grandsnombres (une clé RSA de 768 bits (soit 232 chiffresdécimaux) a été cassée (factorisée) en 2009 [4])
72/92 Télécom ParisTech Guillaume Duc 2017–2018
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) sontpremiers 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 parexemple 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 informationspubliques, il est nécessaire de retrouver p et q, ce qui estdifficile (problème de la factorisation des grands nombres)
73/92 Télécom ParisTech Guillaume Duc 2017–2018
Chiffrement / Déchiffrement
Chiffrement : c ≡ me (mod n)Déchiffrement : m ≡ cd (mod n)En pratique, on effectue rarement que cette opération(problèmes de sécurité) mais on rajoute notamment dubourrage (padding) aléatoire
74/92 Télécom ParisTech Guillaume Duc 2017–2018
Preuve
Petit théorème de Fermat : si p est premier et a n’est pasmultiple 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)
75/92 Télécom ParisTech Guillaume Duc 2017–2018
Exponentiation modulaireAlgorithme square and multiply (Left to Right)
Inputs : M , KR = 1 ;for i = |K | − 1 ; i ≥ 0 ; i −− do
R = R2 (mod n) ;if Ki == 1 then
R = R ×M (mod n) ;end if
end forReturn R = MK (mod n) ;
Algorithme simpleMais vulnérable à des attaques SCA
76/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
77/92 Télécom ParisTech Guillaume Duc 2017–2018
Fonction de hachageHash 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 à calculerVocabulaire• h est appelé hash, haché ou condensé
78/92 Télécom ParisTech Guillaume Duc 2017–2018
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èmepré-image x ′ 6= x tel quel H(x) = H(x ′)
79/92 Télécom ParisTech Guillaume Duc 2017–2018
Fonction de hachage résistante auxcollisions(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 ′ 6= x tels que H(x) = H(x ′)
80/92 Télécom ParisTech Guillaume Duc 2017–2018
Fonction de hachage à clé(Keyed hash function)
Famille de fonctions Hk paramétrées par une clé secrète kProprié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 nouvelleentrée x 6= xi
81/92 Télécom ParisTech Guillaume Duc 2017–2018
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érationinvolontaire 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 demessage (Message Authentication Codes — MAC)• Utilisés pour garantir l’intégrité et l’authentification de la
source d’un message
82/92 Télécom ParisTech Guillaume Duc 2017–2018
UsagesExemple d’intégrité
Alice désire assurer l’intégrité d’un message m (large)transmis sur un lien non sécurisé à BernardBernard reçoit m′ et veut donc s’assurer que m = m′
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 uncanal sécurisé à BernardBernard calcule h′ = H(m′) et compare h et h′
• Si h 6= h′ alors m 6= m′
• Si h = h′ alors m = m′ avec une très grande probabilité(sinon on a trouvé une collision...)
Si Ève veut changer m, elle doit trouver m′′ 6= m tel queH(m′′) = H(m), c’est-à-dire casser la propriété derésistance à la seconde pré-image de la fonction H
83/92 Télécom ParisTech Guillaume Duc 2017–2018
UsagesExemple d’authentification
Alice veut authentifier un message m envoyé à BernardAlice et Bernard partagent un secret kAlice 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 (m′,h′), calcule h′′ = Hk (m′) et compare h′et h′′
• Si h′ 6= h′′ alors problème• Si h′ = h′′, alors m′ 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 calculerh′ = Hk (m′) avec m′ 6= m ce qui est difficile si elle neconnaît pas k (propriété de résistance au calcul)
84/92 Télécom ParisTech Guillaume Duc 2017–2018
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
85/92 Télécom ParisTech Guillaume Duc 2017–2018
CBC-MAC
0
P1
EK
P2
EK
P3
EK
DK ′
EK ′
H
Optionnel
E est un algorithme de chiffrement par bloc (D = E−1)La taille du message doit être fixe et connue
86/92 Télécom ParisTech Guillaume Duc 2017–2018
HMAC
HMACk (m) = h((k ⊕ opad)||h((k ⊕ ipad)||m))
Où h est une fonction de hachage
87/92 Télécom ParisTech Guillaume Duc 2017–2018
Plan
IntroductionGénéralitésFiabilité et Sécurité
Rappels d’électronique numérique
Introduction à la sécuritéAlgorithmes de chiffrement
Considérations généralesDESAESRSA
Fonctions de hachage
Conclusion
88/92 Télécom ParisTech Guillaume Duc 2017–2018
Conclusion
La fiabilité et la sécurité sont deux aspects de la sûreté defonctionnementAu sein d’un circuit électronique, plusieurs phénomènes(processus de fabrication, vieillissement, etc.) peuvententraîner des fautes pouvant provoquer une défaillance ducircuit et du système dans lequel il est intégréDes fautes peuvent également être provoquéesvolontairement (via la manipulation de l’environnement ducircuit : température ou tension d’alimentation, ou vial’injection de particules énergétiques : laser) afin de violerles propriétés de sécurité (confidentialité, intégrité, etc.) dusystème
89/92 Télécom ParisTech Guillaume Duc 2017–2018
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, pages487–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, PierrickGaudry, Alexander Kruppa, Peter Montgomery, Dag Arne Osvik, Herman te Riele, Andrey Timofeev, and PaulZimmermann.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 5of 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, pages386–397. Springer Berlin Heidelberg, 1994.
91/92 Télécom ParisTech Guillaume Duc 2017–2018
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.
92/92 Télécom ParisTech Guillaume Duc 2017–2018