diskrete logarithmen - universität potsdam · diskrete logarithmen algorithmen pohlig-hellman...
Post on 10-Aug-2019
221 Views
Preview:
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.
top related