1
passive Angriffe...
nicht-invasiv
• 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)
Beispiele passiven Angriffstechniken
2
3
PA
Typischer Mess-Schaltkreis für PA
4
Messaufbau für PA-Angriff
5
Nadelprober für die Messung auf einer Platine
6
SPA-Angriff auf RSA:„square-and-multiply“-Algorithmus
Momentanleistung als Funktion der Zeit (entnommen aus [Kocher11])t
p
7
Algorithmus „square-and-multiply“
Zu berechnen ist : y=xkey mod n1. y=1; z=x
2. for i=0 to (key_length-1)3. if keyi = 1 then y = y z mod n
4. z = z2 mod n
5. Output y
1710=100012
x17 mod n =(( x 24)1 (x 23)0 (x 22)0 (x 21)0 (x 20)1) mod n
x 20x 24 111
8
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
9
SPA-Angriff auf ECC: „double-and-add“-Algorithmus
Momentanleistung als Funktion der Zeit (entnommen aus [Kadir11])
10
11
EMA
Messaufbau für EMA
Miniaturspule zur Messung der elektromagnetischen Abstrahlung, der innere Durchmesser der Spule beträgt 0,25 mm
12
Erfolgreicher SEMA-Angriff auf ECC
Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add“-Algorithmus, entnommen aus [KekeWu09]
13
Algorithmus „double-and-add“
k=1710=100012
17 P =( 1 16P+0 8P+0 4P+0 2P+ 1 P)
Zu berechnen ist : Q=k P1. Q=O; R=P
2. for i=0 to (key_length-1)3. if keyi = 1 then Q = Q+R
4. R = 2P5. Output Q 14
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 P1. Q=O; R=P
2. for i=0 to (key_length-1)3. if keyi = 1 then Q = Q+R
4. R = 2P5. Output Q
else S = Q+R // “dummy operation”
15
SEMA-resistente Implementierung ECC
Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add-always“-Algorithmus entnommen aus [KekeWu09]
16
17
Timing attacks(Laufzeit-Angriffe)
• 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):1. x=3: 33 mod 55 – keine Reduktion 2. 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
Laufzeit-Angriffe: Durchführung
18
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
19
RSA-Blinding
Die folgenden Schritte werden durchgeführt:
1. Generieren einer Zufallszahl r zwischen 0 und n-12. Berechnen: x' = x ∙ re mod n3. 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 istHinweis: Euler-Fermat Theorem nutzen a(n) mod n=1
20
ECC-Blinding
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 generieren2. EC-Punkt-Multiplikation S = kR berechnen3. EC-Punkt-Multiplikation Q = k(P + R) berechnen4. 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“ 21
22
DPA / DEMA
DPA
• Angriffsziel: 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) 23
Top Related