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–2019Plan
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–2019Objectifs 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–2019Objectifs 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–2019Dé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–2019Plan
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–2019Service 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–2019Sû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–2019Fautes, 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–2019Fautes, 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–2019Fautes
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–2019Dé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–2019Notions 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–2019Notions 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–2019Origine 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–2019Plan
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–2019La 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–2019Le 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–2019La 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–2019Logique 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–2019Logique 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–2019Le 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–2019Inverseur CMOS
Vdd
e s
Vss
25/93 Télécom ParisTech Guillaume Duc 2018–2019Inverseur 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–2019Inverseur 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–2019Gé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–2019La porte non-et (NAND)
Vdd
A B
Out
A
B
Vss
27/93 Télécom ParisTech Guillaume Duc 2018–2019CMOS & 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–2019CMOS & 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–2019Fré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–2019Plan
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–2019Modè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–2019Proprié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–2019Cryptologie
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–2019Cryptographie
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–2019Plan
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–2019Plan
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–2019Chiffrement
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–2019Chiffrement
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–2019Chiffrement
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–2019Chiffrement
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–2019Taxonomie 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–2019Algorithme 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–2019Modes 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–2019Modes 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–2019Modes 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–2019Modes 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–2019Blocs 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–2019Blocs 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–2019Tables 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–2019Permutations
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–2019Sché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–2019Implé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–2019Implé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–2019Implé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–2019Implé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–2019Plan
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–2019Introduction
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–2019Sé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–2019Sé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–2019Sché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–2019Fonction 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–2019Key Scheduling (DES)
K (64 bits)
PC1
56
28 28Plan
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–2019Introduction
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–2019Opérations
Tour initial
• AddRoundKey
Tours suivants
• SubBytes
• ShiftRows
• MixColumns
• AddRoundKey
Tour final
• SubBytes
• ShiftRows
• AddRoundKey
67/93 Télécom ParisTech Guillaume Duc 2018–2019Opé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–2019Opé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–2019Opé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–2019Opé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–2019Plan
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–2019Introduction
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–2019Clé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–2019Chiffrement / 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–2019Preuve
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–2019Exponentiation 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–2019Plan
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–2019Fonction 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–2019Fonction 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–2019Fonction 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–2019Fonction 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–2019Usages
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–2019Usages
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–2019Usages
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–2019Exemples
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–2019CBC-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–2019HMAC
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–2019Plan
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–2019Conclusion
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–2019Plan
Références
91/93 Télécom ParisTech Guillaume Duc 2018–2019Ré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–2019Ré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–2019Vous pouvez aussi lire