La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Attaques en fautes.

Présentations similaires


Présentation au sujet: "Attaques en fautes."— Transcription de la présentation:

1 Attaques en fautes

2 Attaques en faute ? Vcc, clk, T, flash, laser X, UV, etc… Syndrome :
clair ? X Vcc, clk, T, flash, laser X, UV, etc… Déroutement de programme Calculs incorrects (DFA) Déclenchement d’alarmes (Safe error) Il s’agit de “secouer” le composant avec divers moyens com… On obtient de deroutement de programme. Cela permet par exemple de contourner un test (comme la vérif d’un code pin) ou de réduire le nombre de rondes d’un algorithme de crypto et donc de l’affaiblir. Il est egalement possible de recuperer des infos sur les clefs par comparaison entre les résultats de calcul crypto avec ou sans fautes. Mais plus subtil encore d’obtenir des infos simplement à partir du comportement du circuit en présence de fautes. Tests Réduction de rondes Syndrome : Le fonctionnement du circuit peut être perturbé par la modification de son environnement

3 Attaque sur le RSA

4 Devinette (un peu de maths)
Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2 Combien a-t-on d'objets ?

5 Les restes chinois n1, n2, ….., nk premiers entre eux 2 à 2
Soit n = n1 . n2 . … . nk Soit le système : x = a1 (mod n1) x = a2 (mod n2) …….. x = aj (mod nk) n1,n2,….,nj ,a1, a2, …., aj, connus Théorème : Il existe une solution unique (modulo n) avec x = ∑ ai*ei avec ei = ki * (ki-1 (mod ni)) et ki= n/ni Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2

6 Exemple x = 2 (mod 3) => k1 = (3*5*7)/3 = 35
Soient des objets en nombre x inconnu. Si on les range par 3 il en reste 2 Si on les range par 5, il en reste 3 et si on les range par 7, il en reste 2 x = 2 (mod 3) => k1 = (3*5*7)/3 = 35 x = 3 (mod 5) => k2 = (3*5*7)/5 = 21 x = 2 (mod 7) => k3 = (3*5*7)/7 = 15 on obtient n1 = 3 et k1 = 35 => k1-1 (mod 3) = 2 puisque 2*35 =1 (mod 3) n2 = 5 et k2 = 21 => k2-1 (mod 5) = 1 puisque 1*21 =1 (mod 5) n3 = 7 et k3 = 15 => k3-1 (mod 7) = 1 puisque 1*15 =1 (mod 7) une solution pour x est x=2*35*2 +3*21*1+2*15*1 = 233 (mod 105) et les solutions sont tous les entiers congrus à 233 modulo 105, c'est-à-dire à 23 modulo 105. x = 23 ou ou ou …

7 Rappel : RSA Cryptographie à clé « privée » cryptage symétrique
Clé petite (128 bits), chiffrement rapide Chiffrage Déchiffrage Canal Emetteur Récepteur hello fidjr Cryptographie à clé « publique » cryptage asymétrique 2 grandes clés (512 à 1024 bits) : 1 publique connue de tous 1 privée pour déchiffrer Chiffrage Déchiffrage Canal Emetteur Récepteur hello fidjr

8 Rappel : RSA Cryptographie à clé publique
RSA (Rivest, Shamir, Adleman, 1977) Le Récepteur génère les clés: Il prend deux grands nombres premiers p et q gardés secrets clé "publique": - n = p*q - (n)=(p)(q)= (p-1)(q-1) - Soit a premier avec (n) - b = a-1 mod (n) par l’algorithme d’Euclide étendu il faut que (a.b) mod (n) =1 clé "privée" : a (élément inversible )

9 Soit x le message à chiffrer ( x < n )
Rappel : RSA Exemple: Récepteur génère les clés Soit p = 9767 , q = , (p et q premiers), n = p*q = (n) = (p-1)(q-1) = a = et b = a-1 mod (n) = On a bien (a . b) mod (n) = 1 Récepteur publie ( b , n ) = ( , ) clé privée» clé publique» Soit x le message à chiffrer ( x < n ) Emetteur Récepteur y = xb mod n z = ya mod n Clé publique Clé privée

10 Récepteur reçoit Y et calcule Z = 1240905817345973 mod 120593149
Exemple clé privée» clé publique» Emetteur chiffre le message : « hello » et le découpe en blocs de 24 bits 24 bits X = ( )2 = ( )10 Y = mod = Récepteur reçoit Y et calcule Z = mod Z = = 104* *

11 RSA-CRT n = p * q , p et q premiers (rôles des n1 et n2 du CRT)
Soit à calculer S = xb (mod n) CRT : But = accélérer le calcul avec des modulo plus petits On calcule S1 = xb (mod p) (S1 joue le rôle du a1 précédent, p celui du n1) S2 = xb (mod q) (S2 ………………………………., q celui du n2) k1 = q , k2 =p En appliquant le résultat du théorème (restes chinois)

