Scan-Chain Attack.

Slides:



Advertisements
Présentations similaires
Tests et Validation du logiciel
Advertisements

Techniques dattaques des microcircuits par pénétration partielle Bruno Kérouanton – Resp. SNT - CISSP.
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Construction d’une image par un miroir plan
JAV - TD 6 Structures de données JAVA
I. 3 Cryptages composés.
Parallel Programming in C with MPI and OpenMP
Améliorer les performances du chiffrage à flot SYND
Des RRA à la diagnosticabilité
Damier Alexandre & Lebrun Bastien
CryptoGraphy
Damier Alexandre Saccomani Thomas M2 MAIMIR CCS
Cours #6 Conception d’unités de contrôle
Cours #8 Flot de conception d’un circuit numérique
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Les Algorithmes Cryptographiques Symétriques
Sécurité WiFi EXPOSE DE RESEAU Rudy LEONARD Prâsad RAMASSAMY
Cryptographie Réalisé par TOUJENI Noura BEN SOUISSI Rania KARAOUD Imen
POLI-D-208 Introduction à la recherche en sciences politiques Partie Exercices Titulaire: Jean-Benoit Pilet.
Recherche Opérationnelle
ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration = Optimisation Louis-Martin Côté Professeur : A. Khouas.
Plan Introduction DFT d’un additionneur asynchrone
Plan Problématique Fautes de délai Techniques de test « at-speed »
Réduction de la consommation de puissance durant le test des circuits munis de chaines de scan khalid El Amrani-ele6306 khalid El Amrani.
Cours #7 Vérification d’un modèle VHDL
Cours #5 Conception de chemins des données
3.3 Circuits logiques à mémoire Bascules (latches)
Le processus scientifique
Programmation logique Le Langage PROLOG
Le chiffrement asymétrique
Le chiffrement symétrique
Banc d’essai pour un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines.
Advanced Boolean Equation Language
Tests de boîte noire.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Programmation créative – Les vecteurs
TP N°4 – M2 EEA SM Conception en Vue du Test. Objectifs Réaliser le flot complet de synthèse – test – synthèse en vue du test Utilisation d’un design.
Pr BELKHIR Abdelkader USTHB
VOUS PENSIEZ POUVOIR PROTÉGER VOS DONNÉES AVEC LE CHIFFREMENT D’OFFICE ? CRYPTANALYSE DE MICROSOFT OFFICE 2003.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
Techniques de BIST à puissance réduite
ELE6306 : Test de systèmes électroniques Projet de cours Core Test Language (CTL) Maurice Kouam; Guillaume Wild Professeur : A. Khouas Département de génie.
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
Mai 2005 Ghislain Fraidy Bouesse TIMA-CNRS-INPG-UJF 46 Av. Félix Viallet Grenoble Cedex France CIS group "Concurrent Integrated Systems" Les Circuits.
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
Attaques en fautes.
Générateurs Pseudo-aléatoires et stream cipher Les LFSRs
ATTAQUES PAR CANAUX CACHÉS SIDE-CHANNEL ATTACKS
La famille est un système ouvert :
Compression de données de test : Réduction du nombre de broches et gain en temps de test Julien DALMASSO, Marie-Lise FLOTTES, Bruno ROUZEYRE {dalmasso,
ELE6306 : Test de systèmes électroniques Test intégré et Modèle de faute de délai Etudiante : S. BENCHIKH Professeur : A. Khouas Département de génie électrique.
Les bases du protocole Modbus
17/04/2017.
Les attaques Physical Attacks : Principles Courtesy E. Oswald, Univ Bristol a q I(R) Physical Attacks : Principles.
Contrôle des coûts.
ELEMENT DE TRANSFERT.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Post-optimisation, analyse de sensibilité et paramétrage
Chapitre 4 La représentation des nombres.
Principe de la numération en une base donnée
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Multiplexeurs A.Lebrun.
A.Lebrun. Principe des compteurs Les compteurs servent à mesurer le nombre d’impulsion qui arrivent sur l’entrée de comptage Les compteurs sont constitués.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
1 Objectifs Apprendre la structure de quelques circuits combinatoires souvent utilisés ( demi additionneur, additionneur complet,……..). Apprendre comment.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

Scan-Chain Attack

Design for Testability (DfT) conception en vue du test Ajout de structures pour faciliter le test des circuits (non utilisées en mode fonctionnel) La plus commune (95% des circuits) : chaines de scan

Scan-based Design ... Input Patterns Output Responses Primary Inputs Combinational Logic Primary Outputs ... ... Output Responses Input Patterns ... ... FF FF Concentriamo siu circuiti sequenziali E’ facile accedere agli ingressi/uscite Se potessimo accedere anche ai flip flop sarebbe facile perche’ il circuito diventa combinatorio ... FF

Scan-based Design (2) ... Primary Inputs Combinational Logic Primary Outputs ... ... Observation de tous les états ... ... Scan Out FF Scan Enable Parlare del costo della soluzione FF Contrôle de tous les états ... FF Scan In

Attaque par scan Principe Utiliser la chaine de scan pour observer les données internes au circuit à n'importe quel moment Méthode (ex: retrouver les données sensibles) -1- Trouver les FFs parmi toutes les FFS qui mémorisent le chiffré. -2- Connaissant le message clair et le message partiellement chiffré (en utilisant le mode test), en déduire la clef.

Attaque sur AES AES Contraintes et hypothèses : Attaque: Round a b c d PlainText – 128 bits AES Sûr après 10 rondes Contraintes et hypothèses : L'attaquent peut commuter du mode test au mode fonctionnel Les FFS du registre de ronds sont dans la chaine de scan Il y a d'autres FFs dans la chaine L'ordre des FFs dans la chaine est inconnu de l'attaquant. Attaque: La chaine de scan est observée après la première ronde. Après une seule ronde l'AES est facilement attaquable. a b Secret Key 128 bits SubBytes c ShiftRows d MixColumns e Key Generation R ScanIn Other FFs Register ScanOut Round CipherText – 128 bits

Attaque différentielle 2 vecteurs par étape Reset Mode normal une ronde Mode test observation des FFs Vector 1 a b Secret Key 128 bits SubBytes c ShiftRows d MixColumns e Key Generation 1 Other FFs Register ScanOut ScanIn x Round CipherText – 128 bits

Attaque différentielle Vector 2 Second vector Reset Mode normal une ronde Mode test observation des FFs a' b' Secret Key 128 bits SubBytes c' ShiftRows d' MixColumns e' Key Generation x R R' Other FFs Register ScanOut ScanIn x' Round CipherText – 128 bits

Elimination des FFs non sensibles Hypothese: Les autres FFs sont indépendantes du message clair => après une ronde elles ont même valeur Distance de Hamming On observe 128 bits Mais ils dépendent de 128 bits de clef Other FFs Register x R Other FFs Register x' R' …00000000000… R xor R'

Problématique Comment reconnaître les données intéressantes dans le flots de bits obtenus sur le Scan-out ? Comment réduire la complexité de l'analyse des données ?

Attaque scan -1- Identification des FFs du registre de ronde (en fait non nécessaire pour l'AES) Appliquer plusieurs vecteurs a scan-out ..... 1 0 1 1 0 x x x x 0 1 0 0 1 0 x x 1 1 0 ….. scan-out ….. 0 1 0 1 0 x x x x 1 0 0 0 0 1 x x 0 1 0 ….. R

Attaque scan Input a AES implementation K Key Xor b Sub Bytes c Les 128 bits sont partitionnés en 16 octets Les 128-bits du registre de ronde R dans la chaîne de scan K Key Xor b Sub Bytes a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 c Shift Row d Mix Column e RK1 Key Xor f Scan in Register R Scan out

Attaque scan -2- Réduction de la complexité Changement du clair a en a’ => changement des données dans R ? Changement d'un seul octet de a a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0 fi0 changé en f’i0 (4 octets dans R) a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 a00 a01 a02 a03 a10 a’11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33

Attaque scan -2- Réduction de la complexité Note: changement du clair a en a’ => changement des données dans R Changement d'un seul octet de a Opération : Xor Clef a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0 fi0 changé en f’i0 (4 octets dans R) b00 b01 b02 b03 b10 b11 b12 b13 b20 b21 b22 b23 b30 b31 b32 b33 b00 b01 b02 b03 b10 b’11 b12 b13 b20 b21 b22 b23 b30 b31 b32 b33

Attaque scan -2- Réduction de la complexité Note: changement du clair a en a’ => changement des données dans R Changement d'un seul octet de a Opération : SubByte a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0 fi0 changé en f’i0 (4 octets dans R c00 c01 c02 c03 c10 c11 c12 c13 c20 c21 c22 c23 c30 c31 c32 c33 c00 c01 c02 c03 c10 c’11 c12 c13 c20 c21 c22 c23 c30 c31 c32 c33

Attaque scan -2- Réduction de la complexité Note: changement du clair a en a’ => changement des données dans R Changement d'un seul octet de a Opération : ShiftRow a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0 fi0 changé en f’i0 (4 octets dans R d00 d01 d02 d03 d10 d11 d12 d13 d20 d21 d22 d23 d30 d31 d32 d33 d00 d01 d02 d03 d’10 d11 d12 d13 d20 d21 d22 d23 d30 d31 d32 d33

Attaque scan -2- Réduction de la complexité Note: changement du clair a en a’ => changement des données dans R Changement d'un seul octet de a Opération : MixColumn a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0, I = 1..4, 4 octets fi0 changé en f’i0 (4 octets dans R) e00 e01 e02 e03 e10 e11 e12 e13 e20 e21 e22 e23 e30 e31 e32 e33 e’00 e01 e02 e03 e’10 e11 e12 e13 e’20 e21 e22 e23 e’30 e31 e32 e33

Attaque scan -2- Réduction de la complexité Note: changement du clair a en a’ => changement des données dans R Changement d'un seul octet de a Opération : AddRoudKey a11 changé en a’11 b11 changé en b’11 c11 changé en c’11 d10 changé en d’10 ei0 changé en e’i0, I = 1..4 fi0 changé en f’i0 (4 octets dans R) f00 f01 f02 f03 f10 f11 f12 f13 f20 f21 f22 f23 f30 f31 f32 f33 f’00 f01 f02 f03 f’10 f11 f12 f13 f’20 f21 f22 f23 f’30 f31 f32 f33

Réduction de la complexité Conclusion : Le changement d'un seul octet de message clair entraine la modification de 4 octets dans le registre de ronde. Dépendance d'un seul octet de la clef

Propriétés P1 : Après le changement d'un seul bit de a, la distance de Hamming entre R et R' vaut entre 5 et 27 P2 : Les valeurs de la distance de Hamming 9, 12, 23 or 24 correspondent à une unique valeur de b (octet) 226, 242, 122, 130 (resp.) Principe de l'attaque : On applique des paires a , a' ne différant que d'un seul bit jusqu'à obtenir une distance de Hamming entre R et R' égale à 9, 12, 23 ou 24 On en déduit la valeur de l'octet bi,j Or bij = Kij  aij , Kij = aij  bij

Attaque scan : exemple On applique a avec aij = (00100011)2 = 35 On compte le nombre de 1 dans f  f ’ = 9 par exmple On déduit que bij = 226 = (1100 0010)2 Donc Kij = aij  bij = (00100011)2  (1100 0010)2 = (1110 0001)2 = 225