diskrete logarithmen - universität potsdam · diskrete logarithmen algorithmen pohlig-hellman...

22
Diskrete Logarithmen Diskrete Logarithmen Ron-Gerrit Vahle Hendrik Radke Universit¨ at Potsdam Institut f¨ ur Informatik Seminar Kryptographie SS2005 Teil II

Upload: hadang

Post on 10-Aug-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Diskrete Logarithmen

Diskrete Logarithmen

Ron-Gerrit Vahle Hendrik Radke

Universitat PotsdamInstitut fur Informatik

Seminar Kryptographie SS2005

Teil II

Diskrete Logarithmen

Gliederung

AlgorithmenPohlig-HellmanIndex-CalculusTheoretische Grenzen

Endliche Korper

Epilog

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman-Algorithmus

I Primfaktorzerlegung von n =∏k

i=1 pcii

I Berechne xi = a mod pcii

I Berechnung von a nach Gauß-Algorithmus:

a =k∑

i=1

xiMiyi ,Mi = n/pcii , yi = M−1

i mod pcii

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Berechnung von xi

I Sei x = xi , q = pi , c = ci

I ⇒ x = a mod qc

I x ist darstellbar als x =∑c−1

i=0 biqi , bi < q

I ∃s ∈ N.a = x + sqc ⇒ a =∑c−1

i=0 biqi + sqc

I Definiere β0 := β, βj := βα−(b0+b1q+···+bj−1qj−1)

I Es gilt: βn/qj+1

j = αbjn/q (zu zeigen)

I γ = αn/q ⇒ ∃bj ∈ N.γbj = βn/qj+1(O(q))

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Beweise I

zu zeigen: βn/qj+1

j = αbjn/q

= βn/qj+1

j (βj = βα−biqi, β = αa)

= (αa−(b0+b1q+···+bj−1qj−1))n/qj+1

(a =∑c−1

i=0 biqi + sqc)

= (αbjqj+···+bc−1qc−1+sqc

)n/qj+1(Kj = bj+1 + bj+2q + · · · )

= (αbjqj+Kjq

j+1)n/qj+1

(Potenzgesetze)

= αbjn/qαKjn (αq ≡ 1 (mod n))

= αbjn/q

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Beweise IIChinesisches Rest-Theorem – Gauß-Algorithmus

I Gegeben: x1, . . . , xr , z1, . . . , zr ∈ N, zi paarw. teilerfremd

I Gesucht: a, so daß ∀i .a ≡ xi (mod zi )

I definiere Mi := nzi

, yi = M−1i (mod zi )

I Sei a =∑r

i=1 xiMiyi mod n

I xiMiyi ≡ xi (mod zi ) (Miyi ≡ 1 (mod zi ))

I xiMiyi ≡ 0 (mod mj), falls i 6= j (mj |Mi )

I ∀j ∈ 1, . . . , r.a ≡∑r

i=1 xiMiyi ≡ xj (mod mj)

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Ein Beispiel (I)

I Sei p = 29, α = 2, β = 18 ⇒ n = p − 1 = 28 = 2271

I Berechne x1 = a mod 22

I Setze q = 2, c = 2I γ = αn/q = 214 mod 29 = 28

I βn/q1

0 = 1814 mod 29 = 28

I γ1 ≡ βn/q0 (mod 29) (⇒ b0 = 1)

I βn/q2

1 = βα−b07

= 18 ∗ 2−17mod 29 = 28

I γ1 ≡ 28 (mod 29) (⇒ b1 = 1)I x1 =

∑1i=0 biq

i = 3

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Ein Beispiel (II)

I Berechne x2 = a mod 71

I Setze q = 7, c = 1I γ = αn/q = 24 mod 29 = 16

I βn/q1

0 = 184 mod 29 = 25I γ4 ≡ 25 (mod 29) (⇒ b0 = 4)I x2 =

∑0i=0 biq

i = 4

I a =∑2

i=1 xiMiyi ,Mi = n/pcii , yi = M−1

i mod pcii

