Untitled Deck Flashcards
Was ist der grundlegende Unterschied zwischen einem Square-and-Multiply Algorithmus mit und ohne Timing-Angriff-Schutz? (03_TPA_02)
Ein geschützter Algorithmus führt sowohl Square als auch Multiply Operationen in konstanter Zeit aus, unabhängig vom Bit-Wert. Der ungeschützte Algorithmus führt die Multiply-Operation nur bei Bit=1 aus, was zu messbaren Zeitunterschieden führt.
Berechnen Sie mit dem Square-and-Multiply Algorithmus 2^13 mod 17. Geben Sie alle Zwischenschritte an. (03_TPA_02)
13 = 1101₂
1. Bit(1): y = 1² * 2 = 2
2. Bit(1): y = 2² * 2 = 8
3. Bit(0): y = 8² = 64 mod 17 = 13
4. Bit(1): y = 13² * 2 mod 17 = 169 * 2 mod 17 = 15
Ergebnis: 15
Erklären Sie das Konzept des Message Blindings bei RSA. Warum schützt es vor Timing-Angriffen? (03_TPA_02)
Message Blinding verschleiert die zu signierende Nachricht M durch Multiplikation mit einem zufälligen Faktor L^e. Da der Angreifer die tatsächlich verarbeitete Nachricht nicht kennt, können Timing-Unterschiede nicht mehr mit dem geheimen Exponenten korreliert werden.
Gegeben sei ein RSA-System mit N=55, e=3. Führen Sie Message Blinding mit L=2 für die Nachricht M=7 durch. (03_TPA_02)
- L^e mod N = 2³ mod 55 = 8
- M’ = M * L^e mod N = 7 * 8 mod 55 = 1
- Verschleierte Nachricht ist 1
Welche statistischen Kenngrößen sind für die Analyse von Timing-Angriffen besonders wichtig und warum? (03_TPA_02)
Erwartungswert (μ) zur Bestimmung der durchschnittlichen Ausführungszeit und Varianz (σ²) zur Messung der Streuung. Diese Kenngrößen ermöglichen die Unterscheidung zwischen verschiedenen Operationen und die Bewertung der Messqualität.
Ein Timing-Angriff zeigt folgende Messwerte für 1000 Durchläufe: Durchschnittliche Zeit ohne Multiply: 74 Zyklen (Varianz 29), mit Multiply: 426 Zyklen (Varianz 8508). Ab welchem Schwellwert würden Sie ein Bit als 1 klassifizieren? (03_TPA_02)
Ein sinnvoller Schwellwert wäre 200 Zyklen, da er deutlich zwischen den beiden Verteilungen liegt. Die Messwerte ohne Multiply liegen alle unter 100 Zyklen, die mit Multiply über 350 Zyklen.
Was ist der Unterschied zwischen ‘Message Blinding’ und ‘Exponent Blinding’? (03_TPA_02)
Message Blinding verschleiert die Nachricht durch Multiplikation mit einem zufälligen Faktor. Exponent Blinding verändert den geheimen Exponenten d durch Addition eines Vielfachen von φ(N). Beide Methoden führen zum gleichen Ergebnis, schützen aber auf unterschiedlichen Ebenen.
Implementieren Sie eine Funktion zur Berechnung des modularen multiplikativen Inversen mittels erweitertem Euklidischen Algorithmus. (03_TPA_02)
```python
def mod_inverse(a, m):
def extended_gcd(a, b):
if a == 0:
return b, 0, 1
gcd, x1, y1 = extended_gcd(b % a, a)
x = y1 - (b//a) * x1
y = x1
return gcd, x, y
gcd, x, _ = extended_gcd(a, m) if gcd != 1: raise Exception('Modulares Inverses existiert nicht') return x % m ~~~
Wie berechnet sich die Varianz einer Messreihe und warum ist sie für Timing-Angriffe wichtig? (03_TPA_02)
Varianz = E((X-μ)²) = Σ(x-μ)² * P(X=x). Sie ist wichtig, weil sie die Streuung der Messwerte quantifiziert. Eine große Varianz deutet auf unsichere Messungen hin, eine kleine Varianz ermöglicht zuverlässige Unterscheidung zwischen verschiedenen Operationen.
Ein RSA-System verwendet N=55 (p=5, q=11). Berechnen Sie φ(N) und bestimmen Sie alle möglichen Werte für e. (03_TPA_02)
φ(N) = (p-1)(q-1) = 4 * 10 = 40
Mögliche e: Alle Zahlen < 40, die teilerfremd zu 40 sind:
3, 7, 11, 13, 17, 19, 23, 29, 31, 37
Verifizierung durch ggT(e,40)=1
Erklären Sie den Begriff ‘Template Attack’ und wie er sich von einfachen Timing-Angriffen unterscheidet. (03_TPA_02)
Ein Template Attack ist ein zweiphasiger Angriff: In der Profiling-Phase werden statistische Profile (Templates) des Verhaltens mit bekannten Schlüsseln erstellt. In der Matching-Phase wird das Verhalten mit unbekanntem Schlüssel mit den Templates verglichen. Im Gegensatz zu Timing-Angriffen nutzt er komplexere statistische Modelle.
Warum ist die Hamming-Gewicht-Messung bei der Poweranalyse wichtig? (03_TPA_02)
Das Hamming-Gewicht (Anzahl der 1-Bits) korreliert mit dem Stromverbrauch bei CMOS-Schaltungen. Mehr 1-Bits bedeuten mehr Transistor-Schaltaktivität und damit höheren Stromverbrauch. Dies ermöglicht Rückschlüsse auf verarbeitete Daten.
Berechnen Sie das Hamming-Gewicht für die Bytes 0xA5 und 0x5A. Was bedeutet der Unterschied für die Poweranalyse? (03_TPA_02)
0xA5 = 10100101 → Hamming-Gewicht = 4
0x5A = 01011010 → Hamming-Gewicht = 4
Obwohl die Bytes unterschiedlich sind, haben sie das gleiche Hamming-Gewicht. Dies erschwert die Unterscheidung bei der Poweranalyse.
Was bedeutet der Begriff ‘constant-time’ Implementation und wie kann man sie erreichen? (03_TPA_02)
Eine constant-time Implementation führt Operationen in einer Zeit aus, die unabhängig von den Eingabedaten ist. Dies wird erreicht durch:
1. Vermeidung databhängiger Verzweigungen
2. Ausführen aller möglichen Operationen
3. Verwendung von Bitmasken statt if-Statements
Gegeben seien 1000 Zeitmessungen einer Operation. Wie berechnen Sie den Erwartungswert und dessen Konfidenzintervall? (03_TPA_02)
- Erwartungswert μ = Σx/n
- Standardabweichung s = √(Σ(x-μ)²/(n-1))
- Standardfehler SE = s/√n
- 95% Konfidenzintervall = μ ± 1.96*SE