se304 — fiabilité/sécurité des circuits intégrés · se304 — fiabilité/sécurité des...

94
SE304 — Fiabilité/Sécurité des Circuits Intégrés Cours d’introduction Guillaume Duc 2017–2018

Upload: hadieu

Post on 12-Sep-2018

229 views

Category:

Documents


0 download

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

La porte non-et (NAND)

Vss

Vdd

A

A

B

B

Out

26/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

Plan

Références

90/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