12 RSA-CRT archi α xb (mod p) xb (mod q) x S1 S2 β xd (mod n)

13 Attaque : phase 1 α β α β S1 xb (mod p) x S = xd (mod n) xb (mod q) S2
On code 2 fois le même message, un fois sans faute, une fois avec faute. S1 ≠ S1* S2 = S2*

14 Attaque : phase 2 En d’autres termes : p et q premiers, n = p*q
q divise (S-S*) et p ne divise pas (S-S*) Donc PGCD (S-S*, n = pq) = q On a n, S et S*, on en déduit q, on en déduit p. On a tout

15 Exercice n = 35 = p*q (imaginez à la place, un très grand nombre n produit de 2 nombres premiers), b =11 Trouver p et q ( 5 et 7 ici évidement) Soit x = 4 à coder càd calculer S = 411 (modulo 35) Sans erreur : p=5, p-1 mod 7 = 3 => α = 3*5 = 15 =1 mod 7 q=7, q-1 mod 5 = 3 => β = 7*3 = 21 =1 mod 5 α = 3*7 =21 β = 3*5 =15 S1 = 411 (modulo 5) = 4 S2 = 411 (modulo 7) = 2 S = 4 * * 2 (modulo 35) = 114 (modulo 35) = 9

16 Exercice 21 15 21 15 S1 = 4 411 (mod 5) 4 S = 114(mod 35) = 9
xd (mod p) 411 (mod 7) 4 S1*= 3 S2 =2 15 S* = 93(mod 35) = 23

17 Récapitulatif Connus n = 35 =p*q S = 9 S*= 23
PGCD (23-9, 35) = PGCD (14, 35) = 7 = q 35 = p *7 => p = 5

18 Attaque : conditions Les conditions de l’attaque :
Pouvoir crypter 2 fois le même message (qui est quelconque) Pouvoir injecter une erreur dans un seul des deux calcul d’exponentiation Pas d’hypothèse sur le type d’erreur !

19 Les attaques sur l'AES Giraud (Oberthur Card System) 2003
Attaque sur un bit sur entrée dernier SubBytes Attaque sur KeySchedule (K9, K8) puis datapath (M8) Chen et Yen 2003 Attaque sur KeySchedule (K9, 2 fois K8) Contre-mesures présentées Attaques sur datapath (MixColumns) Dusart, Vivolo et Letourneux 2003 Piret et Quisquater 2003 Safe error (Blömmer et Seifert) 2003 Attaque bit 2 attaque octet Implémentation xtimes

20 Les attaques sur l'AES Giraud (Oberthur Card System) 2003 : Attaque sur un bit sur entrée dernier SubBytes

21 L’attaque bit de Giraud
Faute : On attaque 1 bit sur un octet avant le dernier SubBytes L'octet est faux à la sortie Attaque : On réalise deux exécutions, une normale et une fautée, avec le même texte clair non connu On xore les deux résultats, un seul octet diffère La position de l’octet nous donne l'octet sur lequel l'attaque a eu lieu (InvShiftRows) On fait des hypothèses sur le bit faux, on calcule les candidats On réalise d’autres exécutions si besoin pour départager les candidats Fautes requises : moins de 50 pour la clé complète

22 Mise en œuvre des attaques en fautes
Par perturbation de la tension d’alimentation Par perturbation de l’horloge Par perturbation de la température Attaques Électromagnétiques Injection laser Injection de particules Les attaques en faute exploitent les propriétés physiques des circuits et consistent à perturber le déroulement du calcul d’un algorithme, en perturbant soit sa tension d’alimentation, son signal d’horloge, ou en introduisant volontairement des fautes pendant son exécution à l’aide d’un faisceau laser par exemple

23 Techniques d’injection de fautes non invasives.
Revue expérimentale des techniques d’injection de fautes Introduction. Mise en perspective - Problématique Techniques d’injection de fautes non invasives. Théorie (violations de setup et de délai) Réalisations expérimentales Techniques d’injection de fautes semi-invasives. L’injection laser (effet photoélectrique) Injection mono octet Conclusion

24 Technique d’injection
Introduction Technique d’injection Partie expérimentale Chiffrés fautés, side channels, comportement, etc. Méthodes Réduction nb. rondes Analyse différentielle de fautes Safe error Modèle de faute Instant d’injection Bit /Octet Random / Given value Extraction informations La technique d’injection employée doit permettre l’injection de fautes respectant le modèle de faute requis.

