Kryptologie (Vorlesung 5)

Skript-AnfangSkript – Seite 19
Skript-EndeSkript – Seite 23

Wiederholung

  • Zn = {0 , … , n-1}
  • Zn* = Menge der multiplikativ inversen Elemente in Zn
  • a ∈ Zn ist genau dann mult. invertierbar in Zn, wenn a und n T eilerfremd sind, d.h. ggt(a,n)=1
  • Z10* = {1,3,7,9}
    • 1*1 = 1 mod 10
    • 3*7 = 21 mod 10 = 1
    • 9*9 = 81 mod 10 = 1
  • Ist p eine Primzahl, dann ist Zp* = {1 , … , p-1}
  • Sind p und q Primzahlen, dann |Zp*q*| = (p-1)(q-1)
  • Eulerzahl: Für n=p*q ist φ(n) =|Zn*| = (p-1)(q-1)
  • Siehe Satz 3.2
  • Siehe Lemma 3.3
  • (Zn*;) ist eine absolute Gruppe. Weiter |Zn*| = φ(n)
  • Also: Sind a und n teilerfremd, dann gilt a ∈ Zn*
  • Weiter gilt a|Zn*| = 1 = aφ(n)

Beweis von Lemma 3.3

  • bijektiv:
    • Sei g ∈ G, dann gilt fg : G -> G; x |-> gx
  • injektiv:
    • Aus fg(x) = fg(x‘) folgt x=x‘.
    • Aus fg(x) = fg(x‘) folgt g*x = g*x‘
    • Also g-1 *g *x = g-1*g*x‘
    • Also x=x‘
  • surjektiv:
    • für alle y ∈ G existiert x ∈ G mit fg(x)= y
    • Sei y ∈ G und x = g-1*y dann gilt fg(x) = g*x = g(g-1*y) = y
    • Also ist fg bijektiv
    • h ∈ Gh
    • = ∏h ∈ Gfg(h)
    • = ∏h ∈ G g*h
    • = g|G| * ∏h ∈ G h
    • Also g|G| = 1

p*q Primzahlen

  • n=p*q
  • φ(n) = |Zn*| = (p-1)(q-1)
  • Siehe Kleiner Satz von Fermat
  • Siehe Seite 20 – Schlüsselgenerierung
  • Angreifer kann (n,d) nicht berechnen, da er die Primzahlen p und q nicht kennt

Beispiel

Auswahl

  • p = 5
  • q = 11
  • n = 55
  • φ(n)=40
  • Kandidaten für e: 3,7,9 ..
  • e = 7
  • d = 23
  • 7*23 = 161 = 1 mod 40

RSA Modul

  • Public Key = (55,7)
  • Private Key = (55,23)
  • Nachricht = m = 3
  • C = me = 37 = 2187 = 42 mod 55
  • Entschlüsselung des Ciphertextes 42
  • Berechne cd = 4223

Binäre Exponentiation ( square and multiply)

  • 23 = 1 * 2+ 0 * 23 + 1 * 22 + 1 * 21 + 1 * 20
  • 23 = ((2 * 2+1)2 * 1) * 2+1
  • Also 4223 = (((422)2 * 42)2 * 42)* 42

Berechnung

  • 422 = 1764 = 4 mod 55
  • 42=16
  • 16 * 42 = 672 = 12 mod 55
  • 122 = 144 = 34 mod 55
  • 34 * 42 = 1428 = 53 mod 55
  • 532 = 2809
  • 4 mod 55
  • 4 * 42 = 168 = 3 mod 55

Beweisskizze

  • Siehe Satz 3.4

Sicherheitsbewertung des RSA-Verfahrens

  • Nicht nur Durchprobieren aller Schlüssel
  • Alle kryptoanalytischen Methoden müssen herangezogen werden
  • Wir fordern Sicherheitsniveau von 100 Bit (2100 Versuche sind nötig zum Durchprobieren)
  • Ziel: Gesucht ist die untere Schranke für die Schlüssellänge

Aufgabe

  1. Gegeben: öffentlicher Schlüssel (n,e) und c = me mod n. Berechne m
  2. Gegeben: öffentlicher Schlüssel (n,e). Berechne d mit e*d = 1 mod phi(n)
  3. Gegeben: Modul n = p*q. Berechne p und q

Probleme

  • Wenn Problem 3 lösbar ist, dann ist Problem 2 lösbar (weil p und q bekannt) und dann ist Problem 1 lösbar
  • Sind die Probleme äquivalent, d.h. Problem 1 lösbar -> Problem 2 lösbar -> Problem 3 lösbar?
  • Bekannt: Problem 2 und 3 sind ca. gleich schwer
  • Nicht bekannt: Ob die Probleme 1 und 2 äquivalent sind
  • D.h. die Entschlüsselung könnte leichter sein als d zu berechnen
  • Wenn man faktorisieren kann, dann ist RSA gebrochen
  • Also: Sicherheit des RSA-Verfahrens beruht auf der vermuteten Schwierigkeit des Faktorisierens ganzer Zahlen
  • Wie schnell arbeitet der derzeit schnellste Faktorisierungsalgorithmus?
  • Laufzeit = O(esqrt(lnn*ln(lnn)) )
  • Für n ≈ 2 2048 hat der Algorithmus eine Laufzeit von 2^100
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.