Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Passive Angriffe ... nicht-invasiv.

Ähnliche Präsentationen


Präsentation zum Thema: "Passive Angriffe ... nicht-invasiv."—  Präsentation transkript:

1 passive Angriffe ... nicht-invasiv

2 Beispiele passiven Angriffstechniken
Power Analysis (PA) - Simple Power Analysis (SPA) nur wenige (einzelne) Messungen - Differential Power Analysis (DPA) mehrere (tausende) Messungen mit nachfolgender Korrelationsanalyse Timing attacks Electromagnetic Analysis (EMA) - Simple Electromagnetic Analysis (SEMA) - Differential Power Analysis (DEMA)

3 PA

4 Typischer Mess-Schaltkreis für PA

5 Messaufbau für PA-Angriff

6 Nadelprober für die Messung auf einer Platine

7 SPA-Angriff auf RSA: „square-and-multiply“-Algorithmus
Momentanleistung als Funktion der Zeit (entnommen aus [Kocher11])

8 Algorithmus „square-and-multiply“
1710=100012 x17 mod n =(( x 24)1 (x 23)0 (x 22)0 (x 21)0  (x 20)1) mod n x 20 x 24 1 Zu berechnen ist : y=xkey mod n 1. y=1; z=x 2. for i=0 to (key_length-1) if keyi = 1 then y = y z mod n z = z2 mod n 5. Output y

9 SPA-Angriff auf RSA: „square-and-multiply“-Algorithmus
Vermutung: nur 1 Operation – entweder Quadrierung oder Multiplikation – per Takt Überlegen, warum die folgende Vermutung hier falsch ist : per Takt wird entweder eine Quadrierung oder Quadrierung mit Multiplikation durchgeführt werden

10 SPA-Angriff auf ECC: „double-and-add“-Algorithmus
Momentanleistung als Funktion der Zeit (entnommen aus [Kadir11])

11 EMA

12 Messaufbau für EMA Miniaturspule zur Messung der elektromagnetischen Abstrahlung, der innere Durchmesser der Spule beträgt 0,25 mm

13 Erfolgreicher SEMA-Angriff auf ECC
Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add“-Algorithmus, entnommen aus [KekeWu09]

14 Algorithmus „double-and-add“
k=1710=100012 17  P =( 1 16P+0 8P+0 4P+0 2P+ 1 P) Zu berechnen ist : Q=k P 1. Q=O; R=P 2. for i=0 to (key_length-1) if keyi = 1 then Q = Q+R R = 2P 5. Output Q

15 Algorithmus „double-and-add-always“
k=1710=100012 17  P =( 1 16P+0 8P+0 4P+0 2P+ 1 P) Zu berechnen ist : Q=k P 1. Q=O; R=P 2. for i=0 to (key_length-1) if keyi = 1 then Q = Q+R R = 2P 5. Output Q else S = Q+R // “dummy operation”

16 SEMA-resistente Implementierung ECC
Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add-always“-Algorithmus entnommen aus [KekeWu09]

17 Timing attacks (Laufzeit-Angriffe)

18 Laufzeit-Angriffe: Durchführung
Ziel: Angriff auf den Schlüssel (z.B. RSA private key) Basis-Idee: Laufzeit kryptographischer Operationen ist abhängig: vom Schlüssel vom Input Beispiel (modulares Potenzieren x3 mod n): x=3: 33 mod 55 – keine Reduktion x=22: 223 mod 55 – immer Reduktion  zusätzliche Zeit Angreifer kann: verschiedene Inputs „eingeben“ Laufzeit für den aktuellenInputs genau messen statistische Bearbeitung zur Bestimmung von Korrelationen zwischen bekannten Inputs und entsprechender Laufzeit

19 Laufzeit-Angriffe: Gegemaßnahmen
Basis-Idee: Laufzeit kryptographischer Operationen vom Input unabhängig machen Wie?  Randomisierung der Ausführung, z.B. „blinding“: der Angreifer lässt bekannte Daten bearbeiten aber nicht diese werden vom Chip bearbeitet Bearbeitet werden statt dessen zufällige Zahlen, die dem Angreifer nicht bekannt sind das Ergebnis ist trotzdem korrekt

20 RSA-Blinding 1. Generieren einer Zufallszahl r zwischen 0 und n-1
Die folgenden Schritte werden durchgeführt: 1. Generieren einer Zufallszahl r zwischen 0 und n-1 2. Berechnen: x' = x ∙ re mod n 3. Berechnen: y' = (x' ) d mod n ( wie “normal”) 4. Berechnen: y = y' ∙ r -1 mod n Da im Schritt 3 nicht mehr der Input x potenziert wird, sondern seine Verknüpfung mit einer Zufallszahl, also der Zahl x', die dem Angreifer nicht bekannt ist, korreliert die Ausführungszeit nicht mehr mit dem Input x. Aufgabe (gleich): zeigen, dass y = xd mod n, d.h. korrekt ist Hinweis: Euler-Fermat Theorem nutzen a(n) mod n=1

21 ECC-Blinding 1. Zufälligen EC-Punkt R generieren
Die blinding-Methode kann analog auch bei der Ausführung der EC-Punkt-Multiplikation kP verwendet werden. Die folgenden Schritte werden durchgeführt, um kP zu berechnen: 1. Zufälligen EC-Punkt R generieren 2. EC-Punkt-Multiplikation S = kR berechnen 3. EC-Punkt-Multiplikation Q = k(P + R) berechnen 4. Die „echte“ EC-Punkt-Multiplikation kP als EC-Punkt- Subtraktion berechnen: kP=Q-S Durch die Addition eines zufälligen EC-Punktes R wurde der EC-Punkt P „geblinded“

22 DPA / DEMA

23 DPA Angriffsziel: Basis-Idee: Realität:
meistens symmetrische Krypto-Algorithmen: AES und DES, aber auch asymmetrische: RSA und ECC Basis-Idee: Stromverbrauch ist von Schlüssel und von Input abhängig Korrelationen zwischen Inputs- und Mess-Werten des Stromverbrauches können hergestellt werden. Diese sind aber schwer festzustellen, weil viele andere Operationen gleichzeitig durgeführt sind. Schlüsselabhängige Operationen sind “Signal”; andere Operationen sind “Rauschen”: durch Vielzahl der Messungen kann Rauschen ausgefiltert werden  Signal wird sichtbar Realität: ~7 Mio. Messungen sind notwendig, um IHP-Implementation des AES zu kompromittieren (1 Messung = Power Trace für 1 Verschlüsselung)


Herunterladen ppt "Passive Angriffe ... nicht-invasiv."

Ähnliche Präsentationen


Google-Anzeigen