230 likes | 348 Views
passive Angriffe ... nicht-invasiv. Beispiele passiven Angriffstechniken. Power Analysis (PA) - Simple Power Analysis (SPA ) nur wenige (einzelne) Messungen - Differential Power Analysis (DPA) mehrere (tausende) Messungen mit nachfolgender Korrelationsanalyse
E N D
passive Angriffe ... nicht-invasiv
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)
SPA-Angriff auf RSA:„square-and-multiply“-Algorithmus p t Momentanleistung als Funktion der Zeit (entnommen aus [Kocher11])
Algorithmus „square-and-multiply“ x24 1 1 1 x 20 1710=100012 Zu berechnen ist: y=xkeymod n 1. y=1; z=x 2.for i=0to (key_length-1) 3.ifkeyi= 1 then y = y z mod n 4.z = z2 mod n 5. Output y x17modn =((x 24)1 (x 23)0 (x 22)0 (x 21)0 (x 20)1)modn
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
SPA-Angriff auf ECC: „double-and-add“-Algorithmus Momentanleistung als Funktion der Zeit (entnommen aus [Kadir11])
Messaufbau für EMA Miniaturspule zur Messung der elektromagnetischen Abstrahlung, der innere Durchmesser der Spule beträgt 0,25 mm
Erfolgreicher SEMA-Angriff auf ECC Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add“-Algorithmus, entnommen aus [KekeWu09]
Algorithmus „double-and-add“ Zu berechnen ist: Q=k P 1. Q=O; R=P 2.for i=0to (key_length-1) 3.ifkeyi= 1 then Q = Q+R 4.R = 2P 5. Output Q k=1710=100012 17 P =(1 16P+0 8P+0 4P+0 2P+ 1 P)
Algorithmus „double-and-add-always“ Zu berechnen ist: Q=k P 1. Q=O; R=P 2.for i=0to (key_length-1) 3.ifkeyi= 1 then Q = Q+R 4.R = 2P 5. Output Q k=1710=100012 17 P =(1 16P+0 8P+0 4P+0 2P+ 1 P) elseS = Q+R // “dummy operation”
SEMA-resistente Implementierung ECC Momentanspannung als Funktion der Zeit während der Ausführung des „double-and-add-always“-Algorithmus entnommen aus [KekeWu09]
Timing attacks (Laufzeit-Angriffe)
Laufzeit-Angriffe: Durchführung • Ziel: Angriff auf den Schlüssel (z.B. RSA private key) • Basis-Idee: LaufzeitkryptographischerOperationenistabhängig: • vom Schlüssel • vom Input Beispiel (modulares Potenzieren x3modn): • x=3: 33mod 55 – keine Reduktion • x=22: 223mod 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: 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
RSA-Blinding • Die folgenden Schritte werden durchgeführt: • 1. Generieren einer Zufallszahl r zwischen 0 und n-1 • 2. Berechnen: x' = x ∙ remod n • 3. Berechnen: y' = (x' ) dmod n ( wie “normal”) • 4. Berechnen: y = y' ∙ r -1 mod n Da im Schritt 3 nicht mehr der Input xpotenziert 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, dassy = xdmodn,d.h. korrekt ist Hinweis: Euler-Fermat Theorem nutzen a(n)modn=1
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 Rgenerieren • 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“
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)