Vortrag zum Proseminar: Kryptographie Thema: Das Rabin-Verschlüsselungssystem Oliver Czernik 6.12.2005 Kryptographie Das Rabin-Verschlüsselungssystem Historie Michael Rabin • Professor für Computerwissenschaft • Miller-Rabin-Primzahltest ● Januar 1979 ● April 1977: RSA • Asymmetrisches Verschlüsselungssystem • Sicherheit nicht beweisbar, nur vermutet ➔ Sicherheit des RabinKryptosystems ist beweisbar ● Michael O. Rabin Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Schlüsselgenerierung Privater Schlüssel: • p, q sind Primzahlen • p, q haben dieselbe Bitlänge • Größenordnungen wie RSA (ca.1024-, 2048-bit) Öffentlicher Schlüssel: • n=p⋅q Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Schlüsselgenerierung Erzeugung von Primzahlen mit Miller-RabinPrimzahltest: Fakt: Wenn k prim ist, dann gilt: s k −1=2 ⋅r , r ist ungerade ⇒ r 2 r a ≡1 mod k oder ∃ j a ≡−1 mod k , a∈ {1,.. , k −1 } , 0≤ j ≤s−1 j Problem: Gilt auch für bis zu ¼ aller a∈ {1,.. , k −1 }, wenn k eine ungerade zusammengesetzte Zahl ist Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Schlüsselgenerierung Erzeugung von Primzahlen mit Miller-RabinPrimzahltest: • • Zufällige Wahl einer ganzen Zahl k in der richtigen Größenordnung Wiederholtes t-faches testen von k mit jeweils anderem zufälligen a, um die Wahrscheinlichkeit eines Fehlers zu verringern Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Schlüsselgenerierung Erzeugung von Primzahlen mit Miller-RabinPrimzahltest: Nachteil: • Gefundene Zahlen müssen nicht unbedingt t Primzahlen sein. (Fehlerwert höchstens ¼ ) Vorteil: • Kürzere Laufzeit als jeder deterministischer 3 Primzahltest (O t⋅L ; L ist die Bitlänge der Primzahl) Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Schlüsselgenerierung p=17 q=19 n=323 Zuverlässige Primzahlenerzeugung für p und q: • • • Probabilistischer Primzahltest (etwa MillerRabin) mit niedrigen Sicherheitsfaktor t Divisionstest mit kleinen Primzahlen Deterministischer Primzahltest mit möglichst geringer Laufzeit (etwa AKS-Primzahltest) p=17, q=19, n=323 Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Verschlüsselung p=17 q=19 n=323 m=317 c=36 2 E : c=m mod n m , c ∈ {0,1 ,.. , n−1 } ; m ist eine die Nachricht repräsentierende Zahl; c ist die verschlüsselte Nachricht m=317, c=36 Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 D : m= c mod n Probleme: • Keine injektive Funktion Þ Mehrere Ergebnisse • Durchführung von D aufwendiger als von E Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 Das modulare Quadratwurzel Problem („SQROOT“-Problem): Fakten: • r = c mod p ist effizient zu lösen, wenn p eine Primzahl ist. • Ist p keine Primzahl muss es zuerst in solche zerlegt werden. (Faktorisierungsproblem) Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 Das Faktorisierungsproblem: Fakten: • Jede natürliche Zahl lässt sich eindeutig in Primzahlen zerlegen • Asymmetrie: Erzeugung einer Zahl durch Multiplikation von Primzahlen ungleich einfacher als der umgekehrte Weg • Besonders schwierig: Zerlegung einer Zahl aus zwei etwa gleichgroßen Primzahlen Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 Das Faktorisierungsproblem: Annahme: • Es gibt (heute) keine Methode eine Primfaktorzerlegung effizient durchzuführen. Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 Jede ℤ∗p mit Primzahl p hat einen Generator a: ∗ i a∈ℤ p ⇒ a∈{ mod p∣i ∈{0,.. , p−2}} i Es ist klar, dass jedes a= mod p mit geradem ∗ i in ℤ p eine Quadratwurzel hat, nämlich genau: i /2 b= mod p∧−b mod p In einen solchen Fall wird a ein quadratischer Rest genannt. Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 Umgekehrt kann aus jenen Zahlen, die mit ungeradem i generiert werden, gerade keine Quadratwurzel gezogen werden! Solche Zahlen sind quadratische Nichtreste. Euler Kriterium: p−1/2 a mod p = 1 , wenn a ein quadratischer Rest ist −1 , wenn a ein quadratischer Nichtrest ist , 1≤a≤p−1 { ] Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 r = c mod p , p ist eine Primzahl: 1. Finde b, b ist quad. Nichtrest , 1≤b≤p−1 s 2. Finde s, t, so dass p−1=2 ⋅t, t ungerade −1 3. Berechne c mod pt (erw. Euk.-Algorithmus) 4. Berechne x =log b c 5. Berechne r =b xt /2⋅c−t −1/2 mod p 6. r und −r mod p sind die gesuchten Werte t Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 b=6 c-1 =9 s=4 t=1 u=6 r=2 r = c mod p , p ist eine Primzahl: 1. Finde b, b ist quad. Nichtrest , 1≤b≤p−1 b=6 s 2. Finde s, t, so dass p−1=2 ⋅t, t ungerade s=4, t=1 −1 3. Berechne c mod p (erw. Euk.-Algorithmus) −1 c =9 4. u=bt mod p , r =c t 1/2 mod p u=6,r=2 5. [...] Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 b=6 c-1 =9 s=4 t=1 u=16 r=11 -r=6 r = c mod p , p ist eine Primzahl: 4. [...] i=3 : 5. Für alle Werte von i, : 1≤i ≤s−1 2 −1 k 5.1 d = r ⋅c mod p , k =2s−i −1 d=−1 5.2 Wenn d ≡−1 mod p, dann setzte r=11 r auf r⋅u mod p 2 5.3 Setzte u auf u mod p u=16 6. r und −r mod p sind die gesuchten Werte r=11,−r=6 Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 -1 c =9 r=11 -r=6 s=6 -s=13 s= c mod q , q ist eine Primzahl : Spezialfallq≡3 mod 4 q1/ 4 mod q 1. s=c 2. s und−s mod q sind die gesuchten Werte s=6,−s=13 Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 -1 c =9 r=11 -r=6 s=6 -s=13 Entschlüsselungsalgorithmus: 1. Berechnung von r = c mod p r=11,−r=6 2. Berechnung von s= c mod q s=6,−s=13 3. Wie berechnet man nun aus r und s die gesuchte Wurzel? ⇒ Chinesischer Restsatz [...] Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 -1 c =9 r=11 -r=6 s=6 -s=13 Chinesischer Restsatz: x , a i , m i ∈ℤ ; i , j ∈ {1,.. , l } ; l ∈ℕ ; i ≠ j ; m i , m j sind teilerfremd x ≡a1 mod m1 r i⋅m i s i⋅M i =1 x ≡a 2 mod m 2 ⇒ M = m ∏ i ∧ ∧ s i⋅M i ≡1 mod m i ⋮ M i =M /m i x ≡a l mod m l s i⋅M i ≡0 mod m j ⇒ x ≡∑ a i s i M i mod M Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 -1 c =9 r=11 -r=6 s=6 -s=13 Chinesischer Restsatz: apbq=1 ⇒ n=p⋅q c≡r mod p ∧ p=n /q ∧ ap≡1 mod q ap≡0 mod p c≡s mod q q=n/ p bq≡1 mod p bq≡0 mod q ⇒ c≡apsbqr mod n Kryptographie Das Rabin-Verschlüsselungssystem Funktionalität: Entschlüsselung p=17 q=19 n=323 m=317 c=36 -1 c =9 r=11 -r=6 s=6 -s=13 Entschlüsselungsalgorithmus: 1. Berechnung von r = c mod p 2. Berechnung von s= c mod q 3. Erweiterter Euklidischer Algorithmus um a, b zu errechnen, so dass apbq=1 a=9, b=−8 x=6 4. x =apsbqr mod n y=215 5. y =aps−bqr mod n 6, 317 , 215 ,108 6. x ,−x mod n , y ,−y mod n Kryptographie Das Rabin-Verschlüsselungssystem Effizienz: Schlüsselgenerierung Ausschließlich Miller-Rabin-Primzahltest mit Restrisiko: 3 O t⋅L Primzahl ohne Risiko eines Irrtums: 3 O L Miller-Rabin-Primzahltest: Test mit kleinen Primzahlen: O L 2 6 O L AKS-Primzahltest: 6 3 2 O L L L Gesamtlaufzeit: Kryptographie Das Rabin-Verschlüsselungssystem Effizienz: Verschlüsselung 2 E : c=m mod n 2 Laufzeit O N ; N ist die Bitlänge von n. (Somit auch von m und c.) Kryptographie Das Rabin-Verschlüsselungssystem Effizienz: Entschlüsselung D : m= c mod n Wurzelziehen aus c für p bzw. q: (Wurzelziehen für den Spezialfall: Erw. Euklidischer Algorithmus: Rest der Entschlüsselung: Gesamtlaufzeit: 4 O L 3 O L ) 2 O L 2 O N 4 2 2 O L L N 3 2 2 O L L N Kryptographie Das Rabin-Verschlüsselungssystem Sicherheit: Turing-Reduktion Im Gegensatz zu RSA ist die Sicherheit des Rabin-Verschlüsselungssystem mathematisch beweisbar. Beweis durch Turing-Reduktion: 1. Funktion LG kennt eine Funktion LH, die ein Problem H löst 2. LG nutzt LH, nimmt aber keinen Einfluss auf LH 3. LG an sich hat polynomielle Laufzeit 4. LG löst ein Problem G Kryptographie Das Rabin-Verschlüsselungssystem Sicherheit: Turing-Reduktion Wenn es eine Turing-Reduktion von G auf H gibt, wird dies dermaßen notiert: G µT H Wenn ein Algorithmus zur Funktion LH mit polynomieller Laufzeit existiert, dann existiert auch ein Algorithmus für die Funktion LG mit polynomieller Laufzeit. Kryptographie Das Rabin-Verschlüsselungssystem Sicherheit: Faktorisierungsproblem Annahme: Es gibt einen Algorithmus LRabin, der einen Ciphertext c ohne Kenntnis des privaten Schlüssels (p,q) in polynomieller Laufzeit löst. ∗ n 1. Wähle ein beliebiges r ∈ℤ 2 2. c=r mod n 3. m=LRabinc , n 4. Wenn m≡±r mod n , dann wieder zu 1. 5. p=ggT mr , n, q= np 6. p und q sind die Zerlegung von n Þ Faktorisierungsproblem effizient gelöst Kryptographie Das Rabin-Verschlüsselungssystem Sicherheit: Chosen-ciphertext-Attacke Faktorisierungsproblem µT Rabin-Kryptosystem Rabins Verschlüsselungssystem ist nur schwer durch passive Attacken zu brechen. Schwäche gegen Chosen-ciphertext-Angriffe: • Angreifer hat Zugriff auf die Entschlüsselungsmaschine • Angreifer erstellt beliebige Ciphertexte • Selbe Berechnungen wie zuvor Kryptographie Das Rabin-Verschlüsselungssystem Sicherheit: Redundanz Rabin-Entschlüsselung liefert zu einem Ciphertext c vier mögliche Klartexte m1 , m 2 , m 3 , m 4 . Mögliche Lösung: Einfügen von Redundanz Positiver Nebeneffekt: Chosen-ciphertext-Attacke ist abgewendet Negativer Nebeneffekt: Verlust der Äquivalenz mit dem Faktorisierungsproblem Kryptographie Das Rabin-Verschlüsselungssystem Vergleich mit RSA • • • • Laufzeiten bei der Erstellung der Schlüssel und Entschlüsselung sind vergleichbar Verschlüsselung ist (unwesentlich) schneller Beweisbare Sicherheit, verbunden mit mehreren möglichen Entschlüsselungsergebnissen oder Mit Redundanz ein Ergebnis, aber nicht beweisbar sicherer und definitiv ineffizienter Kryptographie Das Rabin-Verschlüsselungssystem Praktische Anwendung Als Anschauungsbeispiel in Lehrveranstaltungen RSA läuft dem Rabin-Verschlüsselungssystem den Rang ab. Praktische Anwendung ist denkbar, wenn ein Verschlüsselungsverfahren benötigt wird, dass eine möglichst schnelle Verschlüsselung garantiert.