I x1 = 3, x2 = 4,M1 = 7,M2 = 4, y1 = 3, y2 = 2

I a ≡ 11 (mod 28)

I Probe: 211 mod 29 = 18

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Komplexitat

I Berechnung der Primfaktorzerlegung von n (???)I Berechnung von xi , 1 ≤ i ≤ r O(r)

I ci Faktoren bi O(ci )I Berechnung der bi O(

√pi )

I Berechnung von a nach Gauß:I Summe aus r Elementen O(r)

I Ermitteln der Inversen yi O(log pi )

I Große von r vernachlassigbar

I Gesamtkomplexitat (c = maxci, q = axpi): O(c√

q)

Diskrete Logarithmen

Algorithmen

Pohlig-Hellman

Pohlig-Hellman: Grenzen

I Primfaktorisierung von n = pc11 · · · pck

k ist exponentiell

I nur effektiv, falls alle pi schnell gefunden werden

I gilt fur s-glatte Zahlen, d.h. alle pi < s, s hinreichend klein

Diskrete Logarithmen

Algorithmen

Index-Calculus

Index-Calculus-Algorithmus (I)

1. Bestimme eine Faktorbasis B = p1, . . . , pr ⊆ G mit r

”kleinen“ Primzahlen, die eine hinreichend große Menge von

x ∈ G durch Linearkombination darstellen konnen

2. Berechne logα pi ,∀pi ∈ B (Vorberechnung)

3. wahle eine zufallige Zahl s ∈ N

4. versuche Faktorisierung mit B: βαs =∏r

i=1 pcii

5. falls (4) fehlschlagt, wiederhole (3)

6. sonst gilt: βαs ≡∏r

i=1 pcii (mod p)

⇒ logα β + s ≡∑r

i=1 ci logα pi (mod p − 1)

Diskrete Logarithmen

Algorithmen

Index-Calculus

Index-Calculus-Algorithmus (II)Vorberechnung der Logarithmen von B

1. Wahl einer zufalligen Zahl k, 0 ≤ k ≤ n − 1

2. Schreibe αk als Produkt aus Elementen von B: αk =∏r

i=1 pcii

⇒ k ≡∑r

i=1 ci logα pi (mod n)

3. Wiederhole Schritte 1-2, bis r + t Gleichungen gefunden sind,t ist

”klein“, z.B. 10

4. Losen des lin. Gleichungssystems mit r + t Gleichungenund r Unbekannten logα pi

Diskrete Logarithmen

Algorithmen

Index-Calculus

Index Calculus – ein Beispiel (I)Vorberechnung

I Sei p = 10007, α = 5

I Benutze Faktorbasis B = 2, 3, 5, 7I Bestimme logα pi

I log5 5 = 1I 54063 mod 10007 = 42 = 2 ∗ 3 ∗ 7I 55136 mod 10007 = 54 = 2 ∗ 33

I 59865 mod 10007 = 189 = 33 ∗ 7I 4063 ≡ log5 2 + log5 3 + log5 7 (mod 10006)I 5136 ≡ log5 2 + 3 log5 3 (mod 10006)I 9865 ≡ 3 log5 3 + log5 7 (mod 10006)I Losen des lin. Gleichungssystems:I log5 2 = 6578, log5 3 = 6190, log5 7 = 1301

Diskrete Logarithmen

Algorithmen

Index-Calculus

Index Calculus – ein Beispiel (II)

I Sei β = 9451

I Wahle”zufalliges“ k = 7736

I 9451 ∗ 57736 mod 10007 = 8400 = 24 ∗ 31 ∗ 52 ∗ 71

I logα β = (4 log5 2 + 1 log5 3 + 2 log5 5 + 1 log5 7) mod 10006

I = 6057

I Probe: 56057 mod 10007 = 9451

Diskrete Logarithmen

Algorithmen

Index-Calculus

Index Calculus – Grenzen und Komplexitat

I Kardinalitat r der Faktorbasis wichtig:I zu klein ⇒ zu wenig x ∈ G faktorisierbarI zu groß ⇒ Berechnung wird komplizierter

