28.04.2014 Aufrufe

Gitter und Kryptographie - Goethe-Universität

Gitter und Kryptographie - Goethe-Universität

Gitter und Kryptographie - Goethe-Universität

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

44KAPITEL 5. LÖSEN VON SUBSETSUM-PROBLEMEN DURCH KURZE GITTERVEKTOREN<br />

beliebig klein, wenn nur die Dichte d hinreichend klein ist.<br />

Dichte d des Subsetsum-Problems<br />

d :=<br />

n<br />

log 2 ( max<br />

i=1,...,n a i)<br />

<strong>und</strong> somit<br />

max<br />

i=1,...,n a i = 2 n/d .<br />

Für Dichte d ≫ 1 gibt es bei zufälliger Wahl der Gewichte a 1 , . . . , a n “in der Regel“ viele<br />

Lösungen. Am schwierigsten gelten zufällige Subsetsum-Probleme mit Dichte nahe bei 1.<br />

In kleiner Dimension n findet man einen kürzesten <strong>Gitter</strong>vektor durch <strong>Gitter</strong>basenreduktion<br />

siehe [SH95, SE94]. Dies führt zu Angriffen auf Krypto-Schemata, die auf Subsetsum-Problemen<br />

basieren. C.P. Schnorr <strong>und</strong> H.H. Hörner [SH95] haben das Chor-Rivest-System [CR88] mittels<br />

<strong>Gitter</strong>reduktion angegriffen.<br />

5.2 Die Lagarias-Odlyzko-<strong>Gitter</strong>basis<br />

J.C. Lagarias <strong>und</strong> A.M. Odlyzko [LaOd85] schlagen die folgende <strong>Gitter</strong>basis B vor um das Subsetsum-<br />

Problem durch ein SVP-Orakel zu L(B) zu lösen. Die letzte Zeile von B wird von uns zur Beweisvereinfachung<br />

hinzugefügt. Wir überarbeiten die Darstellung von [CJLOSS92].<br />

(5.1)<br />

⎡<br />

⎤<br />

1 0 · · · 0 0<br />

0 1 0 0<br />

.<br />

B = [b 1 , · · · , b n+1 ] :=<br />

.<br />

.. . .<br />

∈ Z (n+2)×(n+1)<br />

⎢ 0 0 1 0<br />

⎥<br />

⎣Na 1 Na 2 · · · Na n Ns⎦<br />

0 0 · · · 0 1<br />

<strong>und</strong> L(B) = L LO sei das zugehörige <strong>Gitter</strong>. Die Lösung e ∈ {0, 1} n von ∑ n<br />

i=1 x ie i = s liefert den<br />

Lösungsvektor<br />

(5.2)<br />

ê := ( ∑ n<br />

i=1 e ib i<br />

)<br />

− bn+1 = (e 1 , . . . , e n , 0, −1) t ∈ L LO .<br />

Entweder e oder e = 1 − e, die Lösung zum inversen Subsetsum-Problem, hat höchstens n/2<br />

Einsen <strong>und</strong> liefert damit einen Lösungsvektor in L LO der Länge ≤ √ n/2 + 1. Für jeden Vektor<br />

̂x = (x 1 , ..., x n+1 , −y) ∈ L LO mit ‖̂x‖ = λ 1 gilt somit für N ≥ √ n/2: ∑ i≠n+1 |x i| ≥ 2, x n+1 = 0.<br />

Satz 5.2.1<br />

Für n > n 0 <strong>und</strong> N ≥ √ n/2 werden fast alle lösbare Subsetsum-Probleme zu (a 1 , . . . , a n ) ∈ [1, A] n<br />

der Dichte d < 0, 6463 durch jeden Vektor der Länge λ 1 von L LO für s oder s = t − s gelöst.<br />

Beweis. Sei ‖e‖ 2 ≤ n/2. Das SVP-Orakel liefere den <strong>Gitter</strong>vektor ̂x := ∑ n<br />

i−1 x ib i − yb n+1 der<br />

Länge λ 1 mit y ≥ 0. Löst ̂x das Subsetsum-Problem nicht so gilt<br />

(5.3)<br />

‖̂x‖ = λ 1 ≤ √ n/2 + 1, ̂x ≠ ê.<br />

Wir analysieren die Wahrscheinlichkeit des Misserfolgs<br />

P (n) := Ws[ Es existiert ein ̂x ∈ L CJLOSS mit (5.3)]<br />

bezüglich zufälliger (a 1 , . . . , a n ) ∈ R [1, A] n . Für N ≥ √ n/2 wurde oben gezeigt dass x n+1 = 0<br />

<strong>und</strong> somit ∑ n<br />

i=1 a ix i = ys. Offenbar gilt 0 ≤ y < λ 1 ≤ √ n/2 + 1. Wir setzen x := (x 1 , ..., x n ).

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!