Untitled Deck Flashcards

1
Q

Was ist der grundlegende Unterschied zwischen einem Square-and-Multiply Algorithmus mit und ohne Timing-Angriff-Schutz? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Berechnen Sie mit dem Square-and-Multiply Algorithmus 2^13 mod 17. Geben Sie alle Zwischenschritte an. (03_TPA_02)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Erklären Sie das Konzept des Message Blindings bei RSA. Warum schützt es vor Timing-Angriffen? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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)

A
  1. L^e mod N = 2³ mod 55 = 8
  2. M’ = M * L^e mod N = 7 * 8 mod 55 = 1
  3. Verschleierte Nachricht ist 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche statistischen Kenngrößen sind für die Analyse von Timing-Angriffen besonders wichtig und warum? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist der Unterschied zwischen ‘Message Blinding’ und ‘Exponent Blinding’? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Implementieren Sie eine Funktion zur Berechnung des modularen multiplikativen Inversen mittels erweitertem Euklidischen Algorithmus. (03_TPA_02)

A

```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 ~~~
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie berechnet sich die Varianz einer Messreihe und warum ist sie für Timing-Angriffe wichtig? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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)

A

φ(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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Erklären Sie den Begriff ‘Template Attack’ und wie er sich von einfachen Timing-Angriffen unterscheidet. (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Warum ist die Hamming-Gewicht-Messung bei der Poweranalyse wichtig? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Berechnen Sie das Hamming-Gewicht für die Bytes 0xA5 und 0x5A. Was bedeutet der Unterschied für die Poweranalyse? (03_TPA_02)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was bedeutet der Begriff ‘constant-time’ Implementation und wie kann man sie erreichen? (03_TPA_02)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Gegeben seien 1000 Zeitmessungen einer Operation. Wie berechnen Sie den Erwartungswert und dessen Konfidenzintervall? (03_TPA_02)

A
  1. Erwartungswert μ = Σx/n
  2. Standardabweichung s = √(Σ(x-μ)²/(n-1))
  3. Standardfehler SE = s/√n
  4. 95% Konfidenzintervall = μ ± 1.96*SE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Implementieren Sie eine Funktion zur Erkennung von Timing-Anomalien in einer Messreihe. (03_TPA_02)

A

```python
def detect_anomalies(measurements, threshold=2):
mean = sum(measurements) / len(measurements)
std = (sum((x-mean)2 for x in measurements) / len(measurements))0.5
anomalies = [x for x in measurements if abs(x-mean) > threshold*std]
return anomalies
~~~

17
Q

Welche Hardware-Gegenmaßnahmen gibt es gegen Timing-Angriffe? (03_TPA_02)

A
  1. Konstante Taktrate für kritische Operationen
  2. Dual-Rail Logik
  3. Zusätzliche Rauschquellen
  4. Isolierte Stromversorgung
  5. Physische Abschirmung
  6. Temperaturstabilisierung
18
Q

Berechnen Sie die minimale Anzahl benötigter Messungen für einen Timing-Angriff bei gegebener Erfolgswahrscheinlichkeit von 99%. (03_TPA_02)

A

Mit dem Central Limit Theorem:
1. Standardnormalverteilung für 99%: z=2.576
2. Bei bekannter Standardabweichung σ und gewünschter Genauigkeit d:
n = (zσ/d)²
Beispiel: σ=100 Zyklen, d=10 Zyklen
n = (2.576
100/10)² ≈ 441 Messungen

19
Q

Was sind die Hauptunterschiede zwischen Simple Power Analysis (SPA) und Differential Power Analysis (DPA)? (03_TPA_02)

A

SPA:
- Direkte Analyse einzelner Messungen
- Erkennt große Operationsmuster
- Weniger komplex
- Anfällig für Rauschen

DPA:
- Statistische Analyse vieler Messungen
- Erkennt kleine Unterschiede
- Komplexere Auswertung
- Robuster gegen Rauschen

20
Q

Wie kann man die Qualität einer Timing-Messung quantifizieren? (03_TPA_02)

A
  1. Signal-to-Noise Ratio (SNR)
  2. Varianz der Messungen
  3. Korrelationskoeffizient zwischen Wiederholungsmessungen
  4. Konfidenzintervalle der Mittelwerte
  5. Standardfehler der Messungen
  6. Test auf Normalverteilung der Residuen