25 Attaques non invasives : ne requérant pas l’ouverture du boîtier.
Impulsion EM Over clocking Clk “glitch” Augmentation de T° Modification de Vdd Vcc “glitch” d’alimentation

26 Contrainte temporelle des circuits synchrones.
Logique conbinatoire 1 1 DpMax 1 1 data D Q D Q Dffi Dffi+1 DclkQ clk Tclk + Tskew - su data arrival time = DclkQ + DpMax data required time = Tclk + Tskew - su Tclk > DclkQ + DpMax - Tskew + su

27 Injection de faute par violation de temps de setup / délai
Overclocking. Approche classique : décroissance progressive de Tclk jusqu’à obtenir une violation de temps de setup. Tclk’ < DclkQ + DpMax –Tskew + su < Tclk Tclk clk DclkQ + DpMax - Tskew + su Tclk’ clk’

28 Injection de faute par violation de temps de setup / délai
Temps de propagation – Chemin critique sorties = f (entrées) délai f fonction logique D0 Logique n D1 m chaque Di possède son propre temps de propagation combinatoire Dm-1 entrées sorties Localisation des fautes : délai > Tclk’ – setup time – DclkQ + Tskew Chemin critique = max des tps de propagation Le temps de propagation dépend : des niveaux logiques ( 0 / 1 ) permet de modifier l’endroit d’injection → le temps de propagation change avec les entrées de la tension d’alimentation de la température

29 Injection de faute par violation de temps de setup / délai
Overclocking (suite). limitation : injection de fautes potentiellement à chaque cycle d’horloge. Glitch d’horloge – Modification locale d’une période. clk Tclk Tclk - T clk’ DpMax + su Choix du cycle d’injection. Contrôle fin de la nature des fautes injectées (T = 35 ps).

30 Injection de faute par violation de temps de setup / délai
Dispositif expérimental COM série trigger Clock AES generation board board COM série clock

31 Injection de faute par violation de temps de setup / délai
Cible : AES matériel. Registre en entrée du SubBytes Architecture en boucle (i.e. chemin critique)  Enrique Zabala - Universidad ORT/Montevideo/Uruguay

32 Résultats expérimentaux
Injection en ronde finale (fclk, nom = 100 MHz) Diminution progressive de Tclk (T = 35 ps) 16 15 14 13 No fault 12 One-bit fault 11 10 Two-bits fault Byte nb. 9 Other fault 8 7 6 5 4 3 2 1 350ps 5485ps 7585ps D1 3 bits fautés D2 Pas de faute Octet n°7 D3 2 bits fautés D4 D5 D6 D7 1 bit fauté D8 Tclk-T Tclk = ps Tclk-T

33 ! Résultats expérimentaux Glitch d’horloge.
Accès CLK requis Contrôle de la focalisation : excellent Faute mono-bit > 90% Fautes 1 puis 2 bits > 70% Fautes 1,2 puis 3 bits > 50% Contrôle de l’instant d’injection : total (choix du cycle) Type de fautes : aléatoire Facilité d’emploi : aisée (plateforme numérique) Coût : faible (<1000 €)

34 Résultats expérimentaux
Glitch d’horloge. No fault One-bit fault Contrôle de la localisation : par variation du texte clair Two-bits fault Other fault 16 15 14 Octet 14 13 12 11 10 9 8 7 6 5 4 3 2 1 350ps 5240ps 7340ps 16 15 14 Même clef Texte clair différent 13 12 11 10 9 8 7 6 5 4 Octet 4 3 2 1 5485ps 7585ps

35 Résultats expérimentaux
Glitch d’horloge. Résultats obtenus pour essais : 58 41 60 37 Contrôle de la localisation : possible (dépendant de l’implémentation)

36 Revue expérimentale des techniques d’injection de fautes
Glitch d’horloge. Reproductibilité : bonne (mais non absolue)  180 ps pas de faute setup délai

37    Injection de faute par violation de temps de setup / délai
Injection de faute par diminution de la tension d’alimentation. (à fréquence nominale) Tension d’alimentation ( DclkQ, su, Tskew  ) DpMax Tclk < DclkQ + DpMax - Tskew + su Injection de fautes à chaque cycle d’horloge DpMax + su + slack DpMax + su + slack Logique combinatoire D0 D0 D0 D0 Logique Logique n n D1 D1 D1 D1 m m m m entrées combinatoire sorties sorties Dm-1 Dm-1 Dm-1 Dm-1 Tclk

38 Injection de faute par violation de temps de setup / délai
Injection de faute par diminution de la tension d’alimentation. Evolution du temps critique avec la tension d’alimentation : picoseconds Tclk 1ère faute vers 1,07 V

