![Page 1: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/1.jpg)
ADS: Algorithmen und Datenstrukturen 2Teil 11
Prof. Peter F. Stadler & Dr. Christian Honer zu Siederdissen
Bioinformatik/IZBIInstitut fur Informatik
& Interdisziplinares Zentrum fur BioinformatikUniversitat Leipzig
14. Juni 2017[Letzte Aktualisierung: 14/06/2017, 01:45]
1 / 22
![Page 2: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/2.jpg)
Zahlentheorie und Kryptographie
Public-Key Kryptographie mittels RSA (Rivest, Shamir, Adleman)
Verschlusseln von Nachrichten zwischen zwei Parteien
Geheime Schlussel zum EntschlusselnOffentliche Schlussel zum Verschlusseln
Signaturen fur Nachrichten
leicht zu verifizierenNicht falschbarKleinste Anderungen in Nachricht erkennbar
Lustige Warnung: es gibt keinen Beweis das dieses Verfahren sicher ist
Introduction to Algorithms, Cormen et al, Number-Theoretic Algorithms
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 2 / 22
![Page 3: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/3.jpg)
Grundlagen
Große Eingaben fur diese VL-Einheit sind groß in Bezug die AnzahlBit die notig sind, die Eingabe zu kodieren
Wir reden typischerweise uber eine Integer-zahl, aber diese hat 512oder mehr Bit
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 3 / 22
![Page 4: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/4.jpg)
Grundlagen
p ∈ N = {0, 1, . . . } is prim, wenn 1 und p die einzigen Teiler von psind
P = {2, 3, 5, 7, 11, 13 . . . } ⊂ N ist die Menge aller Primzahlen
wir schreiben d |a, falls ∃k ∈ Z : a = kd
Equivalenzklasse modulo n: [a]n = {a + kn : k ∈ Z}wir schreiben a ≡ b mod n fallsa = qn + r und b = q′n + r
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 4 / 22
![Page 5: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/5.jpg)
Faktorisierung: Grundlegendes
Einzigartige Faktorisierung: ∀a ∈ N : a = pe11 · · · pekk , pi ∈ P
großter gemeinsamer Teiler (d = ggT (a, b) = ax + by):
Euklid (a,b)if b = 0 then
Return (a,1,0)end;(d,y’,x) := Euklid (b, a mod b) ;Return (d, x, y ′ − ba/bcx) ;
mit a > b ≥ 1 und b < Fk+1 werden < k rekursive Aufrufedurchgefuhrt
die Laufzeit von Euklid ist: O(β) arithmetische Operationen, O(β3)Bitoperationen
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 5 / 22
![Page 6: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/6.jpg)
Beispiel: Euklid
a b ba/bc d x y
99 78 1 3 -11 1478 21 3 3 3 -1121 15 1 3 -2 315 6 2 3 1 -2
6 3 2 3 0 13 0 - 3 1 0
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 6 / 22
![Page 7: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/7.jpg)
Teilerfremde Zahlen
a und b sind teilerfremd falls Euklid(a, b).d = 1
Beispiel: 8 hat Teiler 1,2,4,8 und 15 hat Teiler 1,3,5,15.
Falls a, b teilerfremd zu p, dann ab teilerfremd zu p.
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 7 / 22
![Page 8: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/8.jpg)
(IV) Uhren- oder Modulo Arithmetik
Gruppe:
Gruppe (S ,⊕) mit Menge S und binarer Operation ⊕ auf S .
Abgeschlossen: ∀a, b ∈ S : a⊕ b ∈ S
Id: ∃e ∈ S : e ⊕ a = a⊕ e = a
Assoziativ: ∀a, b, c ∈ S : (a⊕ b)⊕ c = a⊕ (b ⊕ c)
Inverses: ∀a ∈ S : ∃ (ein) b ∈ S : a⊕ b = b ⊕ a = e
Beispiel: (Z,+), ganze Zahlen mit Addition, e = 0, Inverses: −a.
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 8 / 22
![Page 9: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/9.jpg)
(IV) Modulo Arithmetik
Endliche Gruppe:
Sei n eine naturliche Zahl
Zn sei die Menge der Zahlen {0 . . . n − 1}Darauf lassen sich zwei nutzliche Gruppen definieren:
⊕ = +: (Zn,+n)⊕ = ×: (Zn,×n)
Sei a ≡ a′ mod n, b ≡ b′ mod n:a + b ≡ a′ + b′ mod n undab ≡ a′b′ mod nin der jeweiligen Gruppe
Multiplikative Gruppe modulo n: Z∗n = {a ∈ Zn : ggT(a, n) = 1}
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 9 / 22
![Page 10: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/10.jpg)
Beispiel: Gruppen Modulo n
a + b mod 3
+3 0 1 20 0 1 21 1 2 02 2 0 1
a ∗ b mod 3
∗3 1 21 1 22 2 1
Sehen sie die neutralen Elemente und die inversen Elemente?
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 10 / 22
![Page 11: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/11.jpg)
Eulers Phi
Φ(n) = n∏
p:p∈P∧p|n
(1− 1
p
)
Falls p ∈ P dann Z∗p = {1, 2, . . . , p − 1}und Φ(p) = p − 1
Falls p /∈ P dann Φ(n) < n − 1
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 11 / 22
![Page 12: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/12.jpg)
PKI-Kryptographie
das RSA Kryptosystem
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 12 / 22
![Page 13: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/13.jpg)
Ein paar Begriffe und Definitionen
Alice und Bob wollen kommunizieren
Eve (“Eavesdropper”) mochte lauschen (Eve arbeitet fur die NSA)
Offentlicher Schlussel: P (Alice: PA, Bob: PB)
Geheimer Schlussel: S (Alice: SA, Bob: SB)
PA(·) (etc) seien die entsprechenden Funktionen
Sei M ∈ D die zu sendende Nachricht
Es gelte:
M = SA(PA(M))M = PA(SA(M))
Wir hoffen: SA kann nur von Alice in vertretbarer Zeit berechnetwerden!
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 13 / 22
![Page 14: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/14.jpg)
M PA(M)
Bobverschlusselt
C = PA(M) SA(C )
Aliceentschlusselt
M
Eve belauscht CM
?= NSA(C )
Es gibt keine bekannte schnelle Funktion NSA die C in M ohne Kenntnisvon SA verwandelt
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 14 / 22
![Page 15: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/15.jpg)
Das RSA Kryptosystem
In sechs Schritten zu sicherer Kommunikation:
1 Wahle zufallige Primzahlen p, q, p 6= q, beide ≥ 512–2048 bitp = 11, q = 13
2 Berechne n = pqn = 143
3 Wahle e, ungerade und klein, relativ prim zu (p − 1)(q − 1)(zB 216 + 1 = 65537)e = 23 (rel. prim zu 120)
4 Berechne d mit de ≡ 1 mod (p − 1)(q − 1)d = 47, 47 ∗ 23 mod 120 = 1
5 Offentlicher Schlussel: P = (e, n)P = (23, 143)
6 Geheimer Schlussel: S = (d , n)S = (47, 143)
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 15 / 22
![Page 16: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/16.jpg)
Beispiel
1 Verschlusseln von m = 7
2 c ≡ me mod n 2 ≡ 723 mod 143
3 Entschlusseln von c = 2
4 m ≡ cd mod n 7 ≡ 247 mod 143
Es gibt nicht so viele kleine Primzahlen das sich viele Beispiele findenließen.
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 16 / 22
![Page 17: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/17.jpg)
Korrektheit von RSA
fur alle m ∈ D gilt:
P(S(m)) = S(P(m)) = med mod n
ed = 1 + k(p − 1)(q − 1)
med = med−1m = mk(p−1)(q−1)m = (mp−1)k(q−1)m≡ 1k(q−1)m ≡ m mod p
analog fur mod q
damit auch fur mod pq = n
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 17 / 22
![Page 18: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/18.jpg)
(I) Finden von Primzahlen
Primzahltheorem: limn→∞π(n)n/ ln n = 1
Wkeit das k ∈ N prim: 1/ ln n
Faktorisieren von k ist viel zu langsam (kommt noch!)
Falls k prim, dann: ak−1 ≡ 1 mod k (∀a ∈ {1 . . . k − 1})Fur a = 2 gilt das fast immer, die Fehlerrate ist 10−20 bei 512-bitZahlen!
Allerdings gibt es sog. Carmichael-Zahlen bei denen der Test immerversagt (also falsch “prim” ausgibt)
dort hilft der Miller-Rabin Test weiter
Wir konnen also sehr leicht grosse Primzahlen finden durch zufallige Wahleines k und dann Primzahltest
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 18 / 22
![Page 19: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/19.jpg)
Beispiel
a = 2 k = 47 246 ≡ 1 mod 47
a ∈ {2 . . . 46} : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
a = 2 k = 49 = 7 ∗ 7 248 ≡ 15 mod 49
a ∈ {2 . . . 48} : [15, 43, 29, 43, 8, 0, 43, 36, 8, 15, 22, 15, 0,36, 8, 22, 1, 1, 22, 0, 29, 29, 36, 36, 29, 29,0, 22, 1, 1, 22, 8, 36, 0, 15, 22, 15, 8, 36, 43, 0, 8, 43, 29, 43, 15, 1]
Wir mussen allerdings nur fur a = 2 testen um mit großer Sicherheit k alsPrim bestimmen zu konnen
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 19 / 22
![Page 20: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/20.jpg)
Faktorisierung von n = pq: Pollard-Rho
i := 1 x1 := Rand (0, n − 1) y := x1 k := 2 ;while True do
i := i + 1 ;xi := x2i−1 − 1 mod n ;
d := ggT (y − xi , n) ;if d 6= 1 und d 6= n then
print d ;endif i = k then
y := xi ;k := 2k ;
end
end
erwartete Zeit: O(n1/4)
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 20 / 22
![Page 21: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/21.jpg)
Beispiel: Pollard-Rho
Sei n = 323 = 19 ∗ 17
i xi+1 = (x2i − 1) xi+1 mod 323 d y
1 - 2 - 22 3 3 1 33 8 8 1 34 63 63 1 635 3968 92 1 636 8463 65 1 637 4224 25 19 63
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 21 / 22
![Page 22: ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7 4224 25 19 63 P.F. Stadler & C. H oner ... P.F. Stadler & C. H oner (Bioinf, Uni LE) ADS](https://reader033.vdocuments.mx/reader033/viewer/2022042708/5a78ecba7f8b9a68148c914c/html5/thumbnails/22.jpg)
Zusammenfassung
Das RSA-Kryptosystem basiert auf einfacher Zahlentheorie
Das Finden von zufalligen Primzahlen ist einfach
Es gibt keine bekannte, schnelle Methode n = pq zu faktorisieren
Es gibt aber auch keinen Beweis der Sicherheit (!)
RSA wird typischerweise benutzt um einen symmetrischenSession-Key zu verschlusseln
“Basis”-RSA hat einige Schwachpunkte, die allerdings in gutenImplementationen nicht zum Tragen kommen:es gilt aber: baut euch RSA nicht selbst!
P.F. Stadler & C. Honer (Bioinf, Uni LE) ADS 2, V11 14. Juni 2017 22 / 22