ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7...

22
ADS: Algorithmen und Datenstrukturen 2 Teil 11 Prof. Peter F. Stadler & Dr. Christian H¨ oner zu Siederdissen Bioinformatik/IZBI Institut f¨ ur Informatik & Interdisziplin¨ ares Zentrum f¨ ur Bioinformatik Universit¨ at Leipzig 14. Juni 2017 [Letzte Aktualisierung: 14/06/2017, 01:45] 1 / 22

Transcript of ADS: Algorithmen und Datenstrukturen 2 - Teil 11 · PDF file5 3968 92 1 63 6 8463 65 1 63 7...

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

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

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

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

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

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

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

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

(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

(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

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

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

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

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

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

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

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

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

(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

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

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

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

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