Kryptologie (Vorlesung 10)

Skript-AnfangSkript – Seite 36
Skript-EndeSkript – Seite 37

Wiederholung

  • Diskretes Logarithmusproblem (Siehe Mitschrift vom 04.06.2011)
  • Symmetrische Schlüssel zum Erreichen des gleichen Sicherheitsniveaus sind kürzer als asymmetrische Schlüssel

Beispiele für Gruppen zum DL

  • p* = {1, … , p-1}

Eigenschaften

  • Zyklisch:
    • Es gibt ein g ∈ ℤp* mit {1, … , p-1} = {gn, n ∈ ℕ}
    • Gruppe ℤ5* = {1, 2, 3, 4}
    • 3 ist ein Erzeuger (Das Verfahren zum Herausfinden folgt später)
    • 4 ist kein Erzeuger (Nicht jede Zahl in der Gruppe ist auch ein Erzeuger für diese Gruppe)
    • Ist g ∈ ℤp* ein Erzeuger, dann existiert für alle h ∈ ℤp* ein x ∈ ℕ mit gx = h
    • Dies bedeutet, dass loggh = x existiert
  • Daran lassen sich dann Schlüssel ableiten, z.B. für Secure Messaging (verschlüsselte und authentisierte Kommunikation)
    • KE = Hashwert H (gxy || 0x00) Verschlüsselungsschlüssel
    • KE = Hashwert H (gxy || 0x01) Schlüssel für Authentisierung

Angriff

  • Angreifer kennt g, gx, gy
  • Ziel ist es das gemeinsame Geheimnis gxy heraus zu finden
  • Derzeitig einzige Möglichkeit:
    • Bestimme x oder y, d.h. berechne logg(gx) = y oder logg(gy) = x
  • Erster Ansatz über Probepotenzieren (Brute Force):
    1. Wähle x‘, berechne gx‘ und vergleiche mit gx‘ = gx
    2. Für p > 2100 ist |ℤp*| > 2100
    3. D.h. Wahrscheinlichkeit für Gleichheit kleiner als 2-100 bzw. 1/2100
    4. Man braucht also ca. 2100 Versuche x zu finden (Sicherheitsniveau ist 100 Bit)
    5. Schnellster Algorithmus für das DLP (Diskretes Logarithmusproblem) O(esqrt(log10(p) * log10(log10p)))
    6. p ≈ 24000 gilt log10(24000) ≈ 1200
    7. log10(log10 (24000) ≈ 3
    8. sqrt(1200*3) = e60 = 290

Erfolgreicher Angriff – Man in the middle

  • Also: Das Verfahren muss mit Instanzauthentisierung einher gehen, um gx / gy den Kommunikationspartner zuordnen zu können

Secret Sharing

  • Ziel: Durchsetzung eines Mehr-Augen-Prinzips
  • Aufteilen eines Geheimnisses K (z.B. kryptographischer Schlüssel) in n Teilgeheimnisse so, dass
  • t ≤ n Teilgeheimnisse notwendig sind um K zu erhalten
  • t-1 Teile aber keinerlei Informationen über K liefern

(t, n) – Schwellwert – Schema

  • (4,10) = Ich brauche 4 von 10 Teilen

Einfaches und unsicheres Verfahren:

  • 128 bit Schlüssel in z.B. 4 Teile aufteilen
  • K = {K1, … , K22 , … , K128}
  • K1 bis K22 = Teilschlüssel 1, usw.
  • Mit 3 Teilen des Schlüssels ließen sich z.B. schon 96 Bit wieder herstellen, d.h. es werden Informationen über K geliefert

Einfaches und sicheres Verfahren

  1. Wähle zufällig n-1 Werte TK1, … , TKn-1 = {0,1}128
  2. Setze T,Kn = TK1 ⊕ … ⊕ TKn-1 ⊕ K
  3. Dann gilt TK1 ⊕ … ⊕ TKn = K
  4. Kennt man weniger als n Teilgeheimnisse erhält man keine Informationen über den Schlüssel K
  5. Vergleichbar zum One-time-pad

Shamirs Secret Sharing (RSA) – (t,n)

  • Idee: Verstecke K in einem Polyom
  • Betrachte k ∈ {0,1}128 als natürliche Zahl \( k = \sum_{i=1}^{128} * K_i * 2^{i-1}\)
  • Wähle k-1 zufällig Werte a1, … , at-1
  • Betrachte f(x) = K + a1 x1 + a2x2 + … + at-1 xt-1
  • Dann gilt f(0) = K
  • Erzeugen der Geheimnisse:
    • Pers 1 → (1,f(1))
    • Pers 2 → (2,f(2))
    • Pers n → (n,f(n))
  • Lösche a1 bis at-1
  • Rekonstruktion des Polynoms:
    • Fundamentalsatz der Algebra: Polynom (t-1) Grades wird durch t Punkte (xi, f(xi)) ist eindeutig festgelegt
    • Es werden also t der n zuvor berechneten Werte benötigt
    • \( f(x) = \sum_{i=1}^{t}f(x_i) * \prod_{j=1 \wedge y\neq i }^{t}\frac{x-x_j}{x_i-x_j} \) (Lagrange-Formel)
    Sicherheit
    • t-1 (und weniger) Teile liefern keinerlei Informationen über k
    • Angreifer kennt t-1 Werte (1,f(1)) , … , (t-1, f(t-1))
    • \( K=f(0)=\sum_{i=1}^{t}f(i)*\prod_{j=1 \wedge j\neq i}^{t}\frac{0-j}{i-j} \)
    • \( K=f(0)=\sum_{i=1}^{t-1}f(i)*\prod_{j=1 \wedge j\neq i}^{t-1}\frac{0-j}{i-j} + f(t)*\prod_{j=1 \wedge j\neq i}^{t}\frac{0-j}{t-j} \)
    • Nur f(t) ist nicht bekannt
    • f(t) kann alle möglichen Werte annehmen, damit auch f(0) = K
    • D.h. Angreifer hat keinerlei Informationen über K
Maximilian
Maximilian

Herzlich willkommen! Ich bin Max, ein Informatiker mit über 15 Jahren Berufserfahrung. Hier teile ich meine Leidenschaften, Erlebnisse und Perspektiven. Ich lade dich ein, gemeinsam mit mir auf eine Entdeckungsreise zu gehen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.