Menu Close

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

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.

Index