39 Injection de faute par violation de temps de setup / délai
Glitch d’alimentation (à fréquence nominale) time voltage VDD nominal Injection de faute durant le glitch choix du cycle d’injection VDD nominal voltage Même mécanisme pour un glitch sur la masse (ground bounce) Gnd bounce time

40 Injection de faute par violation de temps de setup / délai
Augmentation de la température (à fréquence nominale)

41   Injection de faute par violation de temps de setup / délai
Augmentation de la température (à fréquence nominale) DpMax ( DclkQ, su, Tskew  ) 1ère faute vers 210 °C

42 Mécanisme d’injection similaire.
Revue expérimentale des techniques d’injection de fautes Injection de faute par violation de temps de setup / délai : Overclocking. Glitch d’horloge. Injection de faute par diminution de la tension d’alimentation. Glitch d’alimentation. Augmentation de la température. Mécanisme d’injection similaire. Validation expérimentale de l’identité des fautes injectées.

43 Revue expérimentale des techniques d’injection de fautes
Attaques semi-invasives : ouverture chimique/mécanique du boîtier. Techniques d’injection optique [Sko02] : flash, Laser. [Sko02]

44 Effet du laser sur le silicium - Effet photoélectrique
Drain ( Gnd ) Drain ( VDD ) Laser - + Diffusion n+ E ZCE Substrat P (Gnd) Courant (mA) Composant instantanée Composant retardée Transitoire de courant énergie du faisceau durée transitoire de tension

45 Energy of the band gap of the silicon
Effet du laser sur le silicium - Effet photoélectrique V1=Vdd V2=gnd e- P-substrate SCR N+ P+ e- Induced photocurrent h+ h+/e- separation Energy of the laser > Energy of the band gap of the silicon

46 Effet photoelectriqe Transient current => Transient voltage pulse
46 Iph = f(Powerlaser, Areapn, Distancepn,Timelaser, …..) Transient current => Transient voltage pulse => Fault/Error

47 Injection de faute par laser
Effet du transitoire de tension : propagation dans la logique sans mémorisation, propagation dans la logique avec mémorisation, inversion de l’état d’un point mémoire (registre, SRAM). injection de faute Paramètres de réglage d’un laser : longueur d’onde, énergie, taille du faisceau, (état de l’art 1 µm min.) durée de l’impulsion, gigue.

48 Injection de faute par laser
Contrôle de la focalisation : Technologie Transistor MOS SRAM 1 µm 0.35 µm Spot laser 130 nm 90 nm 65 nm

49 Injection de faute par laser
Contrôle de la focalisation : Taille du spot 1 µm 10 µm Zone d’effet Energie déposée 1 µm zone d’effet

50 Injection de faute par laser
Contrôle de la localisation : lié au contrôle de la focalisation platine (x,y,z) Contrôle de l’instant d’injection : selon électronique de commande et technologie (gigue). Coût : élevé à très élevé (qqs 10aine k€ à qqs 100aines k€) Instrument de caractérisation sécuritaire (pour les plus chers) Multinationales, gouvernements, etc. Intérêt : reproductibilité, contrôle de la localisation/focalisation. Outil d’attaque pratique (pour les moins chers) Performances limitées (optiques inadaptées, pointeur laser, expertise, etc.). Interrogation : possibilité de satisfaire aux modèles de faute (DFA) ?

51 Synchronization board ISO Reader (optional)
Banc d’injection laser Laser (IR, Green, UV) XY stage Camera Oscilloscope Synchronization board ISO Reader (optional)

52 Injection de faute par laser
Amélioration de la focalisation (injection mono-octet). Cadre : banc d’injection rudimentaire (spot > 20 µm ). Gain en résolution spatiale dû au contrôle de l’instant d’injection Cible : implémentation AES sur microcontrôleur Attaque Piret – Quisquater : fauter un octet avant le MixColumn de la ronde 9 RAM fauter un octet de K8

53 Injection de faute par laser
K3 K4 Chiffré RAM K5 K6 K7 K8 K9 K10 K9 K10 K7 K8 K5 K6 K3 K4 Chiffré Pas de déplacement : 0,1 µm Injection en ronde 8 Algorithmique : faute mono-octet avant le AddRoundKey Physique : fautes multi octets

54 Conclusion Contrôle de facilité d’emploi reproductibilité coût
instant d’injection localisation focalisation Glitch d’horloge très bonne maximum moyen très bon bonne faible (numérique) Glitch d’alimentation bon1 moyen très bon bonne moyen bonne (analogique) Overclocking Baisse VDD faible moyen bon bonne faible bonne Température Laser bon2 très bon très bon bonne élevé bonne 1 selon électronique de commande 2 selon électronique de commande et technologie


Télécharger ppt "Attaques en fautes."

Présentations similaires


Annonces Google