Zufallsprimzahlen und eine Revolution in der Kryptographie

Werbung
Zufallsprimzahlen und eine Revolution in der
Kryptographie
Stefan Edelkamp
Fakultät für Mathematik und Informatik
Universität of Bremen
Übersicht des Vortrags
1
Einfache Kryptosysteme
2
Einmalschlüssel
3
Ringe und Körper
4
Randomisierter Primzahltest
5
Geheime Botschaften und RSA
Edelkamp
Einfache Kryptosysteme
2
Verschlüsselung
Transposition:
Skytale:
Caesar-Chiffre:
Substitution:
Edelkamp
Einfache Kryptosysteme
2
Dechiffrierung durch Häufigkeitsanalyse
Edelkamp
Einfache Kryptosysteme
3
Übersicht des Vortrags
1
Einfache Kryptosysteme
2
Einmalschlüssel
3
Ringe und Körper
4
Randomisierter Primzahltest
5
Geheime Botschaften und RSA
Edelkamp
Einmalschlüssel
4
Visuelle Kryptographie
[Moni Noar and Adi Shamir 1994]
Edelkamp
Einmalschlüssel
4
Zufallsrauschen
[Moni Noar and Adi Shamir 1994]
Edelkamp
Einmalschlüssel
5
Überlagerung
[Moni Noar and Adi Shamir 1994]
Edelkamp
Einmalschlüssel
6
Kodierung
Edelkamp
Einmalschlüssel
7
Übersicht des Vortrags
1
Einfache Kryptosysteme
2
Einmalschlüssel
3
Ringe und Körper
4
Randomisierter Primzahltest
5
Geheime Botschaften und RSA
Edelkamp
Ringe und Körper
8
Ein Campus T-Shirt
5·9=1
Edelkamp
Ringe und Körper
8
Rückseite
in Z11
Edelkamp
Ringe und Körper
9
Restklassen
Zn = {0, 1, 2, . . . , n − 1}
n prim ⇐⇒ Zn Körper
Addition, Subtraktion, Vertauschung, Klammerung, eindeutiges
multiplikatives Inverses, . . .
⇒ {a · 0, a · 1, a · 2, . . . , a · (n − 1)} = {0, 1, 2, . . . , (n − 1)}
Beweis
Annahme nein, dann a · b = a · c mit b 6= c (in Zn ),
also a · (c − b) = x · n (in Z), alle a, b, c < n.
Widerspruch zu n prim und Eindeutigkeit der Primfaktorzerlegung von x, a
und (c − b).
Edelkamp
Ringe und Körper
10
(Kleiner) Satz von Fermat
n prim ⇐⇒ an−1 = 1 für alle a 6= 0 (in Zn )
Beweis:
1 · 2 · . . . · (n − 1)
=
a · 1 · a · 2 . . . · a · (n − 1)
=
an−1 · (1 · 2 · . . . · (n − 1))
⇒ a−1 = an−2 in Zn .
Beispiel:
5−1 = 59 = ((52 )2 )2 · 5 = 9.
Edelkamp
Ringe und Körper
11
Satz von Euler
φ(n) Anzahl teilerfremde Zahlen von n.
⇒ n = pq, p, q prim, ggT (p, q) = 1, dann φ(n) = (p − 1)(q − 1)
Satz von Euler
ggT (a, n) = 1 ⇒ aφ(n) = 1 (in Zn )
Beweis:
Z∗n Menge multiplikativ modulo n invertierbarer Elemente r1 · r2 , . . . , rφ(n)
r1 · r2 · . . . · rφ(n)
= a · r1 · a · r2 . . . · a · rφ(n)
= aφ(n) · (r1 · r2 · . . . · rφ(n) )
⇒ aφ(n) = 1 (in Zn ).
Beispiel:
7222 = ((74 )55 ) · 72 = 9 (in Z10 ).
Edelkamp
Ringe und Körper
12
Erlaubtes und Unerlaubtes
n erlaubt, falls n und (n − 1)/2 ungerade
Satz
Sei n erlaubt. Dann
1
n prim ⇒ a(n−1)/2 = ±1 für alle a 6= 0
2
n nicht prim ⇒ a(n−1)/2 = ±1 für höchstens die Hälfte aller a 6= 0
Beweis, Teil 1: Sei b = a(n−1)/2 in Zn . Dann
(b − 1)(b + 1) = b2 − 1 = an−1 − 1 = 0
also b = ±1.
Edelkamp
Ringe und Körper
13
Quadratwurzeln
x Quadratwurzel, falls x 2 = a, bzw. (−x)2 = a
±x einzigen Quadratwurzeln von a (in Zn , n prim). Es gilt:
a(n+1)/4 = (x 2 )(n+1)/4 = x (n−1)/2 · x = ±x
Beispiel in Z11 :
6 kein Quadrat, da
6(n+1)/4 = 63 = 7, 72 6= 6
5 Quadrat, da
5(n+1)/4 = 53 = 4, 42 = 5
Edelkamp
Ringe und Körper
14
Übersicht des Vortrags
1
Einfache Kryptosysteme
2
Einmalschlüssel
3
Ringe und Körper
4
Randomisierter Primzahltest
5
Geheime Botschaften und RSA
Edelkamp
Randomisierter Primzahltest
15
Chinesischer Restsatz
n = p · q, mit p und q prim folgt
Zn ∼ Zp × Zq
Beispiel 40 · 60 = 13 in Z77 :
Mit 77 = 7 · 11 gilt: (5, 7) · (4, 5) = (6, 2)
Nur möglich, falls n = p · q bekannt
Satz
Sei n erlaubt. Dann
1
n prim ⇒ a(n−1)/2 = ±1 für alle a 6= 0
2
n nicht prim ⇒ a(n−1)/2 = ±1 für höchstens die Hälfte aller a 6= 0
Beweis, Teil 2 (für n = p · q):. Idee: Ersetze Zn durch Zp × Zq
Die beiden Zahlen ±1 entsprechen (1, 1) und (−1, −1).
Edelkamp
Randomisierter Primzahltest
15
Gute und schlechte Zahlenpaare
(a1 , a2 ) in Zp × Zq gut, falls
(a1 , a2 )(n−1)/2 = (1, 1) oder
(a1 , a2 )(n−1)/2 = (−1, −1)
Ist (a1 , a2 ) gut, dann ist (−a1 , a2 ) schlecht, da
(a1 , a2 )(n−1)/2 = (1, −1) oder
(a1 , a2 )(n−1)/2 = (−1, 1) gilt.
Zp × Zq zerfällt somit in Teilmengen {(a1 , a2 ), (a1 , −a2 )}, von denen
mindestens ein Element schlecht ist.
Edelkamp
Randomisierter Primzahltest
16
Statistischer Primzahltest
(für erlaubte n, [Miller/Rabin, 1976, Solovay/Strassen, 1977])
1
Wähle Zufallszahlen a1 , . . . , ak in {1, . . . , n − 1}
2
Berechne ai
3
(n−1)/2
Falls alle
(n−1)/2
ai
in Zn
= ±1 entscheide n prim, ansonsten n nicht prim
Falls n prim, dann Entscheidung richtig
Falls n nicht prim, dann Entscheidung mit W’keit < 1/2k falsch.
Annahme: Primalität kann effizient entschieden werden, aber Faktorisierung
n = p · q (n ∼ 1000, p, q ∼ 500 Stellen), nicht.
Edelkamp
Randomisierter Primzahltest
17
Übersicht des Vortrags
1
Einfache Kryptosysteme
2
Einmalschlüssel
3
Ringe und Körper
4
Randomisierter Primzahltest
5
Geheime Botschaften und RSA
Edelkamp
Geheime Botschaften und RSA
18
Einfaches Kryptosystem
Darmstadt (DA), Bremen (HB) wollen kommunizieren, Dortmund (DO) hört
alles mit.
Geheimnis sei x
1
DA bildet n = p · q, sendet n zu HB
2
HB bildet x 2 in Zn und sendet es zu DA
3
DA berechnet Wurzeln, eine ist x in Zn
Kenntnisstand
DA kennt x 2 und n = p · q, kann x berechnen
HB kennt n und x
DO weiß n,x 2 aber kann x nicht berechnen.
Verallgemeinerungen führen zu dem RSA-Verfahren und PGP.
Edelkamp
Geheime Botschaften und RSA
18
RSA
[Rivest, Shamir, Adlemann, 1977]
φ(n) = (p − 1)(q − 1), p, q prim, e teilerfremd zu φ(n)
d invers zu e (in Zφ(n) ), mittels Euklidischen Algorithmus
ggT (a, b) = ggT (b, a%b), ggT (b, 0) = b
(rückwärts) berechnet
e · d + k · φ(n) = 1 = ggT (e, φ(n))
Verschlüsselung (e öffentlicher Schlüssel):
c = me (in Zn )
Entschlüsselung (d privater Schlüssel):
m = c d (in Zn )
Schnelle Exponentiation: c d = c d/2 · c d/2 oder c d = c · c d−1
Edelkamp
Geheime Botschaften und RSA
19
Korrektheit RSA
Nach dem Satz von Euler gilt:
de = 1 (in Zφ(n) ) ⇒
(md )e = mde = m1+kφ(n) = m · (mφ(n) )k = m · 1k = m (in Zn ).
und
(me )d = med = m1+kφ(n) = m · (mφ(n) )k = m · 1k = m (in Zn ).
Edelkamp
Geheime Botschaften und RSA
20
PGP
[Phil Zimmermann, 1991]
Edelkamp
Geheime Botschaften und RSA
21
Herunterladen