I Ermitteln der Komplexitat durch heuristische Analyse

I Vorberechnung: O(e(1+Ω(1))√

ln p ln ln p)

I Losung fur geg. β: O(e(1/2+Ω(1))√

ln p ln ln p)

Diskrete Logarithmen

Algorithmen

Theoretische Grenzen

Theoretische Grenzen (I)

I allgemeiner Algorithmus muss auf beliebigen Gruppenfunktionieren

I alle zyklischen Gruppen (G , ·) der Ordnung n sind isomorph

I DLP in (Zn,+) ist trivial

I Idee: Finde bijektive Abbildung ϕ : G → Zn, so dassϕ(x · y) = (ϕ(x) + ϕ(y)) mod n

Diskrete Logarithmen

Algorithmen

Theoretische Grenzen

Theoretische Grenzen (II)

I Sei σ : Zn → G eine injektive Abbildung

I Gegeben: σ(1), σ(a)

I Gesucht: a = σ−1(σ(a))

I Orakel berechnet fur m disjunkte Paare (ci , di )Linearkombination σi = σ(ci ∗ 1 + di ∗ a) mod n

I Kollision: σi = σj , i 6= j

I (ci , di ) disjunkt ⇒ ci 6= cj , di 6= dj

I a = (ci − cj)(dj − di )−1 mod n

Diskrete Logarithmen

Algorithmen

Theoretische Grenzen

Theoretische Grenzen (III)Wie wahrscheinlich ist eine Berechnung von a?

I m disjunkte Paare (ci , di ) ∈ M ⇒ max.(m

2

)=: g Kollisionen

I Wahrscheinlichkeit fur a ∈ Kollision(M): g/n

I sonst: errate a aus Differenzmenge G \M

I Wahrscheinlichkeit fur richtiges Raten: n−gn ∗ 1

n−g

I gn + 1

n−g ∗n−g

n = g+1n

I((m

2)+1)

n ≥ 1 ⇒ m2 + m ≥ 2n ⇒ Ω(√

n)

Diskrete Logarithmen

Endliche Korper

Endliche Korper

I Statt Zp: Korper Fpn uber Polynomen

I Sei Zp[x ] Menge der Polynome∑ni=0 aix

i , ai ∈ Zp, n ∈ N, p prim

I Sei Zp[x ]/f (x) = g ∈ Zp[x ]|grad(g) < n, n = grad(f )I g(x) ≡ h(x) (mod f (x)) ⇔ f (x)|(g(x)− h(x)) (

”modulo“)

I f ∈ Zp[x ] irreduzibel ⇔ ∀f1, f2 ∈ Zp[x ].f1f2 6= f (”prim“)

I Anpassung von Index-Calculus moglich

I Komplexitat von IC: O(e(1.405+Ω(1)) 3√2n ln n) Vorberechnung

O(e(1.098+Ω(1)) 3√2n ln n) Problem

Diskrete Logarithmen

Epilog

Zusammenfassung

I DLP := (α, β, a)|α, β ∈ G , a ∈ N, αa = βI Diskrete Logarithmen werden zur public-Key-Verschlusselung

(ElGamal) eingesetzt

I ubliche Gruppen: Z∗p, Fpn , elliptische Kurven (nachste Woche)

I fur allgem. Gruppen sicher: Komplexitat√

nI Aber:

I min. ein”großer“ Primfaktor notig (Pohlig-Hellman)

I Index-Calculus kann Resultat in subexponentieller Zeitermitteln

Diskrete Logarithmen

Epilog

Quellen

A Menezes, P. van Oorschot, S. Vanstone.Handbook of Applied Cryptography.CRC, 1996.

D. Stinson.Cryptography – Theory and Practice.Chapman&Hall/CRC, 2002.

Samuel S. Wagstaff.Cryptanalysis of number theoretic Ciphers.Chapman&Hall/CRC, 2003.

Diskrete Logarithmen

Epilog

Vielen Dank fur Ihre Aufmerksamkeit

Fragen?