Das RSA Verfahren - Arbeitsgruppe Kryptographie und Sicherheit
Transcription
Das RSA Verfahren - Arbeitsgruppe Kryptographie und Sicherheit
Das RSA Verfahren Verschlüsselung Chiffrat m m k k Eve ? Verschlüsselung Chiffrat m m k k Eve ? Aber wie verteilt man die Schlüssel? Die Mafia-Methode Sender Empfänger Der Sender verwendet keine Verschlüsselung Der Empfänger kann sein eigenes Störsignal abziehen. Eve Eve erlauscht nur Rauschen Kryptographie ohne Schlüssel Die Mafia-Methode Sender Empfänger Der Sender verwendet keine Verschlüsselung Der Empfänger kann sein eigenes Störsignal abziehen. Eve Eve kann die Signale unterscheiden Heute unsicher, aber sie motivierte eine faszinierende Lösung... Public-Key-Kryptographie Asymmetrisch wie ein Briefkasten: RSA Verschlüsselung Entschlüsselung c = m e mod N m = c d mod N Public Key: Secret Key: (e,N) d Grundlagen Eine Gruppe ist eine Menge G zusammen mit einer Verknüpfung, die • assoziativ ist und gG • zu jedem gG gibt es ein g-1 mit g-1 g = 1. Zu jeder Untergruppe U G gibt es eine Nebenklassenzerlegung: G = U gU hU ... 1 g y x gy gx ... also gilt |U| teilt |G| h hy hx ... ... ... Grundlagen also gilt |U| teilt |G| x4 ... x3 x2 .. x . 1 x erzeugt eine Untergruppe U und x |U| = 1. Wegen |U| teilt |G| ist x |G| = 1 und für jedes m = 1 mod |G| gilt xm = x. Ein Element Kleiner Satz von Fermat Grundlagen Für N = p.q bildet die Menge der Zahlen < N, die teilerfremd zu N sind, ZNZ zusammen mit der Multiplikation eine Gruppe mit (p-1)(q-1) Elementen: * Assoziativität: xx mod N ist ein Homomorphismus. Inverse Gruppenenlemente: für x mit ggT(x,N) = 1 existieren s,t mit s.x + t.N = 1, denn der ggT läßt sich linearkombinieren (ELBA). modulo N ist t.N gleich Null und s.x = 1 mod N. Also s = x-1 mod N. Die RSA-Funktion N = pq Dann gilt: sei Produkt von zwei Primzahlen und ZNZ e mit ggT(e, (p-1)(q-1)) = 1. xxe mod N ist eine Permutation auf * Angenommen es gäbe zwei e-te Wurzeln y,z von x so wäre (y/z)e = 1 und es gäbe eine Untergruppe, deren Ordnung e teilt. Aber die Ordnung einer Untergruppe teilt immer die Gruppenordnung (p-1)(q-1) . Die RSA-Funktion N = pq Dann gilt: sei Produkt von zwei Primzahlen und xxe ZNZ e mit ggT(e, (p-1)(q-1)) = 1. mod N ist eine Permutation auf * Angenommen es gäbe zwei e-te Wurzeln y,z von x so wäre (y/z)e = 1 xxe und es gäbe eine Untergruppe, deren Ordnung e teilt. Aber die Ordnung RSA-Annahme: mod N ist ohne zusätzliche Information und für einer Untergruppe teilt immer diezufällige Gruppenordnung (p-1)(q-1) Eingaben schwierig zu .invertieren. Ob dies genauso schwierig ist wie das Faktorisieren von N ist ein offenes Problem. Die Falltür (Das Hintertürchen) Mit der Faktorisierung von N = pq, kennt man die Gruppenordnung (p-1)(q-1). Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT. Es gibt also d,c mit d .e+c .(p-1)(q-1) = 1. Diese findet man mit ELBA. Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und: Gemäß dem kleinen Fermat gilt: xed = x mod N d .e = 1 mod (p-1)(q-1). Die Falltür (Das Hintertürchen) Mit der Faktorisierung von N = pq, kennt man die Gruppenordnung (p-1)(q-1). Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT. Es gibt also d,c mit d .e+c .(p-1)(q-1) = 1. Diese findet man mit ELBA. Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und: Gemäß dem kleinen Fermat gilt: d .e = 1 mod (p-1)(q-1). xed = x mod N xxe Öffentlicher Schlüssel (e,N). Verschlüsseln: Privater Schlüssel d. Entschlüsseln: (xe)d = xed = x mod N mod N Die Falltür (Das Hintertürchen) Mit der Faktorisierung von N = pq, kennt man die Gruppenordnung (p-1)(q-1). Es gilt ggT(e, (p-1)(q-1)) = 1 und es gibt eine Linearkombination des ggT. Es gibt also d,c mit d .e+c .(p-1)(q-1) = 1. Diese findet man mit ELBA. Modulo (p-1)(q-1) ist c .(p-1)(q-1) gleich Null und: Gemäß dem kleinen Fermat gilt: Öffentlicher Schlüssel (e,N). Privater Schlüssel d. d .e = 1 mod (p-1)(q-1). xed = x mod N Verschlüsseln: xxe mod Wirklich Entschlüsseln: sicher?(x ) e d = xed = x N mod N Aktive Angreifer Alice c = me mod N c´= 2ec mod N der Auktionator entschlüsselt c´ Bob = 2ec = 2eme zu 2m. Bob gewinnt. Aktive Angreifer c = me mod N Alice Lehrbuch RSA nicht sicher! c´= 2ist c mod N e der Auktionator entschlüsselt c´ Bob = 2ec = 2eme zu 2m. Bob gewinnt. IND-CCA2 Sicherheit EntschlüsselungsOrakel öffentlicher Schlüssel e A Ence(Challengei) zufällig gewählt A Challenge1 , Challenge2 EntschlüsselungsOrakel öffentlicher Schlüssel e ! A Entscheidung kann die Challenges nicht besser unterscheiden als durch Raten. RSA-ES-OAEP [BR94] Nachricht m Zufallsstring r hash hash m+h(r) h(m+h(r))+r RSA-ES-OAEP [BR94] Nachricht m Zufallsstring r hash hash m+h(r) h(m+h(r))+r Chiffrat = (m+h(r) || h(m+h(r))+r)e RSA-ES-OAEP ist beweisbar sicher Mit idealisierten Hashfunktionen (Random Oracle Model) gilt: Ein Angreifer, der das IND-CCA-Spiel gewinnt, kann dazu benutzt werden die RSA-Funktion zu invertieren. Beweisidee: Es ist nicht effizient möglich gültige Chiffrate zu erzeugen, ohne den Klartext zu kennen. Also liefert das Entschlüsselungsorakel im IND-CCA-Spiel nur oder eine Nachricht, die man schon kennt. Zu zeigen bleibt nur noch die Sicherheit bei passiven Angreifern. RSA-ES-OAEP ist beweisbar sicher Mit idealisierten Hashfunktionen (Random Oracle Model) gilt: Ein Angreifer, der das IND-CCA-Spiel gewinnt, kann dazu benutzt werden die RSA-Funktion zu invertieren. Beweisbare Sicherheit ist praxisrelevant: PKCS #1 v.2.1 verwendet in SSL/TLS ASC X9.44, amerikanischer Bankenstandard IEEE P1363, SET, Standard für sicheres Bezahlen (Visa, MasterCard) ELBA(x,y) s = 1, t= 0 solange b>0 solange a>= b a:= a-b, t:= t-1 vertausche (a,b) vertausche (s,t) a wird ggT, b wird 0 und es gilt immer: sx